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/

CUPS 1.1.18FileDevice

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