[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[redhat-lspp] Updated cups-lspp.patch



Attached is an updated cups lspp patch.

The file also exists at:
http://free.linux.hp.com/~mra/patches/cups-lspp.patch
http://free.linux.hp.com/~mra/rpms/cups.spec

http://free.linux.hp.com/~mra/rpms/cups-1.2.1-18.1lspp.src.rpm
http://free.linux.hp.com/~mra/rpms/cups-1.2.1-18.1lspp.i386.rpm
http://free.linux.hp.com/~mra/rpms/cups-1.2.1-18.1lspp.ia64.rpm
http://free.linux.hp.com/~mra/rpms/cups-1.2.1-18.1lspp.x86_64.rpm

I've addressed the problems Linda and I were seeing, and made changes
based on some initial feedback from Dan Walsh.

The same configuration notes apply:
/etc/cups/client.conf
ServerName /var/run/cups/cups.sock

and in /etc/cups/cupsd.conf you'll want to comment out the line
#Listen localhost:631
Listen /var/run/cups/cups.sock

Additionally you may want to set
Browsing No
FileDevices Yes
Classification mls

I'll probably end up posting a document which could be used as the basis
of an evaluated configuration guide later in the week.

-matt
diff -ur cups-1.2.1-orig/config.h.in cups-1.2.1/config.h.in
--- cups-1.2.1-orig/config.h.in	2006-07-14 16:15:21.000000000 -0400
+++ cups-1.2.1/config.h.in	2006-07-14 17:45:42.000000000 -0400
@@ -443,6 +443,13 @@
 #undef HAVE_APPLETALK_AT_PROTO_H
 
 
+/*
+ * Are we trying to meet LSPP requirements?
+ */
+
+#undef WITH_LSPP
+
+
 #endif /* !_CUPS_CONFIG_H_ */
 
 /*
diff -ur cups-1.2.1-orig/configure.in cups-1.2.1/configure.in
--- cups-1.2.1-orig/configure.in	2006-07-14 16:15:21.000000000 -0400
+++ cups-1.2.1/configure.in	2006-07-14 17:45:43.000000000 -0400
@@ -47,6 +47,8 @@
 sinclude(config-scripts/cups-pdf.m4)
 sinclude(config-scripts/cups-scripting.m4)
 
+sinclude(config-scripts/cups-lspp.m4)
+
 INSTALL_LANGUAGES=""
 UNINSTALL_LANGUAGES=""
 LANGFILES=""
diff -ur cups-1.2.1-orig/cups/cups.h cups-1.2.1/cups/cups.h
--- cups-1.2.1-orig/cups/cups.h	2006-03-05 22:39:28.000000000 -0500
+++ cups-1.2.1/cups/cups.h	2006-07-10 12:24:47.000000000 -0400
@@ -24,6 +24,8 @@
  *   This file is subject to the Apple OS-Developed Software exception.
  */
 
+/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */
+
 #ifndef _CUPS_CUPS_H_
 #  define _CUPS_CUPS_H_
 
@@ -68,6 +70,12 @@
 #  define CUPS_DATE_ANY		-1
 
 
+# ifdef WITH_LSPP
+# define MLS_CONFIG "mls"
+# define TE_CONFIG "te"
+# define SELINUX_CONFIG "SELinux"
+# define UNKNOWN_SL "UNKNOWN SL"
+# endif /* WITH_LSPP */
 /*
  * Types and structures...
  */
diff -ur cups-1.2.1-orig/data/Makefile cups-1.2.1/data/Makefile
--- cups-1.2.1-orig/data/Makefile	2006-03-18 22:23:34.000000000 -0500
+++ cups-1.2.1/data/Makefile	2006-06-28 19:39:12.000000000 -0400
@@ -34,7 +34,10 @@
 		secret \
 		standard \
 		topsecret \
-		unclassified
+		unclassified \
+		selinux \
+		mls \
+		te
 
 CHARMAPS =	\
 		euc-cn.txt \
diff -ur cups-1.2.1-orig/Makedefs.in cups-1.2.1/Makedefs.in
--- cups-1.2.1-orig/Makedefs.in	2006-07-14 16:15:50.000000000 -0400
+++ cups-1.2.1/Makedefs.in	2006-07-14 17:45:45.000000000 -0400
@@ -135,7 +135,7 @@
 			@LDFLAGS@ @RELROFLAG@ @PIEFLAGS@ $(OPTIM)
 LINKCUPS	=	@LINKCUPS@ $(SSLLIBS)
 LINKCUPSIMAGE	=	@LINKCUPSIMAGE@
-LIBS		=	$(LINKCUPS) $(COMMONLIBS)
+LIBS		=	$(LINKCUPS) $(COMMONLIBS) @LIBAUDIT@ @LIBSELINUX@
 OPTIM		=	@OPTIM@
 OPTIONS		=
 PAMLIBS		=	@PAMLIBS@
diff -ur cups-1.2.1-orig/scheduler/client.c cups-1.2.1/scheduler/client.c
--- cups-1.2.1-orig/scheduler/client.c	2006-07-14 16:15:22.000000000 -0400
+++ cups-1.2.1/scheduler/client.c	2006-07-14 17:45:45.000000000 -0400
@@ -43,12 +43,17 @@
  *   make_certificate()      - Make a self-signed SSL/TLS certificate.
  *   pipe_command()          - Pipe the output of a command to the remote client.
  *   write_file()            - Send a file via HTTP.
+ *   client_pid_to_auid()    - Get the audit login uid of the client.
  */
 
+/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */
+/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */
+
 /*
  * Include necessary headers...
  */
 
+#define _GNU_SOURCE
 #include <cups/http-private.h>
 #include "cupsd.h"
 
@@ -64,6 +69,11 @@
 #  include <gnutls/x509.h>
 #endif /* HAVE_GNUTLS */
 
+#ifdef WITH_LSPP
+#include <selinux/selinux.h>
+#include <fcntl.h>
+#endif /* WITH_LSPP */
+
 
 /*
  * Local functions...
@@ -380,6 +390,45 @@
                   "cupsdAcceptClient: %d connected to server on %s:%d",
                   con->http.fd, con->servername, con->serverport);
 
+#ifdef WITH_LSPP
+  if (is_lspp_config())
+  {
+    struct ucred cr;
+    unsigned int cl=sizeof(cr);
+
+    if (getsockopt(con->http.fd, SOL_SOCKET, SO_PEERCRED, &cr, &cl)==0) {
+     /*
+      * client_pid_to_auid() can be racey
+      * In this case the pid is based on a socket connected to the client
+      */
+      con->auid = client_pid_to_auid(cr.pid);
+      cupsdLogMessage(CUPSD_LOG_INFO, "cupsdAcceptClient: peer's pid=%d, uid=%d, gid=%d, auid=%d",
+                      cr.pid, cr.uid, cr.gid, con->auid);
+    } else {
+      close(con->http.fd);
+      cupsdLogMessage(CUPSD_LOG_ERROR, "cupsdAcceptClient: getsockopt() failed");
+      return (cupsdCloseClient(con));
+    }
+
+   /*
+    * get the context of the peer connection
+    */
+    if (getpeercon(con->http.fd, &con->scon))
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR, "cupsdAcceptClient: getpeercon() failed");
+      cupsdSetString(&con->scon, UNKNOWN_SL);
+    }
+
+    cupsdLogMessage(CUPSD_LOG_INFO, "cupsdAcceptClient: client context=%s", con->scon);
+
+  }
+  else
+  {
+    cupsdLogMessage(CUPSD_LOG_ERROR, "cupsdAcceptClient: skipping getpeercon()");
+    cupsdSetString(&con->scon, UNKNOWN_SL);
+  }
+#endif /* WITH_LSPP */
+
  /*
   * Using TCP_NODELAY improves responsiveness, especially on systems
   * with a slow loopback interface...  Since we write large buffers
@@ -3485,6 +3535,48 @@
 }
 #endif /* HAVE_GNUTLS */
 
+#ifdef WITH_LSPP
+/*
+ * 'client_pid_to_auid()' - Using the client's pid, read /proc and determine the loginuid.
+ */
+
+uid_t client_pid_to_auid(pid_t clipid)
+{
+  uid_t uid;
+  int len, in;
+  char buf[16] = {0};
+  char fname[32] = {0};
+
+
+ /*
+  * Hopefully this pid is still the one we are interested in.
+  */
+  snprintf(fname, 32, "/proc/%d/loginuid", clipid);
+  in = open(fname, O_NOFOLLOW|O_RDONLY);
+
+  if (in < 0)
+    return -1;
+
+  errno = 0;
+
+  do {
+    len = read(in, buf, sizeof(buf));
+  } while (len < 0 && errno == EINTR);
+
+  close(in);
+
+  if (len < 0 || len >= sizeof(buf))
+    return -1;
+
+  buf[len] = 0;
+  uid = strtol(buf, 0, 10);
+
+  if (errno != 0)
+    return -1;
+  else
+    return uid;
+}
+#endif /* WITH_LSPP */
 
 /*
  * 'pipe_command()' - Pipe the output of a command to the remote client.
diff -ur cups-1.2.1-orig/scheduler/client.h cups-1.2.1/scheduler/client.h
--- cups-1.2.1-orig/scheduler/client.h	2006-03-17 22:05:12.000000000 -0500
+++ cups-1.2.1/scheduler/client.h	2006-06-29 16:39:50.000000000 -0400
@@ -22,6 +22,13 @@
  *         WWW: http://www.cups.org
  */
 
+/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */
+/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */
+
+#ifdef WITH_LSPP
+#include <selinux/selinux.h>
+#endif /* WITH_LSPP */
+
 /*
  * HTTP client structure...
  */
@@ -55,6 +62,10 @@
   http_addr_t		clientaddr;	/* Client address */
   char			servername[256];/* Server name for connection */
   int			serverport;	/* Server port for connection */
+#ifdef WITH_LSPP
+  security_context_t	scon;		/* Security context of connection */
+  uid_t			auid;		/* Audit loginuid of the client */
+#endif /* WITH_LSPP */
 };
 
 #define HTTP(con) &((con)->http)
@@ -118,6 +129,9 @@
 extern void	cupsdStopListening(void);
 extern void	cupsdUpdateCGI(void);
 extern int	cupsdWriteClient(cupsd_client_t *con);
+#ifdef WITH_LSPP
+extern uid_t	client_pid_to_auid(pid_t clipid);
+#endif /* WITH_LSPP */
 
 
 /*
diff -ur cups-1.2.1-orig/scheduler/conf.c cups-1.2.1/scheduler/conf.c
--- cups-1.2.1-orig/scheduler/conf.c	2006-07-14 16:15:21.000000000 -0400
+++ cups-1.2.1/scheduler/conf.c	2006-07-14 17:45:46.000000000 -0400
@@ -35,6 +35,7 @@
  *   read_configuration()     - Read a configuration file.
  *   read_location()          - Read a <Location path> definition.
  *   read_policy()            - Read a <Policy name> definition.
+ *   is_lspp_config()         - Is the system configured for LSPP
  */
 
 /*
@@ -60,6 +61,9 @@
 #  define INADDR_NONE	0xffffffff
 #endif /* !INADDR_NONE */
 
+#ifdef WITH_LSPP
+#  include <libaudit.h>
+#endif /* WITH_LSPP */
 
 /*
  * Configuration variable structure...
@@ -161,6 +165,9 @@
   { "ServerKey",		&ServerKey,		CUPSD_VARTYPE_STRING },
 #  endif /* HAVE_LIBSSL || HAVE_GNUTLS */
 #endif /* HAVE_SSL */
+#ifdef WITH_LSPP
+  { "AuditLog",			&AuditLog,		CUPSD_VARTYPE_INTEGER },
+#endif /* WITH_LSPP */
 #ifdef HAVE_LAUNCHD
   { "LaunchdTimeout",		&LaunchdTimeout,	CUPSD_VARTYPE_INTEGER },
   { "LaunchdConf",		&LaunchdConf,		CUPSD_VARTYPE_STRING },
@@ -223,6 +230,9 @@
 		*old_requestroot;	/* Old RequestRoot */
   const char	*tmpdir;		/* TMPDIR environment variable */
   struct stat	tmpinfo;		/* Temporary directory info */
+#ifdef WITH_LSPP
+  char		*audit_message;		/* Audit message string */
+#endif /* WITH_LSPP */
 
 
  /*
@@ -377,6 +387,16 @@
     }
   }
 
+#ifdef WITH_LSPP
+  /*
+   * ClassifyOverride is set during read_configuration, if its on, report it now
+   */
+  if (ClassifyOverride)
+    audit_log_user_message(AuditLog, AUDIT_USYS_CONFIG,
+              "[Config] ClassifyOverride=enabled Users can override print banners",
+              ServerName, NULL, NULL, 1);
+#endif /* WITH_LSPP */
+
  /*
   * Numeric options...
   */
@@ -779,7 +799,16 @@
     cupsdClearString(&Classification);
 
   if (Classification)
+  {
     cupsdLogMessage(CUPSD_LOG_INFO, "Security set to \"%s\"", Classification);
+#ifdef WITH_LSPP
+    audit_message = NULL;
+    cupsdSetStringf(&audit_message, "[Config] Security level=%s", Classification);
+    audit_log_user_message(AuditLog, AUDIT_LABEL_LEVEL_CHANGE, audit_message,
+                           ServerName, NULL, NULL, 1);
+    free(audit_message);
+#endif /* WITH_LSPP */
+  }
 
  /*
   * Update the MaxClientsPerHost value, as needed...
@@ -2215,7 +2244,6 @@
 
       cupsd_dirsvc_addr_t	*dira;	/* New browse address array */
 
-
       if (NumBrowsers == 0)
         dira = malloc(sizeof(cupsd_dirsvc_addr_t));
       else
@@ -3263,6 +3291,18 @@
   return (0);
 }
 
+#ifdef WITH_LSPP
+int is_lspp_config()
+{
+  if (Classification != NULL)
+    return ((strcasecmp(Classification, MLS_CONFIG) == 0) 
+            || (strcasecmp(Classification, TE_CONFIG) == 0)
+            || (strcasecmp(Classification, SELINUX_CONFIG) == 0));
+  else
+    return 0;
+}
+#endif /* WITH_LSPP */
+
 
 /*
  * End of "$Id: conf.c 5696 2006-06-26 18:34:20Z mike $".
diff -ur cups-1.2.1-orig/scheduler/conf.h cups-1.2.1/scheduler/conf.h
--- cups-1.2.1-orig/scheduler/conf.h	2006-07-14 16:15:21.000000000 -0400
+++ cups-1.2.1/scheduler/conf.h	2006-07-14 17:45:46.000000000 -0400
@@ -182,7 +182,6 @@
 					/* Number of MIME types */
 VAR const char		**MimeTypes		VALUE(NULL);
 					/* Array of MIME types */
-
 #ifdef HAVE_SSL
 VAR char		*ServerCertificate	VALUE(NULL);
 					/* Server certificate file */
@@ -191,6 +190,10 @@
 					/* Server key file */
 #  endif /* HAVE_LIBSSL || HAVE_GNUTLS */
 #endif /* HAVE_SSL */
