This commit is contained in:
Jiri Popelka 2014-01-08 18:53:40 +01:00
parent 63b906b273
commit 6fc547202c
12 changed files with 131 additions and 738 deletions

1
.gitignore vendored
View File

@ -57,3 +57,4 @@ cups-1.4.4-source.tar.bz2
/cups-1.7b1-source.tar.bz2 /cups-1.7b1-source.tar.bz2
/cups-1.7rc1-source.tar.bz2 /cups-1.7rc1-source.tar.bz2
/cups-1.7.0-source.tar.bz2 /cups-1.7.0-source.tar.bz2
/cups-1.7.1-source.tar.bz2

View File

@ -1,104 +0,0 @@
diff -up cups-1.7.0/notifier/dbus.c.dbus-notifier cups-1.7.0/notifier/dbus.c
--- cups-1.7.0/notifier/dbus.c.dbus-notifier 2012-10-01 04:01:10.000000000 +0100
+++ cups-1.7.0/notifier/dbus.c 2014-01-07 14:57:59.563591055 +0000
@@ -4,7 +4,7 @@
* D-Bus notifier for CUPS.
*
* Copyright 2008-2012 by Apple Inc.
- * Copyright (C) 2011 Red Hat, Inc.
+ * Copyright (C) 2011, 2013 Red Hat, Inc.
* Copyright (C) 2007 Tim Waugh <twaugh@redhat.com>
* Copyright 1997-2005 by Easy Software Products.
*
@@ -154,9 +154,16 @@ enum
/*
+ * Global variables...
+ */
+
+static char lock_filename[1024]; /* Lock filename */
+
+/*
* Local functions...
*/
+static void release_lock(void);
static int acquire_lock(int *fd, char *lockfile, size_t locksize);
@@ -176,8 +183,6 @@ main(int argc, /* I - Number of comm
DBusMessage *message; /* Message to send */
DBusMessageIter iter; /* Iterator for message data */
int lock_fd = -1; /* Lock file descriptor */
- char lock_filename[1024];
- /* Lock filename */
/*
@@ -578,7 +583,7 @@ main(int argc, /* I - Number of comm
if (lock_fd >= 0)
{
close(lock_fd);
- unlink(lock_filename);
+ release_lock();
}
return (0);
@@ -586,6 +591,27 @@ main(int argc, /* I - Number of comm
/*
+ * 'release_lock()' - Release the singleton lock.
+ */
+
+static void
+release_lock(void)
+{
+ unlink(lock_filename);
+}
+
+
+/*
+ * 'handle_sigterm()' - Handle SIGTERM signal.
+ */
+static void
+handle_sigterm(int signum)
+{
+ release_lock();
+ _exit (0);
+}
+
+/*
* 'acquire_lock()' - Acquire a lock so we only have a single notifier running.
*/
@@ -594,7 +620,8 @@ acquire_lock(int *fd, /* O - Lock fi
char *lockfile, /* I - Lock filename buffer */
size_t locksize) /* I - Size of filename buffer */
{
- const char *tmpdir; /* Temporary directory */
+ const char *tmpdir; /* Temporary directory */
+ struct sigaction action; /* POSIX sigaction data */
/*
@@ -612,8 +639,16 @@ acquire_lock(int *fd, /* O - Lock fi
if ((*fd = open(lockfile, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR)) < 0)
return (-1);
- else
- return (0);
+
+ /*
+ * Set a SIGTERM handler to make sure we release the lock if the
+ * scheduler decides to stop us.
+ */
+ memset(&action, 0, sizeof(action));
+ action.sa_handler = handle_sigterm;
+ sigaction(SIGTERM, &action, NULL);
+
+ return (0);
}
#else /* !HAVE_DBUS */
int

View File

@ -1,14 +0,0 @@
diff -up cups-1.6.2/cups/file.c.gz-crc cups-1.6.2/cups/file.c
--- cups-1.6.2/cups/file.c.gz-crc 2013-07-11 12:06:49.920878639 +0100
+++ cups-1.6.2/cups/file.c 2013-07-11 12:13:41.169628104 +0100
@@ -2429,8 +2429,8 @@ cups_fill(cups_file_t *fp) /* I - CUPS
}
else
{
- tcrc = (((((trailer[3] << 8) | trailer[2]) << 8) | trailer[1]) << 8) |
- trailer[0];
+ tcrc = (((uLong) ((trailer[3] << 8) | trailer[2])) << 16) |
+ (uLong) ((trailer[1] << 8) | trailer[0]);
if (tcrc != fp->crc)
{

View File

@ -1,20 +0,0 @@
diff -up cups-1.7.0/scheduler/log.c.jobhistory cups-1.7.0/scheduler/log.c
--- cups-1.7.0/scheduler/log.c.jobhistory 2013-10-28 16:30:39.852015304 +0000
+++ cups-1.7.0/scheduler/log.c 2013-10-28 16:30:48.502057711 +0000
@@ -525,12 +525,13 @@ cupsdLogJob(cupsd_job_t *job, /* I - Jo
*/
cupsd_joblog_t *temp; /* Copy of log message */
+ size_t log_len = strlen(log_line);
+ /* Length of log message */
-
- if ((temp = malloc(sizeof(cupsd_joblog_t) + strlen(log_line))) != NULL)
+ if ((temp = malloc(sizeof(cupsd_joblog_t) + log_len)) != NULL)
{
temp->time = time(NULL);
- strlcpy(temp->message, log_line, sizeof(temp->message));
+ memcpy(temp->message, log_line, log_len + 1);
}
if (!job->history)

View File

@ -119,268 +119,6 @@ diff -up cups-1.7.0/scheduler/conf.h.journal cups-1.7.0/scheduler/conf.h
extern int cupsdWriteErrorLog(int level, const char *message); extern int cupsdWriteErrorLog(int level, const char *message);
diff -up cups-1.7.0/scheduler/job.c.journal cups-1.7.0/scheduler/job.c
--- cups-1.7.0/scheduler/job.c.journal 2013-10-24 16:35:59.144969239 +0100
+++ cups-1.7.0/scheduler/job.c 2013-10-24 16:35:59.178969392 +0100
@@ -312,8 +312,7 @@ cupsdCheckJobs(void)
if (job->kill_time && job->kill_time <= curtime)
{
- cupsdLogMessage(CUPSD_LOG_ERROR, "[Job %d] Stopping unresponsive job.",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "Stopping unresponsive job.");
stop_job(job, CUPSD_JOB_FORCE);
continue;
@@ -1699,7 +1698,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
* Load job attributes...
*/
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] Loading attributes...", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Loading attributes...");
snprintf(jobfile, sizeof(jobfile), "%s/c%05d", RequestRoot, job->id);
if ((fp = cupsdOpenConfFile(jobfile)) == NULL)
@@ -1707,9 +1706,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
if (ippReadIO(fp, (ipp_iocb_t)cupsFileRead, 1, NULL, job->attrs) != IPP_DATA)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to read job control file \"%s\".", job->id,
- jobfile);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to read job control file \"%s\".", jobfile);
cupsFileClose(fp);
goto error;
}
@@ -1722,18 +1720,16 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
if (!ippFindAttribute(job->attrs, "time-at-creation", IPP_TAG_INTEGER))
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad time-at-creation attribute in "
- "control file.", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Missing or bad time-at-creation attribute in control file.");
goto error;
}
if ((job->state = ippFindAttribute(job->attrs, "job-state",
IPP_TAG_ENUM)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad job-state attribute in control "
- "file.", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Missing or bad job-state attribute in control file.");
goto error;
}
@@ -1773,18 +1769,17 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
if ((attr = ippFindAttribute(job->attrs, "job-printer-uri",
IPP_TAG_URI)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] No job-printer-uri attribute in control file.",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "No job-printer-uri attribute in control file.");
goto error;
}
if ((dest = cupsdValidateDest(attr->values[0].string.text, &(job->dtype),
&destptr)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to queue job for destination \"%s\".",
- job->id, attr->values[0].string.text);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to queue job for destination \"%s\".",
+ attr->values[0].string.text);
goto error;
}
@@ -1792,9 +1787,9 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
}
else if ((destptr = cupsdFindDest(job->dest)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to queue job for destination \"%s\".",
- job->id, job->dest);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unable to queue job for destination \"%s\".",
+ job->dest);
goto error;
}
@@ -1803,9 +1798,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
{
const char *reason; /* job-state-reason keyword */
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "[Job %d] Adding missing job-state-reasons attribute to "
- " control file.", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG,
+ "Adding missing job-state-reasons attribute to control file.");
switch (job->state_value)
{
@@ -1870,9 +1864,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
if ((attr = ippFindAttribute(job->attrs, "job-priority",
IPP_TAG_INTEGER)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad job-priority attribute in "
- "control file.", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Missing or bad job-priority attribute in control file.");
goto error;
}
@@ -1884,9 +1877,9 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
if ((attr = ippFindAttribute(job->attrs, "job-originating-user-name",
IPP_TAG_NAME)) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad job-originating-user-name "
- "attribute in control file.", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Missing or bad job-originating-user-name "
+ "attribute in control file.");
goto error;
}
@@ -1931,9 +1924,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
if (access(jobfile, 0))
break;
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "[Job %d] Auto-typing document file \"%s\"...", job->id,
- jobfile);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG,
+ "Auto-typing document file \"%s\"...", jobfile);
if (fileid > job->num_files)
{
@@ -1959,9 +1951,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
if (!compressions || !filetypes)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Ran out of memory for job file types.",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Ran out of memory for job file types.");
ippDelete(job->attrs);
job->attrs = NULL;
@@ -2269,8 +2260,7 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
if (ippWriteIO(fp, (ipp_iocb_t)cupsFileWrite, 1, NULL,
job->attrs) != IPP_DATA)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to write job control file.", job->id);
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "Unable to write job control file.");
cupsFileClose(fp);
return;
}
@@ -2947,15 +2937,15 @@ dump_job_history(cupsd_job_t *job) /* I
snprintf(temp, sizeof(temp),
"[Job %d] The following messages were recorded from %s to %s",
job->id, start, end);
- cupsdWriteErrorLog(CUPSD_LOG_DEBUG, temp);
+ cupsdWriteErrorLogJob(job, CUPSD_LOG_DEBUG, temp);
for (message = (cupsd_joblog_t *)cupsArrayFirst(job->history);
message;
message = (cupsd_joblog_t *)cupsArrayNext(job->history))
- cupsdWriteErrorLog(CUPSD_LOG_DEBUG, message->message);
+ cupsdWriteErrorLogJob(job, CUPSD_LOG_DEBUG, message->message);
snprintf(temp, sizeof(temp), "[Job %d] End of messages", job->id);
- cupsdWriteErrorLog(CUPSD_LOG_DEBUG, temp);
+ cupsdWriteErrorLogJob(job, CUPSD_LOG_DEBUG, temp);
/*
* Log the printer state values...
@@ -2971,11 +2961,11 @@ dump_job_history(cupsd_job_t *job) /* I
printer->state == IPP_PRINTER_IDLE ? "idle" :
printer->state == IPP_PRINTER_PROCESSING ? "processing" :
"stopped");
- cupsdWriteErrorLog(CUPSD_LOG_DEBUG, temp);
+ cupsdWriteErrorLogJob(job, CUPSD_LOG_DEBUG, temp);
snprintf(temp, sizeof(temp), "[Job %d] printer-state-message=\"%s\"",
job->id, printer->state_message);
- cupsdWriteErrorLog(CUPSD_LOG_DEBUG, temp);
+ cupsdWriteErrorLogJob(job, CUPSD_LOG_DEBUG, temp);
snprintf(temp, sizeof(temp), "[Job %d] printer-state-reasons=", job->id);
ptr = temp + strlen(temp);
@@ -2994,7 +2984,7 @@ dump_job_history(cupsd_job_t *job) /* I
ptr += strlen(ptr);
}
}
- cupsdWriteErrorLog(CUPSD_LOG_DEBUG, temp);
+ cupsdWriteErrorLogJob(job, CUPSD_LOG_DEBUG, temp);
}
/*
@@ -4135,8 +4125,7 @@ load_job_cache(const char *filename) /*
job->status_pipes[0] = -1;
job->status_pipes[1] = -1;
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] Loading from cache...",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Loading from cache...");
}
else if (!job)
{
@@ -4205,8 +4194,7 @@ load_job_cache(const char *filename) /*
job->id);
if (access(jobfile, 0))
{
- cupsdLogMessage(CUPSD_LOG_INFO, "[Job %d] Data files have gone away.",
- job->id);
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Data files have gone away.");
job->num_files = 0;
continue;
}
@@ -4216,9 +4204,9 @@ load_job_cache(const char *filename) /*
if (!job->filetypes || !job->compressions)
{
- cupsdLogMessage(CUPSD_LOG_EMERG,
- "[Job %d] Unable to allocate memory for %d files.",
- job->id, job->num_files);
+ cupsdLogJob(job, CUPSD_LOG_EMERG,
+ "Unable to allocate memory for %d files.",
+ job->num_files);
break;
}
}
@@ -4256,9 +4244,9 @@ load_job_cache(const char *filename) /*
* If the original MIME type is unknown, auto-type it!
*/
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unknown MIME type %s/%s for file %d.",
- job->id, super, type, number + 1);
+ cupsdLogJob(job, CUPSD_LOG_ERROR,
+ "Unknown MIME type %s/%s for file %d.",
+ super, type, number + 1);
snprintf(jobfile, sizeof(jobfile), "%s/d%05d-%03d", RequestRoot,
job->id, number + 1);
@@ -4770,7 +4758,7 @@ unload_job(cupsd_job_t *job) /* I - Job
if (!job->attrs)
return;
- cupsdLogMessage(CUPSD_LOG_DEBUG, "[Job %d] Unloading...", job->id);
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Unloading...");
ippDelete(job->attrs);
diff -up cups-1.7.0/scheduler/log.c.journal cups-1.7.0/scheduler/log.c diff -up cups-1.7.0/scheduler/log.c.journal cups-1.7.0/scheduler/log.c
--- cups-1.7.0/scheduler/log.c.journal 2013-10-24 16:35:59.083968963 +0100 --- cups-1.7.0/scheduler/log.c.journal 2013-10-24 16:35:59.083968963 +0100
+++ cups-1.7.0/scheduler/log.c 2013-10-24 16:38:02.352526508 +0100 +++ cups-1.7.0/scheduler/log.c 2013-10-24 16:38:02.352526508 +0100

View File

@ -1,18 +1,23 @@
diff -up cups-1.7.0/Makedefs.in.lspp cups-1.7.0/Makedefs.in diff -up cups-1.7.1/config.h.in.lspp cups-1.7.1/config.h.in
--- cups-1.7.0/Makedefs.in.lspp 2013-10-24 15:54:45.867523689 +0100 --- cups-1.7.1/config.h.in.lspp 2014-01-08 18:43:27.282821790 +0100
+++ cups-1.7.0/Makedefs.in 2013-10-24 15:54:45.901523836 +0100 +++ cups-1.7.1/config.h.in 2014-01-08 18:43:27.295821610 +0100
@@ -148,7 +148,7 @@ LDFLAGS = -L../cgi-bin -L../cups -L../f @@ -717,6 +717,13 @@ static __inline int _cups_abs(int i) { r
@LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM) # endif /* __GNUC__ || __STDC_VERSION__ */
LINKCUPS = @LINKCUPS@ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(LIBZ) #endif /* !HAVE_ABS && !abs */
LINKCUPSIMAGE = @LINKCUPSIMAGE@
-LIBS = $(LINKCUPS) $(COMMONLIBS) +/*
+LIBS = $(LINKCUPS) $(COMMONLIBS) @LIBAUDIT@ @LIBSELINUX@ + * Are we trying to meet LSPP requirements?
OPTIM = @OPTIM@ + */
OPTIONS = +
PAMLIBS = @PAMLIBS@ +#undef WITH_LSPP
diff -up cups-1.7.0/config-scripts/cups-lspp.m4.lspp cups-1.7.0/config-scripts/cups-lspp.m4 +
--- cups-1.7.0/config-scripts/cups-lspp.m4.lspp 2013-10-24 15:54:45.900523831 +0100 +
+++ cups-1.7.0/config-scripts/cups-lspp.m4 2013-10-24 15:54:45.900523831 +0100 #endif /* !_CUPS_CONFIG_H_ */
/*
diff -up cups-1.7.1/config-scripts/cups-lspp.m4.lspp cups-1.7.1/config-scripts/cups-lspp.m4
--- cups-1.7.1/config-scripts/cups-lspp.m4.lspp 2014-01-08 18:43:27.295821610 +0100
+++ cups-1.7.1/config-scripts/cups-lspp.m4 2014-01-08 18:43:27.295821610 +0100
@@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
+dnl +dnl
+dnl LSPP code for the Common UNIX Printing System (CUPS). +dnl LSPP code for the Common UNIX Printing System (CUPS).
@ -50,26 +55,9 @@ diff -up cups-1.7.0/config-scripts/cups-lspp.m4.lspp cups-1.7.0/config-scripts/c
+ ;; + ;;
+ esac + esac
+fi +fi
diff -up cups-1.7.0/config.h.in.lspp cups-1.7.0/config.h.in diff -up cups-1.7.1/configure.in.lspp cups-1.7.1/configure.in
--- cups-1.7.0/config.h.in.lspp 2013-10-24 15:54:45.865523680 +0100 --- cups-1.7.1/configure.in.lspp 2014-01-08 18:43:27.228822537 +0100
+++ cups-1.7.0/config.h.in 2013-10-24 15:54:45.900523831 +0100 +++ cups-1.7.1/configure.in 2014-01-08 18:43:27.296821596 +0100
@@ -710,6 +710,13 @@ static __inline int _cups_abs(int i) { r
# endif /* __GNUC__ || __STDC_VERSION__ */
#endif /* !HAVE_ABS && !abs */
+/*
+ * Are we trying to meet LSPP requirements?
+ */
+
+#undef WITH_LSPP
+
+
#endif /* !_CUPS_CONFIG_H_ */
/*
diff -up cups-1.7.0/configure.in.lspp cups-1.7.0/configure.in
--- cups-1.7.0/configure.in.lspp 2013-10-24 15:54:45.866523684 +0100
+++ cups-1.7.0/configure.in 2013-10-24 15:54:45.900523831 +0100
@@ -37,6 +37,8 @@ sinclude(config-scripts/cups-systemd.m4) @@ -37,6 +37,8 @@ sinclude(config-scripts/cups-systemd.m4)
sinclude(config-scripts/cups-defaults.m4) sinclude(config-scripts/cups-defaults.m4)
sinclude(config-scripts/cups-scripting.m4) sinclude(config-scripts/cups-scripting.m4)
@ -79,9 +67,9 @@ diff -up cups-1.7.0/configure.in.lspp cups-1.7.0/configure.in
INSTALL_LANGUAGES="" INSTALL_LANGUAGES=""
UNINSTALL_LANGUAGES="" UNINSTALL_LANGUAGES=""
LANGFILES="" LANGFILES=""
diff -up cups-1.7.0/filter/common.c.lspp cups-1.7.0/filter/common.c diff -up cups-1.7.1/filter/common.c.lspp cups-1.7.1/filter/common.c
--- cups-1.7.0/filter/common.c.lspp 2013-05-29 12:51:34.000000000 +0100 --- cups-1.7.1/filter/common.c.lspp 2013-05-29 13:51:34.000000000 +0200
+++ cups-1.7.0/filter/common.c 2013-10-24 15:54:45.900523831 +0100 +++ cups-1.7.1/filter/common.c 2014-01-08 18:43:27.296821596 +0100
@@ -30,6 +30,12 @@ @@ -30,6 +30,12 @@
* Include necessary headers... * Include necessary headers...
*/ */
@ -250,9 +238,9 @@ diff -up cups-1.7.0/filter/common.c.lspp cups-1.7.0/filter/common.c
/* /*
diff -up cups-1.7.0/filter/pstops.c.lspp cups-1.7.0/filter/pstops.c diff -up cups-1.7.1/filter/pstops.c.lspp cups-1.7.1/filter/pstops.c
--- cups-1.7.0/filter/pstops.c.lspp 2013-05-29 12:51:34.000000000 +0100 --- cups-1.7.1/filter/pstops.c.lspp 2013-05-29 13:51:34.000000000 +0200
+++ cups-1.7.0/filter/pstops.c 2013-10-24 15:54:45.901523836 +0100 +++ cups-1.7.1/filter/pstops.c 2014-01-08 18:43:27.297821582 +0100
@@ -3203,6 +3203,18 @@ write_label_prolog(pstops_doc_t *doc, /* @@ -3203,6 +3203,18 @@ write_label_prolog(pstops_doc_t *doc, /*
{ {
const char *classification; /* CLASSIFICATION environment variable */ const char *classification; /* CLASSIFICATION environment variable */
@ -408,9 +396,21 @@ diff -up cups-1.7.0/filter/pstops.c.lspp cups-1.7.0/filter/pstops.c
/* /*
diff -up cups-1.7.0/scheduler/client.c.lspp cups-1.7.0/scheduler/client.c diff -up cups-1.7.1/Makedefs.in.lspp cups-1.7.1/Makedefs.in
--- cups-1.7.0/scheduler/client.c.lspp 2013-09-27 15:09:25.000000000 +0100 --- cups-1.7.1/Makedefs.in.lspp 2014-01-08 18:43:27.282821790 +0100
+++ cups-1.7.0/scheduler/client.c 2013-10-24 15:54:45.902523841 +0100 +++ cups-1.7.1/Makedefs.in 2014-01-08 18:43:27.295821610 +0100
@@ -149,7 +149,7 @@ LDFLAGS = -L../cgi-bin -L../cups -L../f
@LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM)
LINKCUPS = @LINKCUPS@ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(LIBZ)
LINKCUPSIMAGE = @LINKCUPSIMAGE@
-LIBS = $(LINKCUPS) $(COMMONLIBS)
+LIBS = $(LINKCUPS) $(COMMONLIBS) @LIBAUDIT@ @LIBSELINUX@
OPTIM = @OPTIM@
OPTIONS =
PAMLIBS = @PAMLIBS@
diff -up cups-1.7.1/scheduler/client.c.lspp cups-1.7.1/scheduler/client.c
--- cups-1.7.1/scheduler/client.c.lspp 2013-09-27 16:09:25.000000000 +0200
+++ cups-1.7.1/scheduler/client.c 2014-01-08 18:43:27.298821568 +0100
@@ -41,6 +41,7 @@ @@ -41,6 +41,7 @@
* valid_host() - Is the Host: field valid? * valid_host() - Is the Host: field valid?
* write_file() - Send a file via HTTP. * write_file() - Send a file via HTTP.
@ -629,9 +629,9 @@ diff -up cups-1.7.0/scheduler/client.c.lspp cups-1.7.0/scheduler/client.c
/* /*
* 'pipe_command()' - Pipe the output of a command to the remote client. * 'pipe_command()' - Pipe the output of a command to the remote client.
diff -up cups-1.7.0/scheduler/client.h.lspp cups-1.7.0/scheduler/client.h diff -up cups-1.7.1/scheduler/client.h.lspp cups-1.7.1/scheduler/client.h
--- cups-1.7.0/scheduler/client.h.lspp 2013-10-24 15:54:45.867523689 +0100 --- cups-1.7.1/scheduler/client.h.lspp 2014-01-08 18:43:27.231822495 +0100
+++ cups-1.7.0/scheduler/client.h 2013-10-24 15:54:45.903523845 +0100 +++ cups-1.7.1/scheduler/client.h 2014-01-08 18:43:27.298821568 +0100
@@ -18,6 +18,13 @@ @@ -18,6 +18,13 @@
#endif /* HAVE_AUTHORIZATION_H */ #endif /* HAVE_AUTHORIZATION_H */
@ -667,18 +667,10 @@ diff -up cups-1.7.0/scheduler/client.h.lspp cups-1.7.0/scheduler/client.h
#ifdef HAVE_SSL #ifdef HAVE_SSL
extern int cupsdEndTLS(cupsd_client_t *con); extern int cupsdEndTLS(cupsd_client_t *con);
diff -up cups-1.7.0/scheduler/conf.c.lspp cups-1.7.0/scheduler/conf.c diff -up cups-1.7.1/scheduler/conf.c.lspp cups-1.7.1/scheduler/conf.c
--- cups-1.7.0/scheduler/conf.c.lspp 2013-10-24 15:54:45.828523519 +0100 --- cups-1.7.1/scheduler/conf.c.lspp 2014-01-08 18:43:27.291821665 +0100
+++ cups-1.7.0/scheduler/conf.c 2013-10-24 15:54:45.903523845 +0100 +++ cups-1.7.1/scheduler/conf.c 2014-01-08 18:43:27.300821540 +0100
@@ -34,6 +34,7 @@ @@ -36,6 +36,9 @@
* read_location() - Read a <Location path> definition.
* read_policy() - Read a <Policy name> definition.
* set_policy_defaults() - Set default policy values as needed.
+ * is_lspp_config() - Is the system configured for LSPP
*/
/*
@@ -59,6 +60,9 @@
# define INADDR_NONE 0xffffffff # define INADDR_NONE 0xffffffff
#endif /* !INADDR_NONE */ #endif /* !INADDR_NONE */
@ -688,7 +680,7 @@ diff -up cups-1.7.0/scheduler/conf.c.lspp cups-1.7.0/scheduler/conf.c
/* /*
* Configuration variable structure... * Configuration variable structure...
@@ -146,6 +150,10 @@ static const cupsd_var_t cupsd_vars[] = @@ -123,6 +126,10 @@ static const cupsd_var_t cupsd_vars[] =
{ "ServerName", &ServerName, CUPSD_VARTYPE_STRING }, { "ServerName", &ServerName, CUPSD_VARTYPE_STRING },
{ "StrictConformance", &StrictConformance, CUPSD_VARTYPE_BOOLEAN }, { "StrictConformance", &StrictConformance, CUPSD_VARTYPE_BOOLEAN },
{ "Timeout", &Timeout, CUPSD_VARTYPE_TIME }, { "Timeout", &Timeout, CUPSD_VARTYPE_TIME },
@ -699,7 +691,7 @@ diff -up cups-1.7.0/scheduler/conf.c.lspp cups-1.7.0/scheduler/conf.c
{ "WebInterface", &WebInterface, CUPSD_VARTYPE_BOOLEAN } { "WebInterface", &WebInterface, CUPSD_VARTYPE_BOOLEAN }
}; };
static const cupsd_var_t cupsfiles_vars[] = static const cupsd_var_t cupsfiles_vars[] =
@@ -546,6 +554,9 @@ cupsdReadConfiguration(void) @@ -523,6 +530,9 @@ cupsdReadConfiguration(void)
const char *tmpdir; /* TMPDIR environment variable */ const char *tmpdir; /* TMPDIR environment variable */
struct stat tmpinfo; /* Temporary directory info */ struct stat tmpinfo; /* Temporary directory info */
cupsd_policy_t *p; /* Policy */ cupsd_policy_t *p; /* Policy */
@ -709,7 +701,7 @@ diff -up cups-1.7.0/scheduler/conf.c.lspp cups-1.7.0/scheduler/conf.c
/* /*
@@ -852,6 +863,25 @@ cupsdReadConfiguration(void) @@ -829,6 +839,25 @@ cupsdReadConfiguration(void)
RunUser = getuid(); RunUser = getuid();
@ -735,7 +727,7 @@ diff -up cups-1.7.0/scheduler/conf.c.lspp cups-1.7.0/scheduler/conf.c
cupsdLogMessage(CUPSD_LOG_INFO, "Remote access is %s.", cupsdLogMessage(CUPSD_LOG_INFO, "Remote access is %s.",
RemotePort ? "enabled" : "disabled"); RemotePort ? "enabled" : "disabled");
@@ -1254,7 +1284,19 @@ cupsdReadConfiguration(void) @@ -1233,7 +1262,19 @@ cupsdReadConfiguration(void)
cupsdClearString(&Classification); cupsdClearString(&Classification);
if (Classification) if (Classification)
@ -755,7 +747,7 @@ diff -up cups-1.7.0/scheduler/conf.c.lspp cups-1.7.0/scheduler/conf.c
/* /*
* Check the MaxClients setting, and then allocate memory for it... * Check the MaxClients setting, and then allocate memory for it...
@@ -3640,6 +3682,18 @@ read_location(cups_file_t *fp, /* I - C @@ -3622,6 +3663,18 @@ read_location(cups_file_t *fp, /* I - C
return ((FatalErrors & CUPSD_FATAL_CONFIG) ? 0 : linenum); return ((FatalErrors & CUPSD_FATAL_CONFIG) ? 0 : linenum);
} }
@ -774,9 +766,9 @@ diff -up cups-1.7.0/scheduler/conf.c.lspp cups-1.7.0/scheduler/conf.c
/* /*
* 'read_policy()' - Read a <Policy name> definition. * 'read_policy()' - Read a <Policy name> definition.
diff -up cups-1.7.0/scheduler/conf.h.lspp cups-1.7.0/scheduler/conf.h diff -up cups-1.7.1/scheduler/conf.h.lspp cups-1.7.1/scheduler/conf.h
--- cups-1.7.0/scheduler/conf.h.lspp 2013-10-24 15:54:45.828523519 +0100 --- cups-1.7.1/scheduler/conf.h.lspp 2014-01-08 18:43:27.284821762 +0100
+++ cups-1.7.0/scheduler/conf.h 2013-10-24 15:54:45.904523849 +0100 +++ cups-1.7.1/scheduler/conf.h 2014-01-08 18:43:27.301821527 +0100
@@ -250,6 +250,13 @@ VAR int SSLOptions VALUE(CUPSD_SSL_NO @@ -250,6 +250,13 @@ VAR int SSLOptions VALUE(CUPSD_SSL_NO
/* SSL/TLS options */ /* SSL/TLS options */
#endif /* HAVE_SSL */ #endif /* HAVE_SSL */
@ -801,9 +793,9 @@ diff -up cups-1.7.0/scheduler/conf.h.lspp cups-1.7.0/scheduler/conf.h
/* /*
* Prototypes... * Prototypes...
diff -up cups-1.7.0/scheduler/cupsd.h.lspp cups-1.7.0/scheduler/cupsd.h diff -up cups-1.7.1/scheduler/cupsd.h.lspp cups-1.7.1/scheduler/cupsd.h
--- cups-1.7.0/scheduler/cupsd.h.lspp 2013-10-24 15:54:45.886523771 +0100 --- cups-1.7.1/scheduler/cupsd.h.lspp 2014-01-08 18:43:27.264822039 +0100
+++ cups-1.7.0/scheduler/cupsd.h 2013-10-24 15:54:45.904523849 +0100 +++ cups-1.7.1/scheduler/cupsd.h 2014-01-08 18:43:27.301821527 +0100
@@ -13,6 +13,8 @@ @@ -13,6 +13,8 @@
* file is missing or damaged, see the license at "http://www.cups.org/". * file is missing or damaged, see the license at "http://www.cups.org/".
*/ */
@ -835,19 +827,11 @@ diff -up cups-1.7.0/scheduler/cupsd.h.lspp cups-1.7.0/scheduler/cupsd.h
/* /*
* Some OS's don't have hstrerror(), most notably Solaris... * Some OS's don't have hstrerror(), most notably Solaris...
*/ */
diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c diff -up cups-1.7.1/scheduler/ipp.c.lspp cups-1.7.1/scheduler/ipp.c
--- cups-1.7.0/scheduler/ipp.c.lspp 2013-10-24 15:54:45.846523598 +0100 --- cups-1.7.1/scheduler/ipp.c.lspp 2014-01-08 18:43:27.188823090 +0100
+++ cups-1.7.0/scheduler/ipp.c 2013-10-24 15:54:45.905523853 +0100 +++ cups-1.7.1/scheduler/ipp.c 2014-01-08 18:46:34.235235319 +0100
@@ -35,6 +35,7 @@ @@ -16,6 +16,9 @@
* cancel_all_jobs() - Cancel all or selected print jobs. * file is missing or damaged, see the license at "http://www.cups.org/".
* cancel_job() - Cancel a print job.
* cancel_subscription() - Cancel a subscription.
+ * check_context() - Check the SELinux context for a user and job
* check_rss_recipient() - Check that we do not have a duplicate RSS
* feed URI.
* check_quotas() - Check quotas for a printer and user.
@@ -99,6 +100,9 @@
* validate_user() - Validate the user for the request.
*/ */
+/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */ +/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */
@ -856,7 +840,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
/* /*
* Include necessary headers... * Include necessary headers...
*/ */
@@ -122,6 +126,14 @@ extern int mbr_check_membership_by_id(uu @@ -39,6 +42,14 @@ extern int mbr_check_membership_by_id(uu
# endif /* HAVE_MEMBERSHIPPRIV_H */ # endif /* HAVE_MEMBERSHIPPRIV_H */
#endif /* __APPLE__ */ #endif /* __APPLE__ */
@ -871,7 +855,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
/* /*
* Local functions... * Local functions...
@@ -146,6 +158,9 @@ static void cancel_all_jobs(cupsd_client @@ -63,6 +74,9 @@ static void cancel_all_jobs(cupsd_client
static void cancel_job(cupsd_client_t *con, ipp_attribute_t *uri); static void cancel_job(cupsd_client_t *con, ipp_attribute_t *uri);
static void cancel_subscription(cupsd_client_t *con, int id); static void cancel_subscription(cupsd_client_t *con, int id);
static int check_rss_recipient(const char *recipient); static int check_rss_recipient(const char *recipient);
@ -881,7 +865,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
static int check_quotas(cupsd_client_t *con, cupsd_printer_t *p); static int check_quotas(cupsd_client_t *con, cupsd_printer_t *p);
static void close_job(cupsd_client_t *con, ipp_attribute_t *uri); static void close_job(cupsd_client_t *con, ipp_attribute_t *uri);
static void copy_attrs(ipp_t *to, ipp_t *from, cups_array_t *ra, static void copy_attrs(ipp_t *to, ipp_t *from, cups_array_t *ra,
@@ -1318,6 +1333,21 @@ add_job(cupsd_client_t *con, /* I - Cl @@ -1235,6 +1249,21 @@ add_job(cupsd_client_t *con, /* I - Cl
"time-at-creation", "time-at-creation",
"time-at-processing" "time-at-processing"
}; };
@ -903,7 +887,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))", cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))",
@@ -1635,6 +1665,106 @@ add_job(cupsd_client_t *con, /* I - Cl @@ -1552,6 +1581,106 @@ add_job(cupsd_client_t *con, /* I - Cl
return (NULL); return (NULL);
} }
@ -1010,7 +994,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
if ((job = cupsdAddJob(priority, printer->name)) == NULL) if ((job = cupsdAddJob(priority, printer->name)) == NULL)
{ {
send_ipp_status(con, IPP_INTERNAL_ERROR, send_ipp_status(con, IPP_INTERNAL_ERROR,
@@ -1643,6 +1773,32 @@ add_job(cupsd_client_t *con, /* I - Cl @@ -1560,6 +1689,32 @@ add_job(cupsd_client_t *con, /* I - Cl
return (NULL); return (NULL);
} }
@ -1043,7 +1027,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_REMOTE); job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_REMOTE);
job->attrs = con->request; job->attrs = con->request;
job->dirty = 1; job->dirty = 1;
@@ -1852,6 +2008,29 @@ add_job(cupsd_client_t *con, /* I - Cl @@ -1769,6 +1924,29 @@ add_job(cupsd_client_t *con, /* I - Cl
attr->values[0].string.text = _cupsStrRetain(printer->job_sheets[0]); attr->values[0].string.text = _cupsStrRetain(printer->job_sheets[0]);
attr->values[1].string.text = _cupsStrRetain(printer->job_sheets[1]); attr->values[1].string.text = _cupsStrRetain(printer->job_sheets[1]);
} }
@ -1073,7 +1057,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
job->job_sheets = attr; job->job_sheets = attr;
@@ -1882,6 +2061,9 @@ add_job(cupsd_client_t *con, /* I - Cl @@ -1799,6 +1977,9 @@ add_job(cupsd_client_t *con, /* I - Cl
"job-sheets=\"%s,none\", " "job-sheets=\"%s,none\", "
"job-originating-user-name=\"%s\"", "job-originating-user-name=\"%s\"",
Classification, job->username); Classification, job->username);
@ -1083,7 +1067,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
} }
else if (attr->num_values == 2 && else if (attr->num_values == 2 &&
strcmp(attr->values[0].string.text, strcmp(attr->values[0].string.text,
@@ -1900,6 +2082,9 @@ add_job(cupsd_client_t *con, /* I - Cl @@ -1817,6 +1998,9 @@ add_job(cupsd_client_t *con, /* I - Cl
"job-originating-user-name=\"%s\"", "job-originating-user-name=\"%s\"",
attr->values[0].string.text, attr->values[0].string.text,
attr->values[1].string.text, job->username); attr->values[1].string.text, job->username);
@ -1093,7 +1077,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
} }
else if (strcmp(attr->values[0].string.text, Classification) && else if (strcmp(attr->values[0].string.text, Classification) &&
strcmp(attr->values[0].string.text, "none") && strcmp(attr->values[0].string.text, "none") &&
@@ -1920,6 +2105,9 @@ add_job(cupsd_client_t *con, /* I - Cl @@ -1837,6 +2021,9 @@ add_job(cupsd_client_t *con, /* I - Cl
"job-originating-user-name=\"%s\"", "job-originating-user-name=\"%s\"",
attr->values[0].string.text, attr->values[0].string.text,
attr->values[1].string.text, job->username); attr->values[1].string.text, job->username);
@ -1103,7 +1087,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
} }
} }
else if (strcmp(attr->values[0].string.text, Classification) && else if (strcmp(attr->values[0].string.text, Classification) &&
@@ -1960,8 +2148,52 @@ add_job(cupsd_client_t *con, /* I - Cl @@ -1877,8 +2064,52 @@ add_job(cupsd_client_t *con, /* I - Cl
"job-sheets=\"%s\", " "job-sheets=\"%s\", "
"job-originating-user-name=\"%s\"", "job-originating-user-name=\"%s\"",
Classification, job->username); Classification, job->username);
@ -1156,7 +1140,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
/* /*
* See if we need to add the starting sheet... * See if we need to add the starting sheet...
@@ -3733,6 +3965,111 @@ check_rss_recipient( @@ -3650,6 +3881,111 @@ check_rss_recipient(
} }
@ -1268,7 +1252,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
/* /*
* 'check_quotas()' - Check quotas for a printer and user. * 'check_quotas()' - Check quotas for a printer and user.
*/ */
@@ -4189,6 +4526,15 @@ copy_banner(cupsd_client_t *con, /* I - @@ -4106,6 +4442,15 @@ copy_banner(cupsd_client_t *con, /* I -
char attrname[255], /* Name of attribute */ char attrname[255], /* Name of attribute */
*s; /* Pointer into name */ *s; /* Pointer into name */
ipp_attribute_t *attr; /* Attribute */ ipp_attribute_t *attr; /* Attribute */
@ -1284,7 +1268,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, cupsdLogMessage(CUPSD_LOG_DEBUG2,
@@ -4224,6 +4570,82 @@ copy_banner(cupsd_client_t *con, /* I - @@ -4141,6 +4486,82 @@ copy_banner(cupsd_client_t *con, /* I -
fchmod(cupsFileNumber(out), 0640); fchmod(cupsFileNumber(out), 0640);
fchown(cupsFileNumber(out), RunUser, Group); fchown(cupsFileNumber(out), RunUser, Group);
@ -1367,7 +1351,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
/* /*
* Try the localized banner file under the subdirectory... * Try the localized banner file under the subdirectory...
@@ -4318,6 +4740,24 @@ copy_banner(cupsd_client_t *con, /* I - @@ -4235,6 +4656,24 @@ copy_banner(cupsd_client_t *con, /* I -
else else
s = attrname; s = attrname;
@ -1392,7 +1376,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
if (!strcmp(s, "printer-name")) if (!strcmp(s, "printer-name"))
{ {
cupsFilePuts(out, job->dest); cupsFilePuts(out, job->dest);
@@ -6184,6 +6624,22 @@ get_job_attrs(cupsd_client_t *con, /* I @@ -6101,6 +6540,22 @@ get_job_attrs(cupsd_client_t *con, /* I
exclude = cupsdGetPrivateAttrs(policy, con, printer, job->username); exclude = cupsdGetPrivateAttrs(policy, con, printer, job->username);
@ -1415,7 +1399,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
/* /*
* Copy attributes... * Copy attributes...
*/ */
@@ -6526,6 +6982,11 @@ get_jobs(cupsd_client_t *con, /* I - C @@ -6443,6 +6898,11 @@ get_jobs(cupsd_client_t *con, /* I - C
if (username[0] && _cups_strcasecmp(username, job->username)) if (username[0] && _cups_strcasecmp(username, job->username))
continue; continue;
@ -1427,7 +1411,7 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
if (count > 0) if (count > 0)
ippAddSeparator(con->response); ippAddSeparator(con->response);
@@ -11096,6 +11557,11 @@ validate_user(cupsd_job_t *job, /* I @@ -11013,6 +11473,11 @@ validate_user(cupsd_job_t *job, /* I
strlcpy(username, get_username(con), userlen); strlcpy(username, get_username(con), userlen);
@ -1439,11 +1423,11 @@ diff -up cups-1.7.0/scheduler/ipp.c.lspp cups-1.7.0/scheduler/ipp.c
/* /*
* Check the username against the owner... * Check the username against the owner...
*/ */
diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c diff -up cups-1.7.1/scheduler/job.c.lspp cups-1.7.1/scheduler/job.c
--- cups-1.7.0/scheduler/job.c.lspp 2013-10-24 15:54:45.896523814 +0100 --- cups-1.7.1/scheduler/job.c.lspp 2014-01-08 18:43:27.279821831 +0100
+++ cups-1.7.0/scheduler/job.c 2013-10-24 15:54:45.906523858 +0100 +++ cups-1.7.1/scheduler/job.c 2014-01-08 18:47:08.592759973 +0100
@@ -68,6 +68,9 @@ @@ -13,6 +13,9 @@
* update_job_attrs() - Update the job-printer-* attributes. * file is missing or damaged, see the license at "http://www.cups.org/".
*/ */
+/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */ +/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */
@ -1452,7 +1436,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
/* /*
* Include necessary headers... * Include necessary headers...
*/ */
@@ -83,6 +86,14 @@ @@ -28,6 +31,14 @@
# endif /* HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H */ # endif /* HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H */
#endif /* __APPLE__ */ #endif /* __APPLE__ */
@ -1467,7 +1451,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
/* /*
* Design Notes for Job Management * Design Notes for Job Management
@@ -580,6 +591,14 @@ cupsdContinueJob(cupsd_job_t *job) /* I @@ -525,6 +536,14 @@ cupsdContinueJob(cupsd_job_t *job) /* I
/* PRINTER_STATE_REASONS env var */ /* PRINTER_STATE_REASONS env var */
rip_max_cache[255]; rip_max_cache[255];
/* RIP_MAX_CACHE env variable */ /* RIP_MAX_CACHE env variable */
@ -1482,7 +1466,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, cupsdLogMessage(CUPSD_LOG_DEBUG2,
@@ -1090,6 +1109,67 @@ cupsdContinueJob(cupsd_job_t *job) /* I @@ -1034,6 +1053,67 @@ cupsdContinueJob(cupsd_job_t *job) /* I
if (final_content_type[0]) if (final_content_type[0])
envp[envc ++] = final_content_type; envp[envc ++] = final_content_type;
@ -1550,7 +1534,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
if (Classification && !banner_page) if (Classification && !banner_page)
{ {
if ((attr = ippFindAttribute(job->attrs, "job-sheets", if ((attr = ippFindAttribute(job->attrs, "job-sheets",
@@ -1861,6 +1941,20 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J @@ -1800,6 +1880,20 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
ippSetString(job->attrs, &job->reasons, 0, "none"); ippSetString(job->attrs, &job->reasons, 0, "none");
} }
@ -1571,7 +1555,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
job->sheets = ippFindAttribute(job->attrs, "job-media-sheets-completed", job->sheets = ippFindAttribute(job->attrs, "job-media-sheets-completed",
IPP_TAG_INTEGER); IPP_TAG_INTEGER);
job->job_sheets = ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_NAME); job->job_sheets = ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_NAME);
@@ -2252,6 +2346,14 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J @@ -2188,6 +2282,14 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
{ {
char filename[1024]; /* Job control filename */ char filename[1024]; /* Job control filename */
cups_file_t *fp; /* Job file */ cups_file_t *fp; /* Job file */
@ -1586,7 +1570,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdSaveJob(job=%p(%d)): job->attrs=%p", cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdSaveJob(job=%p(%d)): job->attrs=%p",
@@ -2264,6 +2366,76 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J @@ -2200,6 +2302,76 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
fchown(cupsFileNumber(fp), RunUser, Group); fchown(cupsFileNumber(fp), RunUser, Group);
@ -1663,7 +1647,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
job->attrs->state = IPP_IDLE; job->attrs->state = IPP_IDLE;
if (ippWriteIO(fp, (ipp_iocb_t)cupsFileWrite, 1, NULL, if (ippWriteIO(fp, (ipp_iocb_t)cupsFileWrite, 1, NULL,
@@ -3813,6 +3985,18 @@ get_options(cupsd_job_t *job, /* I - Jo @@ -3748,6 +3920,18 @@ get_options(cupsd_job_t *job, /* I - Jo
banner_page) banner_page)
continue; continue;
@ -1682,7 +1666,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
/* /*
* Otherwise add them to the list... * Otherwise add them to the list...
*/ */
@@ -4539,6 +4723,18 @@ start_job(cupsd_job_t *job, /* I - @@ -4472,6 +4656,18 @@ start_job(cupsd_job_t *job, /* I -
cupsd_printer_t *printer) /* I - Printer to print job */ cupsd_printer_t *printer) /* I - Printer to print job */
{ {
const char *filename; /* Support filename */ const char *filename; /* Support filename */
@ -1701,7 +1685,7 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, "start_job(job=%p(%d), printer=%p(%s))", cupsdLogMessage(CUPSD_LOG_DEBUG2, "start_job(job=%p(%d), printer=%p(%s))",
@@ -4702,6 +4898,108 @@ start_job(cupsd_job_t *job, /* I - @@ -4635,6 +4831,108 @@ start_job(cupsd_job_t *job, /* I -
fcntl(job->side_pipes[1], F_SETFD, fcntl(job->side_pipes[1], F_SETFD,
fcntl(job->side_pipes[1], F_GETFD) | FD_CLOEXEC); fcntl(job->side_pipes[1], F_GETFD) | FD_CLOEXEC);
@ -1810,9 +1794,9 @@ diff -up cups-1.7.0/scheduler/job.c.lspp cups-1.7.0/scheduler/job.c
/* /*
* Now start the first file in the job... * Now start the first file in the job...
*/ */
diff -up cups-1.7.0/scheduler/job.h.lspp cups-1.7.0/scheduler/job.h diff -up cups-1.7.1/scheduler/job.h.lspp cups-1.7.1/scheduler/job.h
--- cups-1.7.0/scheduler/job.h.lspp 2013-05-29 12:51:34.000000000 +0100 --- cups-1.7.1/scheduler/job.h.lspp 2013-05-29 13:51:34.000000000 +0200
+++ cups-1.7.0/scheduler/job.h 2013-10-24 15:54:45.906523858 +0100 +++ cups-1.7.1/scheduler/job.h 2014-01-08 18:43:27.308821430 +0100
@@ -13,6 +13,13 @@ @@ -13,6 +13,13 @@
* file is missing or damaged, see the license at "http://www.cups.org/". * file is missing or damaged, see the license at "http://www.cups.org/".
*/ */
@ -1838,9 +1822,9 @@ diff -up cups-1.7.0/scheduler/job.h.lspp cups-1.7.0/scheduler/job.h
}; };
typedef struct cupsd_joblog_s /**** Job log message ****/ typedef struct cupsd_joblog_s /**** Job log message ****/
diff -up cups-1.7.0/scheduler/main.c.lspp cups-1.7.0/scheduler/main.c diff -up cups-1.7.1/scheduler/main.c.lspp cups-1.7.1/scheduler/main.c
--- cups-1.7.0/scheduler/main.c.lspp 2013-10-24 15:54:45.887523775 +0100 --- cups-1.7.1/scheduler/main.c.lspp 2014-01-08 18:43:27.265822025 +0100
+++ cups-1.7.0/scheduler/main.c 2013-10-24 15:54:45.907523862 +0100 +++ cups-1.7.1/scheduler/main.c 2014-01-08 18:43:27.308821430 +0100
@@ -38,6 +38,8 @@ @@ -38,6 +38,8 @@
* usage() - Show scheduler usage. * usage() - Show scheduler usage.
*/ */
@ -1908,11 +1892,11 @@ diff -up cups-1.7.0/scheduler/main.c.lspp cups-1.7.0/scheduler/main.c
return (!stop_scheduler); return (!stop_scheduler);
} }
diff -up cups-1.7.0/scheduler/printers.c.lspp cups-1.7.0/scheduler/printers.c diff -up cups-1.7.1/scheduler/printers.c.lspp cups-1.7.1/scheduler/printers.c
--- cups-1.7.0/scheduler/printers.c.lspp 2013-10-24 15:54:45.876523727 +0100 --- cups-1.7.1/scheduler/printers.c.lspp 2014-01-08 18:43:27.161823463 +0100
+++ cups-1.7.0/scheduler/printers.c 2013-10-24 15:54:45.907523862 +0100 +++ cups-1.7.1/scheduler/printers.c 2014-01-08 18:47:33.449416072 +0100
@@ -52,6 +52,8 @@ @@ -13,6 +13,8 @@
* write_xml_string() - Write a string with XML escaping. * file is missing or damaged, see the license at "http://www.cups.org/".
*/ */
+/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */ +/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */
@ -1920,7 +1904,7 @@ diff -up cups-1.7.0/scheduler/printers.c.lspp cups-1.7.0/scheduler/printers.c
/* /*
* Include necessary headers... * Include necessary headers...
*/ */
@@ -76,6 +78,10 @@ @@ -37,6 +39,10 @@
# include <asl.h> # include <asl.h>
#endif /* __APPLE__ */ #endif /* __APPLE__ */
@ -1931,7 +1915,7 @@ diff -up cups-1.7.0/scheduler/printers.c.lspp cups-1.7.0/scheduler/printers.c
/* /*
* Local functions... * Local functions...
@@ -2063,6 +2069,13 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p) @@ -2023,6 +2029,13 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
ipp_attribute_t *attr; /* Attribute data */ ipp_attribute_t *attr; /* Attribute data */
char *name, /* Current user/group name */ char *name, /* Current user/group name */
*filter; /* Current filter */ *filter; /* Current filter */
@ -1945,7 +1929,7 @@ diff -up cups-1.7.0/scheduler/printers.c.lspp cups-1.7.0/scheduler/printers.c
DEBUG_printf(("cupsdSetPrinterAttrs: entering name = %s, type = %x\n", p->name, DEBUG_printf(("cupsdSetPrinterAttrs: entering name = %s, type = %x\n", p->name,
@@ -2185,6 +2198,45 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p) @@ -2145,6 +2158,45 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
attr->values[1].string.text = _cupsStrAlloc(Classification ? attr->values[1].string.text = _cupsStrAlloc(Classification ?
Classification : p->job_sheets[1]); Classification : p->job_sheets[1]);
} }

View File

@ -1,21 +0,0 @@
diff -up cups-1.7.0/scheduler/ipp.c.str4326 cups-1.7.0/scheduler/ipp.c
--- cups-1.7.0/scheduler/ipp.c.str4326 2014-01-07 09:43:18.046423961 +0000
+++ cups-1.7.0/scheduler/ipp.c 2014-01-07 09:44:21.774711070 +0000
@@ -3,7 +3,7 @@
*
* IPP routines for the CUPS scheduler.
*
- * Copyright 2007-2013 by Apple Inc.
+ * Copyright 2007-2014 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* This file contains Kerberos support code, copyright 2006 by
@@ -6318,7 +6318,7 @@ get_jobs(cupsd_client_t *con, /* I - C
{
job_comparison = -1;
job_state = IPP_JOB_STOPPED;
- list = Jobs;
+ list = ActiveJobs;
}
else if (!strcmp(attr->values[0].string.text, "completed"))
{

View File

@ -1,30 +0,0 @@
diff -up cups-1.7.0/cups/usersys.c.str4327 cups-1.7.0/cups/usersys.c
--- cups-1.7.0/cups/usersys.c.str4327 2013-07-10 15:08:39.000000000 +0100
+++ cups-1.7.0/cups/usersys.c 2014-01-08 16:30:40.443026913 +0000
@@ -875,7 +875,25 @@ _cupsSetDefaults(void)
cups_expiredcerts = getenv("CUPS_EXPIREDCERTS");
if ((cups_user = getenv("CUPS_USER")) == NULL)
- cups_user = getenv("USER");
+ {
+ /*
+ * Try the USER environment variable...
+ */
+
+ if ((cups_user = getenv("USER")) != NULL)
+ {
+ /*
+ * Validate USER matches the current UID, otherwise don't allow it to
+ * override things... This makes sure that printing after doing su or
+ * sudo records the correct username.
+ */
+
+ struct passwd *pw; /* Account information */
+
+ if ((pw = getpwnam(cups_user)) == NULL || pw->pw_uid != getuid())
+ cups_user = NULL;
+ }
+ }
/*
* Then, if needed, read the ~/.cups/client.conf or /etc/cups/client.conf

View File

@ -1,93 +0,0 @@
diff -up cups-1.7.0/scheduler/printers.c.stringpool-rdar15382819 cups-1.7.0/scheduler/printers.c
--- cups-1.7.0/scheduler/printers.c.stringpool-rdar15382819 2013-11-07 13:26:56.077499193 +0000
+++ cups-1.7.0/scheduler/printers.c 2013-11-07 13:27:54.665787144 +0000
@@ -1876,12 +1876,13 @@ void
cupsdSetPrinterAttr(
cupsd_printer_t *p, /* I - Printer */
const char *name, /* I - Attribute name */
- char *value) /* I - Attribute value string */
+ const char *value) /* I - Attribute value string */
{
ipp_attribute_t *attr; /* Attribute */
int i, /* Looping var */
count; /* Number of values */
- char *ptr, /* Pointer into value */
+ char *temp, /* Temporary copy of value string */
+ *ptr, /* Pointer into value */
*start, /* Start of value */
quote; /* Quote character */
ipp_tag_t value_tag; /* Value tag for this attribute */
@@ -1898,10 +1899,21 @@ cupsdSetPrinterAttr(
}
/*
+ * Copy the value string so we can do what we want with it...
+ */
+
+ if ((temp = strdup(value)) == NULL)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to duplicate value for \"%s\" attribute.", name);
+ return;
+ }
+
+ /*
* Count the number of values...
*/
- for (count = 1, quote = '\0', ptr = value;
+ for (count = 1, quote = '\0', ptr = temp;
*ptr;
ptr ++)
{
@@ -1949,15 +1961,15 @@ cupsdSetPrinterAttr(
return;
}
- for (i = 0; i < count; i ++)
+ for (i = 0, start = temp; i < count; i ++)
{
- if ((ptr = strchr(value, ',')) != NULL)
+ if ((ptr = strchr(start, ',')) != NULL)
*ptr++ = '\0';
- attr->values[i].integer = strtol(value, NULL, 10);
+ attr->values[i].integer = strtol(start, NULL, 10);
if (ptr)
- value = ptr;
+ start = ptr;
}
}
else
@@ -1999,7 +2011,7 @@ cupsdSetPrinterAttr(
return;
}
- for (i = 0, quote = '\0', ptr = value; i < count; i ++)
+ for (i = 0, quote = '\0', ptr = temp; i < count; i ++)
{
for (start = ptr; *ptr; ptr ++)
{
@@ -2028,6 +2040,8 @@ cupsdSetPrinterAttr(
attr->values[i].string.text = _cupsStrAlloc(start);
}
}
+
+ free(temp);
}
diff -up cups-1.7.0/scheduler/printers.h.stringpool-rdar15382819 cups-1.7.0/scheduler/printers.h
--- cups-1.7.0/scheduler/printers.h.stringpool-rdar15382819 2013-05-29 12:51:34.000000000 +0100
+++ cups-1.7.0/scheduler/printers.h 2013-11-07 13:27:54.666787149 +0000
@@ -166,7 +166,8 @@ extern int cupsdSetAuthInfoRequired(cup
ipp_attribute_t *attr);
extern void cupsdSetDeviceURI(cupsd_printer_t *p, const char *uri);
extern void cupsdSetPrinterAttr(cupsd_printer_t *p,
- const char *name, char *value);
+ const char *name,
+ const char *value);
extern void cupsdSetPrinterAttrs(cupsd_printer_t *p);
extern int cupsdSetPrinterReasons(cupsd_printer_t *p,
const char *s);

View File

@ -1,30 +0,0 @@
diff -up cups-1.7.0/backend/usb-libusb.c.usb-timeout cups-1.7.0/backend/usb-libusb.c
--- cups-1.7.0/backend/usb-libusb.c.usb-timeout 2013-07-17 16:51:43.000000000 +0100
+++ cups-1.7.0/backend/usb-libusb.c 2013-11-28 16:44:03.785124015 +0000
@@ -496,7 +496,7 @@ print_device(const char *uri, /* I - De
iostatus = libusb_bulk_transfer(g.printer->handle,
g.printer->write_endp,
print_buffer, g.print_bytes,
- &bytes, 60000);
+ &bytes, 72 * 60 * 60000);
/*
* Ignore timeout errors, but retain the number of bytes written to
* avoid sending duplicate data...
@@ -519,7 +519,7 @@ print_device(const char *uri, /* I - De
iostatus = libusb_bulk_transfer(g.printer->handle,
g.printer->write_endp,
print_buffer, g.print_bytes,
- &bytes, 60000);
+ &bytes, 72 * 60 * 60000);
}
/*
@@ -534,7 +534,7 @@ print_device(const char *uri, /* I - De
iostatus = libusb_bulk_transfer(g.printer->handle,
g.printer->write_endp,
print_buffer, g.print_bytes,
- &bytes, 60000);
+ &bytes, 72 * 60 * 60000);
}
if (iostatus)

View File

@ -10,8 +10,8 @@
Summary: CUPS printing system Summary: CUPS printing system
Name: cups Name: cups
Epoch: 1 Epoch: 1
Version: 1.7.0 Version: 1.7.1
Release: 11%{?dist} Release: 1%{?dist}
License: GPLv2 License: GPLv2
Group: System Environment/Daemons Group: System Environment/Daemons
Url: http://www.cups.org/ Url: http://www.cups.org/
@ -31,7 +31,6 @@ Source8: macros.cups
Patch1: cups-no-gzip-man.patch Patch1: cups-no-gzip-man.patch
Patch2: cups-system-auth.patch Patch2: cups-system-auth.patch
Patch3: cups-multilib.patch Patch3: cups-multilib.patch
Patch4: cups-str4327.patch
Patch5: cups-banners.patch Patch5: cups-banners.patch
Patch6: cups-serverbin-compat.patch Patch6: cups-serverbin-compat.patch
Patch7: cups-no-export-ssllibs.patch Patch7: cups-no-export-ssllibs.patch
@ -55,25 +54,19 @@ Patch24: cups-ricoh-deviceid-oid.patch
Patch25: cups-systemd-socket.patch Patch25: cups-systemd-socket.patch
Patch26: cups-lpd-manpage.patch Patch26: cups-lpd-manpage.patch
Patch27: cups-avahi-address.patch Patch27: cups-avahi-address.patch
Patch28: cups-usb-timeout.patch
Patch29: cups-enum-all.patch Patch29: cups-enum-all.patch
Patch30: cups-stringpool-rdar15382819.patch
Patch31: cups-dymo-deviceid.patch Patch31: cups-dymo-deviceid.patch
Patch32: cups-freebind.patch Patch32: cups-freebind.patch
Patch33: cups-no-gcry.patch Patch33: cups-no-gcry.patch
Patch34: cups-libusb-quirks.patch Patch34: cups-libusb-quirks.patch
Patch35: cups-use-ipp1.1.patch Patch35: cups-use-ipp1.1.patch
Patch36: cups-avahi-no-threaded.patch Patch36: cups-avahi-no-threaded.patch
Patch37: cups-gz-crc.patch Patch37: cups-ipp-multifile.patch
Patch39: cups-ipp-multifile.patch Patch38: cups-full-relro.patch
Patch40: cups-full-relro.patch Patch39: cups-web-devices-timeout.patch
Patch41: cups-web-devices-timeout.patch Patch40: cups-final-content-type.patch
Patch43: cups-final-content-type.patch Patch41: cups-journal.patch
Patch44: cups-jobhistory.patch Patch42: cups-synconclose.patch
Patch45: cups-journal.patch
Patch46: cups-synconclose.patch
Patch47: cups-dbus-notifier.patch
Patch48: cups-str4326.patch
Patch100: cups-lspp.patch Patch100: cups-lspp.patch
@ -193,8 +186,6 @@ Sends IPP requests to the specified URI and tests and/or displays the results.
%patch2 -p1 -b .system-auth %patch2 -p1 -b .system-auth
# Prevent multilib conflict in cups-config script. # Prevent multilib conflict in cups-config script.
%patch3 -p1 -b .multilib %patch3 -p1 -b .multilib
# Apply upstream patch to improve cupsUser() (STR #4327).
%patch4 -p1 -b .str4327
# Ignore rpm save/new files in the banners directory. # Ignore rpm save/new files in the banners directory.
%patch5 -p1 -b .banners %patch5 -p1 -b .banners
# Use compatibility fallback path for ServerBin. # Use compatibility fallback path for ServerBin.
@ -242,12 +233,8 @@ Sends IPP requests to the specified URI and tests and/or displays the results.
%patch26 -p1 -b .lpd-manpage %patch26 -p1 -b .lpd-manpage
# Use IP address when resolving DNSSD URIs (bug #948288). # Use IP address when resolving DNSSD URIs (bug #948288).
%patch27 -p1 -b .avahi-address %patch27 -p1 -b .avahi-address
# Prevent USB timeouts causing incorrect print output (bug #1026914).
%patch28 -p1 -b .usb-timeout
# Return from cupsEnumDests() once all records have been returned. # Return from cupsEnumDests() once all records have been returned.
%patch29 -p1 -b .enum-all %patch29 -p1 -b .enum-all
# Prevent stringpool damage leading to memory leaks (bug #974048).
%patch30 -p1 -b .stringpool-rdar15382819
# Added IEEE 1284 Device ID for a Dymo device (bug #747866). # Added IEEE 1284 Device ID for a Dymo device (bug #747866).
%patch31 -p1 -b .dymo-deviceid %patch31 -p1 -b .dymo-deviceid
# Use IP_FREEBIND socket option when binding listening sockets (bug #970809). # Use IP_FREEBIND socket option when binding listening sockets (bug #970809).
@ -260,27 +247,19 @@ Sends IPP requests to the specified URI and tests and/or displays the results.
%patch35 -p1 -b .use-ipp1.1 %patch35 -p1 -b .use-ipp1.1
# Don't use D-Bus from two threads (bug #979748). # Don't use D-Bus from two threads (bug #979748).
%patch36 -p1 -b .avahi-no-threaded %patch36 -p1 -b .avahi-no-threaded
# Avoid sign-extending CRCs for gz decompression (bug #983486).
%patch37 -p1 -b .gz-crc
# Fixes for jobs with multiple files and multiple formats. # Fixes for jobs with multiple files and multiple formats.
%patch39 -p1 -b .ipp-multifile %patch37 -p1 -b .ipp-multifile
# Full relro (bug #996740). # Full relro (bug #996740).
%patch40 -p1 -b .full-relro %patch38 -p1 -b .full-relro
# Increase web interface get-devices timeout to 10s (bug #996664). # Increase web interface get-devices timeout to 10s (bug #996664).
%patch41 -p1 -b .web-devices-timeout %patch39 -p1 -b .web-devices-timeout
# Reverted upstream change to FINAL_CONTENT_TYPE in order to fix # Reverted upstream change to FINAL_CONTENT_TYPE in order to fix
# printing to remote CUPS servers (bug #1010580). # printing to remote CUPS servers (bug #1010580).
%patch43 -p1 -b .final-content-type %patch40 -p1 -b .final-content-type
# Fix job history logging.
%patch44 -p1 -b .jobhistory
# Allow "journal" log type for log output to system journal. # Allow "journal" log type for log output to system journal.
%patch45 -p1 -b .journal %patch41 -p1 -b .journal
# Set the default for SyncOnClose to Yes. # Set the default for SyncOnClose to Yes.
%patch46 -p1 -b .synconclose %patch42 -p1 -b .synconclose
# Avoid stale lockfile in dbus notifier (bug #1026949).
%patch47 -p1 -b .dbus-notifier
# Return jobs in rank order when handling IPP-Get-Jobs (STR #4326).
%patch48 -p1 -b .str4326
%if %lspp %if %lspp
# LSPP support. # LSPP support.
@ -661,6 +640,9 @@ rm -f %{cups_serverbin}/backend/smb
%{_mandir}/man5/ipptoolfile.5.gz %{_mandir}/man5/ipptoolfile.5.gz
%changelog %changelog
* Wed Jan 08 2014 Jiri Popelka <jpopelka@redhat.com> - 1:1.7.1-1
- 1.7.1
* Wed Jan 8 2014 Tim Waugh <twaugh@redhat.com> - 1:1.7.0-11 * Wed Jan 8 2014 Tim Waugh <twaugh@redhat.com> - 1:1.7.0-11
- Apply upstream patch to improve cupsUser() (STR #4327). - Apply upstream patch to improve cupsUser() (STR #4327).

View File

@ -1 +1 @@
5ab496a2ce27017fcdb3d7ec4818a75a cups-1.7.0-source.tar.bz2 55277c40fd4b7183dc3671d39c5c42b7 cups-1.7.1-source.tar.bz2