[Pkg-cups-devel] r438 - in cupsys/branches/cups-1.2-ubuntu/debian: . patches

Martin Pitt mpitt at alioth.debian.org
Mon Mar 12 10:26:02 CET 2007


Author: mpitt
Date: Mon Mar 12 09:26:01 2007
New Revision: 438

Added:
   cupsys/branches/cups-1.2-ubuntu/debian/patches/96_more-bug-fixes-between-cups-1.2.8-1.2.9.dpatch
Modified:
   cupsys/branches/cups-1.2-ubuntu/debian/changelog
   cupsys/branches/cups-1.2-ubuntu/debian/cupsys.config
   cupsys/branches/cups-1.2-ubuntu/debian/cupsys.postinst
   cupsys/branches/cups-1.2-ubuntu/debian/cupsys.templates
   cupsys/branches/cups-1.2-ubuntu/debian/patches/00list
Log:
* debian/cupsys.templates: Re-activated CUPS backeds "snmp", "serial", and
  "scsi" which were deactivated by Debian. With these backends activated
  many more printers can be easily set up with the printer setup tools.
  Especially network printers get auto-detected and the correct URI gets
  assigned to them (doing this manually is a non-trivial task for most
  users.
* debian/cupsys.config, debian/cupsys.postinst: (De)activate only if the
  user has called the configuration interface (eg by calling
  "dpkg-reconfigure cupsys") and changed something there.
* debian/cupsys.postinst: On an update from any older cupsys package to
  this one or newer activate the snmp, scsi, and serial backends.
* 96_more-bug-fixes-between-cups-1.2.8-1.2.9.dpatch: Keep up with upstream
  bug fixes:
   o Classes containing other classes did not always work (upstream STR
     #2255)
   o Printer location and description information was lost if the 
     corresponding string contained the "#" character (upstream STR #2254)
   o cupsRemoveOption() did not work properly (upstream STR #2264)

Modified: cupsys/branches/cups-1.2-ubuntu/debian/changelog
==============================================================================
--- cupsys/branches/cups-1.2-ubuntu/debian/changelog	(original)
+++ cupsys/branches/cups-1.2-ubuntu/debian/changelog	Mon Mar 12 09:26:01 2007
@@ -1,3 +1,26 @@
+cupsys (1.2.8-0ubuntu3) feisty; urgency=low
+
+  * debian/cupsys.templates: Re-activated CUPS backeds "snmp", "serial", and
+    "scsi" which were deactivated by Debian. With these backends activated
+    many more printers can be easily set up with the printer setup tools.
+    Especially network printers get auto-detected and the correct URI gets
+    assigned to them (doing this manually is a non-trivial task for most
+    users.
+  * debian/cupsys.config, debian/cupsys.postinst: (De)activate only if the
+    user has called the configuration interface (eg by calling
+    "dpkg-reconfigure cupsys") and changed something there.
+  * debian/cupsys.postinst: On an update from any older cupsys package to
+    this one or newer activate the snmp, scsi, and serial backends.
+  * 96_more-bug-fixes-between-cups-1.2.8-1.2.9.dpatch: Keep up with upstream
+    bug fixes:
+     o Classes containing other classes did not always work (upstream STR
+       #2255)
+     o Printer location and description information was lost if the 
+       corresponding string contained the "#" character (upstream STR #2254)
+     o cupsRemoveOption() did not work properly (upstream STR #2264)
+
+ -- Till Kamppeter <till.kamppeter at gmail.com>  Mon,  5 Mar 2007 19:22:06 +0000
+
 cupsys (1.2.8-0ubuntu2) feisty; urgency=low
 
   * 70_reactivate_recommended_driver.dpatch: Upstream CUPS filters the

Modified: cupsys/branches/cups-1.2-ubuntu/debian/cupsys.config
==============================================================================
--- cupsys/branches/cups-1.2-ubuntu/debian/cupsys.config	(original)
+++ cupsys/branches/cups-1.2-ubuntu/debian/cupsys.config	Mon Mar 12 09:26:01 2007
@@ -70,9 +70,17 @@
   fi
 fi
 
+db_get cupsys/backend
+OLD_RET=$RET
+
 db_input low cupsys/backend || true
 db_go
 
+db_get cupsys/backend
+if [ "$OLD_RET" != "$RET" ]; then
+    db_fset cupsys/backend changed true
+fi
+
 #RET=
 #if [ -f "$CONF" ]; then
 #  if [ "$(grep -h "Include[[:space:]]\+$PORTS" $CONF)" -a -f "$PORTS" ]; then

Modified: cupsys/branches/cups-1.2-ubuntu/debian/cupsys.postinst
==============================================================================
--- cupsys/branches/cups-1.2-ubuntu/debian/cupsys.postinst	(original)
+++ cupsys/branches/cups-1.2-ubuntu/debian/cupsys.postinst	Mon Mar 12 09:26:01 2007
@@ -123,18 +123,34 @@
 	    db_fset cupsys/raw-print changed false
 	fi
 	# Set up backends
-	db_get cupsys/backend && SELECTED=$RET
-	list=`echo $SELECTED | sed -e 's/, /,/g'`
-	save_IFS=$IFS
-	IFS=,
-	(cd /usr/lib/cups/backend && rm -f http ipp lpd parallel scsi serial socket usb snmp)
-	for module in $list; do
-	  ln /usr/lib/cups/backend-available/$module /usr/lib/cups/backend/$module
-	  if [ "$module" = "ipp" ]; then
-            ln /usr/lib/cups/backend/ipp /usr/lib/cups/backend/http
-	  fi
-	done
-	IFS=$save_IFS
+	db_fget cupsys/backend changed
+	if [ "$RET" = "true" ]; then
+	    db_get cupsys/backend && SELECTED=$RET
+	    list=`echo $SELECTED | sed -e 's/, /,/g'`
+	    save_IFS=$IFS
+	    IFS=,
+	    (cd /usr/lib/cups/backend && rm -f http ipp lpd parallel scsi serial socket usb snmp)
+	    for module in $list; do
+		ln /usr/lib/cups/backend-available/$module /usr/lib/cups/backend/$module
+		if [ "$module" = "ipp" ]; then
+		    ln /usr/lib/cups/backend/ipp /usr/lib/cups/backend/http
+		fi
+	    done
+	    IFS=$save_IFS
+	    db_fset cupsys/backend changed false
+	fi
+	# In cupsys 1.2.8-0ubuntu3 the defaults for the active backends
+	# changed. snmp, scsi, and serial got added. So activate these
+	# backends.
+	if dpkg --compare-versions "$2" lt-nl "1.2.8-0ubuntu3"; then
+	    for module in snmp scsi serial; do
+		[ -e /usr/lib/cups/backend/$module ] || \
+		ln /usr/lib/cups/backend-available/$module /usr/lib/cups/backend/$module
+	    done
+	fi
+	# Resync Debconf database with real state
+	#list=`( cd /usr/lib/cups/backend && for f in ipp lpd parallel scsi serial socket usb snmp; do [ -e $f ] && echo -en "$f, "; done ) | sed -e 's/, $//'`
+	#db_set cupsys/backend $list;
 
 	# Create password file for Digest authentication
         # (removed: Debian CUPS uses PAM and basic authentication)

Modified: cupsys/branches/cups-1.2-ubuntu/debian/cupsys.templates
==============================================================================
--- cupsys/branches/cups-1.2-ubuntu/debian/cupsys.templates	(original)
+++ cupsys/branches/cups-1.2-ubuntu/debian/cupsys.templates	Mon Mar 12 09:26:01 2007
@@ -20,7 +20,7 @@
 Template: cupsys/backend
 Type: multiselect
 __Choices: ipp, lpd, parallel, scsi, serial, socket, usb, snmp
-Default: ipp, lpd, parallel, socket, usb
+Default: ipp, lpd, parallel, scsi, serial, socket, usb, snmp
 _Description: Printer communication backends:
  CUPS uses backend programs for communication with printer device or port.
  .

Modified: cupsys/branches/cups-1.2-ubuntu/debian/patches/00list
==============================================================================
--- cupsys/branches/cups-1.2-ubuntu/debian/patches/00list	(original)
+++ cupsys/branches/cups-1.2-ubuntu/debian/patches/00list	Mon Mar 12 09:26:01 2007
@@ -36,6 +36,7 @@
 90_testpage-on-large-paper-sizes.dpatch
 92_texttops-prettyprint-crash.dpatch
 94_doc-port-in-client-conf.dpatch
+96_more-bug-fixes-between-cups-1.2.8-1.2.9.dpatch
 ubuntu-disable-browsing.dpatch
 ubuntu-external-pam-helper.dpatch
 ubuntu-default-error-policy-retry-job.dpatch

Added: cupsys/branches/cups-1.2-ubuntu/debian/patches/96_more-bug-fixes-between-cups-1.2.8-1.2.9.dpatch
==============================================================================
--- (empty file)
+++ cupsys/branches/cups-1.2-ubuntu/debian/patches/96_more-bug-fixes-between-cups-1.2.8-1.2.9.dpatch	Mon Mar 12 09:26:01 2007
@@ -0,0 +1,1341 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 96_more-bug-fixes-between-cups-1.2.8-1.2.9.dpatch by  <till.kamppeter at gmail.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+ at DPATCH@
+diff -urNad cupsys-1.2.8~/CHANGES.txt.orig cupsys-1.2.8/CHANGES.txt.orig
+--- cupsys-1.2.8~/CHANGES.txt.orig	1970-01-01 01:00:00.000000000 +0100
++++ cupsys-1.2.8/CHANGES.txt.orig	2007-03-03 18:34:20.000000000 +0000
+@@ -0,0 +1,1088 @@
++CHANGES.txt - 2007-02-06
++------------------------
++
++CHANGES IN CUPS V1.2.8
++
++	- Documentation fixes (STR #2141, STR #2157)
++	- The HTTP upgrade redirection used by the scheduler did
++	  not work with Internet Explorer (STR #2235)
++	- Members of a class with Unicode names did not appear
++	  correctly in the web interface (STR #2154)
++	- Changing the "Save debugging information" setting in
++	  the web interface no longer affects the other server
++	  settings (STR #1993)
++	- The scheduler did not choose SSL certificates correctly
++	  on Mac OS X (STR #2225)
++	- The scheduler could get in an infinite loop when
++	  printing to a remote class (STR #2228)
++	- The jobs web page did not have separating space after
++	  the number of pages column (STR #2230)
++	- Added French localization (STR #2221)
++	- Updated Spanish localization (STR #2223)
++	- Updated Japanese localization (STR #2216)
++	- cupsBorderlessScalingFacter was limited to a range of
++	  0.9 to 1.1, but some printers need larger values (STR
++	  #2222)
++	- Landscape printing of PDF files did not always work
++	  (STR #2149)
++	- Fixed slow USB printing on Minolta printers (STR #2104,
++	  STR #2219)
++	- The ZPL label printer driver could produce stretched
++	  output (PR #6448)
++	- The IPP backend now clears the printer-state-message
++	  when there are no outstanding errors or warnings (STR
++	  #2126)
++	- The CUPS Java scripting support did not work with
++	  recent versions of Java due to the use of Sun's private
++	  Base64 class (STR #2152)
++	- The scheduler did not pass HTTP GET form variables to
++	  custom CGI programs (STR #2173)
++	- The lpoptions command now displays the reason why a PPD
++	  file cannot be found (STR #2184)
++	- The scheduler did not accept "none" as a browse
++	  protocol name (STR #2200)
++	- The scheduler still loaded the remote printer cache,
++	  even when browsing was disabled (STR #2198)
++	- The SNMP backend now shows OfficeJet printers with the
++	  "HP" manufacturer prefix (STR #2151)
++	- Web interface HTML cleanup (STR #2153)
++	- The parallel backend consumed 100% CPU on FreeBSD due
++	  to an apparently common parallel port driver bug (STR
++	  #2161)
++	- ippReadIO() incorrectly returned IPP_IDLE when the
++	  initial IPP message header could not be read (STR
++	  #2179)
++	- cupsRasterInterpretPPD() did not support custom options
++	  (STR #1960)
++	- Collated output produced by the PostScript filter could
++	  lose some options (STR #2137)
++	- job-hold-until with time values for the next day would
++	  be held for 60 days (STR #2144)
++	- Some types of Sun raster files did not print correctly
++	  (STR #2107)
++	- Raw PBM files did not print correctly (STR #2106)
++	- The SNMP backend no longer uses IPP with HP printers,
++	  as some recent firmware versions appear to not work
++	  (STR #2055)
++	- cupsMarkOptions() did not handle the
++	  multiple-document-handling option (STR #2135)
++	- lpstat did not show the local job ID of active printers
++	  (STR #2125)
++	- The backends incorrectly used STATUS:
++	  media-tray-empty-error messages for out-of-paper
++	  conditions (STR #2123, STR #2124)
++	- cupsGetPPD2() returned the wrong error when the PPD
++	  file did not exist (STR #2122)
++	- cupsDoAuthentication() did not translate the password
++	  prompt (STR #2121)
++	- httpGetLength2() did not handle error messages without
++	  content correctly (STR #2133)
++	- Added support for 32/64-bit libraries on HP-UX Itanium
++	  systems (STR #2115)
++	- Fixed a configure script problem with the 32/64-bit
++	  library support (STR #2114)
++	- The PostScript filter did not properly output document
++	  setup commands for reversed output (STR #2111)
++	- The scheduler did not parse IPv6 netmasks properly (STR
++	  #2117)
++
++
++CHANGES IN CUPS V1.2.7
++
++	- Documentation updates (STR #2089)
++	- Added an Italian translation (STR #2105)
++	- The PostScript filter now rotates the bounding box
++	  values as needed (STR #2079)
++	- The scheduler no longer loads the remote printer cache
++	  when browsing is disabled (STR #2084)
++	- The scheduler no longer writes a new launchd
++	  configuration file if it doesn't have to (STR #2083)
++	- Updated the USB and PAP backends for Mac OS X (STR
++	  #2086)
++	- The scheduler now picks up on changes to IPv6 and DNS
++	  configuration on Mac OS X (STR #2085)
++	- The lpstat program could still hang (STR #2098)
++	- Fixed an inefficiency in the SNMP IPP detection code
++	  (STR #2100)
++	- The SSL negotiation code did not implement short
++	  timeouts (STR #2091)
++
++
++CHANGES IN CUPS V1.2.6
++
++	- The web interface was not localized on Mac OS X (STR
++	  #2075)
++	- "lpc status" did not show the number of queued jobs for
++	  disabled queues (STR #2069)
++	- The lpstat program could hang (STR #2073)
++	- The serial backend did not support the new USB serial
++	  filenames on Linux (STR #2061)
++	- The parallel backend did not support bidirectional I/O
++	  properly (STR #2056)
++	- The network backends now log the numeric address that
++	  is being used (STR #2046)
++	- Fixed a compile error when using libpaper.
++	- Fixed a compile error when compiling on Solaris with
++	  threading enabled (STR #2049, STR #2050)
++	- Missing printer-state-changed event for
++	  printer-state-message updates (STR #2047)
++
++
++CHANGES IN CUPS V1.2.5
++
++	- Documentation updates (STR #2038)
++	- The SNMP backend no longer uses IPP for Epson printers
++	  (STR #2028)
++	- Updated the configure script for Tru64 UNIX 5.1 (STR
++	  #2033)
++	- Tru64 5.1B's getaddrinfo() and getnameinfo() functions
++	  leak file descriptors (STR #2034)
++	- cupsAddDest() didn't add the parent destination's
++	  options and attributes.
++	- ppdConflicts() did not handle custom option
++	  constraints.
++	- Raw printing of gzip'd files did not work (STR #2009)
++	- The scheduler no longer preserves default option
++	  choices when the new PPD no longer provides the old
++	  default choice (STR #1929)
++	- The Linux SCSI backend is now only built if the SCSI
++	  development headers are installed.
++	- USB printing to Minolta printers did not work (STR
++	  #2019)
++	- Windows clients could not monitor the queue status (STR
++	  #2006)
++	- The scheduler didn't log the operation name in the
++	  access_log file for Create-Job and Print-Job requests.
++	- The PostScript filter now separates collated copies
++	  with any required JCL commands so that JCL-based
++	  finishing options act on the individual copies and not
++	  all of the copies as a single document.
++	- The PostScript filter now disables duplex printing when
++	  printing a 1-page document.
++	- cups-lpd didn't pass the correct
++	  job-originating-host-name value (STR #2023)
++	- Fixed some speling errors in the German message catalog
++	  (STR #2012)
++	- cupstestppd did not catch PPD files with bad
++	  UIConstraints values (STR #2016)
++	- The USB backend did not work with the current udev-
++	  created printers if the first printer was disconnected
++	  (STR #2017)
++	- Mirrored and rotated printing did not work with some
++	  documents (STR #2004)
++	- 2-sided printing with banners did not work properly on
++	  some printers (STR #2018)
++	- Updated the raw type rule to handle PJL within the
++	  first 4k of a print job (STR #1969)
++	- Added an Estonian translation (STR #1957)
++	- Clarified the documentation for the cupsd.conf @LOCAL
++	  and @IF(name) allow/deny functionality (STR #1992)
++	- The PostScript filters did not escape the Title and For
++	  comments in the print job header (STR #1988)
++	- The scheduler would use 100% CPU if browsing was
++	  disabled and the cupsd.conf file contained BrowsePoll
++	  lines (STR #1994)
++	- The cupsDirRead() function did not work properly on
++	  non-POSIX-compliant systems (STR #2001)
++	- The cupsFile functions didn't handle read/write errors
++	  properly (STR #1996)
++	- The DBUS support now works with older versions of the
++	  DBUS library.
++
++
++CHANGES IN CUPS V1.2.4
++
++	- The --with-printcap configure option did not work (STR
++	  #1984)
++	- The character set reported by cupsLangGet() did not
++	  always reflect the default character set of a given
++	  locale (STR #1983)
++	- Older Lexmark and Tektronix printers did not work with
++	  IPP (STR #1980)
++	- Failsafe printing did not work (PR #6328)
++	- Some web interface redirects did not work (STR #1978)
++	- The web interface change settings button could
++	  introduce a "Port 0" line in cupsd.conf if there was no
++	  loopback connection available (STR #1979)
++	- The web interface change settings and edit
++	  configuration file buttons would truncate the
++	  cupsd.conf file (STR #1976)
++	- The German web interface used the wrong printer icon
++	  images (STR #1973)
++	- The "All Documents" link in the on-line help was
++	  missing a trailing slash (STR #1971)
++	- The Polish web interface translation used the wrong
++	  URLs for the job history (STR #1963)
++	- The "reprint job" button did not work (STR #1956)
++	- The scheduler did not always report printer or job
++	  events properly (STR #1955)
++	- The scheduler always stopped the queue on error,
++	  regardless of the exit code, if the error policy was
++	  set to "stop-printer" (STR #1959)
++	- ppdEmitJCL() included UTF-8 characters in the JCL job
++	  name, which caused problems on some printers (STR
++	  #1959)
++	- Fixed a buffering problem that cause high CPU usage
++	  (STR #1968)
++	- The command-line applications did not convert
++	  command-line strings to UTF-8 as needed (STR #1958)
++	- cupsDirRead() incorrectly aborted when reading a
++	  symbolic link that pointed to a file/directory that did
++	  not exist (STR #1953)
++	- The cupsInterpretRasterPPD() function did not handle
++	  custom page sizes properly.
++
++
++CHANGES IN CUPS V1.2.3
++
++	- The scheduler did not send job-state or
++	  job-config-changed events when a job was held,
++	  released, or changed (STR #1947)
++	- The scheduler now aborts if the configuration file and
++	  directory checks fail (STR #1941)
++	- Fixed a problem with ippPort() not using the port
++	  number that was set via the client.conf file or
++	  CUPS_SERVER environment variable (STR #1945)
++	- HTTP headers were not buffered (STR #1899)
++	- Some IPP printers (HP) did not like UTF-8 job names
++	  (STR #1837)
++	- The CUPS desktop icon is now localized for Polish (STR
++	  #1920)
++	- Printer options were not always honored when printing
++	  from Windows clients (STR #1839)
++	- The openssl command would lock up the scheduler when
++	  generating an encryption certificate on some platforms
++	  due to a lack of entropy for the random number
++	  generator (STR #1876)
++	- The web admin page did not recognize that "Listen 631"
++	  enabled remote access (STR #1908)
++	- The web admin page did not check whether changes were
++	  made to the Basic Server Settings check boxes (STR
++	  #1908)
++	- The IPP backend could generate N*N copies in certain
++	  edge cases.
++	- The scheduler did not restore remote printers properly
++	  when BrowseShortNames was enabled (STR #1893)
++	- Polling did not handle changes to the network
++	  environment on Mac OS X (STR #1896)
++	- The "make test" subscription tests used invalid
++	  notify-recipient-uri values (STR #1910)
++	- Printers could be left in an undefined state on system
++	  sleep (STR #1905)
++	- The Berkeley and System V commands did not always use
++	  the expected character set (STR #1915)
++	- Remote printing fixes (STR #1881)
++	- The cupstestppd utility did not validate translation
++	  strings for custom options properly.
++	- Multi-language PPD files were not properly localized in
++	  the web interface (STR #1913)
++	- The admin page's simple settings options did not check
++	  for local domain socket or IPv6 addresses and did not
++	  use "localhost" as the listen address.
++	- An empty BrowseProtocols, BrowseLocalProtocols, or
++	  BrowseRemoteProtocols line would crash the scheduler
++	  instead of disabling the corresponding browsing options.
++	- The scheduler now logs IPP operation status as debug
++	  messages instead of info or error.
++	- cupsFileRewind() didn't clear the end-of-file state.
++	- cupstestppd didn't report the actual misspelling of the
++	  1284DeviceID attribute (STR #1849) 
++	- BrowseRelay didn't work on Debian (STR #1887)
++	- configure --without-languages didn't work (STR #1879)
++	- Manually added remote printers did not work (STR #1881)
++	- The <cups/backend.h> header was not installed.
++	- Updated the build files for Autoconf 2.60 (STR #1853)
++	- The scheduler incorrectly terminated the polling
++	  processes after receiving a partial log line.
++	- The cups-lpd mini-daemon reported "No printer-state
++	  attribute found" errors when reporting the queue status
++	  (PR #6250, STR #1821)
++	- SNMP backend improvements (STR #1737, STR #1742, STR
++	  #1790, STR #1835, STR #1880)
++	- The scheduler erroneously reported an error with the
++	  CGI pipe (STR #1860)
++	- Fixed HP-UX compile problems (STR #1858, STR #1859)
++	- cupstestppd crashed with some PPD files (STR #1864)
++	- The <cups/dir.h> and <cups/file.h> header files did not
++	  work with C++.
++
++
++CHANGES IN CUPS V1.2.2
++
++	- Documentation updates (STR #1765, STR #1780)
++	- CUPS didn't know about alternate character set names
++	  for Asian text (STR #1819)
++	- The lpoptions -o and -r options did not work unless you
++	  specified a printer.
++	- The lpoptions command incorrectly allowed users to set
++	  printer attributes like printer-type (STR #1791)
++	- httpWait() did not flush the write buffer, causing "bad
++	  request" errors when communicating with CUPS 1.1.x
++	  servers (STR #1717)
++	- Polling did not sanitize the printer description,
++	  location, or make and model strings like broadcasts
++	  did.
++	- Polled printers did not show the server's default
++	  job-sheets option value.
++	- The Samba password prompt was not properly localized
++	  (STR #1814)
++	- Added a German translation (STR #1842)
++	- The scheduler now creates self-signed SSL certficates
++	  automatically when using OpenSSL and CDSA for
++	  encryption, just as for GNU TLS.
++	- The SNMP backend sporatically reported some printers as
++	  "unknown" (STR #1774)
++	- The scheduler now forces BrowseTimeout to be at least
++	  twice the BrowseInterval value and non-zero to avoid
++	  common configuration errors.
++	- The scheduler incorrectly returned printer URIs of the
++	  form "ipp://server/printers/classname" for classes (STR
++	  #1813)
++	- Updated Japanese localization (STR #1805)
++	- The scheduler's SSL certificate/key directory was not
++	  created on installation (STR #1788)
++	- Added a mailto.conf man page and help page (STR #1754)
++	- The parallel and USB backends no longer wait for the
++	  printer to go on-line - this caused problems with
++	  certain printers that don't follow with the IEEE-1284
++	  standard (STR #1738)
++	- The scheduler could crash on a reload when implicit
++	  classes were present (STR #1828)
++	- The IPP backend incorrectly used the CUPS_ENCRYPTION
++	  environment variable to determine the default
++	  encryption mode when printing (STR #1820)
++	- USB printing did not work on Solaris (STR #1756)
++	- The scheduler sorted job priorities in the wrong order
++	  (STR #1811)
++	- The scheduler did not automatically restart notifiers
++	  that exited or crashed (STR #1793)
++	- IPv6 support did not work on NetBSD (STR #1834)
++	- The EPM packaging file did not work (STR #1804)
++	- The scheduler used up the CPU if BrowseRemoteProtocols
++	  was empty (STR #1792)
++	- Custom page sizes did not work (STR #1787)
++	- The SNMP backend could crash on some systems when SNMP
++	  logging was enabled (STR #1789)
++	- Browsing could produce some funny printer names when
++	  ServerName was set to an IP address (STR #1799)
++	- Fixed the log message for BrowseRelay (STR #1798)
++	- Fixes to allow CUPS to compile on MirBSD (STR #1796)
++	- The scheduler incorrectly set the FINAL_CONTENT_TYPE
++	  environment variable (STR #1795)
++	- The pdftops filter incorrectly embedded a "produced by"
++	  comment, causing PDF printing not to work on some
++	  operating systems (STR #1801)
++	- Sending raw jobs from a client system could cause the
++	  client's scheduler to eventually crash (STR #1786)
++	- The scheduler now checks that the notifier exists prior
++	  to accepting a new subscription request.
++	- The scheduler now reports the supported
++	  notify-recipient schemes based on the contents of the
++	  ServerBin/notifier directory.
++	- Event notifications did not include the
++	  notify-sequence-number or other required attributes
++	  (STR #1747)
++	- Allow/Deny addresses of the form "11.22.33.*" did not
++	  work on Linux (STR #1769)
++	- cupsGetPPD() did not work if the scheduler was only
++	  listening on a domain socket (STR #1766)
++	- The scheduler could crash advertising a class (STR
++	  #1768)
++	- The scheduler could crash if the default printer was
++	  deleted (STR #1776)
++	- Added a new default CUPS raster format (v3) which does
++	  not compress the raster stream in order to provide the
++	  same cupsRasterReadPixels() and cupsRasterWritePixels()
++	  performance as CUPS 1.1.x.
++	- The cupsaddsmb man page listed the wrong files for the
++	  CUPS driver.
++	- Some configure --with options did not work (STR #1746)
++	- "Allow @IF(name)" didn't work if "name" wasn't the
++	  first network interface (STR #1758)
++	- The lpstat command did not use the correct character
++	  set when reporting the date and time (STR #1751)
++	- The cupsaddsmb command and web interface did not update
++	  the Windows PPD files properly, resulting in corrupt
++	  PPD files for the Windows client to use (STR #1750)
++	- The cupsd.conf man page didn't describe the Listen
++	  domain socket syntax (STR #1753)
++	- The scheduler no longer tries to support more than
++	  FD_SETSIZE file descriptors.
++	- CDSA (encryption) support fixes for MacOS X.
++	- The lppasswd program needs to be setuid to root to
++	  create and update the /etc/cups/passwd.md5 file (STR
++	  #1735)
++	- 32/64-bit library installation was broken (STR #1741)
++	- The USB backend now reports a "no such device" error
++	  when using the old filename-based USB URIs instead of
++	  the "success" error.
++	- Increased the HTTP and IPP read timeouts to 10 seconds,
++	  as 1 second was too short on congested networks (STR
++	  #1719)
++	- The SNMP backend now uses the device description over
++	  the printer-make-and-model attribute when the attribute
++	  contains a generic name (STR #1728)
++	- Fixed another file descriptor leak when printing raw
++	  files (STR #1736)
++	- Raw queues were not shared via LDAP (STR #1739)
++	- The pstops filter didn't always embed PageSetup
++	  commands from the PPD file (STR #1740)
++	- "make install" didn't work if you disabled all of the
++	  localizations.
++	- The scheduler didn't always choose the least costly
++	  filter.
++	- Fixed parsing of IPv6 addresses in Allow, Deny,
++	  BrowseAllow, BrowseDeny, and BrowseRelay directives
++	  (STR #1713)
++	- Printers that were shared via LDAP did not get added to
++	  the LDAP server properly (STR #1733)
++	- LDAP browsing would crash the scheduler if a required
++	  value was missing (STR #1731)
++	- Special cases for the "localhost" hostname did not
++	  work, causing printing to not work when the /etc/hosts
++	  file did not contain a localhost entry (STR #1723)
++	- Updated the Spanish translation (STR #1720, STR #1770)
++	- Reverse-order page output was broken when N-up or
++	  landscape orientations were used (STR #1725)
++	- The parallel, serial, socket, and USB backends needed
++	  print data before they would report back-channel data,
++	  causing problems with several new drivers (STR #1724)
++
++
++CHANGES IN CUPS V1.2.1
++
++	- "lprm -h hostname" did not work (STR #1800)
++	- The web interface did not handle reloads properly for
++	  MSIE (STR #1716)
++	- The configure script no longer adds linker rpath
++	  options when they are unnecessary.
++	- The scheduler could crash printing a debug message on
++	  Solaris (STR #1714)
++	- The --enable-32bit and --enable-64bit configure options
++	  did not always work.
++	- The password prompt showed the domain socket address
++	  instead of "localhost" for local authentication (STR
++	  #1706)
++	- The web interface filtered the list of printers even if
++	  the user wasn't logged in (STR #1700)
++	- The IPP backend did not work reliably with some Xerox
++	  printers (STR #1704)
++	- Trailing banners were not added when printing a single
++	  file (STR #1698)
++	- The web interface support programs crashed on Solaris
++	  (STR #1699)
++	- cupstestppd incorrectly reported problems with
++	  *1284DeviceID attributes (STR #1710)
++	- Browsing could get disabled after a restart (STR #1670)
++	- Custom page sizes were not parsed properly (STR #1709)
++	- The -U option wasn't supported by lpadmin (STR #1702)
++	- The -u option didn't work with lpadmin (STR #1703)
++	- The scheduler did not create non-blocking back-channel
++	  pipes, which caused problems when the printer driver
++	  did not read the back-channel data (STR #1705)
++	- The scheduler no longer uses chunking in responses to
++	  clients - this caused problems with older versions of
++	  CUPS like 1.1.17 (PR #6143)
++	- Automatic raw printing was broken (STR #1667)
++	- 6-up printing was broken (STR #1697)
++	- The pstops filter did not disable CTRL-D processing on
++	  the printer/RIP.
++	- ppdOpen*() did not load custom options properly (STR
++	  #1680)
++	- "Set Printer Options" in the web interface did not
++	  update the DefaultImageableArea or
++	  DefaultPaperDimension attributes in the PPD file (STR
++	  #1689)
++	- Fixed compile errors (STR #1682, STR #1684, STR #1685,
++	  STR #1690)
++	- The lpstat command displayed the wrong error message
++	  for a missing destination (STR #1683)
++	- Revised and completed the Polish translation (STR
++	  #1669)
++	- Stopped jobs did not show up in the list of active jobs
++	  (STR #1676)
++	- The configure script did not use the GNU TLS
++	  "libgnutls-config" script to find the proper compiler
++	  and linker options.
++	- The imagetoraster filter did not correctly generate
++	  several 1, 2, and 4-bit color modes.
++	- cupsRasterWritePixels() could lose track of the current
++	  output row.
++	- cupsRasterReadPixels() did not automatically swap
++	  12/16-bit chunked pixel data.
++	- Moved the private _cups_raster_s structure out of the
++	  public header.
++	- Updated the CUPS raster format specification to include
++	  encoding rules and colorspace definitions.
++	- The Zebra PPD files had the wrong PostScript code for
++	  the "default" option choices.
++	- The imagetoraster filter did not generate correct CIE
++	  XYZ or Lab color data.
++	- The cups-config script did not work when invoked from a
++	  source directory (STR #1673)
++	- The SNMP backend did not compile on systems that used
++	  the getifaddrs emulation functions (STR #1668)
++
++
++CHANGES IN CUPS V1.2.0
++
++	- Documentation updates (STR #1618, STR #1620, STR #1622,
++	  STR #1637)
++	- Static file copy buffers reduced from 64k to 32k to
++	  work around bogus MallocDebug library assumptions (STR
++	  #1660)
++	- The scheduler did not decode the backend exit code
++	  properly (STR #1648)
++	- The MacOS X USB backend did not report the 1284 device ID,
++	  nor did it fix device IDs returned by HP printers.
++	- The scheduler started more slowly than 1.1.x with large
++	  numbers of printers (STR #1653)
++	- cupsRasterInterpretPPD() didn't support the
++	  cupsPreferredBitsPerColor attribute, and imagetoraster
++	  didn't use the new API.
++	- The "make test" script did not create all of the necessary
++	  subdirectories for testing (STR #1638)
++	- The scheduler did not prevent rotation of logs
++	  redirected to /dev/null (STR #1651)
++	- "make test" did not include the SNMP backend in the
++	  test environment (STR #1625)
++	- The EPM packaging files did not work (STR #1621)
++	- "Use Default Configuration" inserted a broken
++	  configuration file (STR #1624)
++	- Redirects in the web interface did not always preserve
++	  the encrypted status of a connection (STR #1603)
++	- Added the Apple "pap" backend.
++	- Added CUPS library to CUPS Image shared library
++	  linkage to support Linux --as-needed linker option
++	  (STR #1606)
++	- Fixed support for --enable-pie (STR #1609)
++	- The pdftops filter did not validate the length of the
++	  encryption key (STR #1608)
++	- Updated the Polish localization.
++	- "Encryption Required" in the cupsd.conf file now only
++	  requires encryption when the connection is not over the
++	  loopback interface or domain socket.
++	- Printer names containing "+" were not quoted properly in
++	  the web interface (STR #1600)
++	- The SNMP backend now reports the make and model in the
++	  information string so that the auto-generated printer
++	  name is more useful than just an IP address.
++
++
++CHANGES IN CUPS V1.2rc3
++
++	- The cups-lpd program always did reverse lookups on the
++	  client address, which could be a performance problem.
++	  Added a "-n" option to disable lookups.
++	- When configured with SSL support, require encryption by
++	  default when displaying the /admin location (STR #1592)
++	- The next job ID was not computed correctly if the job
++	  cache file got out of sync with the spool directory
++	  (STR #1582)
++	- The PNG image handling code used deprecated functions
++	  from libpng (STR #1587)
++	- Added a Polish translation (STR #1584, STR #1586)
++	- More changes to the scheduler to improve battery life
++	  on portable devices (STR #1583)
++	- Changed the default log level for status messages back
++	  to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579)
++	- The error string was not set properly when
++	  cupsDoFileRequest() was given the name of a directory
++	  (STR #1578)
++	- Fixed handling of job-hold-until (STR #1581)
++	- Added explicit notes to the cupsaddsmb man page
++	  explaining that the driver filenames are case-sensitive
++	  under UNIX and that they must be all lowercase (Windows
++	  2000) or all UPPERCASE (Windows 95/98/Me) to work (STR
++	  #1568)
++	- The USB backend incorrectly split the manufacturer name
++	  if it contained spaces (STR #1566)
++	- The scheduler would hang when listing PPD files for a
++	  manufacturer whose name contained spaces (STR #1567)
++	- Added the SNMP backend for network printer discovery
++	  (STR #1555)
++	- cupstestppd now fails PPD files with 1284DeviceId
++	  instead of 1284DeviceID, and cups-driverd uses a
++	  case-insensitive comparison when looking for it (STR
++	  #1573)
++	- cupsDoFileRequest() and cupsDoRequest() now work
++	  properly with non-blocking HTTP connections.
++	- Added Swedish translation (STR #1569)
++	- "make install" now installs the MIME files with world
++	  read permissions (STR #1565)
++	- More CDSA encryption support fixes (STR #1563)
++	- Updated the default mime.types file to support printing
++	  of files that do not have a locally-recognized MIME
++	  media type to raw or System V queues.
++	- Updated the serial port detection code on Linux (STR
++	  #1562)
++	- Added some more error checking to httpGetHostname()
++	  (STR #1561)
++	- The title of some administration pages was not
++	  localized (STR #1548)
++	- The edit-config.tmpl file was not generated or
++	  installed for the Spanish or Japanese localizations
++	  (STR #1547)
++	- The mimeDelete() function freed the types before the
++	  filters, but the filters needed the type data (STR #1558)
++	- The scheduler didn't keep track of the status pipes
++	  properly, leading to a bad select() for multi-file jobs
++	  (STR #1559)
++	- The cupstestdsc program didn't validate the ordinal
++	  page number value for %%Page: comments.
++
++
++CHANGES IN CUPS V1.2rc2
++
++	- The scheduler was not always using the string pool,
++	  causing random crashes.
++	- The lpmove and the web interface's Move Job button did
++	  not work with stopped jobs (STR #1534)
++	- The PostScript filter did not handle the page-set
++	  option properly with number-up printing (STR #1543)
++	- The scheduler now only warns about unsupported ACLs
++	  once (STR #1532)
++	- The "fitplot" option did not work with output from
++	  Mozilla (STR #1542)
++	- The imagetops filter did not work with Level 2 or 3
++	  printers (STR #1533)
++	- The scheduler now recognizes PostScript files with PJL
++	  commands that do not include an ENTER LANGUAGE command.
++	- Added --with-printcap configure option.
++	- 64-bit SSL fixes for MacOS X.
++	- The scheduler didn't send some printer state change
++	  events.
++	- The scheduler didn't send jobs to busy remote printers.
++	- Fixed some problems with the launchd support.
++	- Added new USB printer backend for MacOS X.
++	- The PostScript filter now handles files that start with
++	  an incomplete PJL header (PR #6076)
++	- The web interface language selection code did not try
++	  the generic language localization (STR #1531)
++	- The language cache, string pool, and transcoding caches
++	  are now process global instead of per-thread to avoid
++	  problems with GNOME and to allow for data sharing
++	  between threads (STR #1530)
++	- Fixed a CUPS 1.1.x compatibility bug (STR #1528)
++	- The web interface redirection after certain printer
++	  administration tasks was broken (STR #1516)
++	- Web interface authorization could get stuck (STR #1512)
++	- Localization updates (STR #1513, STR #1518, STR #1520)
++	- The pstops filter didn't work with some files (STR
++	  #1523)
++	- "./configure --enable-static" didn't work (STR #1522)
++	- The scheduler was not using the configured default
++	  Group (STR #1521)
++	- The web interface still did not show the localized time
++	  and date for some locales and systems (STR #1509)
++	- httpAddrGetList() would crash on systems without
++	  getaddrinfo().
++	- Socket URIs without a trailing slash would cause the
++	  port number to not be accepted (STR #1519)
++	- Local raw and System V printers were not advertised as
++	  such for printer browsing (STR #1502)
++	- The RPM spec file incorrectly put duplicate copies of
++	  the Japanese and Spanish web interface templates in the
++	  main cups package (STR #1517)
++	- cupsSetDests() did not explicitly set the permissions
++	  of the /etc/cups/lpoptions file (STR #1508)
++	- The lpq command crashed with the -h option (STR #1515)
++
++
++CHANGES IN CUPS V1.2rc1
++
++	- Documentation updates (STR #1497, STR #1498)
++	- The scheduler now redirects browsers to https: URLs
++	  when encryption is required.
++	- The scheduler would crash when printing with a banner
++	  (STR #1500)
++	- cups-driverd did not use the LanguageEncoding attribute
++	  in PPD files to convert the NickName to UTF-8 (STR
++	  #1503)
++	- The lpadmin command could not set the
++	  printer-error-policy attribute (STR #1504)
++	- The web interface did not show the time and date in the
++	  correct format for the locale (STR #1505)
++	- CUPS no longer accepts print jobs if a printer does not
++	  support the file format (STR #1501)
++	- Cleaned up the PostScript filter (pstops) so that it
++	  properly supports %%IncludeFeature and page scaling
++	  (STR #1453)
++	- Fixed the cupsFileRewind() and cupsFileSeek() functions
++	  to work properly with uncompressed files.
++	- Added cupsFileGetLine(), cupsFileStderr(),
++	  cupsFileStdin(), and cupsFileStdout() functions to the
++	  CUPS library.
++	- Added a new cupstestdsc program to test the DSC
++	  conformance of PostScript files.
++	- Added KDE/GNOME icons and a Manage Printers menu item.
++	- Added --enable-image and --enable-pdftops configure
++	  options to control whether the image and PDF filters
++	  are built and installed (default = yes for all
++	  platforms but MacOS X)
++	- Fixed a minor memory leak in the PPD API.
++	- Fixed transcoding issues (STR #1493)
++	- The scheduler now enforces a minimum job cost of 100
++	  when doing FilterLimit checks.
++	- The scheduler would leak file descriptors when printing
++	  to raw queues (STR #1491)
++	- The IPv6 support did not compile on Tru64 UNIX (STR
++	  #1488)
++	- ppdOpen2() now converts the NickName and all UI text to
++	  UTF-8 (STR #1475)
++	- The Set Allowed Users web page did not work (STR #1486)
++	- When the default policy was not set or set to a non-
++	  existing policy, the scheduler did not set the default
++	  policy name to "default" (STR #1484)
++	- The Zebra CPCL driver did not use the correct righthand
++	  margin for the 4" wide label sizes.
++	- Fixed a problem with the parsing of fractional real
++	  numbers in PPD files.
++	- Added Spanish localization files (STR #1480)
++	- Fixed localization of a few scheduler messages (STR
++	  #1478)
++	- Fixed support for HEAD requests in the scheduler (STR
++	  #1481)
++
++
++CHANGES IN CUPS V1.2b2
++
++	- Updated the CUPS design description.
++	- Added --enable-32bit and --enable-64bit configure
++	  options to allow building of separate 32/64-bit
++	  libraries on systems that support both environments
++	  (STR #1472)
++	- Various compiler warning fixes.
++	- Fixes for Solaris 10 builds against old GNU TLS and
++	  LDAP libraries.
++	- Added a cupsArrayUserData() function to retrieve the
++	  user data pointer for an array (useful for typing
++	  arrays)
++	- The ppdEmitString() function did not compute the
++	  required buffer size properly, leading to dropped
++	  characters on the end of the printer commands in pstops
++	  and imagetops (STR #1470)
++
++
++CHANGES IN CUPS V1.2b1
++
++	- The serial backend now supports Equinox 8-port serial
++	  hubs (STR #526)
++	- The IPP backend now supports a compression option to
++	  compress print files as they are sent to the remote
++	  server (STR #956)
++	- The CUPS browse protocol now supports passing of
++	  default options and browse timeout values from the
++	  server to the clients (STR #800)
++	- Implicit classes that timed out could cause the
++	  scheduler to crash (STR #1439)
++	- Added DragonFly support in local device backends (STR
++	  #1362)
++	- Added LDAP printer browsing support (STR #338)
++	- Added official support for printer maintenance commands
++	  via the CUPS Command file format and hooks in the
++	  printer-type and web interfaces (STR #932)
++	- The HP-GL/2 filter could get in an infinite loop trying
++	  to convert HP-PCL files (STR #1415)
++	- CUPS now implements the HTTP/1.1 Expect header (STR
++	  #1407)
++	- Options in PPD files are no longer automatically put in
++	  an "Extra" group; rather, all options that are not
++	  inside an Open/CloseGroup will be placed in the
++	  "General" group (STR #1385)
++	- The scheduler now creates a job-uuid attribute that
++	  uniquely identifies a job on a network (STR #1410)
++	- The init script now unsets the TMPDIR environment
++	  variable to prevent user temporary directories from
++	  being used by cupsd accidentally (STR #1424)
++	- Added support for launchd on MacOS X.
++	- Added support for notify_post on MacOS X.
++	- Added support for DBUS on Linux.
++	- All of the Berkeley (except for lpc) and System V
++	  commands now support specification of user, host, and
++	  port (STR #1028, STR #1029, STR #1087)
++	- The lpmove command now allows you to move all jobs for
++	  a given queue (STR #56)
++	- The web interface now supports moving of a job or jobs
++	  to another queue (STR #56)
++	- The web interface now provides searching, paging, and
++	  changing of the sort/display order of classes, jobs,
++	  and printers.
++	- cupsaddsmb now accepts a password on the command-line
++	  and supports passwords with special characters (STR
++	  #822, STR #1236)
++	- ppdLoad*() no longer tries to "fix" bad characters in
++	  UI text (STR #1101)
++	- Printer names can now (reliably) contain Unicode
++	  characters (STR #896)
++	- The lpstat command now shows the time and date of the
++	  last printer state change instead of the hardcoded "Jan
++	  01 00:00" (STR #659)
++	- The scheduler now adds a job-actual-printer-uri
++	  attribute to job objects when printing to a class (STR
++	  #116)
++	- The scheduler now logs log file open errors to the
++	  system log (STR #1289)
++	- The scheduler now sets the job-originating-user-name to
++	  the authenticated username, if available (STR #1318)
++	- The scheduler now only updates the permissions of SSL
++	  keys and certificates when they are under the
++	  ServerRoot directory (STR #1324)
++	- The rastertodymo driver has been renamed to
++	  rastertolabel (a symlink is installed so that existing
++	  queues continue to work) and now also supports Zebra's
++	  CPCL language.
++	- The lpstat command could show the wrong active job for
++	  a printer (STR #1301)
++	- Fixed a potential crash problem in the scheduler when
++	  aborting a CGI program (STR #1290)
++	- Added a "cancel all jobs" button to the class and
++	  printer web interfaces (STR #1140)
++	- The add-printer web page now shows the
++	  set-printer-options page after the printer has been
++	  added (STR #690)
++	- The classes web page now provides links to each of the
++	  member printers (STR #307)
++	- CUPS now handles HTTP request/response lines up to 32k
++	  in length; this is mainly for better cookie support
++	  (STR #1274)
++	- Added support for the Apache PassEnv and SetEnv
++	  directives to cupsd.conf (STR #853)
++	- Added large file (64-bit) support (STR #541)
++	- Fixed a performance issue with the ippReadIO()
++	  implementation (STR #1284)
++	- Fixed a performance issue with the scheduler's implicit
++	  class implementation (STR #1283)
++	- The pdftops filter now adds the Title and Creator
++	  fields from the PDF file to the PostScript document
++	  comments section (STR #539, STR #830)
++	- Added a new cups_array_t and cupsArray*() functions to
++	  the CUPS API to support sorted lists of data.
++	- Made the CUPS API library thread-safe (STR #1276)
++	- Added "media" option support for EFI EFMediaType option
++	  (STR #902)
++	- Added write buffering to the HTTP code to improve
++	  performance (STR #547)
++	- The scheduler now uses the attributes-natural-language
++	  attribute to localize banner pages (STR #386)
++	- The scheduler now returns the address that was used to
++	  connect to it (STR #1076)
++	- Fixed a problem with N-up printing and OpenOffice (STR
++	  #576)
++	- Added support for the GCC position independent
++	  executable options (STR #1209)
++	- Added new BrowseLocalProtocols and
++	  BrowseRemoteProtocols directives to cupsd.conf,
++	  allowing for different browse protocols for local and
++	  remote printers (STR #877)
++	- PPD files can now contain strings up to 256k in length
++	  (STR #1215)
++	- The pstops filter now supports the IncludeFeature DSC
++	  comment (STR #1212)
++	- The pstops filter now disables the setpagedevice
++	  procedure when doing N-up printing (STR #1161)
++	- The serial backend now supports "stop=1", "stop=2",
++	  "parity=space", and "parity=mark" options (STR #1155)
++	- "make install" no longer overwrites an existing PAM
++	  configuration file (STR #1064)
++	- The scheduler now closes all files on startup when run
++	  in daemon mode (STR #1009)
++	- Added a new RGBW colorspace to the CUPS raster format
++	  (STR #1071)
++	- The pdftops filter now sets the page size based on the
++	  media box when not scaling the output (STR #912)
++	- The pdftops filter now supports masked images (STR
++	  #281)
++	- The pdftops filter produced large output when rendering
++	  PDF files containing lot of repeated images (STR #327)
++	- The pdftops filter now minimizes print processing of
++	  PDF files when using the page-ranges option (STR #273)
++	- Updated pdftops filter to Xpdf 3.01.
++	- Added new cupsBackchannelRead() and
++	  cupsBackchannelWrite() functions, as well as
++	  backchannel support to the parallel, serial, socket,
++	  and USB backends (STR #1252)
++	- The parallel and USB backends now treat a "no space
++	  available" error as an out-of-paper condition (STR
++	  #1225)
++	- The "lpc" command now supports the "status all" command
++	  (STR #1004)
++	- ippReadIO() did not read collections properly (STR
++	  #1249)
++	- The "make test" script now creates the test files in
++	  "/tmp/cups-$USER" instead of "/tmp/$USER" (STR #981)
++	- All backends now abort on error when printing a job to
++	  a class - this allows the next printer in the class to
++	  print the job (STR #1084)
++	- The scheduler now verifies that a printer supports
++	  Letter or A4 media sizes before setting them as the
++	  initial default (STR #1250)
++	- The cupstestppd program now flags bad Resolution
++	  options (STR #1269)
++	- The USB backend now retries printing when the printer
++	  is disconnected or turned off (STR #1267)
++	- Added new httpGetHostname() function to CUPS API, and
++	  use it instead of gethostname() so that the web
++	  interface will work correctly on systems whose hostname
++	  is not the FQDN (STR #1266)
++	- The scheduler now stops printers if the backend for the
++	  queue is missing on startup (STR #1265)
++	- The configure script now supports "--disable-library"
++	  to disable particular image file format support
++	  libraries, even if they are available on the build
++	  system (STR #1248)
++	- The IPP backend did not always report on the total
++	  number of pages that were printed (STR #1251)
++	- The lpstat program could display garbage date and time
++	  values for locales whose date format exceeded 31
++	  characters (STR #1263)
++	- The cupstestppd program would segfault when testing
++	  certain broken PPD files (STR #1268)
++	- Dramatically reduced the overhead of implicit classes.
++	- Added new cupsDir*() functions to CUPS API.
++	- Printers can now be published individually for sharing.
++	- Fixed a bug in the scheduler's startup signalling code
++	  which caused cupsd to send the SIGUSR1 signal to the
++	  init process instead of the original parent process
++	  (STR #1258)
++	- Added new on-line help CGI to web interface to provide
++	  searchable help.
++	- Devices are now tracked dynamically, with each query
++	  doing a new device scan.  This eliminates a previous
++	  startup delay caused by slow backends and allows new
++	  printers to be seen without restarting the server,
++	  however it limits the amount of device URI checking
++	  that can be done (basically now the scheduler only
++	  requires a URI with a method that is a listed backend)
++	- Added new printer auto-detection, server configuration,
++	  and log file viewing to the administration web page.
++	- Added new "set allowed users" web interface to set the
++	  list of allowed users for a printer or class.
++	- The scheduler, command-line, and web interfaces now
++	  limit the list of printers and classes to those
++	  accessible by a user.
++	- cupsMarkOptions() now handles more non-standard
++	  duplexing options and choices (STR #915)
++	- cups-lpd now honors remote banner requests with the
++	  "standard" banner whenever a printer does not have one
++	  defined (STR #1220)
++	- The scheduler's denial-of-service checks did not work
++	  properly with IPv6 addresses (STR #1134)
++	- The lp and lpr commands did not error out properly when
++	  they were unable to write to a temporary file (STR
++	  #1129)
++	- The pstops filter did not handle Adobe-specific
++	  comments in Windows NT driver output (STR #1085)
++	- "lpstat -l -p" incorrectly reported the printer
++	  interface (STR #936)
++	- The web interface now operates exclusively with the
++	  UTF-8 encoding, and sends the appropriate character set
++	  and header information to the web browser (STR #919,
++	  STR #1007)
++	- Added a "set allowed users" interface to the web
++	  interface so that you can set the list of allowed or
++	  denied users/groups for a printer or class.
++	- Disallow the "#" character in printer names, since it
++	  has special meaning in the shell, config files, and in
++	  URIs (STR #917, STR #1202)
++	- Added a new application/x-csource MIME type, and
++	  support for it to the texttops filter so that you can
++	  pretty print plain text files without the C/C++
++	  keywords being highlighted.
++	- The pdftops filter did not compile with GCC 4.0 (STR
++	  #1226)
++	- The texttops filter did not highlight preprocessor
++	  directives followed by a tab properly.
++	- HP PJL output now uses both JOB DISPLAY and RDYMSG
++	  commands to show the current job on the printer's
++	  display (STR #1218)
++	- Local authentication certificates are now stored in
++	  /var/run/cups/certs by default instead of
++	  /etc/cups/certs (STR #1211)
++	- Backends now use "&" to separate options in device
++	  URIs; "+" is still recognized but is deprecated (STR
++	  #842)
++	- The USB backend no longer supports the usb:/dev/foo
++	  format on systems that support device ID queries.
++	- Forced classification markings did not work when the
++	  job-sheets parameters were "none,none".
++	- "lpstat -l -p" incorrectly showed all users as allowed,
++	  even if the queue was restricted to certain users (STR
++	  #801)
++	- The scheduler now automatically detects SSL/TLS clients
++	  without using the SSLPort/SSLListen directives.
++	- The CUPS API and scheduler no longer support SSLv2-
++	  encrypted connections.
++	- Updated the cupsaddsmb utility to correctly export the
++	  CUPS driver for Windows.
++	- Fixed a signal-handling bug in httpRead() which
++	  ultimately caused the server to print multiple copies
++	  when it was busy (STR #1184)
++	- The cupsFile API now uses the O_APPEND option when
++	  opening files in append mode (STR #990)
++	- The md5.h header and md5_* functions are now officially
++	  private and have been renamed to avoid conflicts with
++	  other implementations with the same name.
++	- The pdftops filter incorrectly embedded some Type1
++	  fonts (STR #1093)
++	- The scheduler didn't detect a closed connection in the
++	  middle of an IPP request (STR #1153)
++	- The scheduler could block trying to read the job status
++	  if there was input pending and the job was cancelled in
++	  the same input cycle (STR #1157)
++	- The scheduler could crash when deleting a class due to
++	  infinite recursion.
++	- Updated the Zebra ZPL label printer driver to use the
++	  run-length encoding and support more options.
++	- Updated serial backend to scan for /dev/ttyC* as well
++	  as /dev/ttyc* for Cyclades serial ports (STR #1049)
++	- The scheduler could hang reading the job status under
++	  certain circumstances (STR #1068)
++	- The USB backend termination signal code was inverted
++	  (STR #1046)
++	- Moved enable and disable commands to sbindir to be
++	  consistent.
++	- Added new cupsRasterInterpretPPD() function for RIP
++	  filters to setup the raster page header from
++	  PostScript commands in a PPD file.
++	- The CUPS browsing protocol now offers a "delete" bit
++	  to remove printers as soon as they are deleted on the
++	  server or as soon as the server shuts down gracefully
++	  (STR #793)
++	- The CUPS_SERVER and ServerName directives (client.conf
++	  and ~/.cupsrc) may now contain names of the form
++	  "server:port" and "/path/to/domain/socket".
++	- The "cancel -u user" command now works for ordinary
++	  users (STR #751)
++	- Added test run support to "make test" target (STR #64)
++	- Added domain socket support (STR #656)
++	- Added BrowseLocalOptions directive to allow the
++	  administrator to add printer URI options to the browse
++	  URI, e.g. "encryption=required" (STR #732)
++	- Added BrowseRemoteOptions directive to allow the
++	  administrator to add standard URI options to the
++	  remote printer URI, e.g. "encryption=required" (STR
++	  #732)
++	- Now put "-I.." compiler option in front of all others
++	  to ensure that local CUPS headers are used before
++	  installed headers (STR #437)
++	- New cupsLangPrintf() and cupsLangPuts() for localized
++	  interfaces.
++	- Now support custom attributes and extended options in
++	  PPD files.
++	- Now provide functions to save PPD files.
++	- New policy mechanism allows per-operation and
++	  per-printer control over what users and groups are
++	  allowed to do various IPP operations.
++	- New error policy mechanism to control how aborted
++	  backend errors are handled by the scheduler
++	  (abort-job, retry-job, requeue-job, stop-printer)
++	- Updated the printer test page with a better color
++	  wheel and a separate grayscale ramp.
++	- A single backend process is now run to send all print
++	  data for a job.
++	- Backends and filters can now send and receive
++	  backchannel data over file descriptor 3.
++	- Updated the raster stream format to support more
++	  user-defined attributes and to do compression of the
++	  page data.
+diff -urNad cupsys-1.2.8~/CHANGES.txt.rej cupsys-1.2.8/CHANGES.txt.rej
+--- cupsys-1.2.8~/CHANGES.txt.rej	1970-01-01 01:00:00.000000000 +0100
++++ cupsys-1.2.8/CHANGES.txt.rej	2007-03-03 18:35:37.000000000 +0000
+@@ -0,0 +1,25 @@
++***************
++*** 1,8 ****
++- CHANGES.txt - 2007-02-22
++  ------------------------
++  
++  CHANGES IN CUPS V1.2.9
++  
++  	- The USB backend did not work with some USB to parallel
++  	  cables on Mac OS X.
++  	- The test page did not print the rulers properly on
++--- 1,14 ----
+++ CHANGES.txt - 2007-02-27
++  ------------------------
++  
++  CHANGES IN CUPS V1.2.9
++  
+++ 	- Classes containing other classes did not always work
+++ 	  (STR #2255)
+++ 	- Printer location and description information was lost
+++ 	  if the corresponding string contained the "#" character
+++ 	  (STR #2254)
+++ 	- cupsRemoveOption() did not work properly (STR #2264)
++  	- The USB backend did not work with some USB to parallel
++  	  cables on Mac OS X.
++  	- The test page did not print the rulers properly on
+diff -urNad cupsys-1.2.8~/cups/file.c cupsys-1.2.8/cups/file.c
+--- cupsys-1.2.8~/cups/file.c	2007-01-10 19:27:04.000000000 +0000
++++ cupsys-1.2.8/cups/file.c	2007-03-03 18:35:37.000000000 +0000
+@@ -508,7 +508,7 @@
+   */
+ 
+   *value = NULL;
+-  
++
+   while (cupsFileGets(fp, buf, buflen))
+   {
+     (*linenum) ++;
+@@ -519,15 +519,24 @@
+ 
+     if ((ptr = strchr(buf, '#')) != NULL)
+     {
+-      while (ptr > buf)
++      if (ptr > buf && ptr[-1] == '\\')
+       {
+-	if (!isspace(ptr[-1] & 255))
+-	  break;
+-
+-        ptr --;
++        // Unquote the #...
++	_cups_strcpy(ptr - 1, ptr);
+       }
++      else
++      {
++        // Strip the comment and any trailing whitespace...
++	while (ptr > buf)
++	{
++	  if (!isspace(ptr[-1] & 255))
++	    break;
+ 
+-      *ptr = '\0';
++	  ptr --;
++	}
++
++	*ptr = '\0';
++      }
+     }
+ 
+    /*
+diff -urNad cupsys-1.2.8~/cups/options.c cupsys-1.2.8/cups/options.c
+--- cupsys-1.2.8~/cups/options.c	2006-02-22 22:43:17.000000000 +0000
++++ cupsys-1.2.8/cups/options.c	2007-03-03 18:35:37.000000000 +0000
+@@ -3,7 +3,7 @@
+  *
+  *   Option routines for the Common UNIX Printing System (CUPS).
+  *
+- *   Copyright 1997-2006 by Easy Software Products.
++ *   Copyright 1997-2007 by Easy Software Products.
+  *
+  *   These coded instructions, statements, and computer programs are the
+  *   property of Easy Software Products and are protected by Federal
+@@ -578,7 +578,7 @@
+ 
+ 
+ /*
+- * 'cupsRemoveOptions()' - Remove an option from an option array.
++ * 'cupsRemoveOption()' - Remove an option from an option array.
+  *
+  * @since CUPS 1.2@
+  */
+@@ -622,7 +622,7 @@
+       free(option->value);
+ 
+     if (i > 0)
+-      memmove(option, option + 1, i * sizeof(cups_option_t *));
++      memmove(option, option + 1, i * sizeof(cups_option_t));
+   }
+ 
+  /*
+diff -urNad cupsys-1.2.8~/scheduler/classes.c cupsys-1.2.8/scheduler/classes.c
+--- cupsys-1.2.8~/scheduler/classes.c	2006-02-22 22:43:17.000000000 +0000
++++ cupsys-1.2.8/scheduler/classes.c	2007-03-03 18:35:37.000000000 +0000
+@@ -3,7 +3,7 @@
+  *
+  *   Printer class routines for the Common UNIX Printing System (CUPS).
+  *
+- *   Copyright 1997-2006 by Easy Software Products, all rights reserved.
++ *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
+  *
+  *   These coded instructions, statements, and computer programs are the
+  *   property of Easy Software Products and are protected by Federal
+@@ -366,7 +366,21 @@
+       {
+         cupsdLogMessage(CUPSD_LOG_DEBUG, "Loading class %s...", value);
+ 
+-        p = cupsdAddClass(value);
++       /*
++        * Since prior classes may have implicitly defined this class,
++	* see if it already exists...
++	*/
++
++        if ((p = cupsdFindDest(value)) != NULL)
++	{
++	  p->type = CUPS_PRINTER_CLASS;
++	  cupsdSetStringf(&p->uri, "ipp://%s:%d/classes/%s", ServerName,
++	                  LocalPort, value);
++	  cupsdSetString(&p->error_policy, "retry-job");
++	}
++	else
++          p = cupsdAddClass(value);
++
+ 	p->accepting = 1;
+ 	p->state     = IPP_PRINTER_IDLE;
+ 
+@@ -703,6 +717,7 @@
+   time_t		curtime;	/* Current time */
+   struct tm		*curdate;	/* Current date */
+   cups_option_t		*option;	/* Current option */
++  const char		*ptr;		/* Pointer into info/location */
+ 
+ 
+  /*
+@@ -777,10 +792,40 @@
+       cupsFilePrintf(fp, "<Class %s>\n", pclass->name);
+ 
+     if (pclass->info)
+-      cupsFilePrintf(fp, "Info %s\n", pclass->info);
++    {
++      if ((ptr = strchr(pclass->info, '#')) != NULL)
++      {
++       /*
++        * Need to quote the first # in the info string...
++	*/
++
++        cupsFilePuts(fp, "Info ");
++	cupsFileWrite(fp, pclass->info, ptr - pclass->info);
++	cupsFilePutChar(fp, '\\');
++	cupsFilePuts(fp, ptr);
++	cupsFilePutChar(fp, '\n');
++      }
++      else
++        cupsFilePrintf(fp, "Info %s\n", pclass->info);
++    }
+ 
+     if (pclass->location)
+-      cupsFilePrintf(fp, "Location %s\n", pclass->location);
++    {
++      if ((ptr = strchr(pclass->info, '#')) != NULL)
++      {
++       /*
++        * Need to quote the first # in the location string...
++	*/
++
++        cupsFilePuts(fp, "Location ");
++	cupsFileWrite(fp, pclass->location, ptr - pclass->location);
++	cupsFilePutChar(fp, '\\');
++	cupsFilePuts(fp, ptr);
++	cupsFilePutChar(fp, '\n');
++      }
++      else
++        cupsFilePrintf(fp, "Location %s\n", pclass->location);
++    }
+ 
+     if (pclass->state == IPP_PRINTER_STOPPED)
+     {
+diff -urNad cupsys-1.2.8~/scheduler/printers.c cupsys-1.2.8/scheduler/printers.c
+--- cupsys-1.2.8~/scheduler/printers.c	2006-09-19 21:11:08.000000000 +0100
++++ cupsys-1.2.8/scheduler/printers.c	2007-03-03 18:35:37.000000000 +0000
+@@ -1286,6 +1286,7 @@
+   time_t		curtime;	/* Current time */
+   struct tm		*curdate;	/* Current date */
+   cups_option_t		*option;	/* Current option */
++  const char		*ptr;		/* Pointer into info/location */
+ 
+ 
+  /*
+@@ -1360,11 +1361,40 @@
+       cupsFilePrintf(fp, "<Printer %s>\n", printer->name);
+ 
+     if (printer->info)
+-      cupsFilePrintf(fp, "Info %s\n", printer->info);
++    {
++      if ((ptr = strchr(printer->info, '#')) != NULL)
++      {
++       /*
++        * Need to quote the first # in the info string...
++	*/
++
++        cupsFilePuts(fp, "Info ");
++	cupsFileWrite(fp, printer->info, ptr - printer->info);
++	cupsFilePutChar(fp, '\\');
++	cupsFilePuts(fp, ptr);
++	cupsFilePutChar(fp, '\n');
++      }
++      else
++        cupsFilePrintf(fp, "Info %s\n", printer->info);
++    }
+ 
+     if (printer->location)
+-      cupsFilePrintf(fp, "Location %s\n", printer->location);
++    {
++      if ((ptr = strchr(printer->info, '#')) != NULL)
++      {
++       /*
++        * Need to quote the first # in the location string...
++	*/
+ 
++        cupsFilePuts(fp, "Location ");
++	cupsFileWrite(fp, printer->location, ptr - printer->location);
++	cupsFilePutChar(fp, '\\');
++	cupsFilePuts(fp, ptr);
++	cupsFilePutChar(fp, '\n');
++      }
++      else
++        cupsFilePrintf(fp, "Location %s\n", printer->location);
++    }
+     if (printer->device_uri)
+       cupsFilePrintf(fp, "DeviceURI %s\n", printer->device_uri);
+ 



More information about the Pkg-cups-devel mailing list