+#ifdef WITH_LSPP
+VAR int			AuditLog		VALUE(-1);
+					/* File descriptor for audit */
+#endif /* WITH_LSPP */
 
 #ifdef HAVE_LAUNCHD
 VAR int			LaunchdTimeout		VALUE(DEFAULT_TIMEOUT);
@@ -213,6 +216,9 @@
 ;
 extern int	cupsdLogPage(cupsd_job_t *job, const char *page);
 
+#ifdef WITH_LSPP
+extern int	is_lspp_config(void);
+#endif /* WITH_LSPP */
 
 /*
  * End of "$Id: conf.h 5696 2006-06-26 18:34:20Z mike $".
diff -ur cups-1.2.1-orig/scheduler/job.h cups-1.2.1/scheduler/job.h
--- cups-1.2.1-orig/scheduler/job.h	2006-04-14 14:17:18.000000000 -0400
+++ cups-1.2.1/scheduler/job.h	2006-06-29 03:33:19.000000000 -0400
@@ -22,6 +22,13 @@
  *         WWW: http://www.cups.org
  */
 
+/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */
+/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */
+
+#ifdef WITH_LSPP
+#include <selinux/selinux.h>
+#endif /* WITH_LSPP */
+
 /*
  * Job request structure...
  */
@@ -55,6 +62,10 @@
   int			status;		/* Status code from filters */
   cupsd_printer_t	*printer;	/* Printer this job is assigned to */
   int			tries;		/* Number of tries for this job */
+#ifdef WITH_LSPP
+  security_context_t	scon;		/* Security context of job */
+  uid_t			auid;		/* Audit loginuid for this job */
+#endif /* WITH_LSPP */
 } cupsd_job_t;
 
 
diff -ur cups-1.2.1-orig/scheduler/main.c cups-1.2.1/scheduler/main.c
--- cups-1.2.1-orig/scheduler/main.c	2006-07-14 16:15:22.000000000 -0400
+++ cups-1.2.1/scheduler/main.c	2006-07-14 17:45:47.000000000 -0400
@@ -47,6 +47,8 @@
  *   usage()                   - Show scheduler usage.
  */
 
+/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */
+
 /*
  * Include necessary headers...
  */
@@ -69,6 +71,9 @@
 #  include <notify.h>
 #endif /* HAVE_NOTIFY_H */
 
+#ifdef WITH_LSPP
+#  include <libaudit.h>
+#endif /* WITH_LSPP */
 
 /*
  * Local functions...
@@ -351,6 +356,17 @@
 #endif /* DEBUG */
   }
 
+#ifdef WITH_LSPP
+  if ((AuditLog = audit_open()) < 0 )
+  {
+    if (is_lspp_config())
+    {
+      fprintf(stderr, "cupsd: unable to start auditing");
+      return -1;
+    }
+  }
+#endif /* WITH_LSPP */
+
  /*
   * Set the timezone info...
   */
@@ -1115,6 +1131,10 @@
   free(input);
   free(output);
 
+#ifdef WITH_LSPP
+  audit_close(AuditLog);
+#endif /* WITH_LSPP */
+
   return (!stop_scheduler);
 }
 
diff -ur cups-1.2.1-orig/scheduler/Makefile cups-1.2.1/scheduler/Makefile
--- cups-1.2.1-orig/scheduler/Makefile	2006-03-05 11:48:12.000000000 -0500
+++ cups-1.2.1/scheduler/Makefile	2006-07-14 17:45:47.000000000 -0400
@@ -54,6 +54,7 @@
 OBJS	=	\
 		$(CUPSDOBJS) \
 		$(MIMEOBJS) \
+		access.o \
 		cups-deviced.o \
 		cups-driverd.o \
 		cups-lpd.o \
@@ -63,6 +64,7 @@
 		testspeed.o \
 		util.o
 TARGETS	=	\
+		access \
 		cupsd \
 		cups-deviced \
 		cups-driverd \
@@ -111,7 +113,8 @@
 	$(INSTALL_DIR) -m 755 $(SERVERBIN)
 	echo Creating $(SERVERBIN)/daemon...
 	$(INSTALL_DIR) -m 755 $(SERVERBIN)/daemon
-	echo Installing cups-deviced, cups-driverd, cups-lpd, and cups-polld in $(SERVERBIN)/daemon...
+	echo Installing access cups-deviced, cups-driverd, cups-lpd, and cups-polld in $(SERVERBIN)/daemon...
+	$(INSTALL_BIN) access $(SERVERBIN)/daemon
 	$(INSTALL_BIN) cups-deviced $(SERVERBIN)/daemon
 	$(INSTALL_BIN) cups-driverd $(SERVERBIN)/daemon
 	$(INSTALL_BIN) cups-lpd $(SERVERBIN)/daemon
@@ -154,6 +157,7 @@
 
 uninstall:	all
 	$(RM) $(SBINDIR)/cupsd
+	$(RM) $(SERVERBIN)/daemon/access
 	$(RM) $(SERVERBIN)/daemon/cups-deviced
 	$(RM) $(SERVERBIN)/daemon/cups-driverd
 	$(RM) $(SERVERBIN)/daemon/cups-lpd
diff -ur cups-1.2.1-orig/scheduler/printers.c cups-1.2.1/scheduler/printers.c
--- cups-1.2.1-orig/scheduler/printers.c	2006-07-14 16:15:21.000000000 -0400
+++ cups-1.2.1/scheduler/printers.c	2006-07-14 17:45:47.000000000 -0400
@@ -57,6 +57,8 @@
  *                                 printing desktop tools.
  */
 
+/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */
+
 /*
  * Include necessary headers...
  */
@@ -79,6 +81,9 @@
 static void	write_irix_state(cupsd_printer_t *p);
 #endif /* __sgi */
 
+#ifdef WITH_LSPP
+#  include <libaudit.h>
+#endif /* WITH_LSPP */
 
 /*
  * 'cupsdAddPrinter()' - Add a printer to the system.
@@ -1467,6 +1472,9 @@
 		  "two-sided-long-edge",
 		  "two-sided-short-edge"
 		};
+#ifdef WITH_LSPP
+  char		*audit_message;		/* Audit message string */
+#endif /* WITH_LSPP */
 
 
   DEBUG_printf(("cupsdSetPrinterAttrs: entering name = %s, type = %x\n", p->name,
@@ -1573,6 +1581,14 @@
       attr->values[1].string.text = _cupsStrAlloc(Classification ?
 	                                   Classification : p->job_sheets[1]);
     }
+#ifdef WITH_LSPP
+    audit_message = NULL;
+    cupsdSetStringf(&audit_message, "[Config] printer=%s uri=%s banners set to %s %s",
+                    p->name, p->device_uri, p->job_sheets[0], p->job_sheets[1]);
+    audit_log_user_message(AuditLog, AUDIT_LABEL_LEVEL_CHANGE, audit_message,
+                           ServerName, NULL, NULL, 1);
+    free(audit_message);
+#endif /* WITH_LSPP */
   }
 
   printer_type = p->type;
