From a5bc511332a6d9706c22a8588b6bdf55923e477b Mon Sep 17 00:00:00 2001 From: Tim Waugh Date: Jun 18 2010 10:41:29 +0000 Subject: - 1.4.4. Fixes several security vulnerabilities (bug #605399): CVE-2010-0540, CVE-2010-0542, CVE-2010-1748. No longer need str3503, str3399, str3505, str3541, str3425p2 or CVE-2010-0302 patches. - Fix lpd provides. - Added comments for all sources and patches. - Reset status after successful ipp job (bug #548219, STR #3460). - Install udev rules in correct place (bug #530378). - Removed unapplied gnutls-gcrypt-threads patch. Fixed typos in descriptions for lpd and php sub-packages. - Add an SNMP query for Ricoh's device ID OID (STR #3552). - Mark DNS-SD Device IDs that have been guessed at with "FZY:1;". - Add an SNMP query for HP's device ID OID (STR #3552). - Don't mark initscript as config file. - Use %{_initddir}, %{_sysconfdir} and SMP make flags. - Use mode 0755 for binaries and libraries where appropriate. - Removed use of prereq and buildprereq. - Fixed use of '%' in changelog. - Versioned explicit obsoletes/provides. - Use tabs throughout. - Install udev rules in correct place (bug #530378). - Fix locale code for Norwegian (bug #520379). - Fixed cups.init to be LSB compliant (bug #521641) - Changed cups.init to be LSB compliant (bug #521641), i.e. return code "2" (instead of "3") if invalid arguments return code "4" if restarting service under nonprivileged user return code "5" if cupsd not exist or is not executable return code "6" if cupsd.conf not exist - Use password-auth common PAM configuration instead of system-auth when available. - Fixed 'service cups status' to check for correct subsys name (bug #521641). - Renumbered patches and sources. - Use upstream method of handling SNMP quirks in PPDs (STR #3551, bug #581825). - Added back still useful str3425.patch. Second part of STR #3425 is still not fixed in 1.4.3 - Use numeric addresses for interfaces unless HostNameLookups are turned on (bug #583054). - Handle SNMP supply level quirks (bug #581825). - No longer need CVE-2009-3553, str3381, str3390, str3391, str3403, str3407, str3413, str3418, str3422, str3425, str3428, str3431, str3435, str3436, str3439, str3440, str3442, str3448, str3458, str3460, cups-sidechannel-intrs, negative-snmp-string-length, cups-media-empty-warning patches. --- diff --git a/.cvsignore b/.cvsignore index 72468f6..1fc0c29 100644 --- a/.cvsignore +++ b/.cvsignore @@ -43,3 +43,4 @@ cups-1.4b2-source.tar.bz2 cups-1.4b2-svn8404-source.tar.bz2 cups-1.4b2-source.tar.bz2 cups-1.4b2-svn8404-source.tar.bz2 +cups-1.4.4-source.tar.bz2 diff --git a/cups-0755.patch b/cups-0755.patch new file mode 100644 index 0000000..d81993e --- /dev/null +++ b/cups-0755.patch @@ -0,0 +1,20 @@ +diff -up cups-1.4.2/Makedefs.in.0755 cups-1.4.2/Makedefs.in +--- cups-1.4.2/Makedefs.in.0755 2010-01-13 17:06:48.507913044 +0000 ++++ cups-1.4.2/Makedefs.in 2010-01-13 17:07:10.049912905 +0000 +@@ -41,13 +41,13 @@ SHELL = /bin/sh + # Installation programs... + # + +-INSTALL_BIN = $(LIBTOOL) $(INSTALL) -c -m 555 @INSTALL_STRIP@ ++INSTALL_BIN = $(LIBTOOL) $(INSTALL) -c -m 755 @INSTALL_STRIP@ + INSTALL_CONFIG = $(INSTALL) -c -m @CUPS_CONFIG_FILE_PERM@ + INSTALL_DATA = $(INSTALL) -c -m 444 + INSTALL_DIR = $(INSTALL) -d +-INSTALL_LIB = $(LIBTOOL) $(INSTALL) -c -m 555 @INSTALL_STRIP@ ++INSTALL_LIB = $(LIBTOOL) $(INSTALL) -c -m 755 @INSTALL_STRIP@ + INSTALL_MAN = $(INSTALL) -c -m 444 +-INSTALL_SCRIPT = $(INSTALL) -c -m 555 ++INSTALL_SCRIPT = $(INSTALL) -c -m 755 + + # + # Default user, group, and system groups for the scheduler... diff --git a/cups-CVE-2010-0302.patch b/cups-CVE-2010-0302.patch deleted file mode 100644 index 63d2081..0000000 --- a/cups-CVE-2010-0302.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up cups-1.4.2/scheduler/select.c.CVE-2010-0302 cups-1.4.2/scheduler/select.c ---- cups-1.4.2/scheduler/select.c.CVE-2010-0302 2010-03-05 10:37:49.990476887 +0000 -+++ cups-1.4.2/scheduler/select.c 2010-03-05 10:38:01.803478081 +0000 -@@ -454,7 +454,8 @@ cupsdDoSelect(long timeout) /* I - Time - if (fdptr->read_cb && event->filter == EVFILT_READ) - (*(fdptr->read_cb))(fdptr->data); - -- if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE) -+ if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE && -+ !cupsArrayFind(cupsd_inactive_fds, fdptr)) - (*(fdptr->write_cb))(fdptr->data); - - release_fd(fdptr); -@@ -499,7 +500,9 @@ cupsdDoSelect(long timeout) /* I - Time - if (fdptr->read_cb && (event->events & (EPOLLIN | EPOLLERR | EPOLLHUP))) - (*(fdptr->read_cb))(fdptr->data); - -- if (fdptr->use > 1 && fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP))) -+ if (fdptr->use > 1 && fdptr->write_cb && -+ (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)) && -+ !cupsArrayFind(cupsd_inactive_fds, fdptr)) - (*(fdptr->write_cb))(fdptr->data); - - release_fd(fdptr); diff --git a/cups-dnssd-deviceid.patch b/cups-dnssd-deviceid.patch new file mode 100644 index 0000000..abb8366 --- /dev/null +++ b/cups-dnssd-deviceid.patch @@ -0,0 +1,38 @@ +diff -up cups-1.4.3/backend/dnssd.c.dnssd-deviceid.patch cups-1.4.3/backend/dnssd.c +--- cups-1.4.3/backend/dnssd.c.dnssd-deviceid.patch 2010-04-16 19:36:12.226148774 +0100 ++++ cups-1.4.3/backend/dnssd.c 2010-04-16 19:39:53.314148240 +0100 +@@ -1192,15 +1192,22 @@ find_device (cups_array_t *devices, + if (device->device_id) + free(device->device_id); + ++ if (device_id[0]) ++ { ++ /* Mark this as the real device ID. */ ++ ptr = device_id + strlen(device_id); ++ snprintf(ptr, sizeof(device_id) - (ptr - device_id), "FZY:0;"); ++ } ++ + if (!device_id[0] && strcmp(model, "Unknown")) + { + if (make_and_model[0]) +- snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s;", ++ snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s;FZY:1;", + make_and_model, model); + else if (!strncasecmp(model, "designjet ", 10)) +- snprintf(device_id, sizeof(device_id), "MFG:HP;MDL:%s", model + 10); ++ snprintf(device_id, sizeof(device_id), "MFG:HP;MDL:%s;FZY:1;", model + 10); + else if (!strncasecmp(model, "stylus ", 7)) +- snprintf(device_id, sizeof(device_id), "MFG:EPSON;MDL:%s", model + 7); ++ snprintf(device_id, sizeof(device_id), "MFG:EPSON;MDL:%s;FZY:1;", model + 7); + else if ((ptr = strchr(model, ' ')) != NULL) + { + /* +@@ -1210,7 +1217,7 @@ find_device (cups_array_t *devices, + memcpy(make_and_model, model, ptr - model); + make_and_model[ptr - model] = '\0'; + +- snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s", ++ snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s;FZY:1;", + make_and_model, ptr + 1); + } + } diff --git a/cups-getpass.patch b/cups-getpass.patch index 577d43a..1c1da96 100644 --- a/cups-getpass.patch +++ b/cups-getpass.patch @@ -1,6 +1,7 @@ ---- cups-1.2.6/cups/usersys.c.getpass 2006-08-29 16:51:19.000000000 +0100 -+++ cups-1.2.6/cups/usersys.c 2006-11-13 16:19:32.000000000 +0000 -@@ -46,6 +46,8 @@ +diff -up cups-1.4.4/cups/usersys.c.getpass cups-1.4.4/cups/usersys.c +--- cups-1.4.4/cups/usersys.c.getpass 2010-03-30 23:07:33.000000000 +0100 ++++ cups-1.4.4/cups/usersys.c 2010-06-18 09:38:08.368096897 +0100 +@@ -41,6 +41,8 @@ #include "globals.h" #include #include @@ -8,11 +9,11 @@ +#include #ifdef WIN32 # include - #endif /* WIN32 */ -@@ -455,7 +457,29 @@ - const char * /* O - Password */ - _cupsGetPassword(const char *prompt) /* I - Prompt string */ - { + #else +@@ -406,7 +408,29 @@ _cupsGetPassword(const char *prompt) /* + * Use the standard getpass function to get a password from the console. + */ + - return (getpass(prompt)); + static char password[100]; + struct termios oldtio, newtio; @@ -37,6 +38,6 @@ + else + password[0] ='\0'; + return password; - } #endif /* WIN32 */ + } diff --git a/cups-hostnamelookups.patch b/cups-hostnamelookups.patch new file mode 100644 index 0000000..75b6abf --- /dev/null +++ b/cups-hostnamelookups.patch @@ -0,0 +1,24 @@ +diff -up cups-1.4.4/scheduler/network.c.hostnamelookups cups-1.4.4/scheduler/network.c +--- cups-1.4.4/scheduler/network.c.hostnamelookups 2010-04-09 23:42:09.000000000 +0100 ++++ cups-1.4.4/scheduler/network.c 2010-06-18 11:13:02.331979867 +0100 +@@ -154,11 +154,7 @@ cupsdNetIFUpdate(void) + * Try looking up the hostname for the address as needed... + */ + +-#ifdef __APPLE__ + if (HostNameLookups) +-#else +- if (HostNameLookups || RemotePort) +-#endif /* __APPLE__ */ + httpAddrLookup((http_addr_t *)(addr->ifa_addr), hostname, + sizeof(hostname)); + else +@@ -166,7 +162,7 @@ cupsdNetIFUpdate(void) + /* + * Map the default server address and localhost to the server name + * and localhost, respectively; for all other addresses, use the +- * dotted notation... ++ * numeric address... + */ + + if (httpAddrLocalhost((http_addr_t *)(addr->ifa_addr))) diff --git a/cups-hp-deviceid-oid.patch b/cups-hp-deviceid-oid.patch new file mode 100644 index 0000000..29f0781 --- /dev/null +++ b/cups-hp-deviceid-oid.patch @@ -0,0 +1,21 @@ +diff -up cups-1.4.3/backend/snmp.c.hp-deviceid-oid cups-1.4.3/backend/snmp.c +--- cups-1.4.3/backend/snmp.c.hp-deviceid-oid 2009-12-08 02:13:42.000000000 +0000 ++++ cups-1.4.3/backend/snmp.c 2010-04-13 15:00:26.486148914 +0100 +@@ -194,6 +194,7 @@ static const int UriOID[] = { CUPS_OID_p + static const int LexmarkProductOID[] = { 1,3,6,1,4,1,641,2,1,2,1,2,1,-1 }; + static const int LexmarkProductOID2[] = { 1,3,6,1,4,1,674,10898,100,2,1,2,1,2,1,-1 }; + static const int LexmarkDeviceIdOID[] = { 1,3,6,1,4,1,641,2,1,2,1,3,1,-1 }; ++static const int HPDeviceIdOID[] = { 1,3,6,1,4,1,11,2,3,9,1,1,7,0,-1 }; + static const int XeroxProductOID[] = { 1,3,6,1,4,1,128,2,1,3,1,2,0,-1 }; + static cups_array_t *DeviceURIs = NULL; + static int HostNameLookups = 0; +@@ -1003,6 +1004,9 @@ read_snmp_response(int fd) /* I - SNMP + _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, + packet.community, CUPS_ASN1_GET_REQUEST, + DEVICE_PRODUCT, XeroxProductOID); ++ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, ++ packet.community, CUPS_ASN1_GET_REQUEST, ++ DEVICE_ID, HPDeviceIdOID); + break; + + case DEVICE_DESCRIPTION : diff --git a/cups-lspp.patch b/cups-lspp.patch index 90f20ad..c1bf5f2 100644 --- a/cups-lspp.patch +++ b/cups-lspp.patch @@ -1,7 +1,7 @@ -diff -up cups-1.4.1/config.h.in.lspp cups-1.4.1/config.h.in ---- cups-1.4.1/config.h.in.lspp 2009-09-14 16:59:30.108873598 +0100 -+++ cups-1.4.1/config.h.in 2009-09-14 16:59:30.122873526 +0100 -@@ -619,6 +619,13 @@ +diff -up cups-1.4.4/config.h.in.lspp cups-1.4.4/config.h.in +--- cups-1.4.4/config.h.in.lspp 2010-06-18 09:38:22.645104842 +0100 ++++ cups-1.4.4/config.h.in 2010-06-18 09:38:22.681104733 +0100 +@@ -646,6 +646,13 @@ #undef HAVE_TCPD_H @@ -15,9 +15,9 @@ diff -up cups-1.4.1/config.h.in.lspp cups-1.4.1/config.h.in #endif /* !_CUPS_CONFIG_H_ */ /* -diff -up /dev/null cups-1.4.1/config-scripts/cups-lspp.m4 ---- /dev/null 2009-09-14 09:02:25.290577766 +0100 -+++ cups-1.4.1/config-scripts/cups-lspp.m4 2009-09-14 16:59:30.124872629 +0100 +diff -up cups-1.4.4/config-scripts/cups-lspp.m4.lspp cups-1.4.4/config-scripts/cups-lspp.m4 +--- cups-1.4.4/config-scripts/cups-lspp.m4.lspp 2010-06-18 09:38:22.681104733 +0100 ++++ cups-1.4.4/config-scripts/cups-lspp.m4 2010-06-18 09:38:22.681104733 +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.4.1/config-scripts/cups-lspp.m4 + ;; + esac +fi -diff -up cups-1.4.1/configure.in.lspp cups-1.4.1/configure.in ---- cups-1.4.1/configure.in.lspp 2008-11-14 19:32:22.000000000 +0000 -+++ cups-1.4.1/configure.in 2009-09-14 16:59:30.125879233 +0100 +diff -up cups-1.4.4/configure.in.lspp cups-1.4.4/configure.in +--- cups-1.4.4/configure.in.lspp 2010-06-16 01:39:16.000000000 +0100 ++++ cups-1.4.4/configure.in 2010-06-18 09:38:22.682104565 +0100 @@ -42,6 +42,8 @@ sinclude(config-scripts/cups-pap.m4) sinclude(config-scripts/cups-pdf.m4) sinclude(config-scripts/cups-scripting.m4) @@ -67,9 +67,9 @@ diff -up cups-1.4.1/configure.in.lspp cups-1.4.1/configure.in INSTALL_LANGUAGES="" UNINSTALL_LANGUAGES="" LANGFILES="" -diff -up cups-1.4.1/cups/cups.h.lspp cups-1.4.1/cups/cups.h ---- cups-1.4.1/cups/cups.h.lspp 2009-08-28 18:51:05.000000000 +0100 -+++ cups-1.4.1/cups/cups.h 2009-09-14 16:59:30.127873074 +0100 +diff -up cups-1.4.4/cups/cups.h.lspp cups-1.4.4/cups/cups.h +--- cups-1.4.4/cups/cups.h.lspp 2010-04-23 19:56:34.000000000 +0100 ++++ cups-1.4.4/cups/cups.h 2010-06-18 09:38:22.682104565 +0100 @@ -15,6 +15,9 @@ * This file is subject to the Apple OS-Developed Software exception. */ @@ -80,7 +80,7 @@ diff -up cups-1.4.1/cups/cups.h.lspp cups-1.4.1/cups/cups.h #ifndef _CUPS_CUPS_H_ # define _CUPS_CUPS_H_ -@@ -84,6 +87,12 @@ extern "C" { +@@ -86,6 +89,12 @@ extern "C" { # define CUPS_WHICHJOBS_COMPLETED 1 @@ -93,9 +93,9 @@ diff -up cups-1.4.1/cups/cups.h.lspp cups-1.4.1/cups/cups.h /* * Types and structures... */ -diff -up cups-1.4.1/data/Makefile.lspp cups-1.4.1/data/Makefile ---- cups-1.4.1/data/Makefile.lspp 2008-11-12 19:30:57.000000000 +0000 -+++ cups-1.4.1/data/Makefile 2009-09-14 16:59:30.129874067 +0100 +diff -up cups-1.4.4/data/Makefile.lspp cups-1.4.4/data/Makefile +--- cups-1.4.4/data/Makefile.lspp 2008-11-12 19:30:57.000000000 +0000 ++++ cups-1.4.4/data/Makefile 2010-06-18 09:38:22.686104153 +0100 @@ -25,7 +25,10 @@ BANNERS = \ secret \ standard \ @@ -108,9 +108,9 @@ diff -up cups-1.4.1/data/Makefile.lspp cups-1.4.1/data/Makefile CHARMAPS = \ euc-cn.txt \ -diff -up /dev/null cups-1.4.1/data/mls ---- /dev/null 2009-09-14 09:02:25.290577766 +0100 -+++ cups-1.4.1/data/mls 2009-09-14 16:59:30.131873095 +0100 +diff -up cups-1.4.4/data/mls.lspp cups-1.4.4/data/mls +--- cups-1.4.4/data/mls.lspp 2010-06-18 09:38:22.686104153 +0100 ++++ cups-1.4.4/data/mls 2010-06-18 09:38:22.687104566 +0100 @@ -0,0 +1,261 @@ +%!PS-Adobe-3.0 +%%BoundingBox: 0 0 612 792 @@ -373,9 +373,9 @@ diff -up /dev/null cups-1.4.1/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.4.1/data/selinux ---- /dev/null 2009-09-14 09:02:25.290577766 +0100 -+++ cups-1.4.1/data/selinux 2009-09-14 16:59:30.133872489 +0100 +diff -up cups-1.4.4/data/selinux.lspp cups-1.4.4/data/selinux +--- cups-1.4.4/data/selinux.lspp 2010-06-18 09:38:22.687104566 +0100 ++++ cups-1.4.4/data/selinux 2010-06-18 09:38:22.687104566 +0100 @@ -0,0 +1,261 @@ +%!PS-Adobe-3.0 +%%BoundingBox: 0 0 612 792 @@ -638,9 +638,9 @@ diff -up /dev/null cups-1.4.1/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.4.1/data/te ---- /dev/null 2009-09-14 09:02:25.290577766 +0100 -+++ cups-1.4.1/data/te 2009-09-14 16:59:30.135873116 +0100 +diff -up cups-1.4.4/data/te.lspp cups-1.4.4/data/te +--- cups-1.4.4/data/te.lspp 2010-06-18 09:38:22.688105441 +0100 ++++ cups-1.4.4/data/te 2010-06-18 09:38:22.688105441 +0100 @@ -0,0 +1,261 @@ +%!PS-Adobe-3.0 +%%BoundingBox: 0 0 612 792 @@ -903,9 +903,9 @@ diff -up /dev/null cups-1.4.1/data/te +% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $". +% +%%EOF -diff -up cups-1.4.1/filter/common.c.lspp cups-1.4.1/filter/common.c ---- cups-1.4.1/filter/common.c.lspp 2007-07-11 22:46:42.000000000 +0100 -+++ cups-1.4.1/filter/common.c 2009-09-14 16:59:30.137872500 +0100 +diff -up cups-1.4.4/filter/common.c.lspp cups-1.4.4/filter/common.c +--- cups-1.4.4/filter/common.c.lspp 2007-07-11 22:46:42.000000000 +0100 ++++ cups-1.4.4/filter/common.c 2010-06-18 09:38:22.689104687 +0100 @@ -30,6 +30,12 @@ * Include necessary headers... */ @@ -1074,10 +1074,10 @@ diff -up cups-1.4.1/filter/common.c.lspp cups-1.4.1/filter/common.c /* -diff -up cups-1.4.1/filter/pstops.c.lspp cups-1.4.1/filter/pstops.c ---- cups-1.4.1/filter/pstops.c.lspp 2009-09-14 16:59:29.803998275 +0100 -+++ cups-1.4.1/filter/pstops.c 2009-09-14 16:59:30.141872862 +0100 -@@ -3242,6 +3242,18 @@ write_label_prolog(pstops_doc_t *doc, /* +diff -up cups-1.4.4/filter/pstops.c.lspp cups-1.4.4/filter/pstops.c +--- cups-1.4.4/filter/pstops.c.lspp 2010-06-18 09:38:22.579980230 +0100 ++++ cups-1.4.4/filter/pstops.c 2010-06-18 09:38:22.693979174 +0100 +@@ -3314,6 +3314,18 @@ write_label_prolog(pstops_doc_t *doc, /* { const char *classification; /* CLASSIFICATION environment variable */ const char *ptr; /* Temporary string pointer */ @@ -1096,7 +1096,7 @@ diff -up cups-1.4.1/filter/pstops.c.lspp cups-1.4.1/filter/pstops.c /* -@@ -3264,6 +3276,124 @@ write_label_prolog(pstops_doc_t *doc, /* +@@ -3336,6 +3348,124 @@ write_label_prolog(pstops_doc_t *doc, /* return; } @@ -1221,7 +1221,7 @@ diff -up cups-1.4.1/filter/pstops.c.lspp cups-1.4.1/filter/pstops.c /* * Set the classification + page label string... */ -@@ -3342,7 +3472,10 @@ write_label_prolog(pstops_doc_t *doc, /* +@@ -3414,7 +3544,10 @@ write_label_prolog(pstops_doc_t *doc, /* doc_printf(doc, " %.0f moveto ESPpl show\n", top - 14.0); doc_puts(doc, "pop\n"); doc_puts(doc, "}bind put\n"); @@ -1232,9 +1232,9 @@ diff -up cups-1.4.1/filter/pstops.c.lspp cups-1.4.1/filter/pstops.c /* -diff -up cups-1.4.1/Makedefs.in.lspp cups-1.4.1/Makedefs.in ---- cups-1.4.1/Makedefs.in.lspp 2009-09-14 16:59:30.024872775 +0100 -+++ cups-1.4.1/Makedefs.in 2009-09-14 16:59:30.143872406 +0100 +diff -up cups-1.4.4/Makedefs.in.lspp cups-1.4.4/Makedefs.in +--- cups-1.4.4/Makedefs.in.lspp 2010-06-18 09:38:22.654104605 +0100 ++++ cups-1.4.4/Makedefs.in 2010-06-18 09:38:22.698980378 +0100 @@ -146,7 +146,7 @@ LIBCUPSORDER = @LIBCUPSORDER@ LIBCUPSIMAGEORDER = @LIBCUPSIMAGEORDER@ LINKCUPS = @LINKCUPS@ $(SSLLIBS) $(DNSSDLIBS) @@ -1253,9 +1253,9 @@ diff -up cups-1.4.1/Makedefs.in.lspp cups-1.4.1/Makedefs.in .SUFFIXES: .1 .1.gz .1m .1m.gz .3 .3.gz .5 .5.gz .7 .7.gz .8 .8.gz .a .c .cxx .h .man .o .32.o .64.o .gz .c.o: -diff -up cups-1.4.1/scheduler/client.c.lspp cups-1.4.1/scheduler/client.c ---- cups-1.4.1/scheduler/client.c.lspp 2009-07-15 00:02:05.000000000 +0100 -+++ cups-1.4.1/scheduler/client.c 2009-09-14 16:59:30.148872510 +0100 +diff -up cups-1.4.4/scheduler/client.c.lspp cups-1.4.4/scheduler/client.c +--- cups-1.4.4/scheduler/client.c.lspp 2010-04-23 19:56:34.000000000 +0100 ++++ cups-1.4.4/scheduler/client.c 2010-06-18 09:38:22.705980063 +0100 @@ -44,6 +44,7 @@ * valid_host() - Is the Host: field valid? * write_file() - Send a file via HTTP. @@ -1425,7 +1425,7 @@ diff -up cups-1.4.1/scheduler/client.c.lspp cups-1.4.1/scheduler/client.c } if (con->http.state != HTTP_POST_SEND) -@@ -4472,6 +4599,50 @@ make_certificate(cupsd_client_t *con) /* +@@ -4481,6 +4608,50 @@ make_certificate(cupsd_client_t *con) /* #endif /* HAVE_SSL */ @@ -1476,9 +1476,9 @@ diff -up cups-1.4.1/scheduler/client.c.lspp cups-1.4.1/scheduler/client.c /* * 'pipe_command()' - Pipe the output of a command to the remote client. */ -diff -up cups-1.4.1/scheduler/client.h.lspp cups-1.4.1/scheduler/client.h ---- cups-1.4.1/scheduler/client.h.lspp 2009-05-26 23:01:23.000000000 +0100 -+++ cups-1.4.1/scheduler/client.h 2009-09-14 16:59:30.150872942 +0100 +diff -up cups-1.4.4/scheduler/client.h.lspp cups-1.4.4/scheduler/client.h +--- cups-1.4.4/scheduler/client.h.lspp 2009-05-26 23:01:23.000000000 +0100 ++++ cups-1.4.4/scheduler/client.h 2010-06-18 09:38:22.711104323 +0100 @@ -18,6 +18,13 @@ #endif /* HAVE_AUTHORIZATION_H */ @@ -1514,9 +1514,9 @@ diff -up cups-1.4.1/scheduler/client.h.lspp cups-1.4.1/scheduler/client.h /* -diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c ---- cups-1.4.1/scheduler/conf.c.lspp 2009-09-14 16:59:29.837998036 +0100 -+++ cups-1.4.1/scheduler/conf.c 2009-09-14 16:59:30.155872264 +0100 +diff -up cups-1.4.4/scheduler/conf.c.lspp cups-1.4.4/scheduler/conf.c +--- cups-1.4.4/scheduler/conf.c.lspp 2010-06-18 09:38:22.526979999 +0100 ++++ cups-1.4.4/scheduler/conf.c 2010-06-18 09:38:22.713979624 +0100 @@ -29,6 +29,7 @@ * read_configuration() - Read a configuration file. * read_location() - Read a definition. @@ -1535,7 +1535,7 @@ diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c /* * Configuration variable structure... -@@ -174,6 +178,10 @@ static const cupsd_var_t variables[] = +@@ -172,6 +176,10 @@ static const cupsd_var_t variables[] = # if defined(HAVE_LIBSSL) || defined(HAVE_GNUTLS) { "ServerKey", &ServerKey, CUPSD_VARTYPE_PATHNAME }, # endif /* HAVE_LIBSSL || HAVE_GNUTLS */ @@ -1546,7 +1546,7 @@ diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c #endif /* HAVE_SSL */ { "ServerName", &ServerName, CUPSD_VARTYPE_STRING }, { "ServerRoot", &ServerRoot, CUPSD_VARTYPE_PATHNAME }, -@@ -432,6 +440,9 @@ cupsdReadConfiguration(void) +@@ -430,6 +438,9 @@ cupsdReadConfiguration(void) const char *tmpdir; /* TMPDIR environment variable */ struct stat tmpinfo; /* Temporary directory info */ cupsd_policy_t *p; /* Policy */ @@ -1556,7 +1556,7 @@ diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c /* -@@ -718,6 +729,25 @@ cupsdReadConfiguration(void) +@@ -713,6 +724,25 @@ cupsdReadConfiguration(void) RunUser = getuid(); @@ -1582,7 +1582,7 @@ diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c cupsdLogMessage(CUPSD_LOG_INFO, "Remote access is %s.", RemotePort ? "enabled" : "disabled"); -@@ -1083,11 +1113,23 @@ cupsdReadConfiguration(void) +@@ -1081,11 +1111,23 @@ cupsdReadConfiguration(void) * Update classification setting as needed... */ @@ -1607,7 +1607,7 @@ diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c /* * Check the MaxClients setting, and then allocate memory for it... -@@ -3646,6 +3688,18 @@ read_location(cups_file_t *fp, /* I - C +@@ -3644,6 +3686,18 @@ read_location(cups_file_t *fp, /* I - C return ((FatalErrors & CUPSD_FATAL_CONFIG) ? 0 : linenum); } @@ -1626,10 +1626,10 @@ diff -up cups-1.4.1/scheduler/conf.c.lspp cups-1.4.1/scheduler/conf.c /* * 'read_policy()' - Read a definition. -diff -up cups-1.4.1/scheduler/conf.h.lspp cups-1.4.1/scheduler/conf.h ---- cups-1.4.1/scheduler/conf.h.lspp 2009-09-14 16:59:29.839997456 +0100 -+++ cups-1.4.1/scheduler/conf.h 2009-09-14 16:59:30.157872484 +0100 -@@ -253,6 +253,12 @@ VAR char *ServerKey VALUE(NULL); +diff -up cups-1.4.4/scheduler/conf.h.lspp cups-1.4.4/scheduler/conf.h +--- cups-1.4.4/scheduler/conf.h.lspp 2010-06-18 09:38:22.527979881 +0100 ++++ cups-1.4.4/scheduler/conf.h 2010-06-18 09:38:22.715979172 +0100 +@@ -250,6 +250,12 @@ VAR char *ServerKey VALUE(NULL); VAR int SSLOptions VALUE(CUPSD_SSL_NONE); /* SSL/TLS options */ #endif /* HAVE_SSL */ @@ -1642,7 +1642,7 @@ diff -up cups-1.4.1/scheduler/conf.h.lspp cups-1.4.1/scheduler/conf.h #ifdef HAVE_LAUNCHD VAR int LaunchdTimeout VALUE(DEFAULT_KEEPALIVE); -@@ -271,6 +277,9 @@ VAR char *SystemGroupAuthKey VALUE(NULL +@@ -266,6 +272,9 @@ VAR char *SystemGroupAuthKey VALUE(NULL /* System group auth key */ #endif /* HAVE_AUTHORIZATION_H */ @@ -1652,9 +1652,9 @@ diff -up cups-1.4.1/scheduler/conf.h.lspp cups-1.4.1/scheduler/conf.h /* * Prototypes... -diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c ---- cups-1.4.1/scheduler/ipp.c.lspp 2009-09-14 16:59:29.974871379 +0100 -+++ cups-1.4.1/scheduler/ipp.c 2009-09-14 16:59:30.168872218 +0100 +diff -up cups-1.4.4/scheduler/ipp.c.lspp cups-1.4.4/scheduler/ipp.c +--- cups-1.4.4/scheduler/ipp.c.lspp 2010-06-18 09:38:22.599103898 +0100 ++++ cups-1.4.4/scheduler/ipp.c 2010-06-18 09:39:08.308979874 +0100 @@ -41,6 +41,7 @@ * cancel_all_jobs() - Cancel all print jobs. * cancel_job() - Cancel a print job. @@ -1698,10 +1698,10 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/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); -@@ -1338,6 +1353,21 @@ add_job(cupsd_client_t *con, /* I - Cl - int kbytes; /* Size of print file */ - int i; /* Looping var */ - int lowerpagerange; /* Page range bound */ +@@ -1355,6 +1370,21 @@ add_job(cupsd_client_t *con, /* I - Cl + ipp_attribute_t *media_col, /* media-col attribute */ + *media_margin; /* media-*-margin attribute */ + ipp_t *unsup_col; /* media-col in unsupported response */ +#ifdef WITH_LSPP + char *audit_message; /* Audit message string */ + char *printerfile; /* device file pointed to by the printer */ @@ -1720,9 +1720,9 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))", -@@ -1554,6 +1584,104 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1625,6 +1655,104 @@ add_job(cupsd_client_t *con, /* I - Cl ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL, - title = "Untitled"); + "Untitled"); +#ifdef WITH_LSPP + if (is_lspp_config()) @@ -1825,7 +1825,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c if ((job = cupsdAddJob(priority, printer->name)) == NULL) { send_ipp_status(con, IPP_INTERNAL_ERROR, -@@ -1562,6 +1690,32 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1633,6 +1761,32 @@ add_job(cupsd_client_t *con, /* I - Cl return (NULL); } @@ -1858,7 +1858,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT | CUPS_PRINTER_REMOTE); job->attrs = con->request; -@@ -1769,6 +1923,29 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1838,6 +1992,29 @@ add_job(cupsd_client_t *con, /* I - Cl attr->values[0].string.text = _cupsStrRetain(printer->job_sheets[0]); attr->values[1].string.text = _cupsStrRetain(printer->job_sheets[1]); } @@ -1888,7 +1888,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c job->job_sheets = attr; -@@ -1799,6 +1976,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1868,6 +2045,9 @@ add_job(cupsd_client_t *con, /* I - Cl "job-sheets=\"%s,none\", " "job-originating-user-name=\"%s\"", Classification, job->username); @@ -1898,7 +1898,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c } else if (attr->num_values == 2 && strcmp(attr->values[0].string.text, -@@ -1817,6 +1997,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1886,6 +2066,9 @@ add_job(cupsd_client_t *con, /* I - Cl "job-originating-user-name=\"%s\"", attr->values[0].string.text, attr->values[1].string.text, job->username); @@ -1908,7 +1908,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c } else if (strcmp(attr->values[0].string.text, Classification) && strcmp(attr->values[0].string.text, "none") && -@@ -1837,6 +2020,9 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1906,6 +2089,9 @@ add_job(cupsd_client_t *con, /* I - Cl "job-originating-user-name=\"%s\"", attr->values[0].string.text, attr->values[1].string.text, job->username); @@ -1918,7 +1918,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c } } else if (strcmp(attr->values[0].string.text, Classification) && -@@ -1877,8 +2063,52 @@ add_job(cupsd_client_t *con, /* I - Cl +@@ -1946,8 +2132,52 @@ add_job(cupsd_client_t *con, /* I - Cl "job-sheets=\"%s\", " "job-originating-user-name=\"%s\"", Classification, job->username); @@ -1971,7 +1971,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c /* * See if we need to add the starting sheet... -@@ -4210,6 +4440,103 @@ check_rss_recipient( +@@ -4300,6 +4530,103 @@ check_rss_recipient( } @@ -2075,7 +2075,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c /* * 'check_quotas()' - Check quotas for a printer and user. */ -@@ -4761,6 +5088,15 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -4853,6 +5180,15 @@ copy_banner(cupsd_client_t *con, /* I - char attrname[255], /* Name of attribute */ *s; /* Pointer into name */ ipp_attribute_t *attr; /* Attribute */ @@ -2091,7 +2091,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c cupsdLogMessage(CUPSD_LOG_DEBUG2, -@@ -4796,6 +5132,82 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -4888,6 +5224,82 @@ copy_banner(cupsd_client_t *con, /* I - fchmod(cupsFileNumber(out), 0640); fchown(cupsFileNumber(out), RunUser, Group); @@ -2174,7 +2174,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c /* * Try the localized banner file under the subdirectory... -@@ -4890,6 +5302,24 @@ copy_banner(cupsd_client_t *con, /* I - +@@ -4982,6 +5394,24 @@ copy_banner(cupsd_client_t *con, /* I - else s = attrname; @@ -2199,7 +2199,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c if (!strcmp(s, "printer-name")) { cupsFilePuts(out, job->dest); -@@ -6829,6 +7259,22 @@ get_job_attrs(cupsd_client_t *con, /* I +@@ -6940,6 +7370,22 @@ get_job_attrs(cupsd_client_t *con, /* I return; } @@ -2222,7 +2222,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c /* * Copy attributes... */ -@@ -7048,6 +7494,11 @@ get_jobs(cupsd_client_t *con, /* I - C +@@ -7170,6 +7616,11 @@ get_jobs(cupsd_client_t *con, /* I - C if (username[0] && strcasecmp(username, job->username)) continue; @@ -2234,7 +2234,7 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c if (count > 0) ippAddSeparator(con->response); -@@ -11430,6 +11881,11 @@ validate_user(cupsd_job_t *job, /* I +@@ -11572,6 +12023,11 @@ validate_user(cupsd_job_t *job, /* I strlcpy(username, get_username(con), userlen); @@ -2246,9 +2246,9 @@ diff -up cups-1.4.1/scheduler/ipp.c.lspp cups-1.4.1/scheduler/ipp.c /* * Check the username against the owner... */ -diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c ---- cups-1.4.1/scheduler/job.c.lspp 2009-09-14 16:59:30.058872907 +0100 -+++ cups-1.4.1/scheduler/job.c 2009-09-14 17:00:42.616998003 +0100 +diff -up cups-1.4.4/scheduler/job.c.lspp cups-1.4.4/scheduler/job.c +--- cups-1.4.4/scheduler/job.c.lspp 2010-06-18 09:38:22.629104109 +0100 ++++ cups-1.4.4/scheduler/job.c 2010-06-18 09:38:22.734978722 +0100 @@ -66,6 +66,9 @@ * update_job_attrs() - Update the job-printer-* attributes. */ @@ -2403,7 +2403,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/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); -@@ -1975,6 +2069,14 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J +@@ -2013,6 +2107,14 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J { char filename[1024]; /* Job control filename */ cups_file_t *fp; /* Job file */ @@ -2418,7 +2418,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdSaveJob(job=%p(%d)): job->attrs=%p", -@@ -1993,6 +2095,76 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J +@@ -2031,6 +2133,76 @@ cupsdSaveJob(cupsd_job_t *job) /* I - J fchmod(cupsFileNumber(fp), 0600); fchown(cupsFileNumber(fp), RunUser, Group); @@ -2495,7 +2495,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c job->attrs->state = IPP_IDLE; if (ippWriteIO(fp, (ipp_iocb_t)cupsFileWrite, 1, NULL, -@@ -3138,6 +3310,18 @@ get_options(cupsd_job_t *job, /* I - Jo +@@ -3188,6 +3360,18 @@ get_options(cupsd_job_t *job, /* I - Jo banner_page) continue; @@ -2514,7 +2514,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c /* * Otherwise add them to the list... */ -@@ -3810,6 +3994,19 @@ static void +@@ -3860,6 +4044,19 @@ static void start_job(cupsd_job_t *job, /* I - Job ID */ cupsd_printer_t *printer) /* I - Printer to print job */ { @@ -2534,7 +2534,7 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c cupsdLogMessage(CUPSD_LOG_DEBUG2, "start_job(job=%p(%d), printer=%p(%s))", job, job->id, printer, printer->name); -@@ -3932,6 +4129,106 @@ start_job(cupsd_job_t *job, /* I - +@@ -3982,6 +4179,106 @@ start_job(cupsd_job_t *job, /* I - fcntl(job->side_pipes[1], F_SETFD, fcntl(job->side_pipes[1], F_GETFD) | FD_CLOEXEC); @@ -2641,9 +2641,9 @@ diff -up cups-1.4.1/scheduler/job.c.lspp cups-1.4.1/scheduler/job.c /* * Now start the first file in the job... */ -diff -up cups-1.4.1/scheduler/job.h.lspp cups-1.4.1/scheduler/job.h ---- cups-1.4.1/scheduler/job.h.lspp 2009-05-11 23:46:01.000000000 +0100 -+++ cups-1.4.1/scheduler/job.h 2009-09-14 16:59:30.177872674 +0100 +diff -up cups-1.4.4/scheduler/job.h.lspp cups-1.4.4/scheduler/job.h +--- cups-1.4.4/scheduler/job.h.lspp 2009-05-11 23:46:01.000000000 +0100 ++++ cups-1.4.4/scheduler/job.h 2010-06-18 09:38:22.734978722 +0100 @@ -13,6 +13,13 @@ * file is missing or damaged, see the license at "http://www.cups.org/". */ @@ -2669,11 +2669,11 @@ diff -up cups-1.4.1/scheduler/job.h.lspp cups-1.4.1/scheduler/job.h }; typedef struct cupsd_joblog_s /**** Job log message ****/ -diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c ---- cups-1.4.1/scheduler/main.c.lspp 2009-09-14 16:59:29.925872130 +0100 -+++ cups-1.4.1/scheduler/main.c 2009-09-14 16:59:30.180872667 +0100 -@@ -35,6 +35,8 @@ - * usage() - Show scheduler usage. +diff -up cups-1.4.4/scheduler/main.c.lspp cups-1.4.4/scheduler/main.c +--- cups-1.4.4/scheduler/main.c.lspp 2010-06-18 09:38:22.574980424 +0100 ++++ cups-1.4.4/scheduler/main.c 2010-06-18 09:39:26.548103442 +0100 +@@ -37,6 +37,8 @@ + * usage() - Show scheduler usage. */ +/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */ @@ -2681,7 +2681,7 @@ diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c /* * Include necessary headers... */ -@@ -73,6 +75,9 @@ +@@ -76,6 +78,9 @@ # include #endif /* __APPLE__ && HAVE_DLFCN_H */ @@ -2691,7 +2691,7 @@ diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c /* * Local functions... -@@ -156,6 +161,9 @@ main(int argc, /* I - Number of comm +@@ -161,6 +166,9 @@ main(int argc, /* I - Number of comm int launchd_idle_exit; /* Idle exit on select timeout? */ #endif /* HAVE_LAUNCHD */ @@ -2701,7 +2701,7 @@ diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c #ifdef HAVE_GETEUID -@@ -462,6 +470,25 @@ main(int argc, /* I - Number of comm +@@ -470,6 +478,25 @@ main(int argc, /* I - Number of comm #endif /* DEBUG */ } @@ -2727,7 +2727,7 @@ diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c /* * Set the timezone info... */ -@@ -1230,6 +1257,11 @@ main(int argc, /* I - Number of comm +@@ -1214,6 +1241,11 @@ main(int argc, /* I - Number of comm cupsdStopSelect(); @@ -2739,10 +2739,10 @@ diff -up cups-1.4.1/scheduler/main.c.lspp cups-1.4.1/scheduler/main.c return (!stop_scheduler); } -diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c ---- cups-1.4.1/scheduler/printers.c.lspp 2009-09-14 16:59:29.866997809 +0100 -+++ cups-1.4.1/scheduler/printers.c 2009-09-14 16:59:30.185871787 +0100 -@@ -58,6 +58,8 @@ +diff -up cups-1.4.4/scheduler/printers.c.lspp cups-1.4.4/scheduler/printers.c +--- cups-1.4.4/scheduler/printers.c.lspp 2010-06-18 09:38:22.556104527 +0100 ++++ cups-1.4.4/scheduler/printers.c 2010-06-18 09:38:22.740980299 +0100 +@@ -59,6 +59,8 @@ * write_xml_string() - Write a string with XML escaping. */ @@ -2751,7 +2751,7 @@ diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c /* * Include necessary headers... */ -@@ -86,6 +88,10 @@ static void write_irix_state(cupsd_print +@@ -88,6 +90,10 @@ static void write_irix_state(cupsd_print #endif /* __sgi */ static void write_xml_string(cups_file_t *fp, const char *s); @@ -2762,7 +2762,7 @@ diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c /* * 'cupsdAddPrinter()' - Add a printer to the system. -@@ -2166,6 +2172,13 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p) +@@ -2211,6 +2217,13 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p) "username", "password" }; @@ -2776,7 +2776,7 @@ diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c DEBUG_printf(("cupsdSetPrinterAttrs: entering name = %s, type = %x\n", p->name, -@@ -2296,6 +2309,45 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p) +@@ -2341,6 +2354,45 @@ cupsdSetPrinterAttrs(cupsd_printer_t *p) attr->values[1].string.text = _cupsStrAlloc(Classification ? Classification : p->job_sheets[1]); } @@ -2822,7 +2822,7 @@ diff -up cups-1.4.1/scheduler/printers.c.lspp cups-1.4.1/scheduler/printers.c } p->raw = 0; -@@ -4827,7 +4876,6 @@ write_irix_state(cupsd_printer_t *p) /* +@@ -5320,7 +5372,6 @@ write_irix_state(cupsd_printer_t *p) /* } #endif /* __sgi */ diff --git a/cups-page-label.patch b/cups-page-label.patch index 9aa3b09..518bc8e 100644 --- a/cups-page-label.patch +++ b/cups-page-label.patch @@ -1,6 +1,6 @@ -diff -up cups-1.4.1/filter/pstops.c.page-label cups-1.4.1/filter/pstops.c ---- cups-1.4.1/filter/pstops.c.page-label 2009-10-02 12:33:33.410719651 +0100 -+++ cups-1.4.1/filter/pstops.c 2009-10-02 12:34:11.399594180 +0100 +diff -up cups-1.4.4/filter/pstops.c.page-label cups-1.4.4/filter/pstops.c +--- cups-1.4.4/filter/pstops.c.page-label 2010-03-30 23:07:33.000000000 +0100 ++++ cups-1.4.4/filter/pstops.c 2010-06-18 09:36:18.239126341 +0100 @@ -108,6 +108,7 @@ typedef struct /**** Document informa int num_options; /* Number of document-wide options */ cups_option_t *options; /* Document-wide options */ @@ -9,7 +9,7 @@ diff -up cups-1.4.1/filter/pstops.c.page-label cups-1.4.1/filter/pstops.c saw_eof, /* Saw the %%EOF comment? */ slow_collate, /* Collate copies by hand? */ slow_duplex, /* Duplex pages slowly? */ -@@ -2048,7 +2049,7 @@ do_setup(pstops_doc_t *doc, /* I - Docu +@@ -2083,7 +2084,7 @@ do_setup(pstops_doc_t *doc, /* I - Docu * of the pages... */ @@ -18,7 +18,7 @@ diff -up cups-1.4.1/filter/pstops.c.page-label cups-1.4.1/filter/pstops.c write_label_prolog(doc, doc->page_label, PageBottom, PageWidth - PageLength + PageTop, PageLength); else -@@ -2056,7 +2057,30 @@ do_setup(pstops_doc_t *doc, /* I - Docu +@@ -2091,7 +2092,30 @@ do_setup(pstops_doc_t *doc, /* I - Docu PageLength); } else @@ -50,7 +50,7 @@ diff -up cups-1.4.1/filter/pstops.c.page-label cups-1.4.1/filter/pstops.c } -@@ -2141,7 +2165,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum +@@ -2176,7 +2200,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum case 1 : if (doc->use_ESPshowpage) { @@ -59,7 +59,7 @@ diff -up cups-1.4.1/filter/pstops.c.page-label cups-1.4.1/filter/pstops.c doc_puts(doc, "ESPshowpage\n"); } break; -@@ -2156,7 +2180,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum +@@ -2191,7 +2215,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum * Rotate the labels back to portrait... */ @@ -68,7 +68,7 @@ diff -up cups-1.4.1/filter/pstops.c.page-label cups-1.4.1/filter/pstops.c } else if (Orientation == 0) { -@@ -2182,7 +2206,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum +@@ -2217,7 +2241,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum default : if (is_last_page(number) && doc->use_ESPshowpage) { @@ -77,7 +77,7 @@ diff -up cups-1.4.1/filter/pstops.c.page-label cups-1.4.1/filter/pstops.c doc_puts(doc, "ESPshowpage\n"); } break; -@@ -2385,6 +2409,12 @@ set_pstops_options( +@@ -2420,6 +2444,12 @@ set_pstops_options( doc->new_bounding_box[3] = INT_MIN; /* @@ -87,6 +87,6 @@ diff -up cups-1.4.1/filter/pstops.c.page-label cups-1.4.1/filter/pstops.c + doc->orientation = Orientation; + + /* - * AP_FIRSTPAGE_InputSlot + * AP_FIRSTPAGE_* and the corresponding non-first-page options. */ diff --git a/cups-paps.patch b/cups-paps.patch index 91da82d..afb3409 100644 --- a/cups-paps.patch +++ b/cups-paps.patch @@ -1,12 +1,12 @@ -diff -up cups-1.4b1/conf/mime.convs.in.paps cups-1.4b1/conf/mime.convs.in ---- cups-1.4b1/conf/mime.convs.in.paps 2008-10-08 22:07:45.000000000 +0100 -+++ cups-1.4b1/conf/mime.convs.in 2008-11-11 15:42:18.000000000 +0000 +diff -up cups-1.4.4/conf/mime.convs.in.paps cups-1.4.4/conf/mime.convs.in +--- cups-1.4.4/conf/mime.convs.in.paps 2009-12-08 02:13:42.000000000 +0000 ++++ cups-1.4.4/conf/mime.convs.in 2010-06-18 11:22:36.553980050 +0100 @@ -45,7 +45,7 @@ application/x-cshell application/postsc application/x-csource application/postscript 33 texttops application/x-perl application/postscript 33 texttops application/x-shell application/postscript 33 texttops -text/plain application/postscript 33 texttops +text/plain application/postscript 33 texttopaps + text/css application/postscript 33 texttops text/html application/postscript 33 texttops image/gif application/vnd.cups-postscript 66 imagetops - image/png application/vnd.cups-postscript 66 imagetops diff --git a/cups-ricoh-deviceid-oid.patch b/cups-ricoh-deviceid-oid.patch new file mode 100644 index 0000000..6a5b6a9 --- /dev/null +++ b/cups-ricoh-deviceid-oid.patch @@ -0,0 +1,21 @@ +diff -up cups-1.4.3/backend/snmp.c.ricoh-deviceid-oid cups-1.4.3/backend/snmp.c +--- cups-1.4.3/backend/snmp.c.ricoh-deviceid-oid 2010-05-11 17:30:57.266120467 +0100 ++++ cups-1.4.3/backend/snmp.c 2010-05-11 17:31:16.267120141 +0100 +@@ -195,6 +195,7 @@ static const int LexmarkProductOID[] = { + static const int LexmarkProductOID2[] = { 1,3,6,1,4,1,674,10898,100,2,1,2,1,2,1,-1 }; + static const int LexmarkDeviceIdOID[] = { 1,3,6,1,4,1,641,2,1,2,1,3,1,-1 }; + static const int HPDeviceIdOID[] = { 1,3,6,1,4,1,11,2,3,9,1,1,7,0,-1 }; ++static const int RicohDeviceIdOID[] = { 1,3,6,1,4,1,367,3,2,1,1,1,11,0,-1 }; + static const int XeroxProductOID[] = { 1,3,6,1,4,1,128,2,1,3,1,2,0,-1 }; + static cups_array_t *DeviceURIs = NULL; + static int HostNameLookups = 0; +@@ -1002,6 +1003,9 @@ read_snmp_response(int fd) /* I - SNMP + packet.community, CUPS_ASN1_GET_REQUEST, + DEVICE_ID, LexmarkDeviceIdOID); + _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, ++ packet.community, CUPS_ASN1_GET_REQUEST, ++ DEVICE_ID, RicohDeviceIdOID); ++ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, + packet.community, CUPS_ASN1_GET_REQUEST, + DEVICE_PRODUCT, XeroxProductOID); + _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, diff --git a/cups-snmp-quirks.patch b/cups-snmp-quirks.patch new file mode 100644 index 0000000..905617f --- /dev/null +++ b/cups-snmp-quirks.patch @@ -0,0 +1,115 @@ +diff -up cups-1.4.2/backend/snmp-supplies.c.snmp-quirks cups-1.4.2/backend/snmp-supplies.c +--- cups-1.4.2/backend/snmp-supplies.c.snmp-quirks 2010-06-09 15:55:05.320019839 +0100 ++++ cups-1.4.2/backend/snmp-supplies.c 2010-06-09 15:55:15.638146234 +0100 +@@ -38,6 +38,13 @@ + + + /* ++ * Printer quirks... ++ */ ++ ++#define QUIRK_CAPACITY (1<<0) ++ ++ ++/* + * Local structures... + */ + +@@ -57,6 +64,12 @@ typedef struct /**** Printer state ta + const char *keyword; /* IPP printer-state-reasons keyword */ + } backend_state_t; + ++typedef struct /**** Quirk names table ****/ ++{ ++ int bit; /* Quirk bit */ ++ const char *keyword; /* cupsSNMPQuirks keyword */ ++} quirk_name_t; ++ + + /* + * Local globals... +@@ -68,6 +81,7 @@ static int current_state = -1; + static int charset = -1; /* Character set for supply names */ + static int num_supplies = 0; + /* Number of supplies found */ ++static int quirks = 0; /* Printer quirks */ + static backend_supplies_t supplies[CUPS_MAX_SUPPLIES]; + /* Supply information */ + +@@ -153,6 +167,15 @@ static const backend_state_t const print + { CUPS_TC_outputFull, "output-area-full-warning" } + }; + ++static const quirk_name_t const quirk_names[] = ++ { ++ /* ++ * The prtMarkerSuppliesLevel values are ++ * percentages, not levels relative to the ++ * stated capacity. ++ */ ++ { QUIRK_CAPACITY, "capacity" } ++ }; + + /* + * Local functions... +@@ -208,6 +231,9 @@ backendSNMPSupplies( + if (i) + *ptr++ = ','; + ++ if (quirks & QUIRK_CAPACITY) ++ supplies[i].max_capacity = 100; ++ + if (supplies[i].max_capacity > 0) + sprintf(ptr, "%d", 100 * supplies[i].level / supplies[i].max_capacity); + else +@@ -305,6 +331,7 @@ backend_init_supplies( + http_addr_t *addr) /* I - Printer address */ + { + int i, /* Looping var */ ++ len, /* Quirk name length */ + type; /* Current marker type */ + cups_file_t *cachefile; /* Cache file */ + const char *cachedir; /* CUPS_CACHEDIR value */ +@@ -366,6 +393,7 @@ backend_init_supplies( + current_state = -1; + num_supplies = -1; + charset = -1; ++ quirks = 0; + + memset(supplies, 0, sizeof(supplies)); + +@@ -381,6 +409,34 @@ backend_init_supplies( + return; + } + ++ if (ppd && ++ (ppdattr = ppdFindAttr(ppd, "cupsSNMPQuirks", NULL)) != NULL && ++ ppdattr->value) ++ { ++ ptr = ppdattr->value; ++ while (*ptr != '\0') ++ { ++ /* ++ * Match keyword against quirk_names table. ++ */ ++ ++ for (i = 0; i < sizeof (quirk_names) / sizeof (quirk_names[0]); i++) ++ { ++ len = strlen (quirk_names[i].keyword); ++ if (!strncmp (value, quirk_names[i].keyword, len) && ++ (value[len] == '\0' || value[len] == ' ')) ++ quirks |= quirk_names[i].bit; ++ } ++ ++ /* ++ * Advance to next keyword. ++ */ ++ ++ ptr += strcspn (ptr, " "); ++ ptr += strspn (ptr, " "); ++ } ++ } ++ + ppdClose(ppd); + + /* diff --git a/cups-str3382.patch b/cups-str3382.patch index 2999c79..14e9b27 100644 --- a/cups-str3382.patch +++ b/cups-str3382.patch @@ -1,6 +1,6 @@ -diff -up cups-1.4.1/cups/tempfile.c.str3382 cups-1.4.1/cups/tempfile.c ---- cups-1.4.1/cups/tempfile.c.str3382 2008-12-10 06:03:11.000000000 +0100 -+++ cups-1.4.1/cups/tempfile.c 2009-10-20 15:08:39.000000000 +0200 +diff -up cups-1.4.3/cups/tempfile.c.str3382 cups-1.4.3/cups/tempfile.c +--- cups-1.4.3/cups/tempfile.c.str3382 2010-01-18 19:47:12.000000000 +0100 ++++ cups-1.4.3/cups/tempfile.c 2010-03-31 13:26:52.000000000 +0200 @@ -35,6 +35,7 @@ # include #else @@ -33,8 +33,8 @@ diff -up cups-1.4.1/cups/tempfile.c.str3382 cups-1.4.1/cups/tempfile.c - * Format a string using the hex time values... - */ - -- snprintf(filename, len - 1, "%s/%08lx%05lx", tmpdir, -- (unsigned long)curtime.tv_sec, (unsigned long)curtime.tv_usec); +- snprintf(filename, len - 1, "%s/%05x%08x", tmpdir, (unsigned)getpid(), +- (unsigned)(curtime.tv_sec + curtime.tv_usec + tries)); -#endif /* WIN32 */ /* diff --git a/cups-str3399.patch b/cups-str3399.patch deleted file mode 100644 index 05552e4..0000000 --- a/cups-str3399.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -up cups-1.4.2/CHANGES-1.4.txt.str3399 cups-1.4.2/CHANGES-1.4.txt -diff -up cups-1.4.2/scheduler/process.c.str3399 cups-1.4.2/scheduler/process.c ---- cups-1.4.2/scheduler/process.c.str3399 2009-05-16 04:04:48.000000000 +0100 -+++ cups-1.4.2/scheduler/process.c 2009-11-16 17:15:26.104542409 +0000 -@@ -505,6 +505,7 @@ cupsdStartProcess( - #ifdef HAVE_SIGSET - sigset(SIGTERM, SIG_DFL); - sigset(SIGCHLD, SIG_DFL); -+ sigset(SIGPIPE, SIG_DFL); - #elif defined(HAVE_SIGACTION) - memset(&action, 0, sizeof(action)); - -@@ -513,9 +514,11 @@ cupsdStartProcess( - - sigaction(SIGTERM, &action, NULL); - sigaction(SIGCHLD, &action, NULL); -+ sigaction(SIGPIPE, &action, NULL); - #else - signal(SIGTERM, SIG_DFL); - signal(SIGCHLD, SIG_DFL); -+ signal(SIGPIPE, SIG_DFL); - #endif /* HAVE_SIGSET */ - - cupsdReleaseSignals(); ---- cups-1.4.2/scheduler/main.c.str3399 2010-03-02 11:04:28.968100478 +0000 -+++ cups-1.4.2/scheduler/main.c 2010-03-02 11:04:47.442226409 +0000 -@@ -1733,7 +1733,7 @@ process_children(void) - job->backend = -pid; - - if (status && status != SIGTERM && status != SIGKILL && -- job->status >= 0) -+ status != SIGPIPE && job->status >= 0) - { - /* - * An error occurred; save the exit status so we know to stop -@@ -1829,6 +1829,12 @@ process_children(void) - "PID %d (%s) was terminated normally with signal %d.", - pid, name, status); - } -+ else if (status == SIGPIPE) -+ { -+ cupsdLogMessage(CUPSD_LOG_DEBUG, -+ "PID %d (%s) did not catch or ignore signal %d.", -+ pid, name, status); -+ } - else if (status) - { - if (WIFEXITED(status)) diff --git a/cups-str3505.patch b/cups-str3505.patch deleted file mode 100644 index 95b6918..0000000 --- a/cups-str3505.patch +++ /dev/null @@ -1,158 +0,0 @@ -diff -up cups-1.4.2/scheduler/classes.c.str3505 cups-1.4.2/scheduler/classes.c ---- cups-1.4.2/scheduler/classes.c.str3505 2009-10-07 19:16:09.000000000 +0100 -+++ cups-1.4.2/scheduler/classes.c 2010-02-23 11:43:06.033263862 +0000 -@@ -3,7 +3,7 @@ - * - * Printer class routines for the Common UNIX Printing System (CUPS). - * -- * Copyright 2007-2009 by Apple Inc. -+ * Copyright 2007-2010 by Apple Inc. - * Copyright 1997-2007 by Easy Software Products, all rights reserved. - * - * These coded instructions, statements, and computer programs are the -@@ -117,7 +117,7 @@ cupsdAddPrinterToClass( - * 'cupsdDeletePrinterFromClass()' - Delete a printer from a class. - */ - --void -+int /* O - 1 if class changed, 0 otherwise */ - cupsdDeletePrinterFromClass( - cupsd_printer_t *c, /* I - Class to delete from */ - cupsd_printer_t *p) /* I - Printer to delete */ -@@ -149,13 +149,15 @@ cupsdDeletePrinterFromClass( - (c->num_printers - i) * sizeof(cupsd_printer_t *)); - } - else -- return; -+ return (0); - - /* - * Update the IPP attributes (have to do this for member-names)... - */ - - cupsdSetPrinterAttrs(c); -+ -+ return (1); - } - - -@@ -163,10 +165,11 @@ cupsdDeletePrinterFromClass( - * 'cupsdDeletePrinterFromClasses()' - Delete a printer from all classes. - */ - --void -+int /* O - 1 if class changed, 0 otherwise */ - cupsdDeletePrinterFromClasses( - cupsd_printer_t *p) /* I - Printer to delete */ - { -+ int changed = 0; /* Any class changed? */ - cupsd_printer_t *c; /* Pointer to current class */ - - -@@ -179,7 +182,7 @@ cupsdDeletePrinterFromClasses( - c; - c = (cupsd_printer_t *)cupsArrayNext(Printers)) - if (c->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT)) -- cupsdDeletePrinterFromClass(c, p); -+ changed |= cupsdDeletePrinterFromClass(c, p); - - /* - * Then clean out any empty implicit classes... -@@ -193,7 +196,10 @@ cupsdDeletePrinterFromClasses( - cupsdLogMessage(CUPSD_LOG_DEBUG, "Deleting implicit class \"%s\"...", - c->name); - cupsdDeletePrinter(c, 0); -+ changed = 1; - } -+ -+ return (changed); - } - - -diff -up cups-1.4.2/scheduler/classes.h.str3505 cups-1.4.2/scheduler/classes.h ---- cups-1.4.2/scheduler/classes.h.str3505 2008-09-19 21:03:36.000000000 +0100 -+++ cups-1.4.2/scheduler/classes.h 2010-02-23 11:43:06.012262825 +0000 -@@ -3,7 +3,7 @@ - * - * Printer class definitions for the Common UNIX Printing System (CUPS). - * -- * Copyright 2007-2008 by Apple Inc. -+ * Copyright 2007-2010 by Apple Inc. - * Copyright 1997-2005 by Easy Software Products, all rights reserved. - * - * These coded instructions, statements, and computer programs are the -@@ -21,9 +21,9 @@ - extern cupsd_printer_t *cupsdAddClass(const char *name); - extern void cupsdAddPrinterToClass(cupsd_printer_t *c, - cupsd_printer_t *p); --extern void cupsdDeletePrinterFromClass(cupsd_printer_t *c, -+extern int cupsdDeletePrinterFromClass(cupsd_printer_t *c, - cupsd_printer_t *p); --extern void cupsdDeletePrinterFromClasses(cupsd_printer_t *p); -+extern int cupsdDeletePrinterFromClasses(cupsd_printer_t *p); - extern cupsd_printer_t *cupsdFindAvailablePrinter(const char *name); - extern cupsd_printer_t *cupsdFindClass(const char *name); - extern void cupsdLoadAllClasses(void); -diff -up cups-1.4.2/scheduler/ipp.c.str3505 cups-1.4.2/scheduler/ipp.c ---- cups-1.4.2/scheduler/ipp.c.str3505 2010-02-23 11:42:12.713386792 +0000 -+++ cups-1.4.2/scheduler/ipp.c 2010-02-23 11:43:06.025262343 +0000 -@@ -6451,7 +6451,9 @@ delete_printer(cupsd_client_t *con, /* - cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" deleted by \"%s\".", - printer->name, get_username(con)); - -- cupsdDeletePrinter(printer, 0); -+ if (cupsdDeletePrinter(printer, 0)) -+ cupsdMarkDirty(CUPSD_DIRTY_CLASSES); -+ - cupsdMarkDirty(CUPSD_DIRTY_PRINTERS); - } - -diff -up cups-1.4.2/scheduler/printers.c.str3505 cups-1.4.2/scheduler/printers.c ---- cups-1.4.2/scheduler/printers.c.str3505 2010-02-23 11:42:12.223386167 +0000 -+++ cups-1.4.2/scheduler/printers.c 2010-02-23 11:43:06.030262135 +0000 -@@ -657,12 +657,13 @@ cupsdDeleteAllPrinters(void) - * 'cupsdDeletePrinter()' - Delete a printer from the system. - */ - --void -+int /* O - 1 if classes affected, 0 otherwise */ - cupsdDeletePrinter( - cupsd_printer_t *p, /* I - Printer to delete */ - int update) /* I - Update printers.conf? */ - { -- int i; /* Looping var */ -+ int i, /* Looping var */ -+ changed = 0; /* Class changed? */ - #ifdef __sgi - char filename[1024]; /* Interface script filename */ - #endif /* __sgi */ -@@ -773,7 +774,7 @@ cupsdDeletePrinter( - - if (!(p->type & CUPS_PRINTER_IMPLICIT)) - { -- cupsdDeletePrinterFromClasses(p); -+ changed = cupsdDeletePrinterFromClasses(p); - - /* - * Deregister from any browse protocols... -@@ -854,6 +855,8 @@ cupsdDeletePrinter( - */ - - cupsArrayRestore(Printers); -+ -+ return (changed); - } - - -diff -up cups-1.4.2/scheduler/printers.h.str3505 cups-1.4.2/scheduler/printers.h ---- cups-1.4.2/scheduler/printers.h.str3505 2009-06-25 18:07:26.000000000 +0100 -+++ cups-1.4.2/scheduler/printers.h 2010-02-23 11:43:06.032262357 +0000 -@@ -141,7 +141,7 @@ extern void cupsdAddPrinterUser(cupsd_p - const char *username); - extern void cupsdCreateCommonData(void); - extern void cupsdDeleteAllPrinters(void); --extern void cupsdDeletePrinter(cupsd_printer_t *p, int update); -+extern int cupsdDeletePrinter(cupsd_printer_t *p, int update); - extern cupsd_printer_t *cupsdFindDest(const char *name); - extern cupsd_printer_t *cupsdFindPrinter(const char *name); - extern cupsd_quota_t *cupsdFindQuota(cupsd_printer_t *p, diff --git a/cups-str3541.patch b/cups-str3541.patch deleted file mode 100644 index 668ce34..0000000 --- a/cups-str3541.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up cups-1.4.3/systemv/lpstat.c.str3541 cups-1.4.3/systemv/lpstat.c ---- cups-1.4.3/systemv/lpstat.c.str3541 2009-12-15 23:40:37.000000000 +0100 -+++ cups-1.4.3/systemv/lpstat.c 2010-04-16 12:56:04.000000000 +0200 -@@ -1423,7 +1423,7 @@ show_jobs(const char *dests, /* I - Des - - rank ++; - -- if (match_list(dests, dest) || match_list(users, username)) -+ if (match_list(dests, dest) && match_list(users, username)) - { - jobdate = localtime(&jobtime); - snprintf(temp, sizeof(temp), "%s-%d", dest, jobid); diff --git a/cups.spec b/cups.spec index 05238c1..1ae4e46 100644 --- a/cups.spec +++ b/cups.spec @@ -1,102 +1,91 @@ %define php_extdir %(php-config --extension-dir 2>/dev/null || echo %{_libdir}/php4) %global php_apiver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1) -%define initdir /etc/rc.d/init.d %define use_alternatives 1 %define lspp 1 %define cups_serverbin %{_exec_prefix}/lib/cups Summary: Common Unix Printing System Name: cups -Version: 1.4.2 -Release: 31%{?dist} +Version: 1.4.4 +Release: 1%{?dist} License: GPLv2 Group: System Environment/Daemons Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2 +# Our initscript Source1: cups.init +# Pixmap for desktop file Source2: cupsprinter.png +# udev rules for libusb devices Source3: cups-libusb.rules +# LSPP-required ps->pdf filter Source4: pstopdf +# xinetd config file for cups-lpd service Source5: cups-lpd -Source6: pstoraster -Source7: pstoraster.convs -Source9: cups.logrotate -Source10: ncp.backend -Source12: cups.cron -Source14: textonly.filter -Source15: textonly.ppd +# Logrotate configuration +Source6: cups.logrotate +# Backend for NCP protocol +Source7: ncp.backend +# Cron-based tmpwatch for /var/spool/cups/tmp +Source8: cups.cron +# Filter and PPD for textonly printing +Source9: textonly.filter +Source10: textonly.ppd +# pstoraster filter from ghostscript. +Source11: pstoraster +Source12: pstoraster.convs Patch1: cups-no-gzip-man.patch Patch2: cups-1.1.16-system-auth.patch Patch3: cups-multilib.patch -Patch4: cups-str3448.patch -Patch5: cups-serial.patch -Patch6: cups-banners.patch -Patch7: cups-serverbin-compat.patch -Patch8: cups-no-export-ssllibs.patch -Patch9: cups-paps.patch -Patch10: cups-str3460.patch -Patch11: cups-direct-usb.patch -Patch12: cups-lpr-help.patch -Patch13: cups-peercred.patch -Patch14: cups-pid.patch -Patch15: cups-page-label.patch -Patch16: cups-eggcups.patch -Patch17: cups-getpass.patch -Patch18: cups-driverd-timeout.patch -Patch19: cups-strict-ppd-line-length.patch -Patch20: cups-logrotate.patch -Patch21: cups-usb-paperout.patch -Patch22: cups-build.patch -Patch23: cups-res_init.patch -Patch25: cups-filter-debug.patch -Patch30: cups-uri-compat.patch -Patch35: cups-cups-get-classes.patch -Patch37: cups-avahi.patch -Patch40: cups-str3382.patch -Patch41: cups-str3285_v2-str3503.patch -Patch42: cups-str3390.patch -Patch43: cups-str3391.patch -Patch44: cups-str3381.patch -Patch45: cups-str3399.patch -Patch46: cups-str3403.patch -Patch47: cups-str3407.patch -Patch48: cups-str3418.patch -Patch49: cups-CVE-2009-3553.patch -Patch50: cups-str3422.patch -Patch51: cups-str3413.patch -Patch52: cups-str3439.patch -Patch53: cups-str3440.patch -Patch54: cups-str3442.patch -Patch55: cups-negative-snmp-string-length.patch -Patch56: cups-sidechannel-intrs.patch -Patch57: cups-media-empty-warning.patch -Patch58: cups-str3435.patch -Patch59: cups-str3436.patch -Patch60: cups-str3425.patch -Patch61: cups-str3428.patch -Patch62: cups-str3431.patch -Patch63: cups-gnutls-gcrypt-threads.patch -Patch64: cups-str3458.patch -Patch65: cups-EAI_AGAIN.patch -Patch66: cups-str3505.patch -Patch67: cups-CVE-2010-0302.patch -Patch68: cups-str3541.patch -Patch69: cups-texttops-rotate-page.patch +Patch4: cups-serial.patch +Patch5: cups-banners.patch +Patch6: cups-serverbin-compat.patch +Patch7: cups-no-export-ssllibs.patch +Patch8: cups-direct-usb.patch +Patch9: cups-lpr-help.patch +Patch10: cups-peercred.patch +Patch11: cups-pid.patch +Patch12: cups-page-label.patch +Patch13: cups-eggcups.patch +Patch14: cups-getpass.patch +Patch15: cups-driverd-timeout.patch +Patch16: cups-strict-ppd-line-length.patch +Patch17: cups-logrotate.patch +Patch18: cups-usb-paperout.patch +Patch19: cups-build.patch +Patch20: cups-res_init.patch +Patch21: cups-filter-debug.patch +Patch22: cups-uri-compat.patch +Patch23: cups-cups-get-classes.patch +Patch24: cups-avahi.patch +Patch25: cups-str3382.patch +Patch26: cups-paps.patch +Patch29: cups-0755.patch +Patch30: cups-EAI_AGAIN.patch +Patch31: cups-hostnamelookups.patch +Patch33: cups-snmp-quirks.patch +Patch34: cups-hp-deviceid-oid.patch +Patch35: cups-dnssd-deviceid.patch +Patch36: cups-ricoh-deviceid-oid.patch +Patch37: cups-texttops-rotate-page.patch Patch100: cups-lspp.patch + +## SECURITY PATCHES: + Epoch: 1 Url: http://www.cups.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -PreReq: /sbin/chkconfig /sbin/service +Requires: /sbin/chkconfig /sbin/service Requires: %{name}-libs = %{epoch}:%{version}-%{release} %if %use_alternatives Provides: /usr/bin/lpq /usr/bin/lpr /usr/bin/lp /usr/bin/cancel /usr/bin/lprm /usr/bin/lpstat -Prereq: /usr/sbin/alternatives +Requires: /usr/sbin/alternatives %endif # Unconditionally obsolete LPRng so that upgrades work properly. -Obsoletes: lpd lpr LPRng <= 3.8.15-3 -Provides: lpd lpr +Obsoletes: lpd <= 3.8.15-3, lpr <= 3.8.15-3, LPRng <= 3.8.15-3 +Provides: lpd = 3.8.15-4, lpr = 3.8.15-4 Obsoletes: cupsddk < 1.2.3-7 Provides: cupsddk = 1.2.3-7 @@ -106,8 +95,8 @@ Provides: cupsddk-drivers = 1.2.3-7 # kdelibs conflict for bug #192585. Conflicts: kdelibs < 6:3.5.2-6 -BuildPrereq: pam-devel pkgconfig -BuildPrereq: gnutls-devel libacl-devel +BuildRequires: pam-devel pkgconfig +BuildRequires: gnutls-devel libacl-devel BuildRequires: openldap-devel BuildRequires: make >= 1:3.80 BuildRequires: php-devel, pcre-devel @@ -118,15 +107,18 @@ BuildRequires: krb5-devel BuildRequires: avahi-devel BuildRequires: poppler-utils +# Make sure we get postscriptdriver tags. +BuildRequires: pycups + %if %lspp -BuildPrereq: libselinux-devel >= 1.23 -BuildPrereq: audit-libs-devel >= 1.1 +BuildRequires: libselinux-devel >= 1.23 +BuildRequires: audit-libs-devel >= 1.1 %endif # -fstack-protector-all requires GCC 4.0.1 BuildRequires: gcc >= 4.0.1 -BuildPrereq: dbus-devel >= 0.90 +BuildRequires: dbus-devel >= 0.90 Requires: dbus >= 0.90 # The paps package uses pango to render UTF-8 text to PostScript. @@ -148,6 +140,9 @@ Requires: ghostscript Requires: udev Requires: acl +# Make sure we have some filters for converting to raster format. +Requires: ghostscript-cups + %package devel Summary: Common Unix Printing System - development environment Group: Development/Libraries @@ -204,78 +199,95 @@ natively, without needing the lp/lpr commands. %description lpd The Common UNIX Printing System provides a portable printing layer for -UNIX® operating systems. This is the package that provices standard +UNIX® operating systems. This is the package that provides standard lpd emulation. %description php The Common UNIX Printing System provides a portable printing layer for -UNIX® operating systems. This is the package that provices a PHP +UNIX® operating systems. This is the package that provides a PHP module. %prep %setup -q +# Don't gzip man pages in the Makefile, let rpmbuild do it. %patch1 -p1 -b .no-gzip-man +# Use the system pam configuration. %patch2 -p1 -b .system-auth +# Prevent multilib conflict in cups-config script. %patch3 -p1 -b .multilib -%patch4 -p1 -b .str3448 -%patch5 -p1 -b .serial -%patch6 -p1 -b .banners -%patch7 -p1 -b .serverbin-compat -%patch8 -p1 -b .no-export-ssllibs -%patch9 -p1 -b .paps -%patch10 -p1 -b .str3460 -%patch11 -p1 -b .direct-usb -%patch12 -p1 -b .lpr-help -%patch13 -p1 -b .peercred -%patch14 -p1 -b .pid -%patch15 -p1 -b .page-label -%patch16 -p1 -b .eggcups -%patch17 -p1 -b .getpass -%patch18 -p1 -b .driverd-timeout -%patch19 -p1 -b .strict-ppd-line-length -%patch20 -p1 -b .logrotate -%patch21 -p1 -b .usb-paperout -%patch22 -p1 -b .build -%patch23 -p1 -b .res_init -%patch25 -p1 -b .filter-debug -%patch30 -p1 -b .uri-compat -%patch35 -p1 -b .cups-get-classes -%patch37 -p1 -b .avahi -%patch40 -p1 -b .str3382 -%patch41 -p1 -b .str3285_v2-str3503 -%patch42 -p1 -b .str3390 -%patch43 -p1 -b .str3391 -%patch44 -p1 -b .str3381 -%patch45 -p1 -b .str3399 -%patch46 -p1 -b .str3403 -%patch47 -p1 -b .str3407 -%patch48 -p1 -b .str3418 -%patch49 -p1 -b .CVE-2009-3553 -%patch50 -p1 -b .str3422 -%patch51 -p1 -b .str3413 -%patch52 -p1 -b .str3439 -%patch53 -p1 -b .str3440 -%patch54 -p1 -b .str3442 -%patch55 -p1 -b .negative-snmp-string-length -%patch56 -p1 -b .sidechannel-intrs -%patch57 -p1 -b .media-empty-warning -%patch58 -p1 -b .str3435 -%patch59 -p1 -b .str3436 -%patch60 -p1 -b .str3425 -%patch61 -p1 -b .str3428 -%patch62 -p1 -b .str3431 -#%patch63 -p1 -b .gnutls-gcrypt-threads -%patch64 -p1 -b .str3458 -%patch65 -p1 -b .EAI_AGAIN -%patch66 -p1 -b .str3505 -%patch67 -p1 -b .CVE-2010-0302 -%patch68 -p1 -b .str3541 -%patch69 -p1 -b .texttops-rotate-page +# Fix compilation of serial backend. +%patch4 -p1 -b .serial +# Ignore rpm save/new files in the banners directory. +%patch5 -p1 -b .banners +# Use compatibility fallback path for ServerBin. +%patch6 -p1 -b .serverbin-compat +# Don't export SSLLIBS to cups-config. +%patch7 -p1 -b .no-export-ssllibs +# Allow file-based usb device URIs. +%patch8 -p1 -b .direct-usb +# Add --help option to lpr. +%patch9 -p1 -b .lpr-help +# Fix compilation of peer credentials support. +%patch10 -p1 -b .peercred +# Maintain a cupsd.pid file. +%patch11 -p1 -b .pid +# Fix orientation of page labels. +%patch12 -p1 -b .page-label +# Fix implementation of com.redhat.PrinterSpooler D-Bus object. +%patch13 -p1 -b .eggcups +# More sophisticated implementation of cupsGetPassword than getpass. +%patch14 -p1 -b .getpass +# Increase driverd timeout to 70s to accommodate foomatic. +%patch15 -p1 -b .driverd-timeout +# Only enforce maximum PPD line length when in strict mode. +%patch16 -p1 -b .strict-ppd-line-length +# Re-open the log if it has been logrotated under us. +%patch17 -p1 -b .logrotate +# Support for errno==ENOSPACE-based USB paper-out reporting. +%patch18 -p1 -b .usb-paperout +# Simplify the DNSSD parts so they can build using the compat library. +%patch19 -p1 -b .build +# Re-initialise the resolver on failure in httpAddrGetList(). +%patch20 -p1 -b .res_init +# Log extra debugging information if no filters are available. +%patch21 -p1 -b .filter-debug +# Allow the usb backend to understand old-style URI formats. +%patch22 -p1 -b .uri-compat +# Fix support for older CUPS servers in cupsGetDests. +%patch23 -p1 -b .cups-get-classes +# Avahi support in the dnssd backend. +%patch24 -p1 -b .avahi +# Fix temporary filename creation. +%patch25 -p1 -b .str3382 +# Use paps for text conversion. +%patch26 -p1 -b .paps +# Use mode 0755 for binaries and libraries where appropriate. +%patch29 -p1 -b .0755 +# Re-initialise the resolver on failure in httpAddrLookup(). +%patch30 -p1 -b .EAI_AGAIN +# Use numeric addresses for interfaces unless HostNameLookups are +# turned on (bug #583054). +%patch31 -p1 -b .hostnamelookups +# Handle SNMP supply level quirks (bug #581825). +%patch33 -p1 -b .snmp-quirks +# Add an SNMP query for HP's device ID OID (STR #3552). +%patch34 -p1 -b .hp-deviceid-oid +# Mark DNS-SD Device IDs that have been guessed at with "FZY:1;". +%patch35 -p1 -b .dnssd-deviceid +# Add an SNMP query for Ricoh's device ID OID (STR #3552). +%patch36 -p1 -b .ricoh-deviceid-oid +# Adjust texttops output to be in natural orientation (STR #3563). +# This fixes page-label orientation when texttops is used in the +# filter chain (bug #572338). +%patch37 -p1 -b .texttops-rotate-page %if %lspp +# LSPP support. %patch100 -p1 -b .lspp %endif +# SECURITY PATCHES: + sed -i -e '1iMaxLogSize 0' conf/cupsd.conf.in cp %{SOURCE5} cups-lpd.real @@ -284,6 +296,9 @@ perl -pi -e "s,\@LIBDIR\@,%{_libdir},g" cups-lpd.real # Let's look at the compilation command lines. perl -pi -e "s,^.SILENT:,," Makedefs.in +# Fix locale code for Norwegian (bug #520379). +mv locale/cups_no.po locale/cups_nb.po + # Rebuild configure script for --enable-avahi. aclocal -I config-scripts autoconf -I config-scripts @@ -302,7 +317,7 @@ export CFLAGS="$RPM_OPT_FLAGS -fstack-protector-all -DLDAP_DEPRECATED=1" localedir=%{_datadir}/locale # If we got this far, all prerequisite libraries must be here. -make +make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT @@ -312,13 +327,13 @@ make BUILDROOT=$RPM_BUILD_ROOT install # Serial backend needs to run as root (bug #212577). chmod 700 $RPM_BUILD_ROOT%{cups_serverbin}/backend/serial -rm -rf $RPM_BUILD_ROOT%{initdir} \ +rm -rf $RPM_BUILD_ROOT%{_initddir} \ $RPM_BUILD_ROOT%{_sysconfdir}/init.d \ $RPM_BUILD_ROOT%{_sysconfdir}/rc?.d -mkdir -p $RPM_BUILD_ROOT%{initdir} -install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{initdir}/cups +mkdir -p $RPM_BUILD_ROOT%{_initddir} +install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_initddir}/cups -find $RPM_BUILD_ROOT/usr/share/cups/model -name "*.ppd" |xargs gzip -n9f +find $RPM_BUILD_ROOT%{_datadir}/cups/model -name "*.ppd" |xargs gzip -n9f %if %use_alternatives pushd $RPM_BUILD_ROOT%{_bindir} @@ -339,11 +354,11 @@ popd mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps $RPM_BUILD_ROOT%{_sysconfdir}/X11/sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/X11/applnk/System $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily install -c -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/pixmaps install -c -m 644 cups-lpd.real $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/cups-lpd -install -c -m 644 %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/cups -install -c -m 755 %{SOURCE10} $RPM_BUILD_ROOT%{cups_serverbin}/backend/ncp -install -c -m 755 %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/cups -install -c -m 755 %{SOURCE14} $RPM_BUILD_ROOT%{cups_serverbin}/filter/textonly -install -c -m 644 %{SOURCE15} $RPM_BUILD_ROOT%{_datadir}/cups/model/textonly.ppd +install -c -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/cups +install -c -m 755 %{SOURCE7} $RPM_BUILD_ROOT%{cups_serverbin}/backend/ncp +install -c -m 755 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/cups +install -c -m 755 %{SOURCE9} $RPM_BUILD_ROOT%{cups_serverbin}/filter/textonly +install -c -m 644 %{SOURCE10} $RPM_BUILD_ROOT%{_datadir}/cups/model/textonly.ppd # Ship pstopdf for LSPP systems to deal with malicious postscript %if %lspp @@ -351,8 +366,8 @@ install -c -m 755 %{SOURCE4} $RPM_BUILD_ROOT%{cups_serverbin}/filter %endif # Ship pstoraster (bug #69573). -install -c -m 755 %{SOURCE6} $RPM_BUILD_ROOT%{cups_serverbin}/filter -install -c -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/cups +install -c -m 755 %{SOURCE11} $RPM_BUILD_ROOT%{cups_serverbin}/filter +install -c -m 644 %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cups # Ship a printers.conf file, and a client.conf file. That way, they get # their SELinux file contexts set correctly. @@ -364,11 +379,12 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/cups/subscriptions.conf # This is %%ghost'ed, but needs to be created in %%install anyway. touch $RPM_BUILD_ROOT%{_sysconfdir}/cups/lpoptions +# Tell portreserve which port we want it to protect. +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/portreserve + # LSB 3.2 printer driver directory mkdir -p $RPM_BUILD_ROOT%{_datadir}/ppd -# Tell portreserve which port we want it to protect. -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/portreserve echo ipp > $RPM_BUILD_ROOT%{_sysconfdir}/portreserve/%{name} # Handle https:// device URIs (bug #478677, STR #3122). @@ -387,16 +403,16 @@ extension=phpcups.so __EOF__ # Install the udev rules. -%{__mkdir_p} %{buildroot}%{_sysconfdir}/udev/rules.d +%{__mkdir_p} %{buildroot}/lib/udev/rules.d install -m644 %{SOURCE3} \ - %{buildroot}%{_sysconfdir}/udev/rules.d/70-cups-libusb.rules + %{buildroot}/lib/udev/rules.d/70-cups-libusb.rules %post /sbin/chkconfig --del cupsd 2>/dev/null || true # Make sure old versions aren't there anymore /sbin/chkconfig --add cups || true # Remove old-style certs directory; new-style is /var/run # (see bug #194581 for why this is necessary). -/bin/rm -rf /etc/cups/certs +/bin/rm -rf %{_sysconfdir}/cups/certs %if %use_alternatives /usr/sbin/alternatives --install %{_bindir}/lpr print %{_bindir}/lpr.cups 40 \ --slave %{_bindir}/lp print-lp %{_bindir}/lp.cups \ @@ -426,7 +442,7 @@ if [ "$1" = "0" ]; then /sbin/service cups stop > /dev/null 2>&1 /sbin/chkconfig --del cups %if %use_alternatives - /usr/sbin/alternatives --remove print %{_bindir}/lpr.cups + /usr/sbin/alternatives --remove print %{_bindir}/lpr.cups %endif fi exit 0 @@ -451,23 +467,23 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %doc LICENSE.txt README.txt CREDITS.txt CHANGES.txt -%{_sysconfdir}/udev/rules.d/70-cups-libusb.rules -%dir %attr(0755,root,lp) /etc/cups +/lib/udev/rules.d/70-cups-libusb.rules +%dir %attr(0755,root,lp) %{_sysconfdir}/cups %dir %attr(0755,root,lp) /var/run/cups %dir %attr(0511,lp,sys) /var/run/cups/certs -%verify(not md5 size mtime) %config(noreplace) %attr(0640,root,lp) /etc/cups/cupsd.conf -%attr(0640,root,lp) /etc/cups/cupsd.conf.default -%verify(not md5 size mtime) %config(noreplace) %attr(0644,root,lp) /etc/cups/client.conf -%verify(not md5 size mtime) %config(noreplace) %attr(0600,root,lp) /etc/cups/classes.conf -%verify(not md5 size mtime) %config(noreplace) %attr(0600,root,lp) /etc/cups/printers.conf -%verify(not md5 size mtime) %config(noreplace) %attr(0644,root,lp) /etc/cups/snmp.conf -%verify(not md5 size mtime) %config(noreplace) %attr(0644,root,lp) /etc/cups/subscriptions.conf -/etc/cups/interfaces -%verify(not md5 size mtime) %config(noreplace) %attr(0644,root,lp) /etc/cups/lpoptions -%dir %attr(0755,root,lp) /etc/cups/ppd -%dir %attr(0700,root,lp) /etc/cups/ssl -/etc/cups/pstoraster.convs -%config(noreplace) /etc/pam.d/cups +%verify(not md5 size mtime) %config(noreplace) %attr(0640,root,lp) %{_sysconfdir}/cups/cupsd.conf +%attr(0640,root,lp) %{_sysconfdir}/cups/cupsd.conf.default +%verify(not md5 size mtime) %config(noreplace) %attr(0644,root,lp) %{_sysconfdir}/cups/client.conf +%verify(not md5 size mtime) %config(noreplace) %attr(0600,root,lp) %{_sysconfdir}/cups/classes.conf +%verify(not md5 size mtime) %config(noreplace) %attr(0600,root,lp) %{_sysconfdir}/cups/printers.conf +%verify(not md5 size mtime) %config(noreplace) %attr(0644,root,lp) %{_sysconfdir}/cups/snmp.conf +%verify(not md5 size mtime) %config(noreplace) %attr(0644,root,lp) %{_sysconfdir}/cups/subscriptions.conf +%{_sysconfdir}/cups/interfaces +%verify(not md5 size mtime) %config(noreplace) %attr(0644,root,lp) %{_sysconfdir}/cups/lpoptions +%dir %attr(0755,root,lp) %{_sysconfdir}/cups/ppd +%dir %attr(0700,root,lp) %{_sysconfdir}/cups/ssl +%{_sysconfdir}/cups/pstoraster.convs +%config(noreplace) %{_sysconfdir}/pam.d/cups %config(noreplace) %{_sysconfdir}/logrotate.d/cups %config(noreplace) %{_sysconfdir}/portreserve/%{name} %dir %{_datadir}/%{name}/www @@ -484,10 +500,12 @@ rm -rf $RPM_BUILD_ROOT %config(noreplace) %doc %{_datadir}/%{name}/www/de/index.html %config(noreplace) %doc %{_datadir}/%{name}/www/es/index.html %config(noreplace) %doc %{_datadir}/%{name}/www/eu/index.html +%config(noreplace) %doc %{_datadir}/%{name}/www/id/index.html +%config(noreplace) %doc %{_datadir}/%{name}/www/it/index.html %config(noreplace) %doc %{_datadir}/%{name}/www/ja/index.html %config(noreplace) %doc %{_datadir}/%{name}/www/pl/index.html %config(noreplace) %doc %{_datadir}/%{name}/www/ru/index.html -%config(noreplace) %{initdir}/cups +%{_initddir}/cups %{_bindir}/cupstestppd %{_bindir}/cupstestdsc %{_bindir}/cancel* @@ -519,6 +537,8 @@ rm -rf $RPM_BUILD_ROOT %config(noreplace) %{_datadir}/cups/templates/de/*.tmpl %config(noreplace) %{_datadir}/cups/templates/es/*.tmpl %config(noreplace) %{_datadir}/cups/templates/eu/*.tmpl +%config(noreplace) %{_datadir}/cups/templates/id/*.tmpl +%config(noreplace) %{_datadir}/cups/templates/it/*.tmpl %config(noreplace) %{_datadir}/cups/templates/ja/*.tmpl %config(noreplace) %{_datadir}/cups/templates/pl/*.tmpl %config(noreplace) %{_datadir}/cups/templates/ru/*.tmpl @@ -562,6 +582,52 @@ rm -rf $RPM_BUILD_ROOT %{php_extdir}/phpcups.so %changelog +* Fri Jun 18 2010 Tim Waugh 1:1.4.4-1 +- 1.4.4. Fixes several security vulnerabilities (bug #605399): + CVE-2010-0540, CVE-2010-0542, CVE-2010-1748. No longer need str3503, + str3399, str3505, str3541, str3425p2 or CVE-2010-0302 patches. +- Fix lpd provides. +- Added comments for all sources and patches. +- Reset status after successful ipp job (bug #548219, STR #3460). +- Install udev rules in correct place (bug #530378). +- Removed unapplied gnutls-gcrypt-threads patch. Fixed typos in + descriptions for lpd and php sub-packages. +- Add an SNMP query for Ricoh's device ID OID (STR #3552). +- Mark DNS-SD Device IDs that have been guessed at with "FZY:1;". +- Add an SNMP query for HP's device ID OID (STR #3552). +- Don't mark initscript as config file. +- Use %%{_initddir}, %%{_sysconfdir} and SMP make flags. +- Use mode 0755 for binaries and libraries where appropriate. +- Removed use of prereq and buildprereq. +- Fixed use of '%%' in changelog. +- Versioned explicit obsoletes/provides. +- Use tabs throughout. +- Install udev rules in correct place (bug #530378). +- Fix locale code for Norwegian (bug #520379). +- Fixed cups.init to be LSB compliant (bug #521641) +- Changed cups.init to be LSB compliant (bug #521641), i.e. + return code "2" (instead of "3") if invalid arguments + return code "4" if restarting service under nonprivileged user + return code "5" if cupsd not exist or is not executable + return code "6" if cupsd.conf not exist +- Use password-auth common PAM configuration instead of system-auth + when available. +- Fixed 'service cups status' to check for correct subsys name + (bug #521641). +- Renumbered patches and sources. +- Use upstream method of handling SNMP quirks in PPDs (STR #3551, + bug #581825). +- Added back still useful str3425.patch. + Second part of STR #3425 is still not fixed in 1.4.3 +- Use numeric addresses for interfaces unless HostNameLookups are + turned on (bug #583054). +- Handle SNMP supply level quirks (bug #581825). +- No longer need CVE-2009-3553, str3381, str3390, str3391, + str3403, str3407, str3413, str3418, str3422, str3425, + str3428, str3431, str3435, str3436, str3439, str3440, + str3442, str3448, str3458, str3460, cups-sidechannel-intrs, + negative-snmp-string-length, cups-media-empty-warning patches. + * Tue May 18 2010 Tim Waugh 1:1.4.2-31 - Adjust texttops output to be in natural orientation (STR #3563). This fixes page-label orientation when texttops is used in the @@ -2074,7 +2140,7 @@ rm -rf $RPM_BUILD_ROOT - Start cupsd before nfs server processes (bug #97767). * Tue Jun 17 2003 Tim Waugh 1:1.1.19-7 -- Add some %if %use_dbus / %endif's to make it compile without dbus +- Add some %%if %%use_dbus / %%endif's to make it compile without dbus (bug #97397). Patch from Jos Vos. * Mon Jun 16 2003 Tim Waugh 1:1.1.19-6 @@ -2293,8 +2359,8 @@ rm -rf $RPM_BUILD_ROOT * Thu Feb 28 2002 Bill Nottingham 1.1.14-7 - lpc man page is alternative too -- run ldconfig in -libs %post/%postun, not main -- remove alternatives in %preun +- run ldconfig in -libs %%post/%%postun, not main +- remove alternatives in %%preun * Wed Feb 27 2002 Bill Nottingham 1.1.14-6 - don't source /etc/sysconfig/network in cups.init, we don't use any @@ -2386,7 +2452,7 @@ rm -rf $RPM_BUILD_ROOT - rebuilt against libpng-1.0.8 * Tue Aug 01 2000 Than Ngo -- fix permission, add missing ldconfig in %post and %postun (Bug #14963) +- fix permission, add missing ldconfig in %%post and %%postun (Bug #14963) * Sat Jul 29 2000 Bernhard Rosenkraenzer - 1.1.1 (this has some major bugfixes) diff --git a/sources b/sources index 73d408c..3271d43 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ d95e2d588e3d36e563027a963b117b1b cups-1.4.2-source.tar.bz2 +8776403ad60fea9e85eab9c04d88560d cups-1.4.4-source.tar.bz2