rpms/cups/F-12 cups-dnssd-deviceid.patch, NONE, 1.1 cups-hp-deviceid-oid.patch, NONE, 1.1 cups-ricoh-deviceid-oid.patch, NONE, 1.1 .cvsignore, 1.49, 1.50 cups-getpass.patch, 1.2, 1.3 cups-hostnamelookups.patch, 1.1, 1.2 cups-lspp.patch, 1.48, 1.49 cups-page-label.patch, 1.1, 1.2 cups.spec, 1.589, 1.590 sources, 1.53, 1.54 cups-CVE-2010-0302.patch, 1.2, NONE cups-gnutls-gcrypt-threads.patch, 1.1, NONE cups-str3399.patch, 1.3, NONE cups-str3425p2.patch, 1.1, NONE cups-str3503.patch, 1.1, NONE cups-str3505.patch, 1.1, NONE cups-str3541.patch, 1.2, NONE

Tim Waugh twaugh at fedoraproject.org
Fri Jun 18 10:42:26 UTC 2010


Author: twaugh

Update of /cvs/pkgs/rpms/cups/F-12
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv18777

Modified Files:
	.cvsignore cups-getpass.patch cups-hostnamelookups.patch 
	cups-lspp.patch cups-page-label.patch cups.spec sources 
Added Files:
	cups-dnssd-deviceid.patch cups-hp-deviceid-oid.patch 
	cups-ricoh-deviceid-oid.patch 
Removed Files:
	cups-CVE-2010-0302.patch cups-gnutls-gcrypt-threads.patch 
	cups-str3399.patch cups-str3425p2.patch cups-str3503.patch 
	cups-str3505.patch cups-str3541.patch 
Log Message:
* Fri Jun 18 2010 Tim Waugh <twaugh at redhat.com> 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).


cups-dnssd-deviceid.patch:
 dnssd.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

--- NEW FILE cups-dnssd-deviceid.patch ---
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);
         }
       }

cups-hp-deviceid-oid.patch:
 snmp.c |    4 ++++
 1 file changed, 4 insertions(+)

--- NEW FILE cups-hp-deviceid-oid.patch ---
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 :

cups-ricoh-deviceid-oid.patch:
 snmp.c |    4 ++++
 1 file changed, 4 insertions(+)

--- NEW FILE cups-ricoh-deviceid-oid.patch ---
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,


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/cups/F-12/.cvsignore,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -p -r1.49 -r1.50
--- .cvsignore	31 Mar 2010 13:10:44 -0000	1.49
+++ .cvsignore	18 Jun 2010 10:42:25 -0000	1.50
@@ -42,3 +42,4 @@ cups-1.4.0-source.tar.bz2
 cups-1.4b2-source.tar.bz2
 cups-1.4b2-svn8404-source.tar.bz2
 cups-1.4.3-source.tar.bz2
+cups-1.4.4-source.tar.bz2

cups-getpass.patch:
 usersys.c |   26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

Index: cups-getpass.patch
===================================================================
RCS file: /cvs/pkgs/rpms/cups/F-12/cups-getpass.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- cups-getpass.patch	13 Nov 2006 16:26:25 -0000	1.2
+++ cups-getpass.patch	18 Jun 2010 10:42:25 -0000	1.3
@@ -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 <stdlib.h>
  #include <sys/stat.h>
@@ -8,11 +9,11 @@
 +#include <signal.h>
  #ifdef WIN32
  #  include <windows.h>
- #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 */
+ }
  

cups-hostnamelookups.patch:
 network.c |    6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