diff -ur cups-1.2.1-orig/data/te cups-1.2.1/data/te
--- cups-1.2.1-orig/data/te	2006-07-14 16:15:21.000000000 -0400
+++ cups-1.2.1/data/te	2006-06-28 19:38:23.000000000 -0400
@@ -0,0 +1,277 @@
+%!PS-Adobe-3.0
+%%BoundingBox: 0 0 612 792
+%%Pages: 1
+%%LanguageLevel: 1
+%%DocumentData: Clean7Bit
+%%DocumentSuppliedResources: procset bannerprint/1.0
+%%DocumentNeededResources: font Helvetica Helvetica-Bold Times-Roman
+%%Creator: Michael Sweet, Easy Software Products
+%%CreationDate: May 10, 2000
+%%Title: Test Page
+%%EndComments
+%%BeginProlog
+%%BeginResource procset bannerprint 1.1 0
+%
+%   PostScript banner page for the Common UNIX Printing System ("CUPS").
+%
+%   Copyright 1993-2005 by Easy Software Products
+%
+%   These coded instructions, statements, and computer programs are the
+%   property of Easy Software Products and are protected by Federal
+%   copyright law.  Distribution and use rights are outlined in the file
+%   "LICENSE.txt" which should have been included with this file.  If this
+%   file is missing or damaged please contact Easy Software Products
+%   at:
+%
+%       Attn: CUPS Licensing Information
+%       Easy Software Products
+%       44141 Airport View Drive, Suite 204
+%       Hollywood, Maryland 20636 USA
+%
+%       Voice: (301) 373-9600
+%       EMail: cups-info cups org
+%         WWW: http://www.cups.org
+%
+/CENTER {			% Draw centered text
+				% (name) CENTER -
+  dup stringwidth pop		% Get the width of the string
+  0.5 mul neg 0 rmoveto		% Shift left 1/2 of the distance
+  show				% Show the string
+} bind def
+/RIGHT {			% Draw right-justified text
+				% (name) RIGHT -
+  dup stringwidth pop		% Get the width of the string
+  neg 0 rmoveto			% Shift left the entire distance
+  show				% Show the string
+} bind def
+/NUMBER {			% Draw a number
+				% power n NUMBER -
+  1 index 1 eq {		% power == 1?
+    round cvi exch pop		% Convert "n" to integer
+  } {
+    1 index mul round exch div	% Truncate extra decimal places
+  } ifelse
+  100 string cvs show		% Convert to a string and show it...
+} bind def
+/CUPSLOGO {			% Draw the CUPS logo
+				% height CUPSLOGO
+  % Start with a big C...
+  /Helvetica findfont 1 index scalefont setfont
+  0 setgray
+  0 0 moveto
+  (C) show
+
+  % Then "UNIX Printing System" much smaller...
+  /Helvetica-Bold findfont 1 index 9 div scalefont setfont
+  0.25 mul
+  dup dup 2.0 mul moveto
+  (UNIX) show
+  dup dup 1.6 mul moveto
+  (Printing) show
+  dup 1.2 mul moveto
+  (System) show
+} bind def
+/ESPLOGO {			% Draw the ESP logo
+				% height ESPLOGO
+  % Compute the size of the logo...
+  0 0
+  2 index 1.5 mul 3 index
+
+  % Do the "metallic" fill from 10% black to 40% black...
+  1 -0.001 0 {
+    dup			% loopval
+    -0.15 mul		% loopval * -0.15
+    0.9 add		% 0.9 - loopval * 0.15
+    setgray		% set gray shade
+
+    0			% x
+    1 index neg		% loopval
+    1 add		% 1 - loopval
+    3 index		% height
+    mul			% height * (1 - loopval)
+    moveto		% starting point
+
+    dup			% loopval
+    3 index		% width
+    mul			% loopval * width
+    2 index		% height
+    lineto		% Next point
+
+    0			% x
+    2 index		% height
+    lineto		% Next point
+
+    closepath
+    fill
+
+    dup			% loopval
+    0.15 mul		% loopval * 0.15
+    0.6 add		% 0.6 + loopval * 0.15
+    setgray
+
+    dup			% loopval
+    neg 1 add		% 1 - loopval
+    3 index		% width
+    mul			% (1 - loopval) * width
+    0			% y
+    moveto		% Starting point
+
+    2 index		% width
+    exch		% loopval
+    2 index		% height
+    mul			% loopval * height
+    lineto		% Next point
+
+    1 index		% width
+    0			% y
+    lineto		% Next point
+
+    closepath
+    fill
+  } for
+
+  0 setgray rectstroke
+
+  /Helvetica-BoldOblique findfont 1 index 3 div scalefont setfont
+  dup 40 div
+
+  dup 4 mul 1 index 25 mul moveto (E) show
+  dup 10 mul 1 index 15 mul moveto (S) show
+  dup 16 mul 1 index 5 mul moveto (P) show
+
+  /Helvetica-BoldOblique findfont 2 index 5 div scalefont setfont
+  dup 14 mul 1 index 29 mul moveto (asy) show
+  dup 20 mul 1 index 19 mul moveto (oftware) show
+  dup 26 mul 1 index 9 mul moveto (roducts) show
+
+  pop
+} bind def
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+
+  % Determine the imageable area and device resolution...
+  initclip newpath clippath pathbbox	% Get bounding rectangle
+  72 div /pageTop exch def		% Get top margin in inches
+  72 div /pageRight exch def		% Get right margin in inches
+  72 div /pageBottom exch def		% Get bottom margin in inches
+  72 div /pageLeft exch def		% Get left margin in inches
+
+  /pageWidth pageRight pageLeft sub def	% pageWidth = pageRight - pageLeft
+  /pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
+
+  /boxWidth				% width of text box
+  pageWidth pageHeight lt
+  { pageWidth 54 mul }
+  { pageHeight 42 mul }
+  ifelse def
+
+  newpath				% Clear bounding path
+
+  % Create fonts...
+  /bigFont /Helvetica-Bold findfont	% bigFont = Helvetica-Bold
+  pageHeight 3 mul scalefont def	% size = pageHeight * 3 (nominally 33)
+
+  /mediumFont /Helvetica findfont	% mediumFont = Helvetica
+  pageHeight 1.5 mul scalefont def	% size = pageHeight * 1.5 (nominally 16.5)
+
+  % Offset page to account for lower-left margin...
+  pageLeft 72 mul
+  pageBottom 72 mul
+  translate
+
+  % Draw the label at the top and bottom...
+  0 setgray				% Color
+
+  pageWidth 36 mul			% Center of page
+  pageHeight 72 mul			% Top of page
+  pageWidth -7 mul add			% - 2 lines
+  moveto				% Position text
+  bigFont setfont			% Font
+  ({mls-label}) CENTER		% Show text centered
+
+  pageWidth 36 mul			% Center of page
+  pageHeight 6 mul			% Bottom of page
+  moveto				% Position text
+  bigFont setfont			% Font
+  ({mls-label}) CENTER		% Show text centered
+
+  % Job information box...
+  pageWidth 36 mul 9 add		% x = pageWidth * 1/2 * 72 + 9
+  boxWidth 0.5 mul sub			% x-= 1/2 box width
+  pageHeight 30 mul 9 sub		% y = pageHeight * 1/2 * 72 - 9
+  boxWidth				% w = box width
+  pageHeight 14 mul			% h = pageHeight * 1/2 * 72
+  0.5 setgray rectfill			% Draw a shadow
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  boxWidth 0.5 mul sub			% x-= 1/2 box width
+  pageHeight 30 mul			% y = pageHeight * 1/4 * 72
+  boxWidth				% w = box width
+  pageHeight 14 mul			% h = pageHeight * 1/2 * 72
+
+  4 copy 1 setgray rectfill		% Clear the box to white
+  0 setgray rectstroke			% Draw a black box around it...
+
+  % Job information text...
+  mediumFont setfont			% Medium sized font
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight 5 mul add			% y += 2 lines
+  2 copy				% Copy X & Y
+  moveto
+  (Job ID: ) RIGHT
+  moveto
+  ({printer-name}-{job-id}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight 2 mul add			% y += 1 line
+  2 copy				% Copy X & Y
+  moveto
+  (Title: ) RIGHT
+  moveto
+  ({job-name}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight -1 mul add			% y -= 1 line
+  2 copy				% Copy X & Y
+  moveto
+  (Requesting User: ) RIGHT
+  moveto
+  ({job-originating-user-name}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight -4 mul add			% y -= 2 lines
+  2 copy				% Copy X & Y
+  moveto
+  (Billing Info: ) RIGHT
+  moveto
+  ({?job-billing}) show
+
+  % Then the CUPS logo....
+  gsave
+    pageWidth 4 mul
+    pageWidth 6 mul
+    translate
+    pageWidth 9 mul CUPSLOGO
+  grestore
+
+  % And the ESP logo....
+  gsave
+    pageWidth 59 mul
+    pageWidth 6 mul
+    translate
+    pageWidth 6 mul ESPLOGO
+  grestore
+% Show the page...
+grestore
+showpage
+%
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
+%
+%%EOF
diff -ur cups-1.2.1-orig/data/selinux cups-1.2.1/data/selinux
--- cups-1.2.1-orig/data/selinux	2006-07-14 16:15:21.000000000 -0400
+++ cups-1.2.1/data/selinux	2006-06-28 19:38:23.000000000 -0400
@@ -0,0 +1,277 @@
+%!PS-Adobe-3.0
+%%BoundingBox: 0 0 612 792
+%%Pages: 1
+%%LanguageLevel: 1
+%%DocumentData: Clean7Bit
+%%DocumentSuppliedResources: procset bannerprint/1.0
+%%DocumentNeededResources: font Helvetica Helvetica-Bold Times-Roman
+%%Creator: Michael Sweet, Easy Software Products
+%%CreationDate: May 10, 2000
+%%Title: Test Page
+%%EndComments
+%%BeginProlog
+%%BeginResource procset bannerprint 1.1 0
+%
+%   PostScript banner page for the Common UNIX Printing System ("CUPS").
+%
+%   Copyright 1993-2005 by Easy Software Products
+%
+%   These coded instructions, statements, and computer programs are the
+%   property of Easy Software Products and are protected by Federal
+%   copyright law.  Distribution and use rights are outlined in the file
+%   "LICENSE.txt" which should have been included with this file.  If this
+%   file is missing or damaged please contact Easy Software Products
+%   at:
+%
+%       Attn: CUPS Licensing Information
+%       Easy Software Products
+%       44141 Airport View Drive, Suite 204
+%       Hollywood, Maryland 20636 USA
+%
+%       Voice: (301) 373-9600
+%       EMail: cups-info cups org
+%         WWW: http://www.cups.org
+%
+/CENTER {			% Draw centered text
+				% (name) CENTER -
+  dup stringwidth pop		% Get the width of the string
+  0.5 mul neg 0 rmoveto		% Shift left 1/2 of the distance
+  show				% Show the string
+} bind def
+/RIGHT {			% Draw right-justified text
+				% (name) RIGHT -
+  dup stringwidth pop		% Get the width of the string
+  neg 0 rmoveto			% Shift left the entire distance
+  show				% Show the string
+} bind def
+/NUMBER {			% Draw a number
+				% power n NUMBER -
+  1 index 1 eq {		% power == 1?
+    round cvi exch pop		% Convert "n" to integer
+  } {
+    1 index mul round exch div	% Truncate extra decimal places
+  } ifelse
+  100 string cvs show		% Convert to a string and show it...
+} bind def
+/CUPSLOGO {			% Draw the CUPS logo
+				% height CUPSLOGO
+  % Start with a big C...
+  /Helvetica findfont 1 index scalefont setfont
+  0 setgray
+  0 0 moveto
+  (C) show
+
+  % Then "UNIX Printing System" much smaller...
+  /Helvetica-Bold findfont 1 index 9 div scalefont setfont
+  0.25 mul
+  dup dup 2.0 mul moveto
+  (UNIX) show
+  dup dup 1.6 mul moveto
+  (Printing) show
+  dup 1.2 mul moveto
+  (System) show
+} bind def
+/ESPLOGO {			% Draw the ESP logo
+				% height ESPLOGO
+  % Compute the size of the logo...
+  0 0
+  2 index 1.5 mul 3 index
+
+  % Do the "metallic" fill from 10% black to 40% black...
+  1 -0.001 0 {
+    dup			% loopval
+    -0.15 mul		% loopval * -0.15
+    0.9 add		% 0.9 - loopval * 0.15
+    setgray		% set gray shade
+
+    0			% x
+    1 index neg		% loopval
+    1 add		% 1 - loopval
+    3 index		% height
+    mul			% height * (1 - loopval)
+    moveto		% starting point
+
+    dup			% loopval
+    3 index		% width
+    mul			% loopval * width
+    2 index		% height
+    lineto		% Next point
+
+    0			% x
+    2 index		% height
+    lineto		% Next point
+
+    closepath
+    fill
+
+    dup			% loopval
+    0.15 mul		% loopval * 0.15
+    0.6 add		% 0.6 + loopval * 0.15
+    setgray
+
+    dup			% loopval
+    neg 1 add		% 1 - loopval
+    3 index		% width
+    mul			% (1 - loopval) * width
+    0			% y
+    moveto		% Starting point
+
+    2 index		% width
+    exch		% loopval
+    2 index		% height
+    mul			% loopval * height
+    lineto		% Next point
+
+    1 index		% width
+    0			% y
+    lineto		% Next point
+
+    closepath
+    fill
+  } for
+
+  0 setgray rectstroke
+
+  /Helvetica-BoldOblique findfont 1 index 3 div scalefont setfont
+  dup 40 div
+
+  dup 4 mul 1 index 25 mul moveto (E) show
+  dup 10 mul 1 index 15 mul moveto (S) show
+  dup 16 mul 1 index 5 mul moveto (P) show
+
+  /Helvetica-BoldOblique findfont 2 index 5 div scalefont setfont
+  dup 14 mul 1 index 29 mul moveto (asy) show
+  dup 20 mul 1 index 19 mul moveto (oftware) show
+  dup 26 mul 1 index 9 mul moveto (roducts) show
+
+  pop
+} bind def
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+
+  % Determine the imageable area and device resolution...
+  initclip newpath clippath pathbbox	% Get bounding rectangle
+  72 div /pageTop exch def		% Get top margin in inches
+  72 div /pageRight exch def		% Get right margin in inches
+  72 div /pageBottom exch def		% Get bottom margin in inches
+  72 div /pageLeft exch def		% Get left margin in inches
+
+  /pageWidth pageRight pageLeft sub def	% pageWidth = pageRight - pageLeft
+  /pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
+
+  /boxWidth				% width of text box
+  pageWidth pageHeight lt
+  { pageWidth 54 mul }
+  { pageHeight 42 mul }
+  ifelse def
+
+  newpath				% Clear bounding path
+
+  % Create fonts...
+  /bigFont /Helvetica-Bold findfont	% bigFont = Helvetica-Bold
+  pageHeight 3 mul scalefont def	% size = pageHeight * 3 (nominally 33)
+
+  /mediumFont /Helvetica findfont	% mediumFont = Helvetica
+  pageHeight 1.5 mul scalefont def	% size = pageHeight * 1.5 (nominally 16.5)
+
+  % Offset page to account for lower-left margin...
+  pageLeft 72 mul
+  pageBottom 72 mul
+  translate
+
+  % Draw the label at the top and bottom...
+  0 setgray				% Color
+
+  pageWidth 36 mul			% Center of page
+  pageHeight 72 mul			% Top of page
+  pageWidth -7 mul add			% - 2 lines
+  moveto				% Position text
+  bigFont setfont			% Font
+  ({mls-label}) CENTER		% Show text centered
+
+  pageWidth 36 mul			% Center of page
+  pageHeight 6 mul			% Bottom of page
+  moveto				% Position text
+  bigFont setfont			% Font
+  ({mls-label}) CENTER		% Show text centered
+
+  % Job information box...
+  pageWidth 36 mul 9 add		% x = pageWidth * 1/2 * 72 + 9
+  boxWidth 0.5 mul sub			% x-= 1/2 box width
+  pageHeight 30 mul 9 sub		% y = pageHeight * 1/2 * 72 - 9
+  boxWidth				% w = box width
+  pageHeight 14 mul			% h = pageHeight * 1/2 * 72
+  0.5 setgray rectfill			% Draw a shadow
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  boxWidth 0.5 mul sub			% x-= 1/2 box width
+  pageHeight 30 mul			% y = pageHeight * 1/4 * 72
+  boxWidth				% w = box width
+  pageHeight 14 mul			% h = pageHeight * 1/2 * 72
+
+  4 copy 1 setgray rectfill		% Clear the box to white
+  0 setgray rectstroke			% Draw a black box around it...
+
+  % Job information text...
+  mediumFont setfont			% Medium sized font
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight 5 mul add			% y += 2 lines
+  2 copy				% Copy X & Y
+  moveto
+  (Job ID: ) RIGHT
+  moveto
+  ({printer-name}-{job-id}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight 2 mul add			% y += 1 line
+  2 copy				% Copy X & Y
+  moveto
+  (Title: ) RIGHT
+  moveto
+  ({job-name}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight -1 mul add			% y -= 1 line
+  2 copy				% Copy X & Y
+  moveto
+  (Requesting User: ) RIGHT
+  moveto
+  ({job-originating-user-name}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight -4 mul add			% y -= 2 lines
+  2 copy				% Copy X & Y
+  moveto
+  (Billing Info: ) RIGHT
+  moveto
+  ({?job-billing}) show
+
+  % Then the CUPS logo....
+  gsave
+    pageWidth 4 mul
+    pageWidth 6 mul
+    translate
+    pageWidth 9 mul CUPSLOGO
+  grestore
+
+  % And the ESP logo....
+  gsave
+    pageWidth 59 mul
+    pageWidth 6 mul
+    translate
+    pageWidth 6 mul ESPLOGO
+  grestore
+% Show the page...
+grestore
+showpage
+%
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
+%
+%%EOF
diff -ur cups-1.2.1-orig/data/mls cups-1.2.1/data/mls
--- cups-1.2.1-orig/data/mls	2006-07-14 16:15:21.000000000 -0400
+++ cups-1.2.1/data/mls	2006-06-28 19:38:23.000000000 -0400
@@ -0,0 +1,277 @@
+%!PS-Adobe-3.0
+%%BoundingBox: 0 0 612 792
+%%Pages: 1
+%%LanguageLevel: 1
+%%DocumentData: Clean7Bit
+%%DocumentSuppliedResources: procset bannerprint/1.0
+%%DocumentNeededResources: font Helvetica Helvetica-Bold Times-Roman
+%%Creator: Michael Sweet, Easy Software Products
+%%CreationDate: May 10, 2000
+%%Title: Test Page
+%%EndComments
+%%BeginProlog
+%%BeginResource procset bannerprint 1.1 0
+%
+%   PostScript banner page for the Common UNIX Printing System ("CUPS").
+%
+%   Copyright 1993-2005 by Easy Software Products
+%
+%   These coded instructions, statements, and computer programs are the
+%   property of Easy Software Products and are protected by Federal
+%   copyright law.  Distribution and use rights are outlined in the file
+%   "LICENSE.txt" which should have been included with this file.  If this
+%   file is missing or damaged please contact Easy Software Products
+%   at:
+%
+%       Attn: CUPS Licensing Information
+%       Easy Software Products
+%       44141 Airport View Drive, Suite 204
+%       Hollywood, Maryland 20636 USA
+%
+%       Voice: (301) 373-9600
+%       EMail: cups-info cups org
+%         WWW: http://www.cups.org
+%
+/CENTER {			% Draw centered text
+				% (name) CENTER -
+  dup stringwidth pop		% Get the width of the string
+  0.5 mul neg 0 rmoveto		% Shift left 1/2 of the distance
+  show				% Show the string
+} bind def
+/RIGHT {			% Draw right-justified text
+				% (name) RIGHT -
+  dup stringwidth pop		% Get the width of the string
+  neg 0 rmoveto			% Shift left the entire distance
+  show				% Show the string
+} bind def
+/NUMBER {			% Draw a number
+				% power n NUMBER -
+  1 index 1 eq {		% power == 1?
+    round cvi exch pop		% Convert "n" to integer
+  } {
+    1 index mul round exch div	% Truncate extra decimal places
+  } ifelse
+  100 string cvs show		% Convert to a string and show it...
+} bind def
+/CUPSLOGO {			% Draw the CUPS logo
+				% height CUPSLOGO
+  % Start with a big C...
+  /Helvetica findfont 1 index scalefont setfont
+  0 setgray
+  0 0 moveto
+  (C) show
+
+  % Then "UNIX Printing System" much smaller...
+  /Helvetica-Bold findfont 1 index 9 div scalefont setfont
+  0.25 mul
+  dup dup 2.0 mul moveto
+  (UNIX) show
+  dup dup 1.6 mul moveto
+  (Printing) show
+  dup 1.2 mul moveto
+  (System) show
+} bind def
+/ESPLOGO {			% Draw the ESP logo
+				% height ESPLOGO
+  % Compute the size of the logo...
+  0 0
+  2 index 1.5 mul 3 index
+
+  % Do the "metallic" fill from 10% black to 40% black...
+  1 -0.001 0 {
+    dup			% loopval
+    -0.15 mul		% loopval * -0.15
+    0.9 add		% 0.9 - loopval * 0.15
+    setgray		% set gray shade
+
+    0			% x
+    1 index neg		% loopval
+    1 add		% 1 - loopval
+    3 index		% height
+    mul			% height * (1 - loopval)
+    moveto		% starting point
+
+    dup			% loopval
+    3 index		% width
+    mul			% loopval * width
+    2 index		% height
+    lineto		% Next point
+
+    0			% x
+    2 index		% height
+    lineto		% Next point
+
+    closepath
+    fill
+
+    dup			% loopval
+    0.15 mul		% loopval * 0.15
+    0.6 add		% 0.6 + loopval * 0.15
+    setgray
+
+    dup			% loopval
+    neg 1 add		% 1 - loopval
+    3 index		% width
+    mul			% (1 - loopval) * width
+    0			% y
+    moveto		% Starting point
+
+    2 index		% width
+    exch		% loopval
+    2 index		% height
+    mul			% loopval * height
+    lineto		% Next point
+
+    1 index		% width
+    0			% y
+    lineto		% Next point
+
+    closepath
+    fill
+  } for
+
+  0 setgray rectstroke
+
+  /Helvetica-BoldOblique findfont 1 index 3 div scalefont setfont
+  dup 40 div
+
+  dup 4 mul 1 index 25 mul moveto (E) show
+  dup 10 mul 1 index 15 mul moveto (S) show
+  dup 16 mul 1 index 5 mul moveto (P) show
+
+  /Helvetica-BoldOblique findfont 2 index 5 div scalefont setfont
+  dup 14 mul 1 index 29 mul moveto (asy) show
+  dup 20 mul 1 index 19 mul moveto (oftware) show
+  dup 26 mul 1 index 9 mul moveto (roducts) show
+
+  pop
+} bind def
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+
+  % Determine the imageable area and device resolution...
+  initclip newpath clippath pathbbox	% Get bounding rectangle
+  72 div /pageTop exch def		% Get top margin in inches
+  72 div /pageRight exch def		% Get right margin in inches
+  72 div /pageBottom exch def		% Get bottom margin in inches
+  72 div /pageLeft exch def		% Get left margin in inches
+
+  /pageWidth pageRight pageLeft sub def	% pageWidth = pageRight - pageLeft
+  /pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
+
+  /boxWidth				% width of text box
+  pageWidth pageHeight lt
+  { pageWidth 54 mul }
+  { pageHeight 42 mul }
+  ifelse def
+
+  newpath				% Clear bounding path
+
+  % Create fonts...
+  /bigFont /Helvetica-Bold findfont	% bigFont = Helvetica-Bold
+  pageHeight 3 mul scalefont def	% size = pageHeight * 3 (nominally 33)
+
+  /mediumFont /Helvetica findfont	% mediumFont = Helvetica
+  pageHeight 1.5 mul scalefont def	% size = pageHeight * 1.5 (nominally 16.5)
+
+  % Offset page to account for lower-left margin...
+  pageLeft 72 mul
+  pageBottom 72 mul
+  translate
+
+  % Draw the label at the top and bottom...
+  0 setgray				% Color
+
+  pageWidth 36 mul			% Center of page
+  pageHeight 72 mul			% Top of page
+  pageWidth -7 mul add			% - 2 lines
+  moveto				% Position text
+  bigFont setfont			% Font
+  ({mls-label}) CENTER		% Show text centered
+
+  pageWidth 36 mul			% Center of page
+  pageHeight 6 mul			% Bottom of page
+  moveto				% Position text
+  bigFont setfont			% Font
+  ({mls-label}) CENTER		% Show text centered
+
+  % Job information box...
+  pageWidth 36 mul 9 add		% x = pageWidth * 1/2 * 72 + 9
+  boxWidth 0.5 mul sub			% x-= 1/2 box width
+  pageHeight 30 mul 9 sub		% y = pageHeight * 1/2 * 72 - 9
+  boxWidth				% w = box width
+  pageHeight 14 mul			% h = pageHeight * 1/2 * 72
+  0.5 setgray rectfill			% Draw a shadow
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  boxWidth 0.5 mul sub			% x-= 1/2 box width
+  pageHeight 30 mul			% y = pageHeight * 1/4 * 72
+  boxWidth				% w = box width
+  pageHeight 14 mul			% h = pageHeight * 1/2 * 72
+
+  4 copy 1 setgray rectfill		% Clear the box to white
+  0 setgray rectstroke			% Draw a black box around it...
+
+  % Job information text...
+  mediumFont setfont			% Medium sized font
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight 5 mul add			% y += 2 lines
+  2 copy				% Copy X & Y
+  moveto
+  (Job ID: ) RIGHT
+  moveto
+  ({printer-name}-{job-id}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight 2 mul add			% y += 1 line
+  2 copy				% Copy X & Y
+  moveto
+  (Title: ) RIGHT
+  moveto
+  ({job-name}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight -1 mul add			% y -= 1 line
+  2 copy				% Copy X & Y
+  moveto
+  (Requesting User: ) RIGHT
+  moveto
+  ({job-originating-user-name}) show
+
+  pageWidth 36 mul			% x = pageWidth * 1/2 * 72
+  pageHeight 36 mul			% y = pageHeight * 1/2 * 72
+  pageHeight -4 mul add			% y -= 2 lines
+  2 copy				% Copy X & Y
+  moveto
+  (Billing Info: ) RIGHT
+  moveto
+  ({?job-billing}) show
+
+  % Then the CUPS logo....
+  gsave
+    pageWidth 4 mul
+    pageWidth 6 mul
+    translate
+    pageWidth 9 mul CUPSLOGO
+  grestore
+
+  % And the ESP logo....
+  gsave
+    pageWidth 59 mul
+    pageWidth 6 mul
+    translate
+    pageWidth 6 mul ESPLOGO
+  grestore
+% Show the page...
+grestore
+showpage
+%
+% End of "$Id: mls_template,v 1.1 2005/06/27 18:44:46 colmo Exp $".
+%
+%%EOF
diff -ur cups-1.2.1-orig/config-scripts/cups-lspp.m4 cups-1.2.1/config-script/cups-lspp.m4
--- cups-1.2.1-orig/config-scripts/cups-lspp.m4	2006-07-14 22:21:54.787457000 -0400
+++ cups-1.2.1/config-scripts/cups-lspp.m4	2006-06-28 15:58:49.000000000 -0400
@@ -0,0 +1,36 @@
+dnl
+dnl   LSPP code for the Common UNIX Printing System (CUPS).
+dnl
+dnl   Copyright 2005-2006 by Hewlett-Packard Development Company, L.P.
+dnl
+dnl   This program is free software; you can redistribute it and/or modify
+dnl   it under the terms of the GNU General Public License as published by
+dnl   the Free Software Foundation; version 2.
+dnl
+dnl   This program is distributed in the hope that it will be useful, but
+dnl   WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl   General Public License for more details.
+dnl
+dnl   You should have received a copy of the GNU General Public License
+dnl   along with this program; if not, write to the Free Software Foundation,
+dnl   Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA
+dnl
+
+dnl Are we trying to meet LSPP requirements
+AC_ARG_ENABLE(lspp, [  --enable-lspp           turn on auditing and label support, default=no])
+
+if test x"$enable_lspp" != xno; then
+    case "$uname" in
+        Linux)
+            AC_CHECK_LIB(audit,audit_log_user_message, [LIBAUDIT="-laudit" AC_SUBST(LIBAUDIT)])
+            AC_CHECK_HEADER(libaudit.h)
+            AC_CHECK_LIB(selinux,getpeercon, [LIBSELINUX="-lselinux" AC_SUBST(LIBSELINUX)])
+            AC_CHECK_HEADER(selinux/selinux.h)
+            AC_DEFINE(WITH_LSPP)
+            ;;
+        *)
+            # All others
+            ;;
+    esac
+fi
diff -ur cups-1.2.1-orig/scheduler/access.c cups-1.2.1/scheduler/access.c	
--- cups-1.2.1-orig/scheduler/access.c		2006-07-14 22:49:45.299233000 -0400
+++ cups-1.2.1/scheduler/access.c	2006-07-12 14:09:40.000000000 -0400
@@ -0,0 +1,56 @@
+/*
+ *   Copyright (C) Hewlett-Packard Development Company, L.P., 2006
+ *
+ *   This program is free software;  you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+ *   the GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program;  if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Contents:
+ *
+ *   main()               - Main entry for the access checker.
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+
+int main(int argc, char *argv[]) {
+  int status = -1;
+  char filename[FILENAME_MAX+1] = {0};
+
+  if (argc < 2)
+  {
+    printf("Check for access to which file? ");
+    scanf("%s", (char *)&filename);
+  }
+  else
+  {
+    strncpy(filename, argv[1], FILENAME_MAX);
+  }
+
+  status = access(filename, R_OK|W_OK);
+
+  if (argc < 2)
+  {
+   /*
+    * Assume the user would like to hear the answer on the terminal
+    * since the filename was received interactively.
+    */
+    if (status != 0)
+      printf("Unable to access that file.\n");
+    else
+      printf("Access Granted\n");
+  }
+  
+  return status;
+}
diff -ur cups-1.2.1-orig/scheduler/job.c cups-1.2.1/scheduler/job.c	
--- cups-1.2.1-orig/scheduler/job.c	2006-07-14 22:12:44.000000000 -0400
+++ cups-1.2.1/scheduler/job.c	2006-07-18 12:38:24.000000000 -0400
@@ -68,6 +68,9 @@
  *   unload_job()               - Unload a job from memory.
  */
 
+/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */
+/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */
+
 /*
  * Include necessary headers...
  */
@@ -77,6 +80,11 @@
 #include <cups/backend.h>
 #include <cups/dir.h>
 
+#ifdef WITH_LSPP
+#include <selinux/selinux.h>
+#include <selinux/context.h>
+#include <libaudit.h>
+#endif /* WITH_LSPP */
 
 /*
  * Local globals...
@@ -985,6 +993,23 @@
     cupsdSetString(&job->dest, dest);
   }
 
+#ifdef WITH_LSPP
+  if ((attr = ippFindAttribute(job->attrs, "security-context", IPP_TAG_NAME)) != NULL)
+    cupsdSetString(&job->scon, attr->values[0].string.text);
+  else if (is_lspp_config())
+  {
+   /*
+    * There was no security context so delete the job
+    */
+    cupsdLogMessage(CUPSD_LOG_ERROR, "LoadAllJobs: Missing or bad security-context attribute in control file \"%s\"!",
+                    jobfile);
+    ippDelete(job->attrs);
+    job->attrs = NULL;
+    unlink(jobfile);
+    return;
+  }
+#endif /* WITH_LSPP */
+
   job->sheets     = ippFindAttribute(job->attrs, "job-media-sheets-completed",
                                      IPP_TAG_INTEGER);
   job->job_sheets = ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_NAME);
@@ -2428,6 +2453,17 @@
   int			remote_job;	/* Remote print job? */
   static char		*options = NULL;/* Full list of options */
   static int		optlength = 0;	/* Length of option buffer */
+#ifdef WITH_LSPP
+  int			acstatus = 0;	/* return value of the access check */
+  pid_t			acpid = -1;	/* pid for the access check */
+  const char		*mls_label = NULL;	/* SL to put in classification env var */
+  char			*audit_message = NULL;	/* Audit message string */
+  char			*printerfile = NULL;	/* Device file pointed to by the printer */
+  char			*acargv[3];	/* Command line args */
+  char			buffer[1024] = {0};	/* argv[0] buffer */
+  char			*acenvp[MAX_ENV];	/* Environment */
+  context_t		job_context;	/* SELinux context of the job */
+#endif /* WITH_LSPP */
 
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "start_job: id = %d, file = %d/%d",
@@ -2709,6 +2745,76 @@
 
   cupsdLogMessage(CUPSD_LOG_DEBUG, "banner_page = %d", banner_page);
 
+#ifdef WITH_LSPP
+  if (is_lspp_config())
+  {
+   /*
+    * Perform an access check before printing, but only if the printer starts with /dev/
+    */
+    printerfile = strdup(printer->device_uri);
+    if ((printerfile = strrchr(printer->device_uri, '=')) == NULL)
+    {
+      if ((printerfile = strrchr(printer->device_uri, ':')) == NULL)
+      {
+        cupsdLogMessage(CUPSD_LOG_ERROR, "StartJob: Unable to determine printer device file");
+        cupsdCancelJob(job, 0);
+        return;
+      }
+    }
+
+    printerfile++;
+    if (strncmp(printerfile, "/dev/", 5) == 0)
+    {
+      if (setexeccon(job->scon) != 0)
+      {
+        cupsdLogMessage(CUPSD_LOG_ERROR, "StartJob: Unable to setexeccon to %s", job->scon);
+        cupsdCancelJob(job, 0);
+        return;
+      }
+
+      cupsdLogMessage(CUPSD_LOG_DEBUG, "StartJob: Attempting to check access on printer device %s",
+                      printerfile);
+
+      snprintf(buffer, sizeof(buffer), "%s/daemon/access", ServerBin);
+      acargv[0] = "access";
+      acargv[1] = printerfile;
+      acargv[2] = NULL;
+
+      cupsdLoadEnv(acenvp, (int)(sizeof(acenvp) / sizeof(acenvp[0])));
+
+      if (!cupsdStartProcess(buffer, acargv, acenvp, -1, -1, -1, -1, 0, &acpid))
+      {
+        waitpid(acpid, &acstatus, 0);
+        if (WIFEXITED(acstatus))
+        {
+          if (WEXITSTATUS(acstatus) != 0) 
+          {
+           /*
+            * The access check failed, so cancel the job and send an audit message
+            */
+            audit_message = NULL;
+            cupsdSetStringf(&audit_message, "job=%d auid=%u acct=%s obj=%s cancelled,"
+                                            " unable to access printer=%s",
+                            job->id, job->auid, job->username, job->scon, printer->name);
+            audit_log_user_message(AuditLog, AUDIT_USER_LABELED_EXPORT, audit_message,
+                                   ServerName, NULL, NULL, 0);
+            free(audit_message);
+
+            cupsdCancelJob(job, 0);
+
+            return;
+          }
+          else
+          {
+            cupsdLogMessage(CUPSD_LOG_DEBUG, "StartJob: access check succeeded (returned %d)",
+                            WEXITSTATUS(acstatus));
+          }
+        }
+      }
+    }
+  }
+#endif /* WITH_LSPP */
+
  /*
   * Building the options string is harder than it needs to be, but
   * for the moment we need to pass strings for command-line args and
@@ -3026,6 +3132,41 @@
     envp[envc ++] = final_content_type;
   }
 
+#ifdef WITH_LSPP
+  if (is_lspp_config())
+  {
+    if (job->scon == NULL)
+    {
+      audit_message = NULL;
+      cupsdSetStringf(&audit_message, "job=%d auid=%u acct=%s printer=%s",
+                      job->id, job->auid, job->username, printer->name);
+      audit_log_user_message(AuditLog, AUDIT_USER_UNLABELED_EXPORT, audit_message,
+                             ServerName, NULL, NULL, 1);
+      free(audit_message);
+    }
+    else 
+    {
+      job_context = context_new(job->scon);
+      if (strcasecmp(Classification, MLS_CONFIG) == 0)
+        mls_label = context_range_get(job_context);
+      else if (strcasecmp(Classification, TE_CONFIG) == 0)
+        mls_label = context_type_get(job_context);
+      else  // default is SELinux which means print the whole context
+        mls_label = context_str(job_context);
+      snprintf(classification, sizeof(classification), "CLASSIFICATION=%s",
+               mls_label);
+      envp[envc ++] = classification;
+      audit_message = NULL;
+      cupsdSetStringf(&audit_message, "job=%d auid=%u acct=%s printer=%s obj=%s",
+                      job->id, job->auid, job->username, printer->name, job->scon);
+      audit_log_user_message(AuditLog, AUDIT_USER_LABELED_EXPORT, audit_message,
+                             ServerName, NULL, NULL, 1);
+      context_free(job_context);
+      free(audit_message);
+    }
+  }
+  else 
+#endif /* WITH_LSPP */
   if (Classification && !banner_page)
   {
     if ((attr = ippFindAttribute(job->attrs, "job-sheets",
diff -ur cups-1.2.1-orig/scheduler/ipp.c cups-1.2.1/scheduler/ipp.c	
--- cups-1.2.1-orig/scheduler/ipp.c	2006-07-14 22:12:44.000000000 -0400
+++ cups-1.2.1/scheduler/ipp.c	2006-07-18 12:55:08.000000000 -0400
@@ -96,6 +96,9 @@
  *   validate_user()             - Validate the user for the request.
  */
 
+/* Copyright (C) 2005 Trusted Computer Solutions, Inc. */
+/* (c) Copyright 2005-2006 Hewlett-Packard Development Company, L.P. */
+
 /*
  * Include necessary headers...
  */
@@ -106,6 +109,14 @@
 #  include <paper.h>
 #endif /* HAVE_LIBPAPER */
 
+#ifdef WITH_LSPP
+#include <libaudit.h>
+#include <selinux/selinux.h>
+#include <selinux/context.h>
+#include <selinux/avc.h>
+#include <selinux/flask.h>
+#include <selinux/av_permissions.h>
+#endif /* WITH_LSPP */
 
 /*
  * PPD default choice structure...
@@ -1166,6 +1177,15 @@
   int		kbytes;			/* Size of print file */
   int		i;			/* Looping var */
   int		lowerpagerange;		/* Page range bound */
+#ifdef WITH_LSPP
+  char		*argv[3];		/* Command line args */
+  char		*envp[MAX_ENV];		/* Environment */
+  char		*audit_message;		/* Audit message string */
+  char		buffer[1024] = {0};	/* argv[0] buffer */
+  int		acstatus;		/* return value of the access check */
+  pid_t		acpid;			/* pid for the access check */
+  char		*printerfile;		/* device file pointed to by the printer */
+#endif /* WITH_LSPP */
 
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %s)", con,
@@ -1342,6 +1362,97 @@
     return (NULL);
   }
 
+#ifdef WITH_LSPP
+  if (is_lspp_config())
+  {
+    if (!con->scon || strlen(con->scon) == 0)
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR, "add_job: missing classification for connection \'%s\'!", dest);
+      send_ipp_status(con, IPP_INTERNAL_ERROR, _("Missing required secuirty attributes."));
+      return (NULL);
+    }
+    else
+    {
+     /*
+      * duplicate the security context and auid of the connection into the job structure
+      */
+      job->scon    = strdup(con->scon);
+      job->auid    = con->auid;
+
+     /* 
+      * add the security context to the request so that on a restart the security
+      * attributes will be able to be restored
+      */
+      ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_NAME, "security-context", 
+                   NULL, job->scon);
+    }
+
+   /*
+    * Perform an access check so that if the user gets feedback at enqueue time
+    */
+
+    printerfile = strdup(printer->device_uri);
+    if ((printerfile = strrchr(printer->device_uri, '=')) == NULL)
+    {
+      if ((printerfile = strrchr(printer->device_uri, ':')) == NULL)
+      {
+        cupsdLogMessage(CUPSD_LOG_ERROR, "add_job: Unable to determine printer device file");
+        send_ipp_status(con, IPP_INTERNAL_ERROR, _("Unable to perform printer access check"));
+        return (NULL); 
+      }
+    }
+
+    printerfile++;
+    if (strncmp(printerfile, "/dev/", 5) == 0)
+    {
+      cupsdLogMessage(CUPSD_LOG_DEBUG, "add_job: Attempting an access check on printer device %s",
+                      printerfile);
+
+      if (setexeccon(job->scon) != 0)
+      {
+        cupsdLogMessage(CUPSD_LOG_ERROR, "add_job: Unable to setexeccon to %s", job->scon);
+        send_ipp_status(con, IPP_INTERNAL_ERROR, _("Internal SELinux error"));
+        return (NULL);
+      }
+
+      snprintf(buffer, sizeof(buffer), "%s/daemon/access", ServerBin);
+      argv[0] = "access";
+      argv[1] = printerfile;
+      argv[2] = NULL;
+
+      cupsdLoadEnv(envp, (int)(sizeof(envp) / sizeof(envp[0])));
+    
+      if (!cupsdStartProcess(buffer, argv, envp, -1, -1, -1, -1, 0, &acpid))
+      {
+        waitpid(acpid, &acstatus, 0);
+        if (WIFEXITED(acstatus))
+        {
+          if (WEXITSTATUS(acstatus) != 0)
+          {
+           /*
+            * The access check failed, so cancel the job and send an audit message
+            */
+            audit_message = NULL;
+            cupsdSetStringf(&audit_message, "job=%d auid=%u acct=%s obj=%s refused, unable to access printer=%s",
+                            job->id, con->auid, con->username, con->scon, printer->name);
+            audit_log_user_message(AuditLog, AUDIT_USER_LABELED_EXPORT, audit_message,
+                                   ServerName, NULL, NULL, 0);
+            free(audit_message);
+
+            send_ipp_status(con, IPP_NOT_AUTHORIZED, _("SELinux prohibits access to the printer"));
+            return (NULL);
+          }
+          else
+          {
+            cupsdLogMessage(CUPSD_LOG_DEBUG, "add_job: access check succeeded (returned %d)",
+                            WEXITSTATUS(acstatus));
+          }
+        }
+      }
+    }
+  }
+#endif /* WITH_LSPP */
+
   job->dtype   = dtype;
   job->attrs   = con->request;
   con->request = NULL;
@@ -1553,6 +1664,19 @@
 
       if (ClassifyOverride)
       {
+#ifdef WITH_LSPP
+       /*
+        * The configuration allows for user's to Override the banner, so let them
+        */
+        audit_message = NULL;
+        cupsdSetStringf(&audit_message, "job=%d user supplied classification \"%s\" \"%s\"",
+                        job->id,
+                        (attr->values[0].string.text)?attr->values[0].string.text:"none",
+                        (attr->values[1].string.text)?attr->values[1].string.text:"none");
+        audit_log_user_message(AuditLog, AUDIT_LABEL_OVERRIDE, audit_message,
+                               ServerName, NULL, NULL, 1);
+        free(audit_message);
+#endif /* WITH_LSPP */
         if (!strcmp(attr->values[0].string.text, "none") &&
 	    (attr->num_values == 1 ||
 	     !strcmp(attr->values[1].string.text, "none")))
@@ -3501,6 +3613,11 @@
   char		attrname[255],		/* Name of attribute */
 		*s;			/* Pointer into name */
   ipp_attribute_t *attr;		/* Attribute */
+#ifdef WITH_LSPP
+  const char	*mls_label = NULL;	/* SL of print job */
+  context_t	job_context;		/* SELinux context of the job */
+#endif /* WITH_LSPP */
+
 
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "copy_banner(%p[%d], %p[%d], %s)",
@@ -3628,6 +3745,24 @@
       else
         s = attrname;
 
+#ifdef WITH_LSPP
+      if (strcmp(s, "mls-label") == 0)
+      {
+        if (con->scon != NULL && strcmp(con->scon, UNKNOWN_SL) != 0)
+        {
+          job_context = context_new(con->scon);
+          if (strcasecmp(name, MLS_CONFIG) == 0)
+            mls_label = context_range_get(job_context);
+          else if (strcasecmp(name, TE_CONFIG) == 0)
+            mls_label = context_type_get(job_context);
+          else // default to using the whole context string
+            mls_label = context_str(job_context);
+          cupsFilePuts(out, mls_label);
+          context_free(job_context);
+        }
+        continue;
+      }
+#endif /* WITH_LSPP */
       if (!strcmp(s, "printer-name"))
       {
         cupsFilePuts(out, job->dest);
@@ -5351,6 +5486,15 @@
   cupsd_printer_t *printer;		/* Printer */
   cups_array_t	*list;			/* Which job list... */
   cups_array_t	*ra;			/* Requested attributes array */
+#ifdef WITH_LSPP
+  int			selinuxcheck;	/* perform the SELinux access check? */
+  security_id_t		clisid;		/* SELinux SID of the client */
+  security_id_t		jobsid;		/* SELinux SID of the job */
+  struct av_decision	avd;		/* SELinux decision stuct */
+  struct avc_entry_ref	avcref;		/* AVC entry cache pointer */
+  security_class_t	tclass;		/* SELinux security class */
+  access_vector_t	avr;		/* SELinux access being queried */
+#endif /* WITH_LSPP */
 
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "get_jobs(%p[%d], %s)", con, con->http.fd,
@@ -5468,6 +5612,40 @@
 
   ra = create_requested_array(con->request);
 
+#ifdef WITH_LSPP
+ /*
+  * Determine outside the loop if we are concerned about SELinux
+  */
+  selinuxcheck = is_lspp_config();
+  if (selinuxcheck)
+  {
+    selinuxcheck = security_getenforce();
+    if (selinuxcheck == -1)
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR, "get_jobs: unable to determine SELinux enforcement");
+      send_ipp_status(con, IPP_INTERNAL_ERROR, _("Internal SELinux error (getenforce)."));
+      return;
+    }
+    if (avc_init("cups", NULL, NULL, NULL, NULL) < 0)
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR, "get_jobs: unable avc_init");
+      send_ipp_status(con, IPP_INTERNAL_ERROR, _("Internal SELinux error (avc_init)."));
+      return;
+    } 
+    if (avc_context_to_sid(con->scon, &clisid) != 0)
+    {
+      cupsdLogMessage(CUPSD_LOG_ERROR, "get_jobs: unable to convert %s to SELinux sid", con->scon);
+      send_ipp_status(con, IPP_INTERNAL_ERROR, _("Internal SELinux error (avc_context_to_sid)."));
+      return;
+    }
+    cupsdLogMessage(CUPSD_LOG_DEBUG, "get_jobs: client context %s", con->scon);
+
+    avr = FILE__READ;
+    tclass = SECCLASS_FILE;
+  }
+#endif /* WITH_LSPP */
+
+
  /*
   * OK, build a list of jobs for this printer...
   */
