From d88b53d9d870da83f5e4659c7c617a71cbf87738 Mon Sep 17 00:00:00 2001
From: Tim Waugh
Date: Apr 21 2009 12:49:26 +0000
Subject: - 1.3.10. No longer need ext, includeifexists, str2988, CVE-2008-5183,
CVE-2008-5286, str3077, str3078, str3059, str3055 patches.
- Requires poppler-utils.
- NOTE: If your CUPS server is accessed using a hostname or hostnames not
known to the server itself you must add "ServerAlias hostname" for each
such name. The special line "ServerAlias *" disables checking (but this
allows DNS rebinding attacks).
---
diff --git a/.cvsignore b/.cvsignore
index acb57a9..919363e 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -34,3 +34,4 @@ cups-1.3.6-source.tar.bz2
cups-1.3.7-source.tar.bz2
cups-1.3.8-source.tar.bz2
cups-1.3.9-source.tar.bz2
+cups-1.3.10-source.tar.bz2
diff --git a/cups-CVE-2008-5183.patch b/cups-CVE-2008-5183.patch
deleted file mode 100644
index f55cb24..0000000
--- a/cups-CVE-2008-5183.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-diff -up cups-1.3.9/scheduler/ipp.c.CVE-2008-5183 cups-1.3.9/scheduler/ipp.c
---- cups-1.3.9/scheduler/ipp.c.CVE-2008-5183 2008-12-03 12:16:23.000000000 +0000
-+++ cups-1.3.9/scheduler/ipp.c 2008-12-03 12:17:16.000000000 +0000
-@@ -2348,24 +2348,25 @@ add_job_subscriptions(
- if (mask == CUPSD_EVENT_NONE)
- mask = CUPSD_EVENT_JOB_COMPLETED;
-
-- sub = cupsdAddSubscription(mask, cupsdFindDest(job->dest), job, recipient,
-- 0);
-+ if ((sub = cupsdAddSubscription(mask, cupsdFindDest(job->dest), job,
-+ recipient, 0)) != NULL)
-+ {
-+ sub->interval = interval;
-
-- sub->interval = interval;
-+ cupsdSetString(&sub->owner, job->username);
-
-- cupsdSetString(&sub->owner, job->username);
-+ if (user_data)
-+ {
-+ sub->user_data_len = user_data->values[0].unknown.length;
-+ memcpy(sub->user_data, user_data->values[0].unknown.data,
-+ sub->user_data_len);
-+ }
-
-- if (user_data)
-- {
-- sub->user_data_len = user_data->values[0].unknown.length;
-- memcpy(sub->user_data, user_data->values[0].unknown.data,
-- sub->user_data_len);
-+ ippAddSeparator(con->response);
-+ ippAddInteger(con->response, IPP_TAG_SUBSCRIPTION, IPP_TAG_INTEGER,
-+ "notify-subscription-id", sub->id);
- }
-
-- ippAddSeparator(con->response);
-- ippAddInteger(con->response, IPP_TAG_SUBSCRIPTION, IPP_TAG_INTEGER,
-- "notify-subscription-id", sub->id);
--
- if (attr)
- attr = attr->next;
- }
-@@ -6028,7 +6029,12 @@ create_subscription(
- else
- job = NULL;
-
-- sub = cupsdAddSubscription(mask, printer, job, recipient, 0);
-+ if ((sub = cupsdAddSubscription(mask, printer, job, recipient, 0)) == NULL)
-+ {
-+ send_ipp_status(con, IPP_TOO_MANY_SUBSCRIPTIONS,
-+ _("There are too many subscriptions."));
-+ return;
-+ }
-
- if (job)
- cupsdLogMessage(CUPSD_LOG_DEBUG, "Added subscription %d for job %d",
-diff -up cups-1.3.9/scheduler/subscriptions.c.CVE-2008-5183 cups-1.3.9/scheduler/subscriptions.c
---- cups-1.3.9/scheduler/subscriptions.c.CVE-2008-5183 2008-12-03 12:16:23.000000000 +0000
-+++ cups-1.3.9/scheduler/subscriptions.c 2008-12-03 12:17:16.000000000 +0000
-@@ -341,8 +341,54 @@ cupsdAddSubscription(
- * Limit the number of subscriptions...
- */
-
-- if (cupsArrayCount(Subscriptions) >= MaxSubscriptions)
-+ if (MaxSubscriptions > 0 && cupsArrayCount(Subscriptions) >= MaxSubscriptions)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "cupsdAddSubscription: Reached MaxSubscriptions %d",
-+ MaxSubscriptions);
- return (NULL);
-+ }
-+
-+ if (MaxSubscriptionsPerJob > 0 && job)
-+ {
-+ int count; /* Number of job subscriptions */
-+
-+ for (temp = (cupsd_subscription_t *)cupsArrayFirst(Subscriptions),
-+ count = 0;
-+ temp;
-+ temp = (cupsd_subscription_t *)cupsArrayNext(Subscriptions))
-+ if (temp->job == job)
-+ count ++;
-+
-+ if (count >= MaxSubscriptionsPerJob)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "cupsdAddSubscription: Reached MaxSubscriptionsPerJob %d "
-+ "for job #%d", MaxSubscriptionsPerJob, job->id);
-+ return (NULL);
-+ }
-+ }
-+
-+ if (MaxSubscriptionsPerPrinter > 0 && dest)
-+ {
-+ int count; /* Number of printer subscriptions */
-+
-+ for (temp = (cupsd_subscription_t *)cupsArrayFirst(Subscriptions),
-+ count = 0;
-+ temp;
-+ temp = (cupsd_subscription_t *)cupsArrayNext(Subscriptions))
-+ if (temp->dest == dest)
-+ count ++;
-+
-+ if (count >= MaxSubscriptionsPerPrinter)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "cupsdAddSubscription: Reached "
-+ "MaxSubscriptionsPerPrinter %d for %s",
-+ MaxSubscriptionsPerPrinter, dest->name);
-+ return (NULL);
-+ }
-+ }
-
- /*
- * Allocate memory for this subscription...
-@@ -758,7 +804,6 @@ cupsdLoadAllSubscriptions(void)
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "Syntax error on line %d of subscriptions.conf.",
- linenum);
-- break;
- }
- else if (!strcasecmp(line, "Events"))
- {
-diff -up cups-1.3.9/test/4.4-subscription-ops.test.CVE-2008-5183 cups-1.3.9/test/4.4-subscription-ops.test
---- cups-1.3.9/test/4.4-subscription-ops.test.CVE-2008-5183 2007-07-09 21:34:48.000000000 +0100
-+++ cups-1.3.9/test/4.4-subscription-ops.test 2008-12-03 12:17:16.000000000 +0000
-@@ -116,6 +116,32 @@
- EXPECT notify-events
- DISPLAY notify-events
- }
-+{
-+ # The name of the test...
-+ NAME "Check MaxSubscriptions limits"
-+
-+ # The operation to use
-+ OPERATION Create-Printer-Subscription
-+ RESOURCE /
-+
-+ # The attributes to send
-+ GROUP operation
-+ ATTR charset attributes-charset utf-8
-+ ATTR language attributes-natural-language en
-+ ATTR uri printer-uri $method://$hostname:$port/printers/Test1
-+
-+ GROUP subscription
-+ ATTR uri notify-recipient-uri testnotify://
-+ ATTR keyword notify-events printer-state-changed
-+ ATTR integer notify-lease-duration 5
-+
-+ # What statuses are OK?
-+ STATUS client-error-too-many-subscriptions
-+
-+ # What attributes do we expect?
-+ EXPECT attributes-charset
-+ EXPECT attributes-natural-language
-+}
-
- #
- # End of "$Id: 4.4-subscription-ops.test 6635 2007-07-09 20:34:48Z mike $"
-diff -up cups-1.3.9/test/run-stp-tests.sh.CVE-2008-5183 cups-1.3.9/test/run-stp-tests.sh
---- cups-1.3.9/test/run-stp-tests.sh.CVE-2008-5183 2008-07-14 19:29:58.000000000 +0100
-+++ cups-1.3.9/test/run-stp-tests.sh 2008-12-03 12:17:16.000000000 +0000
-@@ -307,6 +307,7 @@ FontPath /tmp/cups-$user/share/fonts
- DocumentRoot $root/doc
- RequestRoot /tmp/cups-$user/spool
- TempDir /tmp/cups-$user/spool/temp
-+MaxSubscriptions 3
- MaxLogSize 0
- AccessLog /tmp/cups-$user/log/access_log
- ErrorLog /tmp/cups-$user/log/error_log
diff --git a/cups-CVE-2008-5286.patch b/cups-CVE-2008-5286.patch
deleted file mode 100644
index 285df0b..0000000
--- a/cups-CVE-2008-5286.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up cups-1.3.9/filter/image-png.c.CVE-2008-5286 cups-1.3.9/filter/image-png.c
---- cups-1.3.9/filter/image-png.c.CVE-2008-5286 2008-07-11 23:48:49.000000000 +0100
-+++ cups-1.3.9/filter/image-png.c 2008-12-03 12:23:14.000000000 +0000
-@@ -178,7 +178,7 @@ _cupsImageReadPNG(
- {
- bufsize = img->xsize * img->ysize;
-
-- if ((bufsize / img->ysize) != img->xsize)
-+ if ((bufsize / img->xsize) != img->ysize)
- {
- fprintf(stderr, "DEBUG: PNG image dimensions (%ux%u) too large!\n",
- (unsigned)width, (unsigned)height);
-@@ -190,7 +190,7 @@ _cupsImageReadPNG(
- {
- bufsize = img->xsize * img->ysize * 3;
-
-- if ((bufsize / (img->ysize * 3)) != img->xsize)
-+ if ((bufsize / (img->xsize * 3)) != img->ysize)
- {
- fprintf(stderr, "DEBUG: PNG image dimensions (%ux%u) too large!\n",
- (unsigned)width, (unsigned)height);
diff --git a/cups-ext.patch b/cups-ext.patch
deleted file mode 100644
index 878a492..0000000
--- a/cups-ext.patch
+++ /dev/null
@@ -1,50 +0,0 @@
---- cups-1.1.22/pdftops/gfile.cxx.ext 2003-11-19 18:17:03.000000000 +0000
-+++ cups-1.1.22/pdftops/gfile.cxx 2004-11-29 17:58:13.250694162 +0000
-@@ -487,32 +487,14 @@
- char *s;
- int fd;
-
-- if (ext) {
--#if HAVE_MKSTEMPS
-- if ((s = getenv("TMPDIR"))) {
-- *name = new GString(s);
-- } else {
-- *name = new GString("/tmp");
-- }
-- (*name)->append("/XXXXXX")->append(ext);
-- fd = mkstemps((*name)->getCString(), strlen(ext));
--#else
-- if (!(s = tmpnam(NULL))) {
-- return gFalse;
-- }
-+#if HAVE_MKSTEMP
-+ if ((s = getenv("TMPDIR"))) {
- *name = new GString(s);
-- (*name)->append(ext);
-- fd = open((*name)->getCString(), O_WRONLY | O_CREAT | O_EXCL, 0600);
--#endif
- } else {
--#if HAVE_MKSTEMP
-- if ((s = getenv("TMPDIR"))) {
-- *name = new GString(s);
-- } else {
-- *name = new GString("/tmp");
-- }
-- (*name)->append("/XXXXXX");
-- fd = mkstemp((*name)->getCString());
-+ *name = new GString("/tmp");
-+ }
-+ (*name)->append("/XXXXXX");
-+ fd = mkstemp((*name)->getCString());
- #else // HAVE_MKSTEMP
- if (!(s = tmpnam(NULL))) {
- return gFalse;
-@@ -520,7 +502,7 @@
- *name = new GString(s);
- fd = open((*name)->getCString(), O_WRONLY | O_CREAT | O_EXCL, 0600);
- #endif // HAVE_MKSTEMP
-- }
-+
- if (fd < 0 || !(*f = fdopen(fd, mode))) {
- delete *name;
- return gFalse;
diff --git a/cups-includeifexists.patch b/cups-includeifexists.patch
deleted file mode 100644
index 6555cfb..0000000
--- a/cups-includeifexists.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- cups-1.2rc3/pdftops/GlobalParams.cxx.includeifexists 2006-04-25 13:19:09.000000000 +0100
-+++ cups-1.2rc3/pdftops/GlobalParams.cxx 2006-04-25 13:19:12.000000000 +0100
-@@ -536,6 +536,17 @@
- error(-1, "Bad 'include' config file command (%s:%d)",
- fileName->getCString(), line);
- }
-+ } else if (!cmd->cmp("includeifexists")) {
-+ if (tokens->getLength() == 2) {
-+ incFile = (GString *)tokens->get(1);
-+ if ((f2 = fopen(incFile->getCString(), "r"))) {
-+ parseFile(incFile, f2);
-+ fclose(f2);
-+ }
-+ } else {
-+ error(-1, "Bad 'includeifexists' config file command (%s:%d)",
-+ fileName->getCString(), line);
-+ }
- } else if (!cmd->cmp("nameToUnicode")) {
- parseNameToUnicode(tokens, fileName, line);
- } else if (!cmd->cmp("cidToUnicode")) {
diff --git a/cups-lspp.patch b/cups-lspp.patch
index 9cc1826..81e74f2 100644
--- a/cups-lspp.patch
+++ b/cups-lspp.patch
@@ -1,7 +1,7 @@
-diff -up cups-1.3.9/config.h.in.lspp cups-1.3.9/config.h.in
---- cups-1.3.9/config.h.in.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/config.h.in 2009-01-28 17:12:34.000000000 +0000
-@@ -551,6 +551,13 @@
+diff -up cups-1.3.10/config.h.in.lspp cups-1.3.10/config.h.in
+--- cups-1.3.10/config.h.in.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/config.h.in 2009-04-20 18:16:51.000000000 +0100
+@@ -567,6 +567,13 @@
#undef HAVE_REMOVEFILE
@@ -15,9 +15,9 @@ diff -up cups-1.3.9/config.h.in.lspp cups-1.3.9/config.h.in
#endif /* !_CUPS_CONFIG_H_ */
/*
-diff -up /dev/null cups-1.3.9/config-scripts/cups-lspp.m4
---- /dev/null 2009-01-28 08:58:18.489189414 +0000
-+++ cups-1.3.9/config-scripts/cups-lspp.m4 2009-01-28 17:12:34.000000000 +0000
+diff -up /dev/null cups-1.3.10/config-scripts/cups-lspp.m4
+--- /dev/null 2009-04-20 09:03:01.028189351 +0100
++++ cups-1.3.10/config-scripts/cups-lspp.m4 2009-04-20 18:16:51.000000000 +0100
@@ -0,0 +1,36 @@
+dnl
+dnl LSPP code for the Common UNIX Printing System (CUPS).
@@ -55,9 +55,9 @@ diff -up /dev/null cups-1.3.9/config-scripts/cups-lspp.m4
+ ;;
+ esac
+fi
-diff -up cups-1.3.9/configure.in.lspp cups-1.3.9/configure.in
---- cups-1.3.9/configure.in.lspp 2007-07-25 00:47:12.000000000 +0100
-+++ cups-1.3.9/configure.in 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/configure.in.lspp cups-1.3.10/configure.in
+--- cups-1.3.10/configure.in.lspp 2007-07-25 00:47:12.000000000 +0100
++++ cups-1.3.10/configure.in 2009-04-20 18:16:51.000000000 +0100
@@ -42,6 +42,8 @@ sinclude(config-scripts/cups-pap.m4)
sinclude(config-scripts/cups-pdf.m4)
sinclude(config-scripts/cups-scripting.m4)
@@ -67,10 +67,10 @@ diff -up cups-1.3.9/configure.in.lspp cups-1.3.9/configure.in
INSTALL_LANGUAGES=""
UNINSTALL_LANGUAGES=""
LANGFILES=""
-diff -up cups-1.3.9/configure.lspp cups-1.3.9/configure
---- cups-1.3.9/configure.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/configure 2009-01-28 17:12:34.000000000 +0000
-@@ -807,6 +807,8 @@ PHP
+diff -up cups-1.3.10/configure.lspp cups-1.3.10/configure
+--- cups-1.3.10/configure.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/configure 2009-04-20 18:17:25.000000000 +0100
+@@ -809,6 +809,8 @@ PHP
PHPCONFIG
PHPDIR
PYTHON
@@ -79,15 +79,15 @@ diff -up cups-1.3.9/configure.lspp cups-1.3.9/configure
INSTALL_LANGUAGES
UNINSTALL_LANGUAGES
LIBOBJS
-@@ -1430,6 +1432,7 @@ Optional Features:
- enable UseNetworkDefault by default, default=auto
+@@ -1433,6 +1435,7 @@ Optional Features:
--enable-raw-printing enable raw printing by default, default=auto
+ --enable-pap build with AppleTalk support, default=auto
--enable-pdftops build pdftops filter, default=auto
+ --enable-lspp turn on auditing and label support, default=no
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-@@ -18862,6 +18865,412 @@ fi
+@@ -19215,6 +19218,412 @@ fi
@@ -500,34 +500,37 @@ diff -up cups-1.3.9/configure.lspp cups-1.3.9/configure
INSTALL_LANGUAGES=""
UNINSTALL_LANGUAGES=""
LANGFILES=""
-@@ -19756,7 +20165,7 @@ PHP!$PHP$ac_delim
+@@ -20111,9 +20520,10 @@ PHP!$PHP$ac_delim
PHPCONFIG!$PHPCONFIG$ac_delim
PHPDIR!$PHPDIR$ac_delim
PYTHON!$PYTHON$ac_delim
--INSTALL_LANGUAGES!$INSTALL_LANGUAGES$ac_delim
+LIBAUDIT!$LIBAUDIT$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
-@@ -19798,12 +20207,14 @@ _ACEOF
+- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 98; then
++ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 99; then
+ break
+ elif $ac_last_try; then
+ { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+@@ -20152,13 +20562,14 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+LIBSELINUX!$LIBSELINUX$ac_delim
-+INSTALL_LANGUAGES!$INSTALL_LANGUAGES$ac_delim
+ INSTALL_LANGUAGES!$INSTALL_LANGUAGES$ac_delim
UNINSTALL_LANGUAGES!$UNINSTALL_LANGUAGES$ac_delim
LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
-- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 3; then
+- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 4; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 5; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-diff -up cups-1.3.9/cups/cups.h.lspp cups-1.3.9/cups/cups.h
---- cups-1.3.9/cups/cups.h.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/cups/cups.h 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/cups/cups.h.lspp cups-1.3.10/cups/cups.h
+--- cups-1.3.10/cups/cups.h.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/cups/cups.h 2009-04-20 18:16:51.000000000 +0100
@@ -15,6 +15,9 @@
* This file is subject to the Apple OS-Developed Software exception.
*/
@@ -551,9 +554,9 @@ diff -up cups-1.3.9/cups/cups.h.lspp cups-1.3.9/cups/cups.h
/*
* Types and structures...
*/
-diff -up cups-1.3.9/data/Makefile.lspp cups-1.3.9/data/Makefile
---- cups-1.3.9/data/Makefile.lspp 2007-10-10 23:00:43.000000000 +0100
-+++ cups-1.3.9/data/Makefile 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/data/Makefile.lspp cups-1.3.10/data/Makefile
+--- cups-1.3.10/data/Makefile.lspp 2008-11-12 19:35:30.000000000 +0000
++++ cups-1.3.10/data/Makefile 2009-04-20 18:16:51.000000000 +0100
@@ -25,7 +25,10 @@ BANNERS = \
secret \
standard \
@@ -566,9 +569,9 @@ diff -up cups-1.3.9/data/Makefile.lspp cups-1.3.9/data/Makefile
CHARMAPS = \
euc-cn.txt \
-diff -up /dev/null cups-1.3.9/data/mls
---- /dev/null 2009-01-28 08:58:18.489189414 +0000
-+++ cups-1.3.9/data/mls 2009-01-28 17:12:34.000000000 +0000
+diff -up /dev/null cups-1.3.10/data/mls
+--- /dev/null 2009-04-20 09:03:01.028189351 +0100
++++ cups-1.3.10/data/mls 2009-04-20 18:16:51.000000000 +0100
@@ -0,0 +1,261 @@
+%!PS-Adobe-3.0
+%%BoundingBox: 0 0 612 792
@@ -831,9 +834,9 @@ diff -up /dev/null cups-1.3.9/data/mls
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
+%
+%%EOF
-diff -up /dev/null cups-1.3.9/data/selinux
---- /dev/null 2009-01-28 08:58:18.489189414 +0000
-+++ cups-1.3.9/data/selinux 2009-01-28 17:12:34.000000000 +0000
+diff -up /dev/null cups-1.3.10/data/selinux
+--- /dev/null 2009-04-20 09:03:01.028189351 +0100
++++ cups-1.3.10/data/selinux 2009-04-20 18:16:51.000000000 +0100
@@ -0,0 +1,261 @@
+%!PS-Adobe-3.0
+%%BoundingBox: 0 0 612 792
@@ -1096,9 +1099,9 @@ diff -up /dev/null cups-1.3.9/data/selinux
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
+%
+%%EOF
-diff -up /dev/null cups-1.3.9/data/te
---- /dev/null 2009-01-28 08:58:18.489189414 +0000
-+++ cups-1.3.9/data/te 2009-01-28 17:12:34.000000000 +0000
+diff -up /dev/null cups-1.3.10/data/te
+--- /dev/null 2009-04-20 09:03:01.028189351 +0100
++++ cups-1.3.10/data/te 2009-04-20 18:16:51.000000000 +0100
@@ -0,0 +1,261 @@
+%!PS-Adobe-3.0
+%%BoundingBox: 0 0 612 792
@@ -1361,9 +1364,9 @@ diff -up /dev/null cups-1.3.9/data/te
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
+%
+%%EOF
-diff -up cups-1.3.9/filter/common.c.lspp cups-1.3.9/filter/common.c
---- cups-1.3.9/filter/common.c.lspp 2008-07-11 23:48:49.000000000 +0100
-+++ cups-1.3.9/filter/common.c 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/filter/common.c.lspp cups-1.3.10/filter/common.c
+--- cups-1.3.10/filter/common.c.lspp 2008-07-11 23:48:49.000000000 +0100
++++ cups-1.3.10/filter/common.c 2009-04-20 18:16:51.000000000 +0100
@@ -30,6 +30,12 @@
* Include necessary headers...
*/
@@ -1532,9 +1535,9 @@ diff -up cups-1.3.9/filter/common.c.lspp cups-1.3.9/filter/common.c
/*
-diff -up cups-1.3.9/filter/pstops.c.lspp cups-1.3.9/filter/pstops.c
---- cups-1.3.9/filter/pstops.c.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/filter/pstops.c 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/filter/pstops.c.lspp cups-1.3.10/filter/pstops.c
+--- cups-1.3.10/filter/pstops.c.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/filter/pstops.c 2009-04-20 18:16:51.000000000 +0100
@@ -3230,6 +3230,18 @@ write_label_prolog(pstops_doc_t *doc, /*
{
const char *classification; /* CLASSIFICATION environment variable */
@@ -1690,9 +1693,9 @@ diff -up cups-1.3.9/filter/pstops.c.lspp cups-1.3.9/filter/pstops.c
/*
-diff -up cups-1.3.9/Makedefs.in.lspp cups-1.3.9/Makedefs.in
---- cups-1.3.9/Makedefs.in.lspp 2008-01-22 22:37:21.000000000 +0000
-+++ cups-1.3.9/Makedefs.in 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/Makedefs.in.lspp cups-1.3.10/Makedefs.in
+--- cups-1.3.10/Makedefs.in.lspp 2008-01-22 22:37:21.000000000 +0000
++++ cups-1.3.10/Makedefs.in 2009-04-20 18:16:51.000000000 +0100
@@ -134,7 +134,7 @@ LIBCUPSORDER = @LIBCUPSORDER@
LIBCUPSIMAGEORDER = @LIBCUPSIMAGEORDER@
LINKCUPS = @LINKCUPS@ $(SSLLIBS)
@@ -1702,13 +1705,13 @@ diff -up cups-1.3.9/Makedefs.in.lspp cups-1.3.9/Makedefs.in
OPTIM = @OPTIM@
OPTIONS =
PAMLIBS = @PAMLIBS@
-diff -up cups-1.3.9/scheduler/client.c.lspp cups-1.3.9/scheduler/client.c
---- cups-1.3.9/scheduler/client.c.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/scheduler/client.c 2009-01-28 17:12:34.000000000 +0000
-@@ -40,12 +40,14 @@
- * pipe_command() - Pipe the output of a command to the remote client.
- * write_file() - Send a file via HTTP.
- * write_pipe() - Flag that data is available on the CGI pipe.
+diff -up cups-1.3.10/scheduler/client.c.lspp cups-1.3.10/scheduler/client.c
+--- cups-1.3.10/scheduler/client.c.lspp 2009-04-16 20:32:04.000000000 +0100
++++ cups-1.3.10/scheduler/client.c 2009-04-20 18:16:51.000000000 +0100
+@@ -43,12 +43,14 @@
+ * valid_host() - Is the Host: field valid?
+ * write_file() - Send a file via HTTP.
+ * write_pipe() - Flag that data is available on the CGI pipe.
+ * client_pid_to_auid() - Get the audit login uid of the client.
*/
@@ -1720,7 +1723,7 @@ diff -up cups-1.3.9/scheduler/client.c.lspp cups-1.3.9/scheduler/client.c
#include
#include "cupsd.h"
-@@ -77,6 +79,12 @@ extern const char *cssmErrorString(int e
+@@ -80,6 +82,12 @@ extern const char *cssmErrorString(int e
# include
#endif /* HAVE_GNUTLS */
@@ -1733,7 +1736,7 @@ diff -up cups-1.3.9/scheduler/client.c.lspp cups-1.3.9/scheduler/client.c
/*
* Local functions...
-@@ -351,6 +359,57 @@ cupsdAcceptClient(cupsd_listener_t *lis)
+@@ -346,6 +354,57 @@ cupsdAcceptClient(cupsd_listener_t *lis)
}
}
@@ -1791,7 +1794,7 @@ diff -up cups-1.3.9/scheduler/client.c.lspp cups-1.3.9/scheduler/client.c
#ifdef AF_INET6
if (con->http.hostaddr->addr.sa_family == AF_INET6)
cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdAcceptClient: %d from %s:%d (IPv6)",
-@@ -741,6 +800,13 @@ cupsdReadClient(cupsd_client_t *con) /*
+@@ -736,6 +795,13 @@ cupsdReadClient(cupsd_client_t *con) /*
mime_type_t *type; /* MIME type of file */
cupsd_printer_t *p; /* Printer */
static unsigned request_id = 0; /* Request ID for temp files */
@@ -1805,7 +1808,7 @@ diff -up cups-1.3.9/scheduler/client.c.lspp cups-1.3.9/scheduler/client.c
status = HTTP_CONTINUE;
-@@ -2034,6 +2100,67 @@ cupsdReadClient(cupsd_client_t *con) /*
+@@ -2060,6 +2126,67 @@ cupsdReadClient(cupsd_client_t *con) /*
fchmod(con->file, 0640);
fchown(con->file, RunUser, Group);
fcntl(con->file, F_SETFD, fcntl(con->file, F_GETFD) | FD_CLOEXEC);
@@ -1873,7 +1876,7 @@ diff -up cups-1.3.9/scheduler/client.c.lspp cups-1.3.9/scheduler/client.c
}
if (con->http.state != HTTP_POST_SEND)
-@@ -4305,6 +4432,50 @@ make_certificate(cupsd_client_t *con) /*
+@@ -4338,6 +4465,50 @@ make_certificate(cupsd_client_t *con) /*
#endif /* HAVE_SSL */
@@ -1924,9 +1927,9 @@ diff -up cups-1.3.9/scheduler/client.c.lspp cups-1.3.9/scheduler/client.c
/*
* 'pipe_command()' - Pipe the output of a command to the remote client.
*/
-diff -up cups-1.3.9/scheduler/client.h.lspp cups-1.3.9/scheduler/client.h
---- cups-1.3.9/scheduler/client.h.lspp 2007-10-22 19:52:13.000000000 +0100
-+++ cups-1.3.9/scheduler/client.h 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/scheduler/client.h.lspp cups-1.3.10/scheduler/client.h
+--- cups-1.3.10/scheduler/client.h.lspp 2009-01-15 19:12:15.000000000 +0000
++++ cups-1.3.10/scheduler/client.h 2009-04-20 18:16:51.000000000 +0100
@@ -17,6 +17,13 @@
# include
#endif /* HAVE_AUTHORIZATION_H */
@@ -1952,7 +1955,7 @@ diff -up cups-1.3.9/scheduler/client.h.lspp cups-1.3.9/scheduler/client.h
};
#define HTTP(con) &((con)->http)
-@@ -129,6 +140,9 @@ extern void cupsdStartListening(void);
+@@ -127,6 +138,9 @@ extern void cupsdStartListening(void);
extern void cupsdStopListening(void);
extern void cupsdUpdateCGI(void);
extern void cupsdWriteClient(cupsd_client_t *con);
@@ -1962,10 +1965,10 @@ diff -up cups-1.3.9/scheduler/client.h.lspp cups-1.3.9/scheduler/client.h
/*
-diff -up cups-1.3.9/scheduler/conf.c.lspp cups-1.3.9/scheduler/conf.c
---- cups-1.3.9/scheduler/conf.c.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/scheduler/conf.c 2009-01-28 17:12:34.000000000 +0000
-@@ -27,6 +27,7 @@
+diff -up cups-1.3.10/scheduler/conf.c.lspp cups-1.3.10/scheduler/conf.c
+--- cups-1.3.10/scheduler/conf.c.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/scheduler/conf.c 2009-04-20 18:16:51.000000000 +0100
+@@ -29,6 +29,7 @@
* read_configuration() - Read a configuration file.
* read_location() - Read a definition.
* read_policy() - Read a definition.
@@ -1973,7 +1976,7 @@ diff -up cups-1.3.9/scheduler/conf.c.lspp cups-1.3.9/scheduler/conf.c
*/
/*
-@@ -48,6 +49,9 @@
+@@ -50,6 +51,9 @@
# define INADDR_NONE 0xffffffff
#endif /* !INADDR_NONE */
@@ -1983,7 +1986,7 @@ diff -up cups-1.3.9/scheduler/conf.c.lspp cups-1.3.9/scheduler/conf.c
/*
* Configuration variable structure...
-@@ -161,6 +165,10 @@ static const cupsd_var_t variables[] =
+@@ -163,6 +167,10 @@ static const cupsd_var_t variables[] =
# if defined(HAVE_LIBSSL) || defined(HAVE_GNUTLS)
{ "ServerKey", &ServerKey, CUPSD_VARTYPE_PATHNAME },
# endif /* HAVE_LIBSSL || HAVE_GNUTLS */
@@ -1994,7 +1997,7 @@ diff -up cups-1.3.9/scheduler/conf.c.lspp cups-1.3.9/scheduler/conf.c
#endif /* HAVE_SSL */
{ "ServerName", &ServerName, CUPSD_VARTYPE_STRING },
{ "ServerRoot", &ServerRoot, CUPSD_VARTYPE_PATHNAME },
-@@ -370,6 +378,9 @@ cupsdReadConfiguration(void)
+@@ -376,6 +384,9 @@ cupsdReadConfiguration(void)
*old_requestroot; /* Old RequestRoot */
const char *tmpdir; /* TMPDIR environment variable */
struct stat tmpinfo; /* Temporary directory info */
@@ -2004,9 +2007,9 @@ diff -up cups-1.3.9/scheduler/conf.c.lspp cups-1.3.9/scheduler/conf.c
/*
-@@ -632,6 +643,25 @@ cupsdReadConfiguration(void)
-
- RunUser = getuid();
+@@ -645,6 +656,25 @@ cupsdReadConfiguration(void)
+ cupsdLogMessage(CUPSD_LOG_INFO, "Remote access is %s.",
+ RemoteAccessEnabled ? "enabled" : "disabled");
+#ifdef WITH_LSPP
+ if (AuditLog != -1)
@@ -2030,7 +2033,7 @@ diff -up cups-1.3.9/scheduler/conf.c.lspp cups-1.3.9/scheduler/conf.c
/*
* See if the ServerName is an IP address...
*/
-@@ -911,11 +941,23 @@ cupsdReadConfiguration(void)
+@@ -975,11 +1005,23 @@ cupsdReadConfiguration(void)
if (MaxActiveJobs > (MaxFDs / 3))
MaxActiveJobs = MaxFDs / 3;
@@ -2055,7 +2058,7 @@ diff -up cups-1.3.9/scheduler/conf.c.lspp cups-1.3.9/scheduler/conf.c
/*
* Update the MaxClientsPerHost value, as needed...
-@@ -3314,6 +3356,18 @@ read_location(cups_file_t *fp, /* I - C
+@@ -3429,6 +3471,18 @@ read_location(cups_file_t *fp, /* I - C
return ((FatalErrors & CUPSD_FATAL_CONFIG) ? 0 : linenum);
}
@@ -2074,10 +2077,10 @@ diff -up cups-1.3.9/scheduler/conf.c.lspp cups-1.3.9/scheduler/conf.c
/*
* 'read_policy()' - Read a definition.
-diff -up cups-1.3.9/scheduler/conf.h.lspp cups-1.3.9/scheduler/conf.h
---- cups-1.3.9/scheduler/conf.h.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/scheduler/conf.h 2009-01-28 17:12:34.000000000 +0000
-@@ -208,6 +208,12 @@ VAR char *ServerKey VALUE(NULL);
+diff -up cups-1.3.10/scheduler/conf.h.lspp cups-1.3.10/scheduler/conf.h
+--- cups-1.3.10/scheduler/conf.h.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/scheduler/conf.h 2009-04-20 18:16:51.000000000 +0100
+@@ -224,6 +224,12 @@ VAR char *ServerKey VALUE(NULL);
/* Server key file */
# endif /* HAVE_LIBSSL || HAVE_GNUTLS */
#endif /* HAVE_SSL */
@@ -2090,7 +2093,7 @@ diff -up cups-1.3.9/scheduler/conf.h.lspp cups-1.3.9/scheduler/conf.h
#ifdef HAVE_LAUNCHD
VAR int LaunchdTimeout VALUE(DEFAULT_TIMEOUT);
-@@ -226,6 +232,9 @@ VAR char *SystemGroupAuthKey VALUE(NULL
+@@ -242,6 +248,9 @@ VAR char *SystemGroupAuthKey VALUE(NULL
/* System group auth key */
#endif /* HAVE_AUTHORIZATION_H */
@@ -2100,9 +2103,9 @@ diff -up cups-1.3.9/scheduler/conf.h.lspp cups-1.3.9/scheduler/conf.h
/*
* Prototypes...
-diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
---- cups-1.3.9/scheduler/ipp.c.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/scheduler/ipp.c 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/scheduler/ipp.c.lspp cups-1.3.10/scheduler/ipp.c
+--- cups-1.3.10/scheduler/ipp.c.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/scheduler/ipp.c 2009-04-20 18:16:51.000000000 +0100
@@ -36,6 +36,7 @@
* cancel_all_jobs() - Cancel all print jobs.
* cancel_job() - Cancel a print job.
@@ -2146,7 +2149,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
static int check_quotas(cupsd_client_t *con, cupsd_printer_t *p);
static ipp_attribute_t *copy_attribute(ipp_t *to, ipp_attribute_t *attr,
int quickcopy);
-@@ -1270,6 +1285,21 @@ add_job(cupsd_client_t *con, /* I - Cl
+@@ -1272,6 +1287,21 @@ add_job(cupsd_client_t *con, /* I - Cl
int kbytes; /* Size of print file */
int i; /* Looping var */
int lowerpagerange; /* Page range bound */
@@ -2168,7 +2171,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))",
-@@ -1486,6 +1516,104 @@ add_job(cupsd_client_t *con, /* I - Cl
+@@ -1488,6 +1518,104 @@ add_job(cupsd_client_t *con, /* I - Cl
ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL,
title = "Untitled");
@@ -2273,7 +2276,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
if ((job = cupsdAddJob(priority, printer->name)) == NULL)
{
send_ipp_status(con, IPP_INTERNAL_ERROR,
-@@ -1494,6 +1622,32 @@ add_job(cupsd_client_t *con, /* I - Cl
+@@ -1496,6 +1624,32 @@ add_job(cupsd_client_t *con, /* I - Cl
return (NULL);
}
@@ -2306,7 +2309,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
CUPS_PRINTER_REMOTE);
job->attrs = con->request;
-@@ -1699,6 +1853,29 @@ add_job(cupsd_client_t *con, /* I - Cl
+@@ -1701,6 +1855,29 @@ add_job(cupsd_client_t *con, /* I - Cl
attr->values[0].string.text = _cupsStrAlloc(printer->job_sheets[0]);
attr->values[1].string.text = _cupsStrAlloc(printer->job_sheets[1]);
}
@@ -2336,7 +2339,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
job->job_sheets = attr;
-@@ -1729,6 +1906,9 @@ add_job(cupsd_client_t *con, /* I - Cl
+@@ -1731,6 +1908,9 @@ add_job(cupsd_client_t *con, /* I - Cl
"job-sheets=\"%s,none\", "
"job-originating-user-name=\"%s\"",
job->id, Classification, job->username);
@@ -2346,7 +2349,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
}
else if (attr->num_values == 2 &&
strcmp(attr->values[0].string.text,
-@@ -1747,6 +1927,9 @@ add_job(cupsd_client_t *con, /* I - Cl
+@@ -1749,6 +1929,9 @@ add_job(cupsd_client_t *con, /* I - Cl
"job-originating-user-name=\"%s\"",
job->id, attr->values[0].string.text,
attr->values[1].string.text, job->username);
@@ -2356,7 +2359,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
}
else if (strcmp(attr->values[0].string.text, Classification) &&
strcmp(attr->values[0].string.text, "none") &&
-@@ -1767,6 +1950,9 @@ add_job(cupsd_client_t *con, /* I - Cl
+@@ -1769,6 +1952,9 @@ add_job(cupsd_client_t *con, /* I - Cl
"job-originating-user-name=\"%s\"",
job->id, attr->values[0].string.text,
attr->values[1].string.text, job->username);
@@ -2366,7 +2369,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
}
}
else if (strcmp(attr->values[0].string.text, Classification) &&
-@@ -1807,9 +1993,52 @@ add_job(cupsd_client_t *con, /* I - Cl
+@@ -1809,9 +1995,52 @@ add_job(cupsd_client_t *con, /* I - Cl
"job-sheets=\"%s\", "
"job-originating-user-name=\"%s\"",
job->id, Classification, job->username);
@@ -2419,7 +2422,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
/*
* See if we need to add the starting sheet...
*/
-@@ -3522,6 +3751,103 @@ check_rss_recipient(
+@@ -3524,6 +3753,103 @@ check_rss_recipient(
}
@@ -2523,7 +2526,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
/*
* 'check_quotas()' - Check quotas for a printer and user.
*/
-@@ -4043,6 +4369,15 @@ copy_banner(cupsd_client_t *con, /* I -
+@@ -4033,6 +4359,15 @@ copy_banner(cupsd_client_t *con, /* I -
char attrname[255], /* Name of attribute */
*s; /* Pointer into name */
ipp_attribute_t *attr; /* Attribute */
@@ -2539,7 +2542,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
cupsdLogMessage(CUPSD_LOG_DEBUG2,
-@@ -4078,6 +4413,82 @@ copy_banner(cupsd_client_t *con, /* I -
+@@ -4068,6 +4403,82 @@ copy_banner(cupsd_client_t *con, /* I -
fchmod(cupsFileNumber(out), 0640);
fchown(cupsFileNumber(out), RunUser, Group);
@@ -2622,7 +2625,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
/*
* Try the localized banner file under the subdirectory...
-@@ -4172,6 +4583,24 @@ copy_banner(cupsd_client_t *con, /* I -
+@@ -4162,6 +4573,24 @@ copy_banner(cupsd_client_t *con, /* I -
else
s = attrname;
@@ -2647,7 +2650,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
if (!strcmp(s, "printer-name"))
{
cupsFilePuts(out, job->dest);
-@@ -5944,6 +6373,22 @@ get_job_attrs(cupsd_client_t *con, /* I
+@@ -5934,6 +6363,22 @@ get_job_attrs(cupsd_client_t *con, /* I
return;
}
@@ -2670,7 +2673,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
/*
* Copy attributes...
*/
-@@ -6149,6 +6594,11 @@ get_jobs(cupsd_client_t *con, /* I - C
+@@ -6144,6 +6589,11 @@ get_jobs(cupsd_client_t *con, /* I - C
if (count > 0)
ippAddSeparator(con->response);
@@ -2682,7 +2685,7 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
count ++;
cupsdLogMessage(CUPSD_LOG_DEBUG2, "get_jobs: count = %d", count);
-@@ -10286,6 +10736,11 @@ validate_user(cupsd_job_t *job, /* I
+@@ -10307,6 +10757,11 @@ validate_user(cupsd_job_t *job, /* I
strlcpy(username, get_username(con), userlen);
@@ -2694,9 +2697,9 @@ diff -up cups-1.3.9/scheduler/ipp.c.lspp cups-1.3.9/scheduler/ipp.c
/*
* Check the username against the owner...
*/
-diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
---- cups-1.3.9/scheduler/job.c.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/scheduler/job.c 2009-01-28 17:12:47.000000000 +0000
+diff -up cups-1.3.10/scheduler/job.c.lspp cups-1.3.10/scheduler/job.c
+--- cups-1.3.10/scheduler/job.c.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/scheduler/job.c 2009-04-20 18:16:51.000000000 +0100
@@ -60,6 +60,9 @@
* update_job_attrs() - Update the job-printer-* attributes.
*/
@@ -2722,7 +2725,7 @@ diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
/*
* Local globals...
-@@ -1119,6 +1130,20 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
+@@ -1127,6 +1138,20 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
goto error;
}
@@ -2743,7 +2746,7 @@ diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
job->sheets = ippFindAttribute(job->attrs, "job-media-sheets-completed",
IPP_TAG_INTEGER);
job->job_sheets = ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_NAME);
-@@ -1483,6 +1508,13 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
+@@ -1491,6 +1516,13 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
{
char filename[1024]; /* Job control filename */
cups_file_t *fp; /* Job file */
@@ -2757,7 +2760,7 @@ diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdSaveJob(job=%p(%d)): job->attrs=%p",
-@@ -1501,6 +1533,76 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
+@@ -1509,6 +1541,76 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J
fchmod(cupsFileNumber(fp), 0600);
fchown(cupsFileNumber(fp), RunUser, Group);
@@ -2834,7 +2837,7 @@ diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
job->attrs->state = IPP_IDLE;
if (ippWriteIO(fp, (ipp_iocb_t)cupsFileWrite, 1, NULL,
-@@ -2475,6 +2577,21 @@ start_job(cupsd_job_t *job, /* I -
+@@ -2483,6 +2585,21 @@ start_job(cupsd_job_t *job, /* I -
/* RIP_MAX_CACHE env variable */
static char *options = NULL;/* Full list of options */
static int optlength = 0; /* Length of option buffer */
@@ -2856,7 +2859,7 @@ diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
cupsdLogMessage(CUPSD_LOG_DEBUG2, "[Job %d] start_job: file = %d/%d",
-@@ -2746,6 +2863,106 @@ start_job(cupsd_job_t *job, /* I -
+@@ -2754,6 +2871,106 @@ start_job(cupsd_job_t *job, /* I -
fcntl(job->side_pipes[1], F_GETFL) | O_NONBLOCK);
}
@@ -2963,7 +2966,7 @@ diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
/*
* Determine if we are printing a banner page or not...
*/
-@@ -2894,6 +3111,18 @@ start_job(cupsd_job_t *job, /* I -
+@@ -2902,6 +3119,18 @@ start_job(cupsd_job_t *job, /* I -
banner_page)
continue;
@@ -2982,7 +2985,7 @@ diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
/*
* Otherwise add them to the list...
*/
-@@ -3136,6 +3365,67 @@ start_job(cupsd_job_t *job, /* I -
+@@ -3144,6 +3373,67 @@ start_job(cupsd_job_t *job, /* I -
}
}
@@ -3050,9 +3053,9 @@ diff -up cups-1.3.9/scheduler/job.c.lspp cups-1.3.9/scheduler/job.c
if (Classification && !banner_page)
{
if ((attr = ippFindAttribute(job->attrs, "job-sheets",
-diff -up cups-1.3.9/scheduler/job.h.lspp cups-1.3.9/scheduler/job.h
---- cups-1.3.9/scheduler/job.h.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/scheduler/job.h 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/scheduler/job.h.lspp cups-1.3.10/scheduler/job.h
+--- cups-1.3.10/scheduler/job.h.lspp 2009-01-28 16:49:56.000000000 +0000
++++ cups-1.3.10/scheduler/job.h 2009-04-20 18:16:51.000000000 +0100
@@ -13,6 +13,13 @@
* file is missing or damaged, see the license at "http://www.cups.org/".
*/
@@ -3078,9 +3081,9 @@ diff -up cups-1.3.9/scheduler/job.h.lspp cups-1.3.9/scheduler/job.h
} cupsd_job_t;
-diff -up cups-1.3.9/scheduler/main.c.lspp cups-1.3.9/scheduler/main.c
---- cups-1.3.9/scheduler/main.c.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/scheduler/main.c 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/scheduler/main.c.lspp cups-1.3.10/scheduler/main.c
+--- cups-1.3.10/scheduler/main.c.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/scheduler/main.c 2009-04-20 18:16:51.000000000 +0100
@@ -35,6 +35,8 @@
* usage() - Show scheduler usage.
*/
@@ -3136,7 +3139,7 @@ diff -up cups-1.3.9/scheduler/main.c.lspp cups-1.3.9/scheduler/main.c
/*
* Set the timezone info...
*/
-@@ -1192,6 +1219,11 @@ main(int argc, /* I - Number of comm
+@@ -1190,6 +1217,11 @@ main(int argc, /* I - Number of comm
cupsdStopSelect();
@@ -3148,9 +3151,9 @@ diff -up cups-1.3.9/scheduler/main.c.lspp cups-1.3.9/scheduler/main.c
return (!stop_scheduler);
}
-diff -up cups-1.3.9/scheduler/printers.c.lspp cups-1.3.9/scheduler/printers.c
---- cups-1.3.9/scheduler/printers.c.lspp 2009-01-28 17:12:34.000000000 +0000
-+++ cups-1.3.9/scheduler/printers.c 2009-01-28 17:12:34.000000000 +0000
+diff -up cups-1.3.10/scheduler/printers.c.lspp cups-1.3.10/scheduler/printers.c
+--- cups-1.3.10/scheduler/printers.c.lspp 2009-04-20 18:16:51.000000000 +0100
++++ cups-1.3.10/scheduler/printers.c 2009-04-20 18:16:51.000000000 +0100
@@ -51,6 +51,8 @@
* printing desktop tools.
*/
@@ -3171,7 +3174,7 @@ diff -up cups-1.3.9/scheduler/printers.c.lspp cups-1.3.9/scheduler/printers.c
/*
* 'cupsdAddPrinter()' - Add a printer to the system.
-@@ -1846,6 +1852,13 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
+@@ -1856,6 +1862,13 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
{ /* No authentication */
"none"
};
@@ -3185,7 +3188,7 @@ diff -up cups-1.3.9/scheduler/printers.c.lspp cups-1.3.9/scheduler/printers.c
DEBUG_printf(("cupsdSetPrinterAttrs: entering name = %s, type = %x\n", p->name,
-@@ -1995,6 +2008,44 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
+@@ -2005,6 +2018,44 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p)
attr->values[1].string.text = _cupsStrAlloc(Classification ?
Classification : p->job_sheets[1]);
}
diff --git a/cups-no-gzip-man.patch b/cups-no-gzip-man.patch
index b95f946..319715f 100644
--- a/cups-no-gzip-man.patch
+++ b/cups-no-gzip-man.patch
@@ -1,9 +1,28 @@
---- cups-1.2svn-r5102/config-scripts/cups-manpages.m4.no-gzip-man 2006-02-13 02:46:10.000000000 +0000
-+++ cups-1.2svn-r5102/config-scripts/cups-manpages.m4 2006-02-17 09:55:45.000000000 +0000
-@@ -80,10 +80,10 @@
+diff -up cups-1.3.10/config-scripts/cups-manpages.m4.no-gzip-man cups-1.3.10/config-scripts/cups-manpages.m4
+--- cups-1.3.10/config-scripts/cups-manpages.m4.no-gzip-man 2009-01-12 19:17:21.000000000 +0000
++++ cups-1.3.10/config-scripts/cups-manpages.m4 2009-04-20 17:49:31.000000000 +0100
+@@ -69,10 +69,10 @@ case "$uname" in
;;
- Linux* | GNU*)
- # Linux and GNU Hurd
+ Linux* | GNU* | Darwin*)
+ # Linux, GNU Hurd, and Mac OS X
+- MAN1EXT=1.gz
+- MAN5EXT=5.gz
+- MAN7EXT=7.gz
+- MAN8EXT=8.gz
++ MAN1EXT=1
++ MAN5EXT=5
++ MAN7EXT=7
++ MAN8EXT=8
+ MAN8DIR=8
+ ;;
+ *)
+diff -up cups-1.3.10/configure.no-gzip-man cups-1.3.10/configure
+--- cups-1.3.10/configure.no-gzip-man 2009-04-16 21:02:06.000000000 +0100
++++ cups-1.3.10/configure 2009-04-20 17:49:29.000000000 +0100
+@@ -9678,10 +9678,10 @@ case "$uname" in
+ ;;
+ Linux* | GNU* | Darwin*)
+ # Linux, GNU Hurd, and Mac OS X
- MAN1EXT=1.gz
- MAN5EXT=5.gz
- MAN7EXT=7.gz
diff --git a/cups-serverbin-compat.patch b/cups-serverbin-compat.patch
index 5336a72..85253df 100644
--- a/cups-serverbin-compat.patch
+++ b/cups-serverbin-compat.patch
@@ -1,9 +1,9 @@
-diff -up cups-1.3.7/scheduler/conf.c.serverbin-compat cups-1.3.7/scheduler/conf.c
---- cups-1.3.7/scheduler/conf.c.serverbin-compat 2008-03-20 04:06:01.000000000 +0000
-+++ cups-1.3.7/scheduler/conf.c 2008-07-15 11:04:19.000000000 +0100
-@@ -402,6 +402,9 @@ cupsdReadConfiguration(void)
- cupsdSetString(&ServerName, httpGetHostname(NULL, temp, sizeof(temp)));
- cupsdSetStringf(&ServerAdmin, "root@%s", temp);
+diff -up cups-1.3.10/scheduler/conf.c.serverbin-compat cups-1.3.10/scheduler/conf.c
+--- cups-1.3.10/scheduler/conf.c.serverbin-compat 2009-04-16 20:32:04.000000000 +0100
++++ cups-1.3.10/scheduler/conf.c 2009-04-20 17:05:08.000000000 +0100
+@@ -430,6 +430,9 @@ cupsdReadConfiguration(void)
+ cupsdClearString(&ServerName);
+ cupsdClearString(&ServerAdmin);
cupsdSetString(&ServerBin, CUPS_SERVERBIN);
+#ifdef __x86_64__
+ cupsdSetString(&ServerBin_compat, "/usr/lib64/cups");
@@ -11,7 +11,7 @@ diff -up cups-1.3.7/scheduler/conf.c.serverbin-compat cups-1.3.7/scheduler/conf.
cupsdSetString(&RequestRoot, CUPS_REQUESTS);
cupsdSetString(&CacheDir, CUPS_CACHEDIR);
cupsdSetString(&DataDir, CUPS_DATADIR);
-@@ -1095,7 +1098,12 @@ cupsdReadConfiguration(void)
+@@ -1178,7 +1181,12 @@ cupsdReadConfiguration(void)
* Read the MIME type and conversion database...
*/
@@ -24,10 +24,10 @@ diff -up cups-1.3.7/scheduler/conf.c.serverbin-compat cups-1.3.7/scheduler/conf.
MimeDatabase = mimeLoad(ServerRoot, temp);
-diff -up cups-1.3.7/scheduler/conf.h.serverbin-compat cups-1.3.7/scheduler/conf.h
---- cups-1.3.7/scheduler/conf.h.serverbin-compat 2008-02-15 23:26:51.000000000 +0000
-+++ cups-1.3.7/scheduler/conf.h 2008-07-15 11:04:19.000000000 +0100
-@@ -59,6 +59,10 @@ VAR char *ConfigurationFile VALUE(NULL)
+diff -up cups-1.3.10/scheduler/conf.h.serverbin-compat cups-1.3.10/scheduler/conf.h
+--- cups-1.3.10/scheduler/conf.h.serverbin-compat 2009-04-16 20:32:04.000000000 +0100
++++ cups-1.3.10/scheduler/conf.h 2009-04-20 17:03:48.000000000 +0100
+@@ -70,6 +70,10 @@ VAR char *ConfigurationFile VALUE(NULL)
/* Root directory for scheduler */
*ServerBin VALUE(NULL),
/* Root directory for binaries */
@@ -38,9 +38,9 @@ diff -up cups-1.3.7/scheduler/conf.h.serverbin-compat cups-1.3.7/scheduler/conf.
*StateDir VALUE(NULL),
/* Root directory for state data */
*RequestRoot VALUE(NULL),
-diff -up cups-1.3.7/scheduler/env.c.serverbin-compat cups-1.3.7/scheduler/env.c
---- cups-1.3.7/scheduler/env.c.serverbin-compat 2007-07-11 22:46:42.000000000 +0100
-+++ cups-1.3.7/scheduler/env.c 2008-07-15 11:04:19.000000000 +0100
+diff -up cups-1.3.10/scheduler/env.c.serverbin-compat cups-1.3.10/scheduler/env.c
+--- cups-1.3.10/scheduler/env.c.serverbin-compat 2007-07-11 22:46:42.000000000 +0100
++++ cups-1.3.10/scheduler/env.c 2009-04-20 17:03:48.000000000 +0100
@@ -86,8 +86,13 @@ cupsdInitEnv(void)
cupsdSetEnv("LD_LIBRARY_PATH", NULL);
cupsdSetEnv("LD_PRELOAD", NULL);
@@ -55,10 +55,10 @@ diff -up cups-1.3.7/scheduler/env.c.serverbin-compat cups-1.3.7/scheduler/env.c
cupsdSetEnv("SERVER_ADMIN", ServerAdmin);
cupsdSetEnv("SHLIB_PATH", NULL);
cupsdSetEnv("SOFTWARE", CUPS_MINIMAL);
-diff -up cups-1.3.7/scheduler/ipp.c.serverbin-compat cups-1.3.7/scheduler/ipp.c
---- cups-1.3.7/scheduler/ipp.c.serverbin-compat 2008-03-24 22:34:44.000000000 +0000
-+++ cups-1.3.7/scheduler/ipp.c 2008-07-15 11:04:19.000000000 +0100
-@@ -2377,9 +2377,18 @@ add_printer(cupsd_client_t *con, /* I -
+diff -up cups-1.3.10/scheduler/ipp.c.serverbin-compat cups-1.3.10/scheduler/ipp.c
+--- cups-1.3.10/scheduler/ipp.c.serverbin-compat 2009-03-18 16:30:29.000000000 +0000
++++ cups-1.3.10/scheduler/ipp.c 2009-04-20 17:03:48.000000000 +0100
+@@ -2475,9 +2475,18 @@ add_printer(cupsd_client_t *con, /* I -
* Could not find device in list!
*/
@@ -77,10 +77,10 @@ diff -up cups-1.3.7/scheduler/ipp.c.serverbin-compat cups-1.3.7/scheduler/ipp.c
}
}
-diff -up cups-1.3.7/scheduler/job.c.serverbin-compat cups-1.3.7/scheduler/job.c
---- cups-1.3.7/scheduler/job.c.serverbin-compat 2008-03-25 22:57:40.000000000 +0000
-+++ cups-1.3.7/scheduler/job.c 2008-07-15 11:04:19.000000000 +0100
-@@ -3223,8 +3223,32 @@ start_job(cupsd_job_t *job, /* I -
+diff -up cups-1.3.10/scheduler/job.c.serverbin-compat cups-1.3.10/scheduler/job.c
+--- cups-1.3.10/scheduler/job.c.serverbin-compat 2009-04-16 20:32:04.000000000 +0100
++++ cups-1.3.10/scheduler/job.c 2009-04-20 17:03:48.000000000 +0100
+@@ -3242,8 +3242,32 @@ start_job(cupsd_job_t *job, /* I -
i ++, filter = (mime_filter_t *)cupsArrayNext(filters))
{
if (filter->filter[0] != '/')
@@ -115,7 +115,7 @@ diff -up cups-1.3.7/scheduler/job.c.serverbin-compat cups-1.3.7/scheduler/job.c
else
strlcpy(command, filter->filter, sizeof(command));
-@@ -3374,6 +3398,28 @@ start_job(cupsd_job_t *job, /* I -
+@@ -3394,6 +3418,28 @@ start_job(cupsd_job_t *job, /* I -
{
sscanf(printer->device_uri, "%254[^:]", method);
snprintf(command, sizeof(command), "%s/backend/%s", ServerBin, method);
@@ -144,10 +144,10 @@ diff -up cups-1.3.7/scheduler/job.c.serverbin-compat cups-1.3.7/scheduler/job.c
/*
* See if the backend needs to run as root...
-diff -up cups-1.3.7/scheduler/printers.c.serverbin-compat cups-1.3.7/scheduler/printers.c
---- cups-1.3.7/scheduler/printers.c.serverbin-compat 2008-01-30 06:09:39.000000000 +0000
-+++ cups-1.3.7/scheduler/printers.c 2008-07-15 11:04:19.000000000 +0100
-@@ -934,9 +934,19 @@ cupsdLoadAllPrinters(void)
+diff -up cups-1.3.10/scheduler/printers.c.serverbin-compat cups-1.3.10/scheduler/printers.c
+--- cups-1.3.10/scheduler/printers.c.serverbin-compat 2008-11-12 00:18:36.000000000 +0000
++++ cups-1.3.10/scheduler/printers.c 2009-04-20 17:03:48.000000000 +0100
+@@ -943,9 +943,19 @@ cupsdLoadAllPrinters(void)
* Backend does not exist, stop printer...
*/
@@ -167,7 +167,7 @@ diff -up cups-1.3.7/scheduler/printers.c.serverbin-compat cups-1.3.7/scheduler/p
}
}
-@@ -3395,6 +3405,12 @@ add_printer_filter(
+@@ -3433,6 +3443,12 @@ add_printer_filter(
if (access(filename, X_OK))
{
@@ -180,7 +180,7 @@ diff -up cups-1.3.7/scheduler/printers.c.serverbin-compat cups-1.3.7/scheduler/p
snprintf(p->state_message, sizeof(p->state_message),
"Filter \"%s\" for printer \"%s\" not available: %s",
program, p->name, strerror(errno));
-@@ -3402,6 +3418,9 @@ add_printer_filter(
+@@ -3440,6 +3456,9 @@ add_printer_filter(
cupsdSetPrinterState(p, IPP_PRINTER_STOPPED, 0);
cupsdLogMessage(CUPSD_LOG_ERROR, "%s", p->state_message);
diff --git a/cups-str2536.patch b/cups-str2536.patch
index e6e33a7..5038e3a 100644
--- a/cups-str2536.patch
+++ b/cups-str2536.patch
@@ -1,6 +1,6 @@
-diff -up cups-1.3.8/config.h.in.str2536 cups-1.3.8/config.h.in
---- cups-1.3.8/config.h.in.str2536 2008-09-10 16:16:44.000000000 +0100
-+++ cups-1.3.8/config.h.in 2008-09-10 16:16:44.000000000 +0100
+diff -up cups-1.3.10/config.h.in.str2536 cups-1.3.10/config.h.in
+--- cups-1.3.10/config.h.in.str2536 2009-03-12 21:34:21.000000000 +0000
++++ cups-1.3.10/config.h.in 2009-04-20 17:27:31.000000000 +0100
@@ -43,6 +43,13 @@
@@ -15,9 +15,9 @@ diff -up cups-1.3.8/config.h.in.str2536 cups-1.3.8/config.h.in
* Default browsing settings...
*/
-diff -up cups-1.3.8/config-scripts/cups-defaults.m4.str2536 cups-1.3.8/config-scripts/cups-defaults.m4
---- cups-1.3.8/config-scripts/cups-defaults.m4.str2536 2008-04-14 19:10:27.000000000 +0100
-+++ cups-1.3.8/config-scripts/cups-defaults.m4 2008-09-10 16:16:44.000000000 +0100
+diff -up cups-1.3.10/config-scripts/cups-defaults.m4.str2536 cups-1.3.10/config-scripts/cups-defaults.m4
+--- cups-1.3.10/config-scripts/cups-defaults.m4.str2536 2008-04-14 19:10:27.000000000 +0100
++++ cups-1.3.10/config-scripts/cups-defaults.m4 2009-04-20 17:27:31.000000000 +0100
@@ -43,6 +43,14 @@ AC_ARG_WITH(log_file_perm, [ --with-log
AC_SUBST(CUPS_LOG_FILE_PERM)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LOG_FILE_PERM, 0$CUPS_LOG_FILE_PERM)
@@ -33,9 +33,9 @@ diff -up cups-1.3.8/config-scripts/cups-defaults.m4.str2536 cups-1.3.8/config-sc
dnl Default Browsing
AC_ARG_ENABLE(browsing, [ --enable-browsing enable Browsing by default, default=yes])
if test "x$enable_browsing" = xno; then
-diff -up cups-1.3.8/configure.str2536 cups-1.3.8/configure
---- cups-1.3.8/configure.str2536 2008-09-10 16:16:44.000000000 +0100
-+++ cups-1.3.8/configure 2008-09-10 16:18:16.000000000 +0100
+diff -up cups-1.3.10/configure.str2536 cups-1.3.10/configure
+--- cups-1.3.10/configure.str2536 2009-04-20 17:27:31.000000000 +0100
++++ cups-1.3.10/configure 2009-04-20 17:27:56.000000000 +0100
@@ -782,6 +782,7 @@ LAUNCHDLIBS
LANGUAGES
CUPS_CONFIG_FILE_PERM
@@ -44,7 +44,7 @@ diff -up cups-1.3.8/configure.str2536 cups-1.3.8/configure
CUPS_BROWSING
CUPS_BROWSE_LOCAL_PROTOCOLS
CUPS_BROWSE_REMOTE_PROTOCOLS
-@@ -1471,6 +1472,7 @@ Optional Packages:
+@@ -1474,6 +1475,7 @@ Optional Packages:
--with-languages set installed languages, default=all
--with-config-file-perm set default ConfigFilePerm value, default=0640
--with-log-file-perm set default LogFilePerm value, default=0644
@@ -52,22 +52,7 @@ diff -up cups-1.3.8/configure.str2536 cups-1.3.8/configure
--with-local-protocols set default BrowseLocalProtocols, default="CUPS"
--with-remote-protocols set default BrowseRemoteProtocols, default="CUPS"
--with-cups-user set default user for CUPS
-@@ -9680,10 +9682,10 @@ case "$uname" in
- ;;
- Linux* | GNU*)
- # Linux and GNU Hurd
-- MAN1EXT=1.gz
-- MAN5EXT=5.gz
-- MAN7EXT=7.gz
-- MAN8EXT=8.gz
-+ MAN1EXT=1
-+ MAN5EXT=5
-+ MAN7EXT=7
-+ MAN8EXT=8
- MAN8DIR=8
- ;;
- *)
-@@ -17624,6 +17626,21 @@ cat >>confdefs.h <<_ACEOF
+@@ -17929,6 +17931,21 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
@@ -89,7 +74,7 @@ diff -up cups-1.3.8/configure.str2536 cups-1.3.8/configure
# Check whether --enable-browsing was given.
if test "${enable_browsing+set}" = set; then
enableval=$enable_browsing;
-@@ -19407,6 +19424,7 @@ LAUNCHDLIBS!$LAUNCHDLIBS$ac_delim
+@@ -20067,6 +20084,7 @@ LAUNCHDLIBS!$LAUNCHDLIBS$ac_delim
LANGUAGES!$LANGUAGES$ac_delim
CUPS_CONFIG_FILE_PERM!$CUPS_CONFIG_FILE_PERM$ac_delim
CUPS_LOG_FILE_PERM!$CUPS_LOG_FILE_PERM$ac_delim
@@ -97,31 +82,18 @@ diff -up cups-1.3.8/configure.str2536 cups-1.3.8/configure
CUPS_BROWSING!$CUPS_BROWSING$ac_delim
CUPS_BROWSE_LOCAL_PROTOCOLS!$CUPS_BROWSE_LOCAL_PROTOCOLS$ac_delim
CUPS_BROWSE_REMOTE_PROTOCOLS!$CUPS_BROWSE_REMOTE_PROTOCOLS$ac_delim
-@@ -19432,7 +19450,6 @@ PHPCONFIG!$PHPCONFIG$ac_delim
- PHPDIR!$PHPDIR$ac_delim
+@@ -20095,7 +20113,7 @@ PHPDIR!$PHPDIR$ac_delim
PYTHON!$PYTHON$ac_delim
- INSTALL_LANGUAGES!$INSTALL_LANGUAGES$ac_delim
--UNINSTALL_LANGUAGES!$UNINSTALL_LANGUAGES$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
-@@ -19474,11 +19491,12 @@ _ACEOF
- ac_delim='%!_!# '
- for ac_last_try in false false false false false :; do
- cat >conf$$subs.sed <<_ACEOF
-+UNINSTALL_LANGUAGES!$UNINSTALL_LANGUAGES$ac_delim
- LIBOBJS!$LIBOBJS$ac_delim
- LTLIBOBJS!$LTLIBOBJS$ac_delim
- _ACEOF
-
-- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 2; then
-+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 3; then
+- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
++ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 98; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-diff -up cups-1.3.8/doc/help/ref-cupsd-conf.html.in.str2536 cups-1.3.8/doc/help/ref-cupsd-conf.html.in
---- cups-1.3.8/doc/help/ref-cupsd-conf.html.in.str2536 2008-06-17 19:27:16.000000000 +0100
-+++ cups-1.3.8/doc/help/ref-cupsd-conf.html.in 2008-09-10 16:16:44.000000000 +0100
+diff -up cups-1.3.10/doc/help/ref-cupsd-conf.html.in.str2536 cups-1.3.10/doc/help/ref-cupsd-conf.html.in
+--- cups-1.3.10/doc/help/ref-cupsd-conf.html.in.str2536 2009-04-16 20:32:04.000000000 +0100
++++ cups-1.3.10/doc/help/ref-cupsd-conf.html.in 2009-04-20 17:27:31.000000000 +0100
@@ -1115,6 +1115,57 @@ printer.
@@ -180,9 +152,9 @@ diff -up cups-1.3.8/doc/help/ref-cupsd-conf.html.in.str2536 cups-1.3.8/doc/help/
Examples
-diff -up cups-1.3.8/man/cupsd.conf.man.in.str2536 cups-1.3.8/man/cupsd.conf.man.in
---- cups-1.3.8/man/cupsd.conf.man.in.str2536 2008-06-16 18:41:11.000000000 +0100
-+++ cups-1.3.8/man/cupsd.conf.man.in 2008-09-10 16:16:44.000000000 +0100
+diff -up cups-1.3.10/man/cupsd.conf.man.in.str2536 cups-1.3.10/man/cupsd.conf.man.in
+--- cups-1.3.10/man/cupsd.conf.man.in.str2536 2009-04-16 20:32:04.000000000 +0100
++++ cups-1.3.10/man/cupsd.conf.man.in 2009-04-20 17:27:31.000000000 +0100
@@ -275,6 +275,15 @@ ErrorLog syslog
.br
Specifies the error log filename.
@@ -199,18 +171,18 @@ diff -up cups-1.3.8/man/cupsd.conf.man.in.str2536 cups-1.3.8/man/cupsd.conf.man.
FileDevice Yes
.TP 5
FileDevice No
-diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
---- cups-1.3.8/scheduler/conf.c.str2536 2008-09-10 16:16:44.000000000 +0100
-+++ cups-1.3.8/scheduler/conf.c 2008-09-10 16:17:52.000000000 +0100
-@@ -21,6 +21,7 @@
+diff -up cups-1.3.10/scheduler/conf.c.str2536 cups-1.3.10/scheduler/conf.c
+--- cups-1.3.10/scheduler/conf.c.str2536 2009-04-20 17:27:31.000000000 +0100
++++ cups-1.3.10/scheduler/conf.c 2009-04-20 17:27:31.000000000 +0100
+@@ -23,6 +23,7 @@
* get_addr_and_mask() - Get an IP address and netmask.
- * parse_aaa() - Parse authentication, authorization, and
- * access control lines.
+ * parse_aaa() - Parse authentication, authorization, and access
+ * control lines.
+ * parse_fatal_errors() - Parse FatalErrors values in a string.
* parse_groups() - Parse system group names in a string.
* parse_protocols() - Parse browse protocols in a string.
* read_configuration() - Read a configuration file.
-@@ -192,6 +193,7 @@ static int get_addr_and_mask(const char
+@@ -197,6 +198,7 @@ static int get_addr_and_mask(const char
unsigned *mask);
static int parse_aaa(cupsd_location_t *loc, char *line,
char *value, int linenum);
@@ -218,7 +190,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
static int parse_groups(const char *s);
static int parse_protocols(const char *s);
static int read_configuration(cups_file_t *fp);
-@@ -512,6 +514,7 @@ cupsdReadConfiguration(void)
+@@ -540,6 +542,7 @@ cupsdReadConfiguration(void)
*/
ConfigFilePerm = CUPS_DEFAULT_CONFIG_FILE_PERM;
@@ -226,7 +198,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
DefaultAuthType = CUPSD_AUTH_BASIC;
#ifdef HAVE_SSL
DefaultEncryption = HTTP_ENCRYPT_REQUIRED;
-@@ -782,30 +785,31 @@ cupsdReadConfiguration(void)
+@@ -861,30 +864,31 @@ cupsdReadConfiguration(void)
snprintf(temp, sizeof(temp), "%s/rss", CacheDir);
@@ -282,7 +254,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
return (0);
/*
-@@ -855,7 +859,8 @@ cupsdReadConfiguration(void)
+@@ -934,7 +938,8 @@ cupsdReadConfiguration(void)
* is under the spool directory or does not exist...
*/
@@ -292,7 +264,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
return (0);
}
-@@ -872,8 +877,10 @@ cupsdReadConfiguration(void)
+@@ -951,8 +956,10 @@ cupsdReadConfiguration(void)
if (MaxClients > (MaxFDs / 3) || MaxClients <= 0)
{
if (MaxClients > 0)
@@ -305,7 +277,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
MaxClients = MaxFDs / 3;
}
-@@ -1115,7 +1122,8 @@ cupsdReadConfiguration(void)
+@@ -1194,7 +1201,8 @@ cupsdReadConfiguration(void)
{
cupsdLogMessage(CUPSD_LOG_EMERG,
"Unable to load MIME database from \'%s\'!", ServerRoot);
@@ -315,7 +287,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
cupsdLogMessage(CUPSD_LOG_INFO,
-@@ -1912,6 +1920,86 @@ parse_aaa(cupsd_location_t *loc, /* I -
+@@ -2037,6 +2045,86 @@ parse_aaa(cupsd_location_t *loc, /* I -
/*
@@ -402,7 +374,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
* 'parse_groups()' - Parse system group names in a string.
*/
-@@ -2740,7 +2828,8 @@ read_configuration(cups_file_t *fp) /* I
+@@ -2868,7 +2956,8 @@ read_configuration(cups_file_t *fp) /* I
cupsdLogMessage(CUPSD_LOG_WARN,
"Unknown default authorization type %s on line %d.",
value, linenum);
@@ -412,7 +384,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
}
#ifdef HAVE_SSL
-@@ -2761,7 +2850,8 @@ read_configuration(cups_file_t *fp) /* I
+@@ -2889,7 +2978,8 @@ read_configuration(cups_file_t *fp) /* I
cupsdLogMessage(CUPSD_LOG_WARN,
"Unknown default encryption %s on line %d.",
value, linenum);
@@ -422,7 +394,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
}
#endif /* HAVE_SSL */
-@@ -3148,7 +3238,8 @@ read_location(cups_file_t *fp, /* I - C
+@@ -3278,7 +3368,8 @@ read_location(cups_file_t *fp, /* I - C
if (!value)
{
cupsdLogMessage(CUPSD_LOG_ERROR, "Syntax error on line %d.", linenum);
@@ -432,7 +404,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
if ((loc = cupsdCopyLocation(&parent)) == NULL)
-@@ -3196,7 +3287,8 @@ read_location(cups_file_t *fp, /* I - C
+@@ -3326,7 +3417,8 @@ read_location(cups_file_t *fp, /* I - C
cupsdLogMessage(CUPSD_LOG_ERROR,
"Unknown Location directive %s on line %d.",
line, linenum);
@@ -442,7 +414,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
}
-@@ -3204,7 +3296,7 @@ read_location(cups_file_t *fp, /* I - C
+@@ -3334,7 +3426,7 @@ read_location(cups_file_t *fp, /* I - C
"Unexpected end-of-file at line %d while reading location!",
linenum);
@@ -451,7 +423,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
-@@ -3262,7 +3354,8 @@ read_policy(cups_file_t *fp, /* I - Con
+@@ -3392,7 +3484,8 @@ read_policy(cups_file_t *fp, /* I - Con
if (!value)
{
cupsdLogMessage(CUPSD_LOG_ERROR, "Syntax error on line %d.", linenum);
@@ -461,7 +433,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
/*
-@@ -3336,7 +3429,8 @@ read_policy(cups_file_t *fp, /* I - Con
+@@ -3466,7 +3559,8 @@ read_policy(cups_file_t *fp, /* I - Con
cupsdLogMessage(CUPSD_LOG_ERROR,
"Missing directive before %s on line %d.",
line, linenum);
@@ -471,7 +443,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
else if (!parse_aaa(op, line, value, linenum))
{
-@@ -3349,7 +3443,8 @@ read_policy(cups_file_t *fp, /* I - Con
+@@ -3479,7 +3573,8 @@ read_policy(cups_file_t *fp, /* I - Con
"Unknown Policy directive %s on line %d.",
line, linenum);
@@ -481,7 +453,7 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
}
-@@ -3357,7 +3452,7 @@ read_policy(cups_file_t *fp, /* I - Con
+@@ -3487,7 +3582,7 @@ read_policy(cups_file_t *fp, /* I - Con
"Unexpected end-of-file at line %d while reading policy \"%s\"!",
linenum, policy);
@@ -490,9 +462,9 @@ diff -up cups-1.3.8/scheduler/conf.c.str2536 cups-1.3.8/scheduler/conf.c
}
-diff -up cups-1.3.8/scheduler/conf.h.str2536 cups-1.3.8/scheduler/conf.h
---- cups-1.3.8/scheduler/conf.h.str2536 2008-09-10 16:16:44.000000000 +0100
-+++ cups-1.3.8/scheduler/conf.h 2008-09-10 16:16:44.000000000 +0100
+diff -up cups-1.3.10/scheduler/conf.h.str2536 cups-1.3.10/scheduler/conf.h
+--- cups-1.3.10/scheduler/conf.h.str2536 2009-04-20 17:27:31.000000000 +0100
++++ cups-1.3.10/scheduler/conf.h 2009-04-20 17:27:31.000000000 +0100
@@ -38,6 +38,19 @@ typedef enum
@@ -513,7 +485,7 @@ diff -up cups-1.3.8/scheduler/conf.h.str2536 cups-1.3.8/scheduler/conf.h
* Printcap formats...
*/
-@@ -124,6 +137,8 @@ VAR int ClassifyOverride VALUE(0),
+@@ -140,6 +153,8 @@ VAR int ClassifyOverride VALUE(0),
/* Allow overrides? */
ConfigFilePerm VALUE(0640),
/* Permissions for config files */
@@ -522,9 +494,9 @@ diff -up cups-1.3.8/scheduler/conf.h.str2536 cups-1.3.8/scheduler/conf.h
LogFilePerm VALUE(0644),
/* Permissions for log files */
LogLevel VALUE(CUPSD_LOG_ERROR),
-diff -up cups-1.3.8/scheduler/dirsvc.c.str2536 cups-1.3.8/scheduler/dirsvc.c
---- cups-1.3.8/scheduler/dirsvc.c.str2536 2008-07-18 21:30:23.000000000 +0100
-+++ cups-1.3.8/scheduler/dirsvc.c 2008-09-10 16:16:44.000000000 +0100
+diff -up cups-1.3.10/scheduler/dirsvc.c.str2536 cups-1.3.10/scheduler/dirsvc.c
+--- cups-1.3.10/scheduler/dirsvc.c.str2536 2009-02-12 22:23:31.000000000 +0000
++++ cups-1.3.10/scheduler/dirsvc.c 2009-04-20 17:27:31.000000000 +0100
@@ -954,9 +954,14 @@ cupsdStartBrowsing(void)
strerror(errno));
BrowseLocalProtocols &= ~BROWSE_CUPS;
@@ -681,26 +653,10 @@ diff -up cups-1.3.8/scheduler/dirsvc.c.str2536 cups-1.3.8/scheduler/dirsvc.c
}
}
}
-diff -up cups-1.3.8/scheduler/listen.c.str2536 cups-1.3.8/scheduler/listen.c
---- cups-1.3.8/scheduler/listen.c.str2536 2007-08-13 18:20:14.000000000 +0100
-+++ cups-1.3.8/scheduler/listen.c 2008-09-10 16:16:44.000000000 +0100
-@@ -150,10 +150,15 @@ cupsdStartListening(void)
- httpAddrFreeList(ServerAddrs);
-
- if ((ServerAddrs = httpAddrGetList(ServerName, AF_UNSPEC, NULL)) == NULL)
-+ {
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "Unable to find IP address for server name \"%s\"!\n",
- ServerName);
-
-+ if (FatalErrors & CUPSD_FATAL_LISTEN)
-+ cupsdEndProcess(getpid(), 0);
-+ }
-+
- /*
- * Setup socket listeners...
- */
-@@ -194,6 +199,20 @@ cupsdStartListening(void)
+diff -up cups-1.3.10/scheduler/listen.c.str2536 cups-1.3.10/scheduler/listen.c
+--- cups-1.3.10/scheduler/listen.c.str2536 2009-01-15 19:12:15.000000000 +0000
++++ cups-1.3.10/scheduler/listen.c 2009-04-20 17:27:31.000000000 +0100
+@@ -182,6 +182,20 @@ cupsdStartListening(void)
cupsdLogMessage(CUPSD_LOG_ERROR,
"Unable to open listen socket for address %s:%d - %s.",
s, p, strerror(errno));
@@ -721,7 +677,7 @@ diff -up cups-1.3.8/scheduler/listen.c.str2536 cups-1.3.8/scheduler/listen.c
continue;
}
-@@ -278,6 +297,10 @@ cupsdStartListening(void)
+@@ -266,6 +280,10 @@ cupsdStartListening(void)
s, p, strerror(errno));
close(lis->fd);
lis->fd = -1;
@@ -732,7 +688,7 @@ diff -up cups-1.3.8/scheduler/listen.c.str2536 cups-1.3.8/scheduler/listen.c
continue;
}
-@@ -290,7 +313,14 @@ cupsdStartListening(void)
+@@ -278,7 +296,14 @@ cupsdStartListening(void)
cupsdLogMessage(CUPSD_LOG_ERROR,
"Unable to listen for clients on address %s:%d - %s.",
s, p, strerror(errno));
@@ -748,7 +704,7 @@ diff -up cups-1.3.8/scheduler/listen.c.str2536 cups-1.3.8/scheduler/listen.c
}
}
-@@ -339,11 +369,8 @@ cupsdStartListening(void)
+@@ -327,11 +352,8 @@ cupsdStartListening(void)
"No Listen or Port lines were found to allow access via "
"localhost!");
@@ -762,9 +718,9 @@ diff -up cups-1.3.8/scheduler/listen.c.str2536 cups-1.3.8/scheduler/listen.c
}
/*
-diff -up cups-1.3.8/scheduler/log.c.str2536 cups-1.3.8/scheduler/log.c
---- cups-1.3.8/scheduler/log.c.str2536 2008-09-10 16:16:44.000000000 +0100
-+++ cups-1.3.8/scheduler/log.c 2008-09-10 16:16:44.000000000 +0100
+diff -up cups-1.3.10/scheduler/log.c.str2536 cups-1.3.10/scheduler/log.c
+--- cups-1.3.10/scheduler/log.c.str2536 2009-04-20 17:27:31.000000000 +0100
++++ cups-1.3.10/scheduler/log.c 2009-04-20 17:27:31.000000000 +0100
@@ -546,7 +546,20 @@ check_log_file(cups_file_t **lf, /* IO -
if (!strncmp(filename, CUPS_LOGDIR, strlen(CUPS_LOGDIR)))
diff --git a/cups-str2988.patch b/cups-str2988.patch
deleted file mode 100644
index 16123dd..0000000
--- a/cups-str2988.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up cups-1.3.9/scheduler/client.c.str2988 cups-1.3.9/scheduler/client.c
---- cups-1.3.9/scheduler/client.c.str2988 2008-09-17 01:42:56.000000000 +0100
-+++ cups-1.3.9/scheduler/client.c 2008-11-13 10:09:05.000000000 +0000
-@@ -1011,6 +1011,15 @@ cupsdReadClient(cupsd_client_t *con) /*
- break;
-
- default :
-+ if (!data_ready(con) && recv(con->http.fd, buf, 1, MSG_PEEK) < 1)
-+ {
-+ /*
-+ * Connection closed...
-+ */
-+
-+ cupsdCloseClient(con);
-+ return;
-+ }
- break; /* Anti-compiler-warning-code */
- }
-
diff --git a/cups-str3059.patch b/cups-str3059.patch
deleted file mode 100644
index d11ecdd..0000000
--- a/cups-str3059.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up cups-1.3.9/scheduler/type.c.str3059 cups-1.3.9/scheduler/type.c
---- cups-1.3.9/scheduler/type.c.str3059 2008-07-11 23:48:49.000000000 +0100
-+++ cups-1.3.9/scheduler/type.c 2009-01-28 17:42:27.000000000 +0000
-@@ -187,8 +187,7 @@ mimeAddTypeRule(mime_type_t *mt, /* I -
- else if (*rule == '+' && current != NULL)
- {
- if (logic != MIME_MAGIC_AND &&
-- current != NULL && current->prev != NULL &&
-- current->prev->prev != NULL)
-+ current != NULL && current->prev != NULL)
- {
- /*
- * OK, we have more than 1 rule in the current tree level... Make a
diff --git a/cups-str3077.patch b/cups-str3077.patch
deleted file mode 100644
index 3dd4535..0000000
--- a/cups-str3077.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up cups-1.3.9/cups/encode.c.str3077 cups-1.3.9/cups/encode.c
---- cups-1.3.9/cups/encode.c.str3077 2008-07-11 23:48:49.000000000 +0100
-+++ cups-1.3.9/cups/encode.c 2009-01-28 17:02:21.000000000 +0000
-@@ -63,10 +63,10 @@ static const _ipp_option_t ipp_options[]
- { 0, "gamma-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
- { 0, "hue", IPP_TAG_INTEGER, IPP_TAG_JOB },
- { 0, "hue-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
-- { 0, "job-k-limit", IPP_TAG_INTEGER, IPP_TAG_JOB },
-- { 0, "job-page-limit", IPP_TAG_INTEGER, IPP_TAG_JOB },
-+ { 0, "job-k-limit", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
-+ { 0, "job-page-limit", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
- { 0, "job-priority", IPP_TAG_INTEGER, IPP_TAG_JOB },
-- { 0, "job-quota-period", IPP_TAG_INTEGER, IPP_TAG_JOB },
-+ { 0, "job-quota-period", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
- { 1, "job-sheets", IPP_TAG_NAME, IPP_TAG_JOB },
- { 1, "job-sheets-default", IPP_TAG_NAME, IPP_TAG_PRINTER },
- { 0, "job-uuid", IPP_TAG_URI, IPP_TAG_JOB },
diff --git a/cups-str3078.patch b/cups-str3078.patch
deleted file mode 100644
index dfc314d..0000000
--- a/cups-str3078.patch
+++ /dev/null
@@ -1,244 +0,0 @@
-diff -up cups-1.3.9/scheduler/job.c.str3078 cups-1.3.9/scheduler/job.c
---- cups-1.3.9/scheduler/job.c.str3078 2009-01-28 17:02:21.000000000 +0000
-+++ cups-1.3.9/scheduler/job.c 2009-01-28 17:03:05.000000000 +0000
-@@ -3,7 +3,7 @@
- *
- * Job management routines for the Common UNIX Printing System (CUPS).
- *
-- * Copyright 2007-2008 by Apple Inc.
-+ * Copyright 2007-2009 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
- *
- * These coded instructions, statements, and computer programs are the
-@@ -1019,7 +1019,7 @@ cupsdLoadAllJobs(void)
- * 'cupsdLoadJob()' - Load a single job...
- */
-
--void
-+int /* O - 1 on success, 0 on failure */
- cupsdLoadJob(cupsd_job_t *job) /* I - Job */
- {
- char jobfile[1024]; /* Job filename */
-@@ -1037,14 +1037,14 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- if (job->state_value > IPP_JOB_STOPPED)
- job->access_time = time(NULL);
-
-- return;
-+ return (1);
- }
-
- if ((job->attrs = ippNew()) == NULL)
- {
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Ran out of memory for job attributes!", job->id);
-- return;
-+ return (0);
- }
-
- /*
-@@ -1059,9 +1059,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to open job control file \"%s\" - %s!",
- job->id, jobfile, strerror(errno));
-- ippDelete(job->attrs);
-- job->attrs = NULL;
-- return;
-+ goto error;
- }
-
- if (ippReadIO(fp, (ipp_iocb_t)cupsFileRead, 1, NULL, job->attrs) != IPP_DATA)
-@@ -1070,10 +1068,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- "[Job %d] Unable to read job control file \"%s\"!",
- job->id, jobfile);
- cupsFileClose(fp);
-- ippDelete(job->attrs);
-- job->attrs = NULL;
-- unlink(jobfile);
-- return;
-+ goto error;
- }
-
- cupsFileClose(fp);
-@@ -1089,10 +1084,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- "[Job %d] Missing or bad job-state attribute in "
- "control file!",
- job->id);
-- ippDelete(job->attrs);
-- job->attrs = NULL;
-- unlink(jobfile);
-- return;
-+ goto error;
- }
-
- job->state_value = (ipp_jstate_t)job->state->values[0].integer;
-@@ -1105,10 +1097,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] No job-printer-uri attribute in control file!",
- job->id);
-- ippDelete(job->attrs);
-- job->attrs = NULL;
-- unlink(jobfile);
-- return;
-+ goto error;
- }
-
- if ((dest = cupsdValidateDest(attr->values[0].string.text, &(job->dtype),
-@@ -1117,10 +1106,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to queue job for destination \"%s\"!",
- job->id, attr->values[0].string.text);
-- ippDelete(job->attrs);
-- job->attrs = NULL;
-- unlink(jobfile);
-- return;
-+ goto error;
- }
-
- cupsdSetString(&job->dest, dest);
-@@ -1130,10 +1116,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Unable to queue job for destination \"%s\"!",
- job->id, job->dest);
-- ippDelete(job->attrs);
-- job->attrs = NULL;
-- unlink(jobfile);
-- return;
-+ goto error;
- }
-
- job->sheets = ippFindAttribute(job->attrs, "job-media-sheets-completed",
-@@ -1148,10 +1131,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad job-priority attribute in "
- "control file!", job->id);
-- ippDelete(job->attrs);
-- job->attrs = NULL;
-- unlink(jobfile);
-- return;
-+ goto error;
- }
-
- job->priority = attr->values[0].integer;
-@@ -1165,10 +1145,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Missing or bad job-originating-user-name "
- "attribute in control file!", job->id);
-- ippDelete(job->attrs);
-- job->attrs = NULL;
-- unlink(jobfile);
-- return;
-+ goto error;
- }
-
- cupsdSetString(&job->username, attr->values[0].string.text);
-@@ -1237,7 +1214,7 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "[Job %d] Ran out of memory for job file types!",
- job->id);
-- return;
-+ return (1);
- }
-
- job->compressions = compressions;
-@@ -1293,7 +1270,20 @@ cupsdLoadJob(cupsd_job_t *job) /* I - J
- cupsFileClose(fp);
- }
- }
-+
- job->access_time = time(NULL);
-+ return (1);
-+
-+ /*
-+ * If we get here then something bad happened...
-+ */
-+
-+ error:
-+
-+ ippDelete(job->attrs);
-+ job->attrs = NULL;
-+ unlink(jobfile);
-+ return (0);
- }
-
-
-diff -up cups-1.3.9/scheduler/job.h.str3078 cups-1.3.9/scheduler/job.h
---- cups-1.3.9/scheduler/job.h.str3078 2008-01-16 22:20:33.000000000 +0000
-+++ cups-1.3.9/scheduler/job.h 2009-01-28 17:03:05.000000000 +0000
-@@ -3,7 +3,7 @@
- *
- * Print job definitions for the Common UNIX Printing System (CUPS) scheduler.
- *
-- * Copyright 2007-2008 by Apple Inc.
-+ * Copyright 2007-2009 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
- *
- * These coded instructions, statements, and computer programs are the
-@@ -112,7 +112,7 @@ extern int cupsdGetPrinterJobCount(cons
- extern int cupsdGetUserJobCount(const char *username);
- extern void cupsdHoldJob(cupsd_job_t *job);
- extern void cupsdLoadAllJobs(void);
--extern void cupsdLoadJob(cupsd_job_t *job);
-+extern int cupsdLoadJob(cupsd_job_t *job);
- extern void cupsdMoveJob(cupsd_job_t *job, cupsd_printer_t *p);
- extern void cupsdReleaseJob(cupsd_job_t *job);
- extern void cupsdRestartJob(cupsd_job_t *job);
-diff -up cups-1.3.9/scheduler/quotas.c.str3078 cups-1.3.9/scheduler/quotas.c
---- cups-1.3.9/scheduler/quotas.c.str3078 2007-09-12 22:33:23.000000000 +0100
-+++ cups-1.3.9/scheduler/quotas.c 2009-01-28 17:03:05.000000000 +0000
-@@ -3,7 +3,7 @@
- *
- * Quota routines for the Common UNIX Printing System (CUPS).
- *
-- * Copyright 2007 by Apple Inc.
-+ * Copyright 2007-2009 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
-@@ -155,10 +155,22 @@ cupsdUpdateQuota(
- job;
- job = (cupsd_job_t *)cupsArrayNext(Jobs))
- {
-+ /*
-+ * We only care about the current printer/class and user...
-+ */
-+
- if (strcasecmp(job->dest, p->name) != 0 ||
- strcasecmp(job->username, q->username) != 0)
- continue;
-
-+ /*
-+ * Make sure attributes are loaded; we always call cupsdLoadJob() to ensure
-+ * the access_time member is updated so the job isn't unloaded right away...
-+ */
-+
-+ if (!cupsdLoadJob(job))
-+ continue;
-+
- if ((attr = ippFindAttribute(job->attrs, "time-at-completion",
- IPP_TAG_INTEGER)) == NULL)
- if ((attr = ippFindAttribute(job->attrs, "time-at-processing",
-@@ -166,11 +178,22 @@ cupsdUpdateQuota(
- attr = ippFindAttribute(job->attrs, "time-at-creation",
- IPP_TAG_INTEGER);
-
-- if (attr == NULL)
-- break;
-+ if (!attr)
-+ {
-+ /*
-+ * This should never happen since cupsdLoadJob() checks for
-+ * time-at-creation, but if it does just ignore this job...
-+ */
-+
-+ continue;
-+ }
-
- if (attr->values[0].integer < curtime)
- {
-+ /*
-+ * This job is too old to count towards the quota, ignore it...
-+ */
-+
- if (JobAutoPurge)
- cupsdCancelJob(job, 1, IPP_JOB_CANCELED);
-
diff --git a/cups.spec b/cups.spec
index 80dde9d..a10ecde 100644
--- a/cups.spec
+++ b/cups.spec
@@ -6,8 +6,8 @@
Summary: Common Unix Printing System
Name: cups
-Version: 1.3.9
-Release: 9%{?svn:.svn%{svn}}%{?dist}
+Version: 1.3.10
+Release: 1%{?svn:.svn%{svn}}%{?dist}
License: GPLv2
Group: System Environment/Daemons
Source: ftp://ftp.easysw.com/pub/cups/test//cups-%{version}%{?svn:svn-r%{svn}}-source.tar.bz2
@@ -27,8 +27,6 @@ Source15: textonly.ppd
Patch1: cups-no-gzip-man.patch
Patch2: cups-1.1.16-system-auth.patch
Patch3: cups-multilib.patch
-Patch4: cups-ext.patch
-Patch5: cups-includeifexists.patch
Patch6: cups-banners.patch
Patch7: cups-serverbin-compat.patch
Patch8: cups-no-export-ssllibs.patch
@@ -48,15 +46,8 @@ Patch21: cups-usb-paperout.patch
Patch22: cups-getnameddest.patch
Patch23: cups-str2101.patch
Patch24: cups-str2536.patch
-Patch25: cups-str2988.patch
Patch26: cups-str3023.patch
-Patch27: cups-CVE-2008-5183.patch
-Patch28: cups-CVE-2008-5286.patch
Patch29: cups-str2831.patch
-Patch30: cups-str3077.patch
-Patch31: cups-str3078.patch
-Patch32: cups-str3059.patch
-Patch33: cups-str3055.patch
Patch100: cups-lspp.patch
Epoch: 1
Url: http://www.cups.org/
@@ -67,9 +58,6 @@ Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Provides: /usr/bin/lpq /usr/bin/lpr /usr/bin/lp /usr/bin/cancel /usr/bin/lprm /usr/bin/lpstat
Prereq: /usr/sbin/alternatives
%endif
-%if %{?svn:1}%{!?svn:0}
-Requires: poppler-utils
-%endif
# Unconditionally obsolete LPRng so that upgrades work properly.
Obsoletes: lpd lpr LPRng <= 3.8.15-3
@@ -88,6 +76,7 @@ BuildRequires: libpng-devel
BuildRequires: libtiff-devel
BuildRequires: krb5-devel
BuildRequires: avahi-compat-libdns_sd-devel
+BuildRequires: poppler-utils
%if %lspp
BuildPrereq: libselinux-devel >= 1.23
@@ -110,6 +99,8 @@ Requires: tmpwatch
# Require the package here so that we know /etc/portreserve/ exists.
Requires: portreserve
+Requires: poppler-utils
+
%package devel
Summary: Common Unix Printing System - development environment
Group: Development/Libraries
@@ -170,8 +161,6 @@ module.
%patch1 -p1 -b .no-gzip-man
%patch2 -p1 -b .system-auth
%patch3 -p1 -b .multilib
-%patch4 -p1 -b .ext
-%patch5 -p1 -b .includeifexists
%patch6 -p1 -b .banners
%patch7 -p1 -b .serverbin-compat
%patch8 -p1 -b .no-export-ssllibs
@@ -191,15 +180,8 @@ module.
%patch22 -p1 -b .getnameddest
%patch23 -p1 -b .str2101
%patch24 -p1 -b .str2536
-%patch25 -p1 -b .str2988
%patch26 -p1 -b .str3023
-%patch27 -p1 -b .CVE-2008-5183
-%patch28 -p1 -b .CVE-2008-5286
%patch29 -p1 -b .str2831
-%patch30 -p1 -b .str3077
-%patch31 -p1 -b .str3078
-%patch32 -p1 -b .str3059
-%patch33 -p1 -b .str3055
%if %lspp
%patch100 -p1 -b .lspp
@@ -221,7 +203,8 @@ export CFLAGS="-DLDAP_DEPRECATED=1"
--enable-lspp \
%endif
--with-log-file-perm=0600 --enable-pie --enable-relro \
- --enable-pdftops --with-dbusdir=%{_sysconfdir}/dbus-1 \
+ --enable-pdftops --with-pdftops=pdftops \
+ --with-dbusdir=%{_sysconfdir}/dbus-1 \
--with-php=/usr/bin/php-cgi \
localedir=%{_datadir}/locale
@@ -491,6 +474,15 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/php/modules/*.so
%changelog
+* Tue Apr 21 2009 Tim Waugh 1:1.3.10-1
+- 1.3.10. No longer need ext, includeifexists, str2988,
+ CVE-2008-5183, CVE-2008-5286, str3077, str3078, str3059, str3055 patches.
+- Requires poppler-utils.
+- NOTE: If your CUPS server is accessed using a hostname or hostnames
+ not known to the server itself you must add "ServerAlias hostname"
+ for each such name. The special line "ServerAlias *" disables checking
+ (but this allows DNS rebinding attacks).
+
* Mon Mar 9 2009 Tim Waugh 1:1.3.9-9
- Fixed getnameddest patch (bug #481481, STR #3082).
- Handle https:// device URIs (bug #478677, STR #3122).
diff --git a/sources b/sources
index c625209..49fb323 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
b0bb017098e8e76b8a25e666c41ce540 postscript.ppd.gz
-cf63f451c356e6cabb08972d4d11c365 cups-1.3.9-source.tar.bz2
+84fffe96b8537c81a463faccead80026 cups-1.3.10-source.tar.bz2