Index: cups-hostnamelookups.patch
===================================================================
RCS file: /cvs/pkgs/rpms/cups/F-12/cups-hostnamelookups.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- cups-hostnamelookups.patch	6 May 2010 14:24:14 -0000	1.1
+++ cups-hostnamelookups.patch	18 Jun 2010 10:42:25 -0000	1.2
@@ -1,16 +1,19 @@
-diff -up cups-1.4.3/scheduler/network.c.hostnamelookups cups-1.4.3/scheduler/network.c
---- cups-1.4.3/scheduler/network.c.hostnamelookups	2009-04-28 01:23:38.000000000 +0100
-+++ cups-1.4.3/scheduler/network.c	2010-05-06 15:11:34.652926030 +0100
-@@ -155,7 +155,7 @@ cupsdNetIFUpdate(void)
+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)
-+    if (HostNameLookups)
+-#endif /* __APPLE__ */
        httpAddrLookup((http_addr_t *)(addr->ifa_addr), hostname,
                       sizeof(hostname));
      else
-@@ -163,7 +163,7 @@ cupsdNetIFUpdate(void)
+@@ -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

cups-lspp.patch:
 Makedefs.in                 |    4 
 config-scripts/cups-lspp.m4 |   36 +++
 config.h.in                 |    7 
 configure.in                |    2 
 cups/cups.h                 |    9 
 data/Makefile               |    5 
 data/mls                    |  261 +++++++++++++++++++++++++
 data/selinux                |  261 +++++++++++++++++++++++++
 data/te                     |  261 +++++++++++++++++++++++++
 filter/common.c             |  139 +++++++++++++
 filter/pstops.c             |  133 ++++++++++++
 scheduler/client.c          |  171 ++++++++++++++++
 scheduler/client.h          |   14 +
 scheduler/conf.c            |   56 +++++
 scheduler/conf.h            |    9 
 scheduler/ipp.c             |  456 ++++++++++++++++++++++++++++++++++++++++++++
 scheduler/job.c             |  303 ++++++++++++++++++++++++++++-
 scheduler/job.h             |   11 +
 scheduler/main.c            |   32 +++
 scheduler/printers.c        |   53 +++++
 20 files changed, 2215 insertions(+), 8 deletions(-)

Index: cups-lspp.patch
===================================================================
RCS file: /cvs/pkgs/rpms/cups/F-12/cups-lspp.patch,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -p -r1.48 -r1.49
--- cups-lspp.patch	31 Mar 2010 13:10:45 -0000	1.48
+++ cups-lspp.patch	18 Jun 2010 10:42:25 -0000	1.49
@@ -1,7 +1,7 @@
-diff -up cups-1.4.3/config.h.in.lspp cups-1.4.3/config.h.in
---- cups-1.4.3/config.h.in.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/config.h.in	2010-03-31 14:08:57.000000000 +0200
-@@ -633,6 +633,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.3/config.h.in.lspp cup
  #endif /* !_CUPS_CONFIG_H_ */
  
  /*
-diff -up cups-1.4.3/config-scripts/cups-lspp.m4.lspp cups-1.4.3/config-scripts/cups-lspp.m4
---- cups-1.4.3/config-scripts/cups-lspp.m4.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/config-scripts/cups-lspp.m4	2010-03-31 14:08:57.000000000 +0200
+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 cups-1.4.3/config-scripts/cups-
 +            ;;
 +    esac
 +fi
-diff -up cups-1.4.3/configure.in.lspp cups-1.4.3/configure.in
---- cups-1.4.3/configure.in.lspp	2008-11-14 20:32:22.000000000 +0100
-+++ cups-1.4.3/configure.in	2010-03-31 14:08:57.000000000 +0200
+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.3/configure.in.lspp cu
  INSTALL_LANGUAGES=""
  UNINSTALL_LANGUAGES=""
  LANGFILES=""
-diff -up cups-1.4.3/cups/cups.h.lspp cups-1.4.3/cups/cups.h
---- cups-1.4.3/cups/cups.h.lspp	2009-11-16 18:11:56.000000000 +0100
-+++ cups-1.4.3/cups/cups.h	2010-03-31 14:08:57.000000000 +0200
+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.3/cups/cups.h.lspp cup
  #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.3/cups/cups.h.lspp cup
  /*
   * Types and structures...
   */
-diff -up cups-1.4.3/data/Makefile.lspp cups-1.4.3/data/Makefile
---- cups-1.4.3/data/Makefile.lspp	2008-11-12 20:30:57.000000000 +0100
-+++ cups-1.4.3/data/Makefile	2010-03-31 14:08:57.000000000 +0200
+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.3/data/Makefile.lspp c
  
  CHARMAPS =	\
  		euc-cn.txt \