@@ -5505,6 +5683,19 @@
     if (count > 0)
       ippAddSeparator(con->response);
 
+#ifdef WITH_LSPP
+    if (selinuxcheck)
+    {
+      cupsdLogMessage(CUPSD_LOG_DEBUG, "get_jobs: job context %s", job->scon);
+
+      avc_context_to_sid(job->scon, &jobsid);
+      avc_entry_ref_init(&avcref);
+      
+      if (avc_has_perm_noaudit(clisid, jobsid, tclass, avr, &avcref, &avd) != 0)
+        continue;
+    }
+#endif /* WITH_LSPP */
+
     count ++;
 
     cupsdLogMessage(CUPSD_LOG_DEBUG2, "get_jobs: count = %d", count);
@@ -7933,12 +8137,22 @@
     * See if we need to add the ending sheet...
     */
 
+#ifdef WITH_LSPP
+    if (printer &&
+        ( is_lspp_config() ||
+        !(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)) ) &&
+        (attr = ippFindAttribute(job->attrs, "job-sheets",
+	                         IPP_TAG_ZERO)) != NULL &&
+        attr->num_values > 1)
+    {
+#else /* !WITH_LSPP */
     if (printer &&
         !(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)) &&
         (attr = ippFindAttribute(job->attrs, "job-sheets",
 	                         IPP_TAG_ZERO)) != NULL &&
         attr->num_values > 1)
     {
+#endif /* WITH_LSPP */
      /*
       * Yes...
       */
%define initdir /etc/rc.d/init.d
%define use_alternatives 1
%define build_as_lspp 1
%define cups_serverbin %{_exec_prefix}/lib/cups

Summary: Common Unix Printing System
Name: cups
Version: 1.2.1
Release: 18.1lspp
License: GPL
Group: System Environment/Daemons
Source: ftp://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
Source1: cups.init
Source2: cupsprinter.png
Source5: cups-lpd
Source6: pstoraster
Source7: pstoraster.convs
Source8: postscript.ppd.gz
Source9: cups.logrotate
Source10: ncp.backend
Source11: cups.conf
Source12: cups.cron
Source13: pdftops.conf
Patch0: cups-svn5706.patch
Patch1: cups-1.1.15-initscript.patch
Patch2: cups-no-gzip-man.patch
Patch3: cups-1.1.16-system-auth.patch
Patch4: cups-multilib.patch
Patch5: cups-ext.patch
Patch6: cups-includeifexists.patch
Patch7: cups-banners.patch
Patch8: cups-str1705.patch
Patch11: cups-serverbin-compat.patch
Patch12: cups-locale.patch
Patch16: cups-no-export-ssllibs.patch
Patch17: cups-paps.patch
Patch18: cups-language.patch
Patch20: cups-direct-usb.patch
Patch22: cups-dest-cache-v2.patch
Patch24: cups-maxlogsize.patch
Patch32: cups-pid.patch
Patch41: cups-relro.patch
%if %build_as_lspp
Patch42: cups-lspp.patch
%endif
Epoch: 1
Url: http://www.cups.org/
BuildRoot: %{_tmppath}/%{name}-root
PreReq: /sbin/chkconfig /sbin/service
Requires: %{name}-libs = %{epoch}:%{version}
%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
%endif

# Unconditionally obsolete LPRng so that upgrades work properly.
Obsoletes: lpd lpr LPRng <= 3.8.15-3
Provides: lpd lpr LPRng = 3.8.15-3

# kdelibs conflict for bug #192585.
Conflicts: kdelibs < 6:3.5.2-6

BuildPrereq: pam-devel pkgconfig
BuildPrereq: gnutls-devel libacl-devel
BuildRequires: openldap-devel
BuildRequires: make >= 1:3.80
BuildRequires: php-devel, aspell-devel, pcre-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libtiff-devel

%if %build_as_lspp
BuildPrereq: libselinux-devel >= 1.23
BuildPrereq: audit-libs-devel >= 1.1
Requires: audit-libs-devel >= 1.1
Requires: libselinux >= 1.23
%endif

# -fstack-protector-all requires GCC 4.0.1
BuildRequires: gcc >= 4.0.1

BuildPrereq: dbus-devel >= 0.60
Requires: dbus >= 0.60

# The paps package uses pango to render UTF-8 text to PostScript.
Requires: paps >= 0.6.6-9

%package devel
Summary: Common Unix Printing System - development environment
Group: Development/Libraries
Requires: %{name}-libs = %{epoch}:%{version}
Requires: gnutls-devel

%package libs
Summary: Common Unix Printing System - libraries
Group: System Environment/Libraries

%package lpd
Summary: Common Unix Printing System - lpd emulation
Group: System Environment/Daemons
Requires: %{name} = %{epoch}:%{version} xinetd

%description
The Common UNIX Printing System provides a portable printing layer for 
UNIX® operating systems. It has been developed by Easy Software Products 
to promote a standard printing solution for all UNIX vendors and users. 
CUPS provides the System V and Berkeley command-line interfaces. 

%description devel
The Common UNIX Printing System provides a portable printing layer for 
UNIX® operating systems. This is the development package for creating
additional printer drivers, and other CUPS services.

%description libs
The Common UNIX Printing System provides a portable printing layer for 
UNIX® operating systems. It has been developed by Easy Software Products 
to promote a standard printing solution for all UNIX vendors and users. 
CUPS provides the System V and Berkeley command-line interfaces. 
The cups-libs package provides libraries used by applications to use CUPS
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 
lpd emulation.

%prep
%setup -q -n %{name}-%{version}
%patch0 -p1 -b .svn5706
%patch1 -p1 -b .noinit
%patch2 -p1 -b .no-gzip-man
%patch3 -p1 -b .system-auth
%patch4 -p1 -b .multilib
%patch5 -p1 -b .ext
%patch6 -p1 -b .includeifexists
%patch7 -p1 -b .banners
%patch8 -p1 -b .str1705
%patch11 -p1 -b .serverbin-compat
%patch12 -p1 -b .locale
%patch16 -p1 -b .no-export-ssllibs
%patch17 -p1 -b .paps
%patch18 -p1 -b .language
%patch20 -p1 -b .direct-usb
%patch22 -p1 -b .dest-cache-v2
%patch24 -p1 -b .maxlogsize
%patch32 -p1 -b .pid
%patch41 -p1 -b .relro
%if %build_as_lspp
%patch42 -p1 -b .lspp
%endif
perl -pi -e 's,^#(Printcap\s+/etc/printcap),$1,' conf/cupsd.conf.in
aclocal -I config-scripts
autoconf

cp %{SOURCE5} cups-lpd.real
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

%build
export CFLAGS="-DLDAP_DEPRECATED=1"
%if %build_as_lspp
%configure --with-docdir=%{_docdir}/cups-%{version} \
	--with-optim="$RPM_OPT_FLAGS $CFLAGS -fstack-protector-all" \
	--with-log-file-perm=0700 --enable-pie --enable-lspp
%else
%configure --with-docdir=%{_docdir}/cups-%{version} \
	--with-optim="$RPM_OPT_FLAGS $CFLAGS -fstack-protector-all" \
	--with-log-file-perm=0700 --enable-pie
%endif

# If we got this far, all prerequisite libraries must be here.
make

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{initdir}

make BUILDROOT=$RPM_BUILD_ROOT install 

install -m 755 $RPM_SOURCE_DIR/cups.init $RPM_BUILD_ROOT%{initdir}/cups

find $RPM_BUILD_ROOT/usr/share/cups/model -name "*.ppd" |xargs gzip -n9f

%if %use_alternatives
pushd $RPM_BUILD_ROOT%{_bindir}
for i in cancel lp lpq lpr lprm lpstat; do
	mv $i $i.cups
done
cd $RPM_BUILD_ROOT%{_sbindir}
mv lpc lpc.cups
cd $RPM_BUILD_ROOT%{_mandir}/man1
for i in lp lpq lpr lprm lpstat; do
	mv $i.1 $i-cups.1
done
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/cancel.1
ln -s lp-cups.1 $RPM_BUILD_ROOT%{_mandir}/man1/cancel-cups.1
cd $RPM_BUILD_ROOT%{_mandir}/man8
mv lpc.8 lpc-cups.8
popd
%endif

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 644 %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/cups/pdftops.conf
ln -s ../doc/%{name}-%{version} $RPM_BUILD_ROOT%{_datadir}/%{name}/doc

# Deal with users trying to access the admin tool at
# /usr/share/doc/cups-%{version}/index.html rather than the
# correct http://localhost:631/
for i in admin classes jobs printers; do
	mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/$i
	cat >$RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/$i/index.html <<EOF
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd";>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml";>
<head>
<meta http-equiv="refresh" content="2; URL=http://localhost:631/$i"; />
<title>CUPS $i</title>
</head>
<body bgcolor="#cccc99" text="#000000" link="#0000ff" vlink="#ff00ff">
<p>You are trying to access the CUPS admin frontend through reading the files.
The correct way to access the CUPS admin frontend is pointing your browser at
<a href="http://localhost:631/";>http://localhost:631/</a>.</p>
<p>You should be automatically redirected to the correct URL in 2 seconds.
If your browser does not support redirection, please use
<a href="http://localhost:631/$i";>this link</a>.</p>
</body>
</html>
EOF
done

cat >$RPM_BUILD_ROOT%{_sysconfdir}/cups/snmp.conf <<"EOF"
#Address @LOCAL
#Community public
#DebugLevel 0
#HostNameLookups off
EOF

# 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

# Ship a generic postscript PPD file (#73061)
install -c -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_datadir}/cups/model