-diff -up cups-1.4.3/data/mls.lspp cups-1.4.3/data/mls
---- cups-1.4.3/data/mls.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/data/mls	2010-03-31 14:08:57.000000000 +0200
+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 cups-1.4.3/data/mls.lspp cups-1
 +% End of "$Id$".
 +%
 +%%EOF
-diff -up cups-1.4.3/data/selinux.lspp cups-1.4.3/data/selinux
---- cups-1.4.3/data/selinux.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/data/selinux	2010-03-31 14:08:57.000000000 +0200
+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 cups-1.4.3/data/selinux.lspp cu
 +% End of "$Id$".
 +%
 +%%EOF
-diff -up cups-1.4.3/data/te.lspp cups-1.4.3/data/te
---- cups-1.4.3/data/te.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/data/te	2010-03-31 14:08:57.000000000 +0200
+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 cups-1.4.3/data/te.lspp cups-1.
 +% End of "$Id$".
 +%
 +%%EOF
-diff -up cups-1.4.3/filter/common.c.lspp cups-1.4.3/filter/common.c
---- cups-1.4.3/filter/common.c.lspp	2007-07-11 23:46:42.000000000 +0200
-+++ cups-1.4.3/filter/common.c	2010-03-31 14:08:57.000000000 +0200
+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.3/filter/common.c.lspp
  
  
  /*
-diff -up cups-1.4.3/filter/pstops.c.lspp cups-1.4.3/filter/pstops.c
---- cups-1.4.3/filter/pstops.c.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/filter/pstops.c	2010-03-31 14:08:57.000000000 +0200
-@@ -3275,6 +3275,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.3/filter/pstops.c.lspp
  
  
   /*
-@@ -3297,6 +3309,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.3/filter/pstops.c.lspp
   /*
    * Set the classification + page label string...
    */
-@@ -3375,7 +3505,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.3/filter/pstops.c.lspp
  
  
  /*
-diff -up cups-1.4.3/Makedefs.in.lspp cups-1.4.3/Makedefs.in
---- cups-1.4.3/Makedefs.in.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/Makedefs.in	2010-03-31 14:08:57.000000000 +0200
+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.3/Makedefs.in.lspp cup
  .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.3/scheduler/client.c.lspp cups-1.4.3/scheduler/client.c
---- cups-1.4.3/scheduler/client.c.lspp	2009-07-15 01:02:05.000000000 +0200
-+++ cups-1.4.3/scheduler/client.c	2010-03-31 14:08:57.000000000 +0200
+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.3/scheduler/client.c.l
  	  }
  
  	  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.3/scheduler/client.c.l
  /*
   * 'pipe_command()' - Pipe the output of a command to the remote client.
   */
-diff -up cups-1.4.3/scheduler/client.h.lspp cups-1.4.3/scheduler/client.h
---- cups-1.4.3/scheduler/client.h.lspp	2009-05-27 00:01:23.000000000 +0200
-+++ cups-1.4.3/scheduler/client.h	2010-03-31 14:08:57.000000000 +0200
+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.3/scheduler/client.h.l
  
  
  /*
-diff -up cups-1.4.3/scheduler/conf.c.lspp cups-1.4.3/scheduler/conf.c
---- cups-1.4.3/scheduler/conf.c.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/scheduler/conf.c	2010-03-31 14:08:57.000000000 +0200
+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 <Location path> definition.
@@ -1535,7 +1535,7 @@ diff -up cups-1.4.3/scheduler/conf.c.lsp
  
  /*
   * 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.3/scheduler/conf.c.lsp
  #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.3/scheduler/conf.c.lsp
  
  
   /*
-@@ -718,6 +729,25 @@ cupsdReadConfiguration(void)
+@@ -713,6 +724,25 @@ cupsdReadConfiguration(void)
  
    RunUser = getuid();
  
@@ -1582,7 +1582,7 @@ diff -up cups-1.4.3/scheduler/conf.c.lsp
    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.3/scheduler/conf.c.lsp
  
   /*
    * 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.3/scheduler/conf.c.lsp
  
  /*
   * 'read_policy()' - Read a <Policy name> definition.
-diff -up cups-1.4.3/scheduler/conf.h.lspp cups-1.4.3/scheduler/conf.h
---- cups-1.4.3/scheduler/conf.h.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/scheduler/conf.h	2010-03-31 14:08:57.000000000 +0200
-@@ -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.3/scheduler/conf.h.lsp
  
  #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.3/scheduler/conf.h.lsp
  
  /*
   * Prototypes...
-diff -up cups-1.4.3/scheduler/ipp.c.lspp cups-1.4.3/scheduler/ipp.c
---- cups-1.4.3/scheduler/ipp.c.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/scheduler/ipp.c	2010-03-31 14:11:37.000000000 +0200
+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.3/scheduler/ipp.c.lspp
  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);
-@@ -1337,6 +1352,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,7 +1720,7 @@ diff -up cups-1.4.3/scheduler/ipp.c.lspp
  
  
    cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))",
-@@ -1550,6 +1580,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,
                   "Untitled");
  
@@ -1825,7 +1825,7 @@ diff -up cups-1.4.3/scheduler/ipp.c.lspp
    if ((job = cupsdAddJob(priority, printer->name)) == NULL)
    {
      send_ipp_status(con, IPP_INTERNAL_ERROR,
-@@ -1558,6 +1686,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.3/scheduler/ipp.c.lspp
    job->dtype   = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
                                    CUPS_PRINTER_REMOTE);
    job->attrs   = con->request;
-@@ -1763,6 +1917,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.3/scheduler/ipp.c.lspp
  
      job->job_sheets = attr;
  
-@@ -1793,6 +1970,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.3/scheduler/ipp.c.lspp
  	}
  	else if (attr->num_values == 2 &&
  	         strcmp(attr->values[0].string.text,
-@@ -1811,6 +1991,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.3/scheduler/ipp.c.lspp
  	}
  	else if (strcmp(attr->values[0].string.text, Classification) &&
  	         strcmp(attr->values[0].string.text, "none") &&
-@@ -1831,6 +2014,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.3/scheduler/ipp.c.lspp
          }
        }
        else if (strcmp(attr->values[0].string.text, Classification) &&
-@@ -1871,8 +2057,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.3/scheduler/ipp.c.lspp
  
     /*
      * 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.3/scheduler/ipp.c.lspp
  /*
   * '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.3/scheduler/ipp.c.lspp
  
  
    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.3/scheduler/ipp.c.lspp
  
   /*
    * 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.3/scheduler/ipp.c.lspp
        if (!strcmp(s, "printer-name"))
        {
          cupsFilePuts(out, job->dest);
-@@ -6844,6 +7274,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.3/scheduler/ipp.c.lspp
   /*
    * Copy attributes...
    */
-@@ -7074,6 +7520,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.3/scheduler/ipp.c.lspp
      if (count > 0)
        ippAddSeparator(con->response);
  
-@@ -11460,6 +11911,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.3/scheduler/ipp.c.lspp
   /*
    * Check the username against the owner...
    */
-diff -up cups-1.4.3/scheduler/job.c.lspp cups-1.4.3/scheduler/job.c
---- cups-1.4.3/scheduler/job.c.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/scheduler/job.c	2010-03-31 14:08:57.000000000 +0200
+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.
   */
@@ -2495,7 +2495,7 @@ diff -up cups-1.4.3/scheduler/job.c.lspp
    job->attrs->state = IPP_IDLE;
  
    if (ippWriteIO(fp, (ipp_iocb_t)cupsFileWrite, 1, NULL,
-@@ -3177,6 +3349,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.3/scheduler/job.c.lspp
       /*
        * Otherwise add them to the list...
        */
-@@ -3849,6 +4033,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.3/scheduler/job.c.lspp
    cupsdLogMessage(CUPSD_LOG_DEBUG2, "start_job(job=%p(%d), printer=%p(%s))",
                    job, job->id, printer, printer->name);
  
-@@ -3971,6 +4168,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.3/scheduler/job.c.lspp
   /*
    * Now start the first file in the job...
    */
-diff -up cups-1.4.3/scheduler/job.h.lspp cups-1.4.3/scheduler/job.h
---- cups-1.4.3/scheduler/job.h.lspp	2009-05-12 00:46:01.000000000 +0200
-+++ cups-1.4.3/scheduler/job.h	2010-03-31 14:08:57.000000000 +0200
+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.3/scheduler/job.h.lspp
  };
  
  typedef struct cupsd_joblog_s		/**** Job log message ****/
-diff -up cups-1.4.3/scheduler/main.c.lspp cups-1.4.3/scheduler/main.c
---- cups-1.4.3/scheduler/main.c.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/scheduler/main.c	2010-03-31 14:08:57.000000000 +0200
-@@ -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.3/scheduler/main.c.lsp
  /*
   * Include necessary headers...
   */
-@@ -73,6 +75,9 @@
+@@ -76,6 +78,9 @@
  #  include <dlfcn.h>
  #endif /* __APPLE__ && HAVE_DLFCN_H */
  
@@ -2691,7 +2691,7 @@ diff -up cups-1.4.3/scheduler/main.c.lsp
  
  /*
   * 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.3/scheduler/main.c.lsp
  
  
  #ifdef HAVE_GETEUID
-@@ -465,6 +473,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.3/scheduler/main.c.lsp
   /*
    * Set the timezone info...
    */
-@@ -1235,6 +1262,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.3/scheduler/main.c.lsp
    return (!stop_scheduler);
  }
  
-diff -up cups-1.4.3/scheduler/printers.c.lspp cups-1.4.3/scheduler/printers.c
---- cups-1.4.3/scheduler/printers.c.lspp	2010-03-31 14:08:57.000000000 +0200
-+++ cups-1.4.3/scheduler/printers.c	2010-03-31 14:08:57.000000000 +0200
-@@ -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.3/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.3/scheduler/printers.c
  
  /*
   * 'cupsdAddPrinter()' - Add a printer to the system.
-@@ -2173,6 +2179,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.3/scheduler/printers.c
  
  
    DEBUG_printf(("cupsdSetPrinterAttrs: entering name = %s, type = %x\n", p->name,
-@@ -2303,6 +2316,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.3/scheduler/printers.c
    }
  
    p->raw    = 0;
-@@ -4834,7 +4886,6 @@ write_irix_state(cupsd_printer_t *p)	/* 
+@@ -5320,7 +5372,6 @@ write_irix_state(cupsd_printer_t *p)	/* 
  }
  #endif /* __sgi */
  

cups-page-label.patch:
 pstops.c |   40 +++++++++++++++++++++++++++++++++++-----
 1 file changed, 35 insertions(+), 5 deletions(-)

Index: cups-page-label.patch
===================================================================
RCS file: /cvs/pkgs/rpms/cups/F-12/cups-page-label.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- cups-page-label.patch	2 Oct 2009 12:02:44 -0000	1.1
+++ cups-page-label.patch	18 Jun 2010 10:42:26 -0000	1.2
@@ -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
  		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
        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
  }
  
  
-@@ -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
            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
  	  }
  	  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
            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
 +  doc->orientation = Orientation;
 +
 + /*
-   * AP_FIRSTPAGE_InputSlot
+   * AP_FIRSTPAGE_* and the corresponding non-first-page options.
    */
  


Index: cups.spec
===================================================================
RCS file: /cvs/pkgs/rpms/cups/F-12/cups.spec,v
retrieving revision 1.589
retrieving revision 1.590
diff -u -p -r1.589 -r1.590
--- cups.spec	10 Jun 2010 08:12:02 -0000	1.589
+++ cups.spec	18 Jun 2010 10:42:26 -0000	1.590
@@ -7,23 +7,33 @@
 
 Summary: Common Unix Printing System
 Name: cups