# Ship a printers.conf file, and a client.conf file.  That way, they get
# their SELinux file contexts set correctly.
touch $RPM_BUILD_ROOT%{_sysconfdir}/cups/printers.conf
touch $RPM_BUILD_ROOT%{_sysconfdir}/cups/classes.conf
touch $RPM_BUILD_ROOT%{_sysconfdir}/cups/client.conf

# Ship an SSL directory
mkdir $RPM_BUILD_ROOT%{_sysconfdir}/cups/ssl

# Remove unshipped files.
rm -rf $RPM_BUILD_ROOT%{_mandir}/cat? $RPM_BUILD_ROOT%{_mandir}/*/cat?
rm -f $RPM_BUILD_ROOT%{_datadir}/applications/cups.desktop
rm -rf $RPM_BUILD_ROOT%{_datadir}/icons


%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
%if %use_alternatives
/usr/sbin/alternatives --install %{_bindir}/lpr print %{_bindir}/lpr.cups 40 \
	 --slave %{_bindir}/lp print-lp %{_bindir}/lp.cups \
	 --slave %{_bindir}/lpq print-lpq %{_bindir}/lpq.cups \
	 --slave %{_bindir}/lprm print-lprm %{_bindir}/lprm.cups \
	 --slave %{_bindir}/lpstat print-lpstat %{_bindir}/lpstat.cups \
	 --slave %{_bindir}/cancel print-cancel %{_bindir}/cancel.cups \
	 --slave %{_sbindir}/lpc print-lpc %{_sbindir}/lpc.cups \
	 --slave %{_mandir}/man1/cancel.1.gz print-cancelman %{_mandir}/man1/cancel-cups.1.gz \
	 --slave %{_mandir}/man1/lp.1.gz print-lpman %{_mandir}/man1/lp-cups.1.gz \
	 --slave %{_mandir}/man8/lpc.8.gz print-lpcman %{_mandir}/man8/lpc-cups.8.gz \
	 --slave %{_mandir}/man1/lpq.1.gz print-lpqman %{_mandir}/man1/lpq-cups.1.gz \
	 --slave %{_mandir}/man1/lpr.1.gz print-lprman %{_mandir}/man1/lpr-cups.1.gz \
	 --slave %{_mandir}/man1/lprm.1.gz print-lprmman %{_mandir}/man1/lprm-cups.1.gz \
	 --slave %{_mandir}/man1/lpstat.1.gz print-lpstatman %{_mandir}/man1/lpstat-cups.1.gz \
	 --initscript cups
%endif
if [ $1 -eq 1 ]; then
  # First install.  Build ppds.dat.
  /sbin/service cups reload >/dev/null 2>&1 || :
fi
exit 0

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig

%preun
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
%endif
fi
exit 0

%postun
if [ "$1" -ge "1" ]; then
	/sbin/service cups condrestart > /dev/null 2>&1
fi
exit 0

%triggerin -- samba-client
ln -sf ../../../bin/smbspool %{cups_serverbin}/backend/smb || :
exit 0

%triggerun -- samba-client
[ $2 = 0 ] || exit 0
rm -f %{cups_serverbin}/backend/smb

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
%dir %attr(0755,root,lp) /etc/cups
%dir %attr(0755,root,lp) /var/run/cups
%dir %attr(0511,lp,sys) /var/run/cups/certs
%config(noreplace) %attr(0640,root,lp) /etc/cups/cupsd.conf
%attr(0640,root,lp) /etc/cups/cupsd.conf.default
%config(noreplace) %attr(0644,root,lp) /etc/cups/client.conf
%config(noreplace) %attr(0644,root,lp) /etc/cups/classes.conf
%config(noreplace) %attr(0600,root,lp) /etc/cups/printers.conf
%config(noreplace) %attr(0644,root,lp) /etc/cups/pdftops.conf
%config(noreplace) %attr(0644,root,lp) /etc/cups/snmp.conf
/etc/cups/interfaces
%config(noreplace) /etc/cups/mime.types
%config(noreplace) /etc/cups/mime.convs
%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
%dir %{_docdir}/cups-%{version}
%{_docdir}/cups-%{version}/favicon.ico
%{_docdir}/cups-%{version}/images
%{_docdir}/cups-%{version}/ja
%{_docdir}/cups-%{version}/es
%{_docdir}/cups-%{version}/sv
%{_docdir}/cups-%{version}/pl
%{_docdir}/cups-%{version}/*.css
%{_docdir}/cups-%{version}/admin
%{_docdir}/cups-%{version}/classes
%{_docdir}/cups-%{version}/jobs
%{_docdir}/cups-%{version}/printers
%doc %{_docdir}/cups-%{version}/index.html
%doc %{_docdir}/cups-%{version}/help
%doc %{_docdir}/cups-%{version}/robots.txt
%config(noreplace) %{initdir}/cups
%{_bindir}/cupstestppd
%{_bindir}/cupstestdsc
%{_bindir}/cancel*
%{_bindir}/lp*
%dir %{cups_serverbin}
%{cups_serverbin}/backend
%{cups_serverbin}/cgi-bin
%dir %{cups_serverbin}/daemon
%if %build_as_lspp
%{cups_serverbin}/daemon/access
%endif
%{cups_serverbin}/daemon/cups-polld
%{cups_serverbin}/daemon/cups-deviced
%{cups_serverbin}/daemon/cups-driverd
%{cups_serverbin}/notifier/mailto
%{cups_serverbin}/notifier/testnotify
%{cups_serverbin}/filter
%{cups_serverbin}/monitor
%{cups_serverbin}/driver
%{_mandir}/man?/*
%{_sbindir}/*
%dir %{_datadir}/cups
%dir %{_datadir}/cups/banners
%config(noreplace) %{_datadir}/cups/banners/*
%{_datadir}/cups/charsets
%{_datadir}/cups/charmaps
%{_datadir}/cups/data
%{_datadir}/cups/doc
%{_datadir}/cups/fonts
%{_datadir}/cups/model
%{_datadir}/cups/templates
%{_datadir}/locale/*/*
%dir %attr(1770,root,lp) /var/spool/cups/tmp
%dir %attr(0710,root,lp) /var/spool/cups
%dir %attr(0755,lp,sys) /var/log/cups
%config(noreplace) %{_sysconfdir}/logrotate.d/cups
%{_datadir}/pixmaps/cupsprinter.png
%{_sysconfdir}/cron.daily/cups
%{_sysconfdir}/dbus-1/system.d/cups.conf
%{_libdir}/php/modules/*.so

%files libs
%defattr(-,root,root)
%{_libdir}/*.so.*

%files devel
%defattr(-,root,root)
%{_bindir}/cups-config
%{_libdir}/*.so
%{_includedir}/cups

%files lpd
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/xinetd.d/cups-lpd
%dir %{cups_serverbin}
%dir %{cups_serverbin}/daemon
%{cups_serverbin}/daemon/cups-lpd

%changelog
* Fri Jul 14 2006 Matt Anderson <mra hp com> - 1:1.2.1-18.1lspp
- include lspp additions

* Fri Jul  7 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-18
- Ship with an empty classes.conf file.

* Tue Jul  4 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-17
- Sync with svn5706.
- No longer need localhost, str1740, str1758, str1736, str1776 patches.

* Thu Jun 29 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-16
- Bumped paps requirement.
- Don't use texttopaps for application/* MIME types (bug #197214).

* Thu Jun 29 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-15
- Require paps and use it for printing text (bug #197214).

* Thu Jun 15 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-14
- Don't export in SSLLIBS to cups-config.

* Thu Jun 15 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-13
- Fixed cupsd network default printer crash (STR #1776).

* Wed Jun 14 2006 Tomas Mraz <tmraz redhat com> - 1:1.2.1-12
- rebuilt with new gnutls

* Tue Jun 13 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-11
- Remove certs directory in %%post, not %%postun.

* Tue Jun 13 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-10
- Remove old-style certs directory after upgrade (bug #194581).

* Wed Jun  7 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-9
- Prevent 'too many open files' error (STR #1736, bug #194368).

* Wed Jun  7 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-8
- Fix 'Allow from @IF(...)' (STR #1758, bug #187703).

* Wed Jun  7 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-7
- ServerBin compatibility patch (bug #194005).

* Fri Jun  2 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-6
- Applied upstream patch to fix STR #1740 (bug #192809).

* Thu Jun  1 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-5
- Fixed group ownerships again (bug #192880).

* Thu Jun  1 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-4
- Fixed 'service cups reload' not to give an error message.

* Thu May 25 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-3
- Fix 'localhost' fallback in httpAddrGetList() (bug #192628, STR #1723).

* Mon May 22 2006 Tim Waugh <twaugh redhat com> 1:1.2.1-2
- 1.2.1.
- Another STR #1705 fix (bug #192034).
- Fixed devel package multilib conflict (bug #192664).

* Mon May 22 2006 Tim Waugh <twaugh redhat com> 1:1.2.0-7
- Sync to svn5568.  No longer need rpath patch.
- Added a 'conflicts:' for kdelibs to prevent bug #192548.

* Sat May 20 2006 Tim Waugh <twaugh redhat com> 1:1.2.0-6
- Sync to svn5555.  No longer need str1670 or str1705 patches.

* Fri May 19 2006 Tim Waugh <twaugh redhat com> 1:1.2.0-5
- Sync to svn5545.
- Ship a driver directory.

* Thu May 18 2006 Tim Waugh <twaugh redhat com> 1:1.2.0-4
- Disable back-channel data in the usb backend (STR #1705, bug #192034).
- Fix for 'browsing stops on reload', STR #1670 (bug #191217).

* Wed May 16 2006 Tim Waugh <twaugh redhat com>
- Sync to svn5538.
- Added 'restartlog' to initscript, for clearing out error_log.  Useful
  for problem diagnosis.
- Initscript no longer needs to check for printconf-backend.

* Tue May 16 2006 Tim Waugh <twaugh redhat com> 1:1.2.0-3
- Added image library build requirements.
- The devel package requires gnutls-devel (bug #191908).

* Mon May  8 2006 Tim Waugh <twaugh redhat com> 1:1.2.0-2
- 1.2.0.

* Fri May  5 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.5.rc3.4
- Sync to svn5493.

* Fri May  5 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.5.rc3.3
- Sync to svn5491.

* Fri Apr 28 2006 Tim Waugh <twaugh redhat com>
- Sync to svn5470.
- No longer need link, CAN-2005-0064, or no-propagate-ipp-port patches.
- Switch to upstream PIE implementation (every single binary is PIE).
- Extend relro to all binaries.
- Better rpath patch.

* Wed Apr 26 2006 Tim Waugh <twaugh redhat com>
- No longer need backend, rcp, or ppdsdat patches.
- Use configure switch for LogFilePerm default instead of patch.

* Tue Apr 25 2006 Tim Waugh <twaugh redhat com>
- Own /var/run/cups (bug #189561).
- Sync from svn5460 to svn5462.

* Tue Apr 25 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.5.rc3.2
- Patch pdftops to understand 'includeifexists', and use that in the
  pdftops.conf file (bug #189809).

* Mon Apr 24 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.5.rc3.1
- 1.2rc3.
- Ship an snmp.conf.

* Fri Apr 21 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.4.rc2.2
- Updated to svn 5446.

* Wed Apr 19 2006 Tim Waugh <twaugh redhat com>
- Ignore .rpmnew and .rpmsave banner files.

* Tue Apr 11 2006 Tim Waugh <twaugh redhat com>
- Ship a /etc/cups/pdftops.conf file (bug #188583).

* Fri Apr  7 2006 Tim Waugh <twaugh redhat com>
- Build requires libacl-devel.

* Fri Apr  7 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.4.rc2.1
- 1.2rc2.

* Fri Apr  7 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.9
- Sync scheduler/* with svn 5383.

* Fri Apr  7 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.8
- No longer need openssl-devel.
- Build with LDAP_DEPRECATED=1, to pick up declarations of ldap_init() etc.
- Only warn about ACLs once (STR #1532).
- Fix imagetops filter (STR #1533).
- Sync pstops.c with svn 5382.

* Thu Apr  6 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.7
- Build requires openldap-devel.
- Sync pstops.c with svn 5372.

* Tue Apr  4 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.6
- Tweak to allow 'usb:/dev/usb/lp0'-style URIs again.

* Sun Apr  2 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.5
- Backported svn 5365:5366 change for mutex-protected stringpool (STR #1530).

* Sat Apr  1 2006 Tim Waugh <twaugh redhat com>
- Fixed _cupsStrFree() (STR #1529).

* Fri Mar 31 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.4
- Fixed interaction with CUPS 1.1 servers (STR #1528).

* Wed Mar 29 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.3
- Fix group list of non-root backends (STR #1521, bug #186954).

* Tue Mar 28 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.2
- Fix lpq -h (STR#1515, bug #186686).

* Mon Mar 27 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.1
- Ship a printers.conf file, and a client.conf file.  That way, they get
  their SELinux file contexts set correctly.

* Mon Mar 27 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.2.rc1.0
- 1.2rc1.

* Fri Mar 24 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b2.6
- Add KDE compatibility symbols _ipp_add_attr/_ipp_free_attr to ipp.h, with
  a comment saying why they shouldn't be used.

* Fri Mar 24 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b2.5
- Fix KDE compatibility symbols _ipp_add_attr/_ipp_free_attr.

* Fri Mar 24 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b2.4
- Update to svn snapshot.

* Thu Mar 23 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b2.3
- Update to svn snapshot.  No longer need users or policy patches.

* Fri Mar 17 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b2.2
- Rebuilt.

* Tue Mar 14 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b2.1
- Build requires gnutls-devel.
- Fixed default policy name.
- Fixed 'set-allowed-users' in web UI.

* Mon Mar 13 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b2.0
- 1.2b2.
- Use new CUPS_SERVERBIN location (/usr/lib/cups even on 64-bit hosts).

* Fri Mar 10 2006 Tim Waugh <twaugh redhat com>
- Fixed some permissions.

* Fri Mar 10 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b1.1
- Ship /etc/cups/ssl directory.

* Thu Mar  9 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.1.b1.0
- 1.2b1.  No longer need devid patch.

* Wed Mar  8 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.0.svn5238.2
- Fixed 'device-id' attribute in GET_DEVICES requests (STR #1467).

* Tue Mar  7 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.0.svn5238.1
- New svn snapshot.
- No longer need browse or raw patches.

* Wed Mar  1 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.0.svn5137.1
- Fixed raw printing.
- Removed (unapplied) session printing patch.
- Fixed browse info.

* Thu Feb 23 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.0.svn5137.0
- New svn snapshot.

* Fri Feb 17 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.0.svn5102.0
- New svn snapshot.
- No longer need enabledisable patch.
- Fixed double-free in scheduler/policy.c (STR #1428).

* Fri Feb 10 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.0.svn5083.0
- New svn snapshot.

* Wed Jan 25 2006 Tim Waugh <twaugh redhat com> 1:1.2-0.0.svn4964.0
- Use -fPIE not -fpie in PIE patch.
- Fix link patch.
- Patch in PIE instead of using --enable-pie, since that doesn't work.

* Fri Jan 20 2006 Tim Waugh <twaugh redhat com>
- 1.2 svn snapshot.
- No longer need doclink, str1023, pdftops, sanity, lpstat, str1068,
  sigchld, gcc34, gcc4, slow, CAN-2004-0888, CAN-2005-2097, finddest,
  str1249, str1284, str1290, str1301, CVE-2005-3625,6,7 patches.
- Removed autodetect-tag patch.

* Tue Jan 17 2006 Tim Waugh <twaugh redhat com> 1:1.1.23-30
- Include 'Autodetected' tag for better integration with autodetection tools.

* Tue Jan 10 2006 Tim Waugh <twaugh redhat com> 1:1.1.23-29
- Apply dest-cache-v2 patch (bug #175847).

* Wed Jan  4 2006 Tim Waugh <twaugh redhat com> 1:1.1.23-28
- Apply patch to fix CVE-2005-3625, CVE-2005-3626, CVE-2005-3627
  (bug #176868).

* Mon Dec 19 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-27
- Link pdftops with -z relro.

* Fri Dec 09 2005 Jesse Keating <jkeating redhat com>
- rebuilt

* Thu Dec 01 2005 John (J5) Palmieri <johnp redhat com> - 1:1.1.23-26
- rebuild for new dbus

* Tue Nov  8 2005 Tomas Mraz <tmraz redhat com> 1:1.1.23-25
- rebuilt with new openssl

* Thu Oct 20 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-24
- Build with -fstack-protector-all.

* Sat Oct 15 2005 Florian La Roche <laroche redhat com> 1:1.1.23-23
- link libcupsimage.so against libcups

* Tue Oct 11 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-22
- Apply patch to fix STR #1301 (bug #169979).

* Thu Oct  6 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-21
- Apply patch to fix STR #1290.

* Wed Oct  5 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-20
- Apply upstream patch for STR #1249.

* Fri Sep 30 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-19
- Use upstream patch for STR #1284.

* Fri Sep 30 2005 Tomas Mraz <tmraz redhat com>
- use include instead of pam_stack in pam config

* Thu Sep 29 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-18
- Raise IPP_MAX_VALUES to 100 (bug #164232).  STR #1284.
- Made FindDest better behaved in some instances (bug #164232).  STR #1283.

* Fri Sep  2 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-17
- Fixed CAN-2005-2097 (bug #164510).

* Thu Jun 16 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-16
- Make DeletePrinterFromClass faster (bug #160620).

* Thu Mar 31 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-15
- Don't require exact dbus version, just minimum.

* Thu Mar 10 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-14
- Fixed up dbus patch so that it compiles.

* Wed Mar  9 2005 John (J5) Palmieri <johnp redhat com>
- Fix up dbus patch 

* Mon Mar  7 2005 John (J5) Palmieri <johnp redhat com> 1:1.1.23-13
- Fixed up dbus patch to work with dbus 0.31

* Tue Mar  1 2005 Tomas Mraz <tmraz redhat com> 1:1.1.23-12
- rebuild for openssl-0.9.7e

* Tue Feb 22 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-11
- UTF-8-ify spec file (bug #149293).

* Fri Feb 18 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-10
- Fixed build with GCC 4.

* Thu Feb 10 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-9
- Back to old DBUS API since new DBUS isn't built yet.

* Mon Feb  7 2005 Tim Waugh <twaugh redhat com>
- Use upstream patch for STR #1068.
- Apply patch to fix remainder of CAN-2004-0888 (bug #135378).

* Wed Feb  2 2005 Tim Waugh <twaugh redhat com>
- Applied patch to prevent occasional cupsd crash on reload (bug #146850).

* Tue Feb  1 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-8
- New DBUS API.

* Tue Feb  1 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-7
- Applied patch to prevent file descriptor confusion (STR #1068).

* Fri Jan 28 2005 Tim Waugh <twaugh redhat com>
- Build does not require XFree86-devel (bug #146397).

* Thu Jan 27 2005 Tim Waugh <twaugh redhat com>
- Corrected directory modes so that they reflect what cupsd sets them to.

* Mon Jan 24 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-6
- Build against new dbus.

* Fri Jan 21 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-5
- Use tmpwatch to remove unused files in the spool temporary directory
  (bug #110026).

* Thu Jan 20 2005 Tim Waugh <twaugh redhat com>
- Use gzip's -n flag for the PPDs.

* Thu Jan 20 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-4
- Mark the initscript noreplace (bug #145629).

* Wed Jan 19 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-3
- Applied patch to fix CAN-2005-0064.

* Thu Jan  6 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-2
- Fixed patch from STR #1023.

* Tue Jan  4 2005 Tim Waugh <twaugh redhat com> 1:1.1.23-1
- 1.1.23.

* Mon Dec 20 2004 Tim Waugh <twaugh redhat com> 1:1.1.23-0.rc1.1
- 1.1.23rc1.
- No longer need ioctl, ref-before-use, str1023 or str1024 patches.

* Fri Dec 17 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-6
- Use upstream patches for bug #143086.

* Thu Dec 16 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-5
- Fixed STR #1023 (part of bug #143086).
- Fixed STR #1024 (rest of bug #143086).

* Thu Dec  9 2004 Tim Waugh <twaugh redhat com>
- Not all files in the doc directory are pure documentation (bug #67337).

* Thu Dec  9 2004 Tim Waugh <twaugh redhat com>
- Fixed ioctl parameter size in usb backend.  Spotted by David A. Marlin.

* Fri Dec  3 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-4
- Convert de and fr .tmpl files into UTF-8 (bug #136177).

* Thu Dec  2 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-3
- Fix ref-before-use bug in debug output (bug #141585).

* Mon Nov 29 2004 Tim Waugh <twaugh redhat com>
- Copied "ext" patch over from xpdf RPM package.

* Mon Nov 22 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-2
- Fixed cups-lpd file mode (bug #137325).
- Convert all man pages to UTF-8 (bug #107118).  Patch from Miloslav Trmac.

* Mon Nov  8 2004 Tim Waugh <twaugh redhat com>
- New lpd subpackage, from patch by Matthew Galgoci (bug #137325).

* Tue Nov  2 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-1
- 1.1.22.
- No longer need ippfail, overread or str970 patches.

* Tue Oct 26 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-0.rc2.1
- Make cancel-cups(1) man page point to lp-cups(1) not lp(1) (bug #136973).
- Use upstream patch for STR #953.
- 1.1.22rc2.

* Wed Oct 20 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-0.rc1.7
- Prevent filters generating incorrect PS in locales where "," is the
  decimal separator (bug #136102).  Patch from STR #970.

* Thu Oct 14 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-0.rc1.5
- Fixed another typo in last patch!

* Thu Oct 14 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-0.rc1.4
- Fixed typo in last patch.

* Thu Oct 14 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-0.rc1.3
- Another attempt at fixing bug #135502.

* Wed Oct 13 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-0.rc1.2
- Fail better when receiving corrupt IPP responses (bug #135502).

* Mon Oct 11 2004 Tim Waugh <twaugh redhat com> 1:1.1.22-0.rc1.1
- 1.1.22rc1.

* Tue Oct  5 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-7
- Set LogFilePerm 0600 in default config file.

* Tue Oct  5 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-6
- Apply patch to fix CAN-2004-0923 (bug #134601).

* Mon Oct  4 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-5
- Fixed reload logic (bug #134080).

* Wed Sep 29 2004 Warren Togami <wtogami redhat com> 1:1.1.21-4
- Remove .pdf from docs, fix links

* Fri Sep 24 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-3
- Write a pid file (bug #132987).

* Thu Sep 23 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-2
- 1.1.21.

* Thu Sep  9 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc2.2
- Updated DBUS patch (from Colin Walters).

* Tue Aug 24 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc2.1
- 1.1.21rc2.
- No longer need state, reload-timeout or str743 patches.
- httpnBase64 patch no longer applies; alternate method implemented
  upstream.
- Fix single byte overread in usersys.c (spotted by Colin Walters).

* Wed Aug 18 2004 Tim Waugh <twaugh redhat com>
- Applied httpnEncode64 patch from Colin Walters.

* Sun Aug 15 2004 Tim Waugh <twaugh redhat com>
- Session printing patch (Colin Walters).  Disabled for now.

* Sun Aug 15 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.9
- Shorter reload timeout (Colin Walters).
- Updated DBUS patch from Colin Walters.

* Fri Aug 13 2004 Tim Waugh <twaugh redhat com>
- Updated IPP backend IPP_PORT patch from Colin Walters.

* Fri Aug 13 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.8
- Preserve DBUS_SESSION_BUS_ADDRESS in environment (Colin Walters).
- Fixed enabledisable patch.

* Fri Aug 13 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.7
- Bumped DBUS version to 0.22.

* Fri Aug  6 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.6
- Patch from Colin Walters to prevent IPP backend using non-standard
  IPP port.

* Sun Aug  1 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.5
- Really bumped DBUS version.

* Fri Jul 30 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.4
- Bumped DBUS version.

* Fri Jul 16 2004 Tim Waugh <twaugh redhat com>
- Added version to LPRng obsoletes: tag (bug #128024).

* Thu Jul  8 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.3
- Updated DBUS patch.

* Tue Jun 29 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.2
- Apply patch from STR #743 (bug #114999).

* Fri Jun 25 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-1.rc1.1
- Fix permissions on logrotate script (bug #126426).

* Tue Jun 15 2004 Elliot Lee <sopwith redhat com>
- rebuilt

* Fri Jun  4 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-0.rc1.2
- Build for dbus-0.21.
- Fix SetPrinterState().

* Thu Jun  3 2004 Tim Waugh <twaugh redhat com>
- Use configure's --with-optim parameter instead of setting OPTIM at
  make time (bug #125228).

* Thu Jun  3 2004 Tim Waugh <twaugh redhat com> 1:1.1.21-0.rc1.1
- 1.1.21rc1.
- No longer need str716, str718, authtype or encryption patches.

* Wed Jun  2 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-15
- Build on ppc and ppc64 again.

* Wed Jun  2 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-14
- ExcludeArch ppc, ppc64.
- More D-BUS changes.

* Tue Jun  1 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-13
- Enable optimizations on ia64 again.

* Thu May 27 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-12
- D-BUS changes.

* Wed May 26 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-11
- Build requires make >= 3.80 (bug #124472).

* Wed May 26 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-10
- Finish fix for cupsenable/cupsdisable (bug #102490).
- Fix MaxLogSize setting (bug #123003).

* Tue May 25 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-9
- Apply patches from CVS (authtype) to fix STR #434, STR #611, and as a
  result STR #719.  This fixes several problems including those noted in
  bug #114999.

* Mon May 24 2004 Tim Waugh <twaugh redhat com>
- Use upstream patch for exit code fix for bug #110135 [STR 718].

* Wed May 19 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-8
- If cupsd fails to start, make it exit with an appropriate code so that
  initlog notifies the user (bug #110135).

* Thu May 13 2004 Tim Waugh <twaugh redhat com>
- Fix cups/util.c:get_num_sdests() to use encryption when it is necessary
  or requested (bug #118982).
- Use upstream patch for the HTTP/1.1 Continue bug (from STR716).

* Tue May 11 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-7
- Fix non-conformance with HTTP/1.1, which caused failures when printing
  to a Xerox Phaser 8200 via IPP (bug #122352).
- Make lppasswd(1) PIE.
- Rotate logs within cupsd (instead of relying on logrotate) if we start
  to approach the filesystem file size limit (bug #123003).

* Tue Apr  6 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-6
- Fix pie patch (bug #120078).

* Fri Apr  2 2004 Tim Waugh <twaugh redhat com>
- Fix rcp patch for new system-config-printer name.

* Tue Mar 02 2004 Elliot Lee <sopwith redhat com>
- rebuilt

* Fri Feb 13 2004 Elliot Lee <sopwith redhat com>
- rebuilt

* Fri Feb  6 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-4
- Tracked D-BUS API changes.
- Updated D-BUS configuration file.
- Symlinks to avoid conflicting with bash builtins (bug #102490).

* Thu Feb  5 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-3
- Improved PIE patch.
- Fixed compilation with GCC 3.4.

* Thu Jan 29 2004 Tim Waugh <twaugh redhat com>
- Don't ship cupsconfig now that nothing uses it.

* Wed Jan  7 2004 Tim Waugh <twaugh redhat com> 1:1.1.20-2
- Try harder to find a translated page for the web interface (bug #107619).
- Added build_as_pie conditional to spec file to facilitate debugging.

* Mon Dec  1 2003 Tim Waugh <twaugh redhat com> 1:1.1.20-1
- 1.1.20.
- No longer need idefense, str226 patches.
- Updated sanity patch.
- The devel sub-package requires openssl-devel (bug #110772).

* Wed Nov 26 2003 Thomas Woerner <twoerner redhat com> 1:1.1.19-16
- removed -Wl,-rpath from cups-sharedlibs.m4 (replaced old no_rpath patch)

* Tue Nov 25 2003 Thomas Woerner <twoerner redhat com> 1:1.1.19-15
- no rpath in cups-config anymore

* Thu Nov 20 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-14
- Enable PIE for cupsd.

* Fri Nov 14 2003 Tim Waugh <twaugh redhat com>
- Don't ignore the file descriptor when ShutdownClient is called: it
  might get closed before we next try to read it (bug #107787).

* Tue Oct 14 2003 Tim Waugh <twaugh redhat com>
- Removed busy-loop patch; 1.1.19 has its own fix for this.

* Thu Oct  2 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-13
- Apply patch from STR 226 to make CUPS reload better behaved (bug #101507).

* Wed Sep 10 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-12
- Prevent a libcups busy loop (bug #97958).

* Thu Aug 14 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-11
- Another attempt to fix bug #100984.

* Wed Aug 13 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-10
- Pass correct attributes-natural-language through even in the absence
  of translations for that language (bug #100984).
- Show compilation command lines.

* Wed Jul 30 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-9
- Prevent lpstat displaying garbage.

* Mon Jul 21 2003 Tim Waugh <twaugh redhat com>
- Mark mime.convs and mime.types as config files (bug #99461).

* Mon Jun 23 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-8
- Start cupsd before nfs server processes (bug #97767).

* Tue Jun 17 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-7
- 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 <twaugh redhat com> 1:1.1.19-6
- Don't busy loop in the client if the IPP port is in use by another
  app (bug #97468).

* Tue Jun 10 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-5
- Mark pam.d/cups as config file not to be replaced (bug #92236).

* Wed Jun 04 2003 Elliot Lee <sopwith redhat com>
- rebuilt

* Tue Jun  3 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-3
- Provide a version for LPRng (bug #92145).

* Thu May 29 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-2
- Obsolete LPRng now.

* Tue May 27 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-1
- 1.1.19.  No longer need optparse patch.

* Sat May 17 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-0.rc5.4
- Ship configuration file for D-BUS.

* Fri May 16 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-0.rc5.3
- Rebuild for dbus-0.11 API changes.
- Fix ownership in file manifest (bug #90840).

* Wed May 14 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-0.rc5.2
- Fix option parsing in lpq (bug #90823).

* Tue May 13 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-0.rc5.1
- 1.1.19rc5.

* Thu May  8 2003 Tim Waugh <twaugh redhat com> 1:1.1.19-0.rc4.1
- 1.1.19rc4.  Ported initscript, idefense, ppdsdat, dbus patches.
- No longer need error, sigchld patches.
- Ship cupstestppd.

* Thu Apr 24 2003 Tim Waugh <twaugh redhat com>
- Mark banners as config files (bug #89069).

* Sat Apr 12 2003 Havoc Pennington <hp redhat com> 1:1.1.18-4
- adjust dbus patch - dbus_bus_get() sends the hello for you, 
  and there were a couple of memleaks
- buildprereq dbus 0.9
- rebuild for new dbus
- hope it works, I'm ssh'd in with no way to test. ;-)

* Thu Apr 10 2003 Tim Waugh <twaugh redhat com> 1.1.18-3
- Get on D-BUS.

* Fri Mar 28 2003 Tim Waugh <twaugh redhat com> 1.1.18-2
- Fix translation in the init script (bug #87551).

* Wed Mar 26 2003 Tim Waugh <twaugh redhat com> 1.1.18-1.1
- Turn off optimization on ia64 until bug #87383 is fixed.

* Wed Mar 26 2003 Tim Waugh <twaugh redhat com> 1.1.18-1
- 1.1.18.
- No longer need uninit patch.
- Some parts of the iDefense and pdftops patches seem to have been
  picked up, but not others.

* Wed Feb 12 2003 Tim Waugh <twaugh redhat com> 1.1.17-13
- Don't set SIGCHLD to SIG_IGN when using wait4 (via pclose) (bug #84101).

* Tue Feb  4 2003 Tim Waugh <twaugh redhat com> 1.1.17-12
- Fix cups-lpd (bug #83452).

* Fri Jan 31 2003 Tim Waugh <twaugh redhat com> 1.1.17-11
- Build ppds.dat on first install.

* Fri Jan 24 2003 Tim Waugh <twaugh redhat com> 1.1.17-10
- Add support for rebuilding ppds.dat without running the scheduler
  proper (for bug #82500).

* Wed Jan 22 2003 Tim Powers <timp redhat com> 1.1.17-9
- rebuilt

* Wed Jan 22 2003 Tim Waugh <twaugh redhat com> 1.1.17-8
- Warn against editing queues managed by redhat-config-printer
  (bug #82267).

* Wed Jan 22 2003 Tim Waugh <twaugh redhat com> 1.1.17-7
- Fix up error reporting in lpd backend.

* Thu Jan  9 2003 Tim Waugh <twaugh redhat com> 1.1.17-6
- Add epoch to internal requirements.
- Make 'condrestart' return success exit code when daemon isn't running.

* Tue Jan  7 2003 Nalin Dahyabhai <nalin redhat com> 1.1.17-5
- Use pkg-config information to find SSL libraries.

* Thu Dec 19 2002 Tim Waugh <twaugh redhat com> 1.1.17-4
- Security fixes.
- Make 'service cups reload' update the configuration first (bug #79953).

* Tue Dec 10 2002 Tim Waugh <twaugh redhat com> 1.1.17-3
- Fix cupsd startup hang (bug #79346).

* Mon Dec  9 2002 Tim Waugh <twaugh redhat com> 1.1.17-2
- Fix parallel backend behaviour when cancelling jobs.

* Mon Dec  9 2002 Tim Waugh <twaugh redhat com> 1.1.17-1
- 1.1.17.
- No longer need libdir patch.
- Fix logrotate script (bug #76791).

* Wed Nov 20 2002 Tim Waugh <twaugh redhat com>
- Build requires XFree86-devel (bug #78362).

* Wed Nov 20 2002 Tim Waugh <twaugh redhat com>
- 1.1.16.
- Updated system-auth patch.
- Add ncp backend script.

* Wed Nov 13 2002 Tim Waugh <twaugh redhat com> 1.1.15-15
- Set alternatives priority to 40.

* Mon Nov 11 2002 Nalin Dahyabhai <nalin redhat com> 1.1.15-14
- Buildrequire pam-devel.
- Patch default PAM config file to remove directory names from module paths,
  allowing the configuration files to work equally well on multilib systems.
- Patch default PAM config file to use system-auth, require the file at build-
  time because that's what data/Makefile checks for.

* Fri Nov  8 2002 Tim Waugh <twaugh redhat com> 1.1.15-13
- Use logrotate for log rotation (bug #76791).
- No longer need cups.desktop, since redhat-config-printer handles it.

* Thu Oct 17 2002 Tim Waugh <twaugh redhat com> 1.1.15-12
- Revert to libdir for CUPS_SERVERBIN.

* Thu Oct 17 2002 Tim Waugh <twaugh redhat com> 1.1.15-11
- Use %%configure for multilib correctness.
- Use libexec instead of lib for CUPS_SERVERBIN.
- Ship translated man pages.
- Remove unshipped files.
- Fix file list permissions (bug #59021, bug #74738).
- Fix messy initscript output (bug #65857).
- Add 'reload' to initscript (bug #76114).

* Fri Aug 30 2002 Bernhard Rosenkraenzer <bero redhat de> 1.1.15-10
- Add generic postscript PPD file (#73061)

* Mon Aug 19 2002 Tim Waugh <twaugh redhat com> 1.1.15-9
- Fix prefix in pstoraster (bug #69573).

* Mon Aug 19 2002 Tim Waugh <twaugh redhat com> 1.1.15-8
- Disable cups-lpd by default (bug #71712).
- No need for fread patch now that glibc is fixed.

* Thu Aug 15 2002 Tim Waugh <twaugh redhat com> 1.1.15-7
- Really add cups-lpd xinetd file (bug #63919).
- Ship pstoraster (bug #69573).
- Prevent fread from trying to read from beyond EOF (fixes a segfault
  with new glibc).

* Sat Aug 10 2002 Elliot Lee <sopwith redhat com> 1.1.15-6
- rebuilt with gcc-3.2 (we hope)

* Mon Aug  5 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.15-5
- Add cups-lpd xinetd file (#63919)

* Tue Jul 23 2002 Florian La Roche <Florian LaRoche redhat de> 1.1.15-4
- add a "exit 0" to postun script

* Tue Jul  2 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.15-3
- Add a symlink /usr/share/cups/doc -> /usr/share/doc/cups-devel-1.1.15
  because some applications expect to find the cups docs in
  /usr/share/cups/doc

* Fri Jun 21 2002 Tim Powers <timp redhat com>
- automated rebuild

* Fri Jun 21 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.15-1
- 1.1.15-1
- Fix up smb printing trigger (samba-client, not samba-clients)
- Start cupsd earlier, apparently it needs to be running before samba
  starts up for smb printing to work.

* Thu May 23 2002 Tim Powers <timp redhat com>
- automated rebuild

* Tue May  7 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-17
- Rebuild in current environment
- [-16 never existed because of build system breakage]

* Wed Apr 17 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-15
- Fix bug #63387

* Mon Apr 15 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-14
- Fix dangling symlink created by samba-clients trigger

* Wed Apr 10 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-13
- Add desktop file and icon for CUPS configuration

* Wed Apr  3 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-12
- Support SMB printing (#62407)
- Add HTML redirections to doc files to work around users mistaking
  /usr/share/doc/cups-1.1.14 for the web frontend (#62405)

* Tue Apr  2 2002 Bill Nottingham <notting redhat com> 1.1.14-11
- fix subsys in initscript (#59206)
- don't strip binaries

* Mon Mar 11 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-10
- Make initscript use killproc instead of killall

* Fri Mar  8 2002 Bill Nottingham <notting redhat com> 1.1.14-9
- use alternatives --initscript support

* Mon Mar  4 2002 Bill Nottingham <notting redhat com> 1.1.14-8
- use the right path for the lpc man page, duh

* Thu Feb 28 2002 Bill Nottingham <notting redhat com> 1.1.14-7
- lpc man page is alternative too
- run ldconfig in -libs %post/%postun, not main
- remove alternatives in %preun

* Wed Feb 27 2002 Bill Nottingham <notting redhat com> 1.1.14-6
- don't source /etc/sysconfig/network in cups.init, we don't use any
  values from it

* Tue Feb 26 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-4
- Fix bugs #60220 and #60352

* Thu Feb 21 2002 Tim Powers <timp redhat com>
- rebuild against correct version of openssl (0.9.6b)

* Wed Feb 20 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-2
- Add all man pages to alternatives (#59943)
- Update to real 1.1.14

* Tue Feb 12 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.14-1
- Update to almost-1.1.14

* Mon Feb 11 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.13-5
- Move cups-config to cups-devel subpackage
- Make alternatives usage a %%define to simplify builds for earlier
  releases
- Explicitly provide things we're supplying through alternatives
  to shut up kdeutils dependencies

* Tue Feb  5 2002 Tim Powers <timp redhat com>
- shut the alternatives stuff up for good

* Fri Feb  1 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.13-3
- Fix alternatives stuff
- Don't display error messages in %%post

* Wed Jan 30 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.13-2
- alternatives stuff

* Tue Jan 29 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.13-1
- 1.1.13
- Add patch for koi8-{r,u} and iso8859-8 encodings (#59018)
- Rename init scripts so we can safely "killall cupsd" from there

* Sat Jan 26 2002 Bernhard Rosenkraenzer <bero redhat com> 1.1.12-1
- Initial (conflicting, since alternatives isn't there yet) packaging for
  Red Hat Linux

* Sat Jan 19 2002 Bernhard Rosenkraenzer <bero redhat com>
- 1.1.12

* Mon Nov  5 2001 Bernhard Rosenkraenzer <bero redhat com> 1.1.10-3
- Compress PPD files
- Fix build with gcc 3.1
- Fix init script

* Tue Sep  4 2001 Bernhard Rosenkraenzer <bero redhat com> 1.1.10-2
- Fix URL
- Generate printcap
- s/Copyright/License/g

* Tue Sep  4 2001 Than Ngo <than redhat com> 1.1.10-1
- update to 1.1.10-1 for ExtraBinge 7.2

* Tue May 29 2001 Michael Stefaniuc <mstefani redhat com>
- update to 1.1.8
- changed cupsd.conf to generate /etc/printcap

* Tue May 15 2001 Than Ngo <than redhat com>
- update to 1.1.7, bugfixes

* Thu Dec 14 2000 Than Ngo <than redhat com>
- fixed package dependency with lpr and LPRng

* Wed Oct 25 2000 Than Ngo <than redhat com>
- remove man/cat

* Tue Oct 24 2000 Than Ngo <than redhat com>
- don't start cupsd service in level 0, fixed

* Thu Oct 19 2000 Than Ngo <than redhat com>
- update to 1.1.4
- fix CUPS_DOCROOT (Bug #18717)

* Fri Aug 11 2000 Than Ngo <than redhat de>
- update to 1.1.2 (Bugfix release)

* Fri Aug 4 2000 Than Ngo <than redhat de>
- fix, cupsd read config file under /etc/cups (Bug #15432)
- add missing cups filters

* Wed Aug 2 2000 Tim Powers <timp redhat com>
- rebuilt against libpng-1.0.8

* Tue Aug 01 2000 Than Ngo <than redhat de>
- fix permission, add missing ldconfig in %post and %postun (Bug #14963)

* Sat Jul 29 2000 Bernhard Rosenkraenzer <bero redhat com>
- 1.1.1 (this has some major bugfixes)
- Fix a typo in initscript (it's $?, not ?$)
- Fix /usr/etc vs. /etc trouble, don't insist on /usr/var (YUCK!)
- Create the spool dir

* Fri Jul 28 2000 Than Ngo <than redhat de>
- fix unclean code for building against gcc-2.96
- add missing restart function in startup script

* Fri Jul 28 2000 Tim Powers <timp redhat com>
- fixed initscript so that conrestart doesn't return 1 if the test fails

* Mon Jul 24 2000 Prospector <prospector redhat com>
- rebuilt

* Wed Jul 19 2000 Than Ngo <than redhat de>
- using service to fire them up
- fix Prereq section

* Mon Jul 17 2000 Tim Powers <timp redhat com>
- added defattr to the devel package

* Sun Jul 16 2000 Than Ngo <than redhat de>
- add cups config files

* Sat Jul 15 2000 Than Ngo <than redhat de>
- update to 1.1 release
- move back to /etc/rc.d/init.d
- fix cupsd.init to work with /etc/init.d and /etc/rc.d/init.d
- split cups

* Wed Jul 12 2000 Than Ngo <than redhat de>
- rebuilt

* Thu Jul 06 2000 Tim Powers <timp redhat com>
- fixed broken PreReq to now require /etc/init.d

* Tue Jun 27 2000 Tim Powers <timp redhat com>
- PreReq initscripts >= 5.20

* Mon Jun 26 2000 Tim Powers <timp redhat com>
- started changelog 
- fixed init.d script location
- changed script in init.d quite a bit and made more like the rest of our
  startup scripts 

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]