-Version: 1.4.3
-Release: 8%{?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
-Source8: cups.logrotate
-Source9: ncp.backend
-Source10: cups.cron
-Source11: textonly.filter
-Source12: 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
@@ -49,22 +59,18 @@ Patch22: cups-uri-compat.patch
 Patch23: cups-cups-get-classes.patch
 Patch24: cups-avahi.patch
 Patch25: cups-str3382.patch
-Patch26: cups-str3503.patch
-Patch27: cups-str3399.patch
-Patch28: cups-gnutls-gcrypt-threads.patch
 Patch29: cups-0755.patch
 Patch30: cups-EAI_AGAIN.patch
-Patch31: cups-str3505.patch
-Patch32: cups-str3541.patch
+Patch31: cups-hostnamelookups.patch
 Patch33: cups-snmp-quirks.patch
-Patch34: cups-hostnamelookups.patch
-Patch35: cups-texttops-rotate-page.patch
-Patch36: cups-str3425p2.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:
-Patch200: cups-CVE-2010-0302.patch
 
 Epoch: 1
 Url: http://www.cups.org/
@@ -100,6 +106,9 @@ BuildRequires: krb5-devel
 BuildRequires: avahi-devel
 BuildRequires: poppler-utils
 
+# Make sure we get postscriptdriver tags.
+BuildRequires: pycups
+
 %if %lspp
 BuildRequires: libselinux-devel >= 1.23
 BuildRequires: audit-libs-devel >= 1.1
@@ -127,6 +136,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
@@ -183,60 +195,92 @@ natively, without needing the lp/lpr com
 
 %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
+# 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
-%patch26 -p1 -b .str3503
-%patch27 -p1 -b .str3399
-#%patch28 -p1 -b .gnutls-gcrypt-threads
+# 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
-%patch31 -p1 -b .str3505
-%patch32 -p1 -b .str3541
+# 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
-%patch34 -p1 -b .hostnamelookups
-%patch35 -p1 -b .texttops-rotate-page
-%patch36 -p1 -b .str3425p2
+# 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:
-%patch200 -p1 -b .CVE-2010-0302
-
 
 sed -i -e '1iMaxLogSize 0' conf/cupsd.conf.in
 
@@ -304,11 +348,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 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/cups
-install -c -m 755 %{SOURCE9} $RPM_BUILD_ROOT%{cups_serverbin}/backend/ncp
-install -c -m 755 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/cups
-install -c -m 755 %{SOURCE11} $RPM_BUILD_ROOT%{cups_serverbin}/filter/textonly
-install -c -m 644 %{SOURCE12} $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
@@ -316,8 +360,8 @@ install -c -m 755 %{SOURCE4} $RPM_BUILD_
 %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.
@@ -532,6 +576,20 @@ rm -rf $RPM_BUILD_ROOT
 %{php_extdir}/phpcups.so
 
 %changelog
+* Fri Jun 18 2010 Tim Waugh <twaugh at redhat.com> 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).
+
 * Wed Jun  9 2010 Tim Waugh <twaugh at redhat.com> 1:1.4.3-8
 - Use upstream method of handling SNMP quirks in PPDs (STR #3551,
   bug #581825).


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/cups/F-12/sources,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -p -r1.53 -r1.54
--- sources	31 Mar 2010 13:10:46 -0000	1.53
+++ sources	18 Jun 2010 10:42:26 -0000	1.54
@@ -1 +1,2 @@
 e70b1c3f60143d7310c1d74c111a21ab  cups-1.4.3-source.tar.bz2
+8776403ad60fea9e85eab9c04d88560d  cups-1.4.4-source.tar.bz2


--- cups-CVE-2010-0302.patch DELETED ---


--- cups-gnutls-gcrypt-threads.patch DELETED ---


--- cups-str3399.patch DELETED ---


--- cups-str3425p2.patch DELETED ---


--- cups-str3503.patch DELETED ---


--- cups-str3505.patch DELETED ---


--- cups-str3541.patch DELETED ---



More information about the scm-commits mailing list