Release Notes

 Login     CUPS      Book      DDK      Printer Drivers      ESP Ghostscript      Forums      Links      Windows  
 Home  |  Articles & FAQs  |  Bugs & Features  |  Documentation  |  Download  ]
 

CUPS 1.3.7 (April 1, 2008)

  • CVE-2008-0047: cgiCompileSearch buffer overflow (STR #2729)
  • CVE-2008-1373: CUPS GIF image filter overflow (STR #2765)
  • Updated the "make check" tests to do a more thorough automated test.
  • cups-driverd complained about missing directories (STR #2777)
  • cupsaddsmb would leave the Samba username and password on disk if no Windows drivers were installed (STR #2779)
  • The Linux USB backend used 100% CPU when a printer was disconnected (STR #2769)
  • The sample raster drivers did not properly handle SIGTERM (STR #2770)
  • The scheduler sent notify_post() messages too often on Mac OS X.
  • Kerberos access to the web interface did not work (STR #2748)
  • The scheduler did not support "AuthType Default" in IPP policies (STR #2749)
  • The scheduler did not support the "HideImplicitMembers" directive as documented (STR #2760)
  • "make check" didn't return a non-zero exit code on error (STR #2758)
  • The scheduler incorrectly logged AUTH_foo environment variables in debug mode (STR #2751)
  • The image filters inverted PBM files (STR #2746)
  • cupsctl would crash if the scheduler was not running (STR #2741)
  • The scheduler could crash when printing using a port monitor (STR #2742)
  • The scheduler would crash if PAM was broken (STR #2734)
  • The image filters did not work with some CMYK JPEG files produced by Adobe applications (STR #2727)
  • The Mac OS X USB backend did not work with printers that did not report a make or model.
  • The job-sheets option was not encoded properly (STR #2715)
  • The scheduler incorrectly complained about missing LSB PPD directories.

CUPS 1.3.6 (February 19, 2008)

  • Documentation updates (STR #2646, STR #2647, STR #2649)
  • Fixed a problem with the web interface "Use Kerberos Authentication" check box (STR #2703)
  • The scheduler unconditionally overwrote the printer-state- message with "process-name failed" when a filter or backend failed, preventing a useful error message from being shown to the user.
  • Policies on CUPS-Move-Job didn't work as expected (STR #2699)
  • The configure script only supported D-BUS on Linux (STR #2702)
  • The scheduler did not support </LimitExcept> (STR #2701)
  • The scheduler did not reset the job-hold-until attribute after a job's hold time was reached.
  • The scheduler did not support printer supply attributes (STR #1307)
  • The Kerberos credentials provided by some Windows KDCs were still too large - now use a dynamic buffer to support credentials up to 64k in size (STR #2695)
  • Printing a test page from the web interface incorrectly defaulted to the "guest" user (STR #2688)
  • The cupsEncodeOptions2() function did not parse multiple- value attribute values properly (STR #2690)
  • The scheduler incorrectly sent printer-stopped events for status updates from the print filters (STR #2680)
  • The IPP backend could crash when handling printer errors (STR #2667)
  • Multi-file jobs did not print to remote CUPS servers (STR #2673)
  • The scheduler did not provide the Apple language ID to job filters.
  • Kerberos authentication did not work with the web interface (STR #2606, STR #2669)
  • The requesing-user-name-allowed and -denied functionality did not work for Kerberos-authenticated usernames (STR #2670)
  • CUPS didn't compile on HP-UX 11i (STR #2679)
  • cupsEncodeOptions2() did not handle option values like "What's up, doc?" properly.
  • Added lots of memory allocation checks (Fortify)
  • The scheduler would crash if it was unable to add a job file (Fortify)
  • ppdOpen*() did not check all memory allocations (Coverity)
  • ippReadIO() did not check all memory allocations (Coverity)
  • The PostScript filter did not detect read errors (Coverity)
  • The scheduler did not check for a missing job-sheets-completed attribute when sending an event notification (Coverity)
  • "Set Printer Options" might not work with raw queues (Coverity)
  • cupsRasterInterpretPPD() could crash on certain PostScript errors (Coverity)
  • The USB backend did not check for back-channel support properly on all systems (Coverity)
  • Fixed memory leaks in the GIF and PNM image loading code (Coverity)
  • Removed some dead code in the CUPS API and scheduler (Coverity)
  • Fixed two overflow bugs in the HP-GL/2 filter (Coverity)
  • Fixed another ASN1 string parsing bug (STR #2665)
  • The RSS notifier directory was not installed with the correct permissions.
  • The standard CUPS backends could use 100% CPU while waiting for print data (STR #2664)
  • Filename-based MIME rules did not work (STR #2659)
  • The cups-polld program did not exit if the scheduler crashed (STR #2640)
  • The scheduler would crash if you tried to set the port-monitor on a raw queue (STR #2639)
  • The scheduler could crash if a polled remote printer was converted to a class (STR #2656)
  • The web interface and cupsctl did not correctly reflect the "allow printing from the Internet" state (STR #2650)
  • The scheduler incorrectly treated MIME types as case- sensitive (STR #2657)
  • The Java support classes did not send UTF-8 strings to the scheduler (STR #2651)
  • The CGI code did not handle interrupted POST requests properly (STR #2652)
  • The PostScript filter incorrectly handled number-up when the number of pages was evenly divisible by the number-up value.
  • The PDF filter incorrectly filtered pages when page-ranges and number-up were both specified (STR #2643)
  • The IPP backend did not handle printing of pictwps files to a non-Mac CUPS server properly.
  • The scheduler did not detect network interface changes on operating systems other than Mac OS X (STR #2631)
  • The scheduler now logs the UNIX error message when it is unable to create a request file such as a print job.
  • Added support for --enable-pie on Mac OS X.

CUPS 1.3.5 (December 17, 2007)

  • The SNMP backend did not check for negative string lengths (STR #2589)
  • The scheduler incorrectly removed auth-info attributes, potentially leading to a loss of all options for a job.
  • The scheduler stopped sending CUPS browse packets on a restart when using fixed addresses (STR #2618)
  • Fixed PDF filter security issues (CVE-2007-4352 CVE-2007-5392 CVE-2007-5393)
  • Changing settings would always change the DefaultAuthType and Allow lines (STR #2580)
  • The scheduler would crash when submitting an undefined format file from Samba with LogLevel debug2 (STR #2600)
  • The scheduler did not use poll() when epoll() was not supported by the running kernel (STR #2582)
  • Fixed a compile problem with Heimdal Kerberos (STR #2592)
  • The USB backend now retries connections to a printer indefinitely rather than stopping the queue.
  • Printers with untranslated JCL options were not exported to Samba correctly (STR #2570)
  • The USB backend did not work with some Minolta USB printers (STR #2604)
  • The strcasecmp() emulation code did not compile (STR #2612)
  • The scheduler would crash if a job was sent to an empty class (STR #2605)
  • The lpc command did not work in non-UTF-8 locales (STR #2595)
  • Subscriptions for printer-stopped events also received other state changes (STR #2572)
  • cupstestppd incorrectly reported translation errors for the "en" locale.
  • ppdOpen() did not handle custom options properly when the Custom attribute appeared before the OpenUI for that option.
  • The scheduler could crash when deleting a printer or listing old jobs.
  • The Mac OS X USB backend did not allow for requeuing of jobs submitted to a class.
  • lpmove didn't accept a job ID by itself.
  • The scheduler incorrectly removed job history information for remote print jobs.
  • The scheduler incorrectly sent the "com.apple.printerListChanged" message for printer state changes.
  • The PostScript filter drew the page borders (when enabled) outside the imageable area.
  • The LPD and IPP backends did not default to the correct port numbers when using alternate scheme names.
  • The scheduler incorrectly deleted hardwired remote printers on system sleep.
  • The scheduler would abort if a bad browse protocol name was listed in the cupsd.conf file.
  • The online cupsd.conf help file incorrectly showed "dns-sd" instead of "dnssd" for Bonjour sharing.
  • The scheduler could crash changing the port-monitor value.
  • The scheduler generated CoreFoundation errors when run as a background process.
  • When printing with number-up > 1, it was possible to get an extra blank page.

CUPS 1.3.4 (October 31, 2007)

  • Documentation updates (STR #2560, STR #2563, STR #2569)
  • CUPS now maps the "nb" locale to "no" on all platforms (STR #2575)
  • CUPS did not work with a Windows 2003 R2 KDC (STR #2568)
  • ippReadIO() could read past the end of a buffer (STR #2561)
  • The scheduler would crash on shutdown if it was unable to create a Kerberos context.
  • Multiple AuthTypes in cupsd.conf did not work (STR #2545)
  • The snmp.conf file referenced the wrong man page (STR #2564)
  • The cupsaddsmb program didn't handle domain sockets properly (STR #2556)
  • The scheduler now validates device URIs when adding printers.
  • Updated httpSeparateURI() to support hostnames with the backslash character.
  • Updated the Japanese localization (STR #2546)
  • The parallel backend now gets the current IEEE-1284 device ID string on Linux (STR #2553)
  • The IPP backend now checks the job status at variable intervals (from 1 to 10 seconds) instead of every 10 seconds for faster remote printing (STR #2548)
  • "lpr -p" and "lpr -l" did not work (STR #2544)
  • Compilation failed when a previous version of CUPS was installed and was included in the SSL include path (STR #2538)
  • The scheduler did not reject requests with charsets other than US-ASCII or UTF-8, and the CUPS API incorrectly passed the locale charset to the scheduler instead of UTF-8 (STR #2537)
  • cups-deviced did not filter out duplicate devices.
  • The AppleTalk backend incorrectly added a scheme listing when AppleTalk was disabled or no printers were found.
  • The PostScript filter generated N^2 copies when the printer supported collated copies and user requested reverse-order output.
  • The scheduler did not reprint all of the files in a job that was held.
  • The scheduler did not update the printcap file after removing stale remote queues.
  • The cupsd.conf man page incorrectly referenced "AuthType Kerberos" instead of "AuthType Negotiate".

CUPS 1.3.3 (September 28, 2007)

  • The scheduler did not use the attributes-natural-language attribute when passing the LANG environment variable to cups-deviced or cups-driverd.
  • The scheduler did not use the printer-op-policy when modifying classes or printers (STR #2525)
  • The auth-info-required attribute was not always updated for remote queues that required authentication.
  • The German web interface localization contained errors (STR #2523)
  • The Swedish localization contained errors (STR #2522)

CUPS 1.3.2 (September 18, 2007)

  • The 1.3.1 release was incorrectly created from the 1.4.x source tree (STR #2519)
  • Added support for 32/64-bit libraries on HP-UX (STR #2520)
  • The scheduler incorrectly used portrait as the default orientation (STR #2513)
  • The scheduler no longer writes the printcap file for every remote printer update (STR #2512)
  • Remote raw printing with multiple copies did not work (STR #2518)
  • Updated the configure script to require at least autoconf 2.60 (STR #2515)
  • Some gzip'd PPD files were not read in their entirety (STR #2510)

CUPS 1.3.1 (September 14, 2007)

This release was pulled as it was generated from the CUPS 1.4.x source tree instead of the 1.3.x tree.
  • Documentation updates.
  • The USB backend on Mac OS X could hang if the driver and printer did not match.
  • Delegated Kerberos credentials were not working.
  • "make distclean" incorrectly removed the edit-config.tmpl files (STR #2508)
  • Fix compile problem on HP-UX (STR #2501)
  • The cupstestppd utility now tests for resolutions greater than 99999 DPI to detect a missing "x" between the X and Y resolutions.
  • Fixed many problems in the various translations and added a new "checkpo" utility to validate them.
  • The cupstestppd utility now tests the custom page size code for CUPS raster drivers.
  • cupsLangDefault() did not attempt to return a language that was supported by the calling application.
  • If a remote printer stopped while a job was being sent, the local queue would also get stopped and the job re-queued, resulting in duplicate prints in some cases.
  • A few Apple-specific job options needed to be omitted when printing a banner page.
  • The new peer credential support did not compile on FreeBSD (STR #2495)
  • Direct links to help files did not set the current section so the table-of-contents was not shown.
  • The configure script did not support --localedir=foo (STR #2488)
  • The backends were not displaying their localized messages.
  • CUPS-Authenticate-Job did not require Kerberos authentication on queues protected by Kerberos.
  • The Zebra ZPL driver did not work with Brady label printers (STR #2487)
  • Norwegian wasn't localized on Mac OS X.
  • getnameinfo() returns an error on some systems when DNS is not available, leading to numerous problems (STR #2486)
  • The cupsfilter command did not work properly on Mac OS X.
  • The scheduler makefile contained a typo (STR #2483)
  • The TBCP and BCP port monitors did not handle the trailing CTRL-D in some PostScript output properly.
  • Fixed the localization instructions and German template for the "Find New Printers" button (STR #2478)
  • The web interface did not work with the Chinese localization (STR #2477)
  • The web interface home page did not work for languages that were only partially localized (STR #2472)
  • Updated the Spanish web interface localization (STR #2473)
  • ppdLocalize() did not work for country-specific localizations.

CUPS 1.3.0 (August 13, 2007)

  • The scheduler did not handle out-of-file conditions gracefully when accepting new connections, leading to heavy CPU usage.
  • The scheduler did not detect ServerBin misconfigurations (STR #2470)
  • "AuthType Default" did not work as expected when the "DefaultAuthType foo" line appeared after it in the cupsd.conf file.
  • The on-line help did not describe many common printing options (STR #1846)
  • The IPP backend did not return the "auth required" status when printing to a Kerberos-protected queue.
  • The scheduler was not looking in the correct directories for LSB PPD files (STR #2464)
  • Changed references to ESP Ghostscript to GPL Ghostscript (STR #2463)
  • The PostScript filter did not cleanly terminate when the job was canceled or stopped.
  • Fixed generation of Kerberos credentials for remote printing. Note that this requires a recent version of MIT Kerberos with a working krb5_cc_new_unique() function or Heimdal Kerberos.
  • Added Portuguese and updated Italian message catalogs.

CUPS 1.3rc2 (July 30, 2007)

  • Added more range checking to the pdftops filter.
  • The scheduler would crash if a remote IPP queue was stopped (STR #2460)
  • The scheduler did not allow "DefaultAuthType None".

CUPS 1.3rc1 (July 27, 2007)

  • Updated the German localization (STR #2443)
  • cupsAdminGetServerSettings() did not handle </Foo> properly.
  • When lprm and cancel are run with no job ID, they now will cancel the first stopped job if no pending or processing jobs are left in the queue.
  • The scheduler now logs successful print jobs, filter failures, and the job file types at the default log level (STR #2458)
  • The scheduler now logs the usernames it is using for authorization at LogLevel debug instead of debug2 (STR #2448)
  • Added Intellitech Intellibar and Zebra CPCL PPDs to the list of installed PPDs.
  • Added 6" and 8" wide label sizes for the Zebra ZPL Label Printer driver (STR #2442)
  • The cupsaddsmb program and web interface now support exporting of 64-bit Windows drivers, when available (STR #2439)
  • Moving a job that was printing did not stop the job on the original printer (STR #2262)
  • The cups-lpd mini-daemon did not work on Mac OS X server.
  • Added httpGetAuthString() and httpSetAuthString() APIs to get and set the current (cached) authorization string to use for HTTP requests.
  • Updated the default cupsd.conf policy to list the "administrative" operations separately from the "printer control" operations so that it is easier to define a group of users that are "printer operators".
  • The web interface now pulls the default cupsd.conf file from cupsd.conf.default in the CUPS config directory.
  • Added a help file for using Kerberos with CUPS.
  • The scheduler now strips the "@KDC" portion of Kerberos usernames since those usernames typically do not appear in the group membership lists used by CUPS.
  • cupsMarkOptions() could (incorrectly) leave multiple option choices marked.
  • Backends could (incorrectly) run as root during discovery (STR #2454)
  • Avahi is now supported for DNS-SD (Bonjour) printer sharing (STR #2455)
  • The default cupsd.conf file had typos and old operation names (STR #2450)
  • The scheduler now erases authentication cache files using the 7-pass US DoD algorithm.
  • Delegated Kerberos credentials (proxy authentication) did not work.
  • The filter makefile did not optimize the libcupsimage.2.dylib with a sectorder file.
  • The IPP backend incorrectly wrote an empty printer message when processing the "none" state reason.
  • The USB backend could deadlock on Mac OS X while performing a side-channel command.
  • The scheduler did not prevent remote queues from being shared/published.
  • The scheduler did not remove the temporary request file on authentication errors.
  • ppdLocalizeIPPReason() did not handle "scheme:" schemes or "file" URLs.
  • ppdLocalizeIPPReason() was not exported on Mac OS X.

CUPS 1.3b1 (July 13, 2007)

  • Copyright updates - CUPS is now owned by Apple Inc.
  • Documentation updates (STR #1775, STR #2027, STR #2130, STR #2131, STR #2263, STR #2356, STR #2397)
  • Added new cupsfilter utility (STR #1734)
  • Added new job-printer-state-message and job-printer-state-reasons attributes to jobs (STR #2418)
  • Added LDAP+SSL support (STR #1967)
  • CUPS now supports authentication via peer credentials over domain sockets (STR #2242, STR #2277)
  • The CUPS sample driver PPDs are now generated by the PPD compiler and include all of the localized languages by default (STR #2164)
  • You can now specify "AuthType Default" in the cupsd.conf file to use the default authentication defined by the DefaultAuthType directive.
  • The SNMP backend no longer adds a default Address line when none is specified in the snmp.conf file; this allows the backend to be easily disabled as needed (STR #2434)
  • Added a new cupsctl command for doing basic changes to the cupsd.conf file (STR #1777)
  • Added a new ppdLocalizeIPPReason() function to get the localized text/URI for a given IPP reason keyword for a driver.
  • Removed the deskjet2.ppd driver, as it only worked with a very small subset of HP DeskJet printers and was confusing to users. The rastertohp driver still supports the deskjet2.ppd options for existing queues.
  • The scheduler did not add a trailing banner page if a client did not specify the last document in a job (STR #1711)
  • The scheduler did not report Bonjour shared printers as remote printers (STR #2384)
  • Added new -R and -W options to the cupstestppd program for greater control over the testing of PPDs.
  • Added a new cupsGetServerPPD() function for getting an available PPD from the server (STR #2334)
  • Added a new cupsDoIORequest() function for reading and writing files via IPP requests (STR #2334)
  • Added a new CUPS_GET_PPD operation for getting an available PPD file on the server (STR #2334)
  • CUPS_GET_PPDS now reports multiple ppd-product values based on the PPD ModelName and Product strings (STR #2334, STR #2383)
  • CUPS_GET_PPDS now reports the PSVersion attributes from a PPD file in the ppd-psversion attribute (STR #2334)
  • CUPS_GET_PPDS now reports the cupsModelNumber attribute from a PPD file in the ppd-model-number attribute (STR #2383)
  • CUPS_GET_PPDS now reports a driver type string in the ppd-type attribute based on the cupsFax and cupsFilter attributes in a PPD file (STR #2383)
  • Added a new printer attribute called "cups-version" which reports the version of CUPS that is running (STR #2240)
  • backendRunLoop() now aborts immediately on SIGTERM if no data has been written yet (STR #2103)
  • Due to poor IPP support from the vendors, the SNMP backend no longer tries IPP connections; instead, it now uses a lookup file with fallback to port 9100 (socket://address) and 515 (lpd://address) printing (STR #2035, STR #2354)
  • The scheduler now recreates the CUPS log directory as needed (STR #2353)
  • cupsLangDefault() now maps new-style Apple locale names to the traditional ll_CC form (STR #2357)
  • Add new cupsArrayNew2() API to support hashed lookups of array elements (STR #2358)
  • ppdConflicts() optimizations (STR #2358)
  • The cupstestppd program now tests for existing filters, icons, profiles, and dialog extensions (STR #2326)
  • The web interface no longer lists new printers on the main administration page. Instead, a new "List Available Printers" button is provided that shows a separate page with the list of printers.
  • The web interface now supports setting the banner and policy options on raw printers and classes (STR #2238)
  • The socket backend now reads any pending back-channel data before shutting down the socket (STR #2325)
  • Added a new ErrorPolicy directive in the cupsd.conf file (STR #1871)
  • Printers that use JCL options are now exported to Samba correctly (STR #1985)
  • The IPP backend now relays printer-state-message values from the server to the client (STR #2109)
  • Added support for the PWG printer-alert and printer-alert-description attributes (STR #2088)
  • Added support for LPD "stream" mode (STR #2036)
  • The scheduler now reports the PostScript product string from PPD files in CUPS-Get-PPDs responses (STR #1900)
  • Raw printing with queues pointing to the file pseudo-device and multiple files and/or banners now works (STR #1933)
  • Added new public cupsAdminGetServerSettings() and cupsAdminSetServerSettings() APIs.
  • Added new "makebuttons" script in the "tools" directory for creating web interface buttons (STR #2231)
  • Added support for DNS-SD (aka "Bonjour") printer sharing (STR #1171)
  • Job operations (cancel, hold, release, etc.) from the web interface now return back to the original page (STR #2239)
  • The classes or printers list is now shown after a successful deletion from the web interface (STR #1999)
  • The default configuration now allows browse packets from any address (STR #2008)
  • The web interface now provides an "allow printing from the Internet" check box (STR #1897)
  • The notify-events-default and notify-lease-duration-default attributes can now be set (STR #1671)
  • Server-side default options are now sent to clients when the "printer-defaults" attribute group is requested (STR #1923)
  • Added support for Linux "relro" linker option (STR #1614)
  • CUPS now validates the number-up option value (STR #1329)
  • The on-line help now provides better search capabilities (STR #1701)
  • The web interface "Add This Printer" button now allows you to change the printer name, description, and location (STR #1646)
  • Added support for Mac OS X authorization services (STR #2206)
  • Added support for driver-specific pre-filters (STR #2108)
  • Added a new side-channel API for drivers and backends for basic device control and information queries (STR #1898)
  • The scheduler now uses poll(), epoll(), or /dev/kqueue instead of select() when possible (STR #1261)
  • Added new cupsArrayGetIndex() and cupsArrayGetInsert() functions to get the current index and insertion positions of an array.
  • Added a new --with-max-copies configure option (STR #2090)
  • Added new cupsRemoveDest() and cupsSetDefaultDest() functions.
  • Added support for cupsPJLCharset attribute in PPD files which specifies the character set that is used in PJL strings (STR #1969)
  • Moved the definition of the (private) _http_s structure to http-private.h; code that directly accesses the http_t members will no longer compile!
  • Added support for setting the document-format-default attribute on a per-printer basis.
  • Added support for IntelliBar label printers.

CUPS 1.2.12 (July 12, 2007)

  • The PHP cups_print_file() function crashed if the options array contained non-string option values (STR #2430)
  • The image/tiff file matching rule incorrectly identified some text files as TIFF files (STR #2431)
  • The filter(7) man page incorrectly documented the "PAGE: total #-pages" message (STR #2427)
  • PCL text files were mis-identified as HP-GL/2 and caused the HP-GL/2 filter to hang (STR #2423)
  • When printing to a queue with user ACLs, the scheduler incorrectly returned a quota error instead of a "not allowed to print" error (STR #2409)
  • cupsaddsmb could get in a loop if no printer drivers were installed (STR #2407)
  • cupsRasterReadHeader() did not byte-swap the header properly when compiled with certain versions of GCC.
  • The IPP backend did not send the document-format attribute for filtered jobs (STR #2411)
  • Some PPD files could cause a crash in ppdOpen2 (STR #2408)
  • The web admin interface incorrectly handled the "share printers" and "show remote printers" settings (STR #2393)
  • The scheduler's log messages about AuthClass and AuthGroupName advised using a replacement directive but had the wrong syntax (STR #2400)
  • Updated the PostScript/PJL and HP-GL/2 MIME rules to look in the first 4k of the file, not just the first 1k (STR #2386)
  • Updated the Italian localization (STR #2382)

CUPS 1.2.11 (May 8, 2007)

  • Updated the launchd support on Mac OS X to better support reconfiguration.
  • "make distclean" didn't remove all generated files (STR #2366)
  • Fixed a bug in the advertisement of classes (STR #2373)
  • The IPP backend now stays running until the job is actually printed by the remote server; previously it would stop monitoring the job if it was held or temporarily stopped (STR #2352)
  • PDF files were not always printed using the correct orientation (STR #2348)
  • The scheduler could crash if you specified a bad file: URI for a printer (STR #2351)
  • The Renew-Subscription operation now returns the notify-lease-duration value that was used (STR #2346)
  • The IPP backend sent job options to IPP printers, however some printers tried to override the options embedded in the PS/PCL stream with those job options (STR #2349)
  • ppdLocalize() now also tries a country-specific localization for when localizing to a generic locale name.
  • The cupstestppd program now allows for partial localizations to reduce the size of universal PPD files.
  • Chinese PPD files were incorrectly tagged with the "cn" locale (should have been "zh")
  • The backends now manage the printer-state-reasons attribute more accurately (STR #2345)
  • Java, PHP, Perl, and Python scripts did not work properly (STR #2342)
  • The scheduler would take forever to start if the maximum number of file descriptors was set to "unlimited" (STR #2329)
  • The page-ranges option was incorrectly applied to the banner pages (STR #2336)
  • Fixed some GCC compile warnings (STR #2340)
  • The DBUS notification code was broken for older versions of DBUS (STR #2327)
  • The IPv6 code did not compile on HP-UX 11.23 (STR #2331)
  • PPD constraints did not work properly with custom options.
  • Regular PPD options with the name "CustomFoo" did not work.
  • The USB backend did not work on NetBSD (STR #2324)
  • The printer-state-reasons attribute was incorrectly cleared after a job completed (STR #2323)
  • The scheduler did not set the printer operation policy on startup, only on soft reload (STR #2319)
  • The AP_FIRSTPAGE_InputSlot option did not clear any ManualFeed setting that was made, which caused problems with some PPD files (STR #2318)
  • cupsDoFileRequest() and cupsDoRequest() did not abort when getting an error in the response (STR #2315)
  • The scheduler did not schedule jobs properly to remote or nested classes (STR #2317)
  • Updated the mime.types and mime.convs headers to warn that the files are overwritten when CUPS is installed. Local changes should go in local.types or local.convs, respectively (STR #2310)
  • The scheduler could get in an infinite loop if a printer in an implicit class disappeared (STR #2311)
  • The pstops filter did not handle %%EndFeature comments properly (STR #2306)
  • Fixed a problem with the Polish web page printer icons (STR #2305)
  • ppdLocalize() now also localizes the cupsICCProfile attributes.
  • The scheduler still had a reference to the incorrect "notify-recipient" attribute (STR #2307)
  • The "make check" and "make test" subscription tests did not set the locale (STR #2307)
  • The "make check" and "make test" subscription tests incorrectly used the notify-recipient attribute instead of notify-recipient-uri (STR #2307)
  • cupsRasterInterpretPPD() incorrectly limited the cupsBorderlessScalingFactor when specified in the job options.

CUPS 1.2.10 (Mar 20, 2007)

  • ppdLocalize() now supports localizing for Japanese using the "jp" locale name used by the ppdmerge program from the CUPS DDK 1.1.0 (STR #2301)
  • _cupsAdminSetServerSettings() did not support changing of top-level directives as designed.
  • The init script path check was broken.
  • CUPS incorrectly used the attribute "notify-recipient" instead of "notify-recicpient-uri" in several places (STR #2297)
  • Fixed a configure script bug on MirBSD (STR #2294)
  • The pdftops filter did not limit the amount of recursion of page sets (STR #2293)
  • Custom page sizes with fractional point sizes did not work (STR #2296)
  • The lpoptions command would crash when adding or removing options on a system with no printers (STR #2295)

CUPS 1.2.9 (Mar 15, 2007)

  • The scheduler did not use the default job-sheets (banners) for implicit classes (STR #2284)
  • The scheduler could crash when listing complete jobs that had been unloaded from memory (STR #2288)
  • The French localization was doubled up (STR #2287)
  • Build system fixes for several platforms (STR #2260, STR #2275)
  • The scheduler's openssl certificate generation code was broken on some platforms (STR #2282)
  • The scheduler's log rotation check for devices was broken (STR #2278)
  • The LPD mini-daemon did not handle the document-format option correctly (STR #2266)
  • The pdftops filter ignored the "match" size option in the pdftops.conf file (STR #2285)
  • cupstestppd now validates UTF-8 text strings in globalized PPD files (STR #2283)
  • The outputorder=reverse option did not work with all printers (STR #2279)
  • 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 large media sizes (STR #2252)
  • The text filter could crash when pretty printing certain types of files (STR #2158)

CUPS 1.2.8 (Feb 14, 2007)

  • 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)

CUPS 1.2.7 (Nov 16, 2006)

  • Documentation updates (STR #2089)
  • 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)

CUPS 1.2.6 (Nov 6, 2006)

  • 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)

CUPS 1.2.5 (Oct 20, 2006)

  • 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.

CUPS 1.2.4 (Sep 21, 2006)

  • 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.

CUPS 1.2.3 (Aug 30, 2006)

  • 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++.

CUPS 1.2.2 (Jul 19, 2006)

  • 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)

CUPS 1.2.1 (May 22, 2006)

  • 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)

CUPS 1.2.0 May 08, 2006

  • 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.

CUPS 1.2rc3 (Apr 24, 2006)

  • 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.

CUPS 1.2rc2 (Apr 07, 2006)

  • 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)

CUPS 1.2rc1 (Mar 24, 2006)

  • 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 Allows 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)

CUPS 1.2b2 (Mar 10, 2006)

  • 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)

CUPS 1.2b1 (Mar 08, 2006)

  • 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.

CUPS 1.1.23 (Jan 03, 2005)

Changes in CUPS v1.1.23:

  • Updated the Spanish man pages (STR #1041)
  • The lpstat man page contained a typo (STR #1040)
  • The scheduler's is_path_absolute() code could cause a DoS (STR #1042)
  • The scheduler's device loading code used the wrong size limits for the make/model and info parameters (STR #1035)
  • The PNG loading code did not use a "long unsigned integer" format specifier for the width and height (STR #1032)
  • The web interface only showed the first 4 or 8 characters of "{variable-name}" for undefined template variables (STR #1031)
  • The hpgltops filter did not handle a common PCL command to enter HP-GL/2 mode (STR #1037)

CUPS 1.1.23rc1 (Dec 17, 2004)

Changes in CUPS v1.1.23rc1:

  • The lpr man page did not document the "-U" option (STR #998)
  • The scheduler no longer sends the page-set option when printing banner pages (STR #995)
  • Fixed a debug message in the imagetops filter (STR #1012)
  • The lprm man page listed the "-" option in the wrong order (STR #911)
  • The hpgltops filter contained two buffer overflows that could potentially allow remote access to the "lp" account (STR #1024)
  • The lppasswd command did not protect against file descriptor or ulimit attacks (STR #1023)
  • The "lpc status" command used the wrong resource path when querying the list of printers and jobs, causing unnecessary authentication requests (STR #1018)
  • The httpWait() function did not handle signal interruptions (STR #1020)
  • The USB backend used the wrong size status variable when checking the printer status (STR #1017)
  • The scheduler did not delete classes from other classes or implicit classes, which could cause a crash (STR #1015)
  • The IPP backend now logs the remote print job ID at log level NOTICE instead of INFO (so it shows up in the error_log file...)

CUPS 1.1.22 (Oct 29, 2004)

Changes in CUPS v1.1.22:

  • The lpstat man page incorrectly listed the "-s" option as using the equivalent of the "-p" option to list the printers; it uses the "-v" option to list the printers (STR #986)
  • Now allow 0-length reads in the CUPS file API (STR #985)
  • cupsDoFileRequest() now sets cupsLastError() to IPP_ERROR on network errors (STR #953)
  • The pdftops filter didn't scale small pages up to the output page size when the fitplot option was used (STR #984)
  • Fixed the ipptest program usage message (STR #959)
  • Added Spanish man pages (STR #963)
  • Fixed the order of comparisons in the client.conf reading code (STR #971)
  • cupsLangGet() incorrectly set the current locale (STR #970)

CUPS 1.1.22rc2 (Oct 13, 2004)

Changes in CUPS v1.1.22rc2:

  • The pdftops filter didn't check the range of all integer attributes (STR #972)
  • Documentation corrections (STR #944, STR #946)
  • Also sanitize device URI in argv[0] (STR #933)
  • cupsRasterReadHeader() didn't swap bytes for the numeric fields properly (STR #930)

CUPS 1.1.22rc1 (Oct 04, 2004)

Changes in CUPS v1.1.22rc1:

  • Now sanitize the device URI that is reported in the error_log file (STR #920)
  • Fixed some memory and file descriptor leaks in the job dispatch code (STR #921)
  • Deleting a printer could cause a crash with browsing enabled (STR #865, STR #881, STR #928)
  • Browsing would turn off if the scheduler got an EAGAIN error (STR #924)
  • The mime.types file didn't recognize PostScript as a PJL language name (STR #925)

CUPS 1.1.21 (Sep 13, 2004)

Changes in CUPS v1.1.21:

  • The scheduler did not separate Digest authentication parameters with commas (STR #882)
  • Fixed some problems with image printing to custom page sizes (STR #891)
  • Removed the remaining scheduler code that did not use the "close-on-exec" file descriptor flag to speed up program invocations (STR #890)
  • The "lpr -r" command removed the print file even if it was not printed. It now only removes the file if the job is successfully created (STR #886)
  • Revamped the custom page size orientation fix (STR #127)
  • The lp, lpq, lpr, and lpstat commands now report when an environment variable is pointing to a non-existent printer instead of just saying "no default destination" (STR #879)
  • Queue names with 2 periods (e.g. "printer..2") were not supported (STR #866)

CUPS 1.1.21rc2 (Aug 23, 2004)

Changes in CUPS v1.1.21rc2:

  • The scheduler used a select() timeout of INT_MAX seconds when there was nothing to do, which doesn't work on IRIX (STR #864)
  • Updated the cupsaddsmb program to use the new Windows 2000 PostScript drivers instead of the Windows NT printer drivers (STR #390)
  • The gziptoany filter did not produce copies for raw print jobs (STR #808)
  • The cupsLangGet() function now uses nl_langinfo(), when available, to get the current encoding (STR #856)
  • Added a ReloadTimeout directive to control how long the scheduler waits for jobs to complete before restarting the scheduler (STR #861)
  • Added a note to the default cupsd.conf file which mentions that you must allow connections from localhost for the command-line and web interfaces to work (STR #850)
  • The IPP backend incorrectly used the local port when communicating with a remote server; this caused problems with some custom configurations (STR #852)
  • The cups-lpd mini-daemon wasn't using the right default banner option (STR #851)
  • Updated the new httpDecode64_2() and httpEncode64_2() functions to handle arbitrary binary data, not just text (STR #860)
  • String options with quotes in their values were not quoted properly by the scheduler (STR #839)
  • Configure script changes for GNU/Hurd (STR #838)
  • The lppasswd program was not installed properly by GNU install when the installer was not root (STR #836)
  • Updated the cups-lpd man page (STR #843)
  • Fixed a typo in the cupsd man page (STR #833)
  • The USB backend now defaults to using the newer /dev/usb/lpN filenames; this helps on systems which use the devfs filesystem type on Linux (STR #818)
  • The config.h file did not define the HAVE_USERSEC_H constant when the configure script detected the usersec.h header file. This caused authentication errors on AIX (STR #832)
  • The lp and lpr commands now report the temporary filename and error if they are unable to create a temporary file (STR #812)
  • Added ServerTokens directive to control the Server header in HTTP responses (STR #792)
  • Added new httpDecode64_2(), httpEncode64_2(), and httpSeparate2() functions which offer buffer size arguments (STR #797)
  • The cupsGetFile() and cupsPutFile() code did not support CDSA or GNUTLS (STR #794)
  • The httpSeparate() function did not decode all character escapes (STR #795)
  • The cupstestppd program now checks for invalid Duplex option choices and fails PPD files that use non-standard values (STR #791)
  • Updated the printer name error message to indicate that spaces are not allowed (STR #675)
  • The scheduler didn't handle HTTP GET form data properly (STR #744)
  • The pstops filter now makes sure that the prolog code is sent before the setup code (STR #776)
  • The pstops filter now handles print files that incorrectly start @PJL commands without a language escape (STR #734)
  • Miscellaneous build fixes for NetBSD (STR #788)
  • Added support for quoted system group names (STR #784)
  • Added "version" option to IPP backend to workaround serious bug in Linksys's IPP implementation (STR #767)
  • Added Spanish translation of web interface (STR #772, STR #802)
  • The LPD backend now uses geteuid() instead of getuid() when it is available (STR #752)
  • The IPP backend did not report the printer state if the wait option was set to "no" (STR #761)
  • The printer state was not updated for "STATE: foo,bar" messages (STR #745)
  • Added new CUPS API convenience functions which accept a HTTP connection to eliminate extra username/password prompts. This resolves a previous authentication caching issue (STR #729, STR #743)
  • The scheduler did not correctly throttle the browse broadcasts, resulting in missing printers on client machines (STR #754)
  • The scheduler did not pass the correct CUPS_ENCRYPTION setting to CGI programs which caused problems on systems which used non-standard encryption settings (STR #773)
  • The lpq command showed 11st, 12nd, and 13rd instead of 11th, 12th, and 13th for the rank (STR #769)
  • "make install" didn't work on some platforms due to an error in the man page makefiles (STR #775)
  • Changed some calls to snprintf() in the scheduler to SetStringf() (STR #740)

CUPS 1.1.21rc1 (May 27, 2004)

Changes in CUPS v1.1.21rc1:

  • Fixed some "type-punned" warnings produced by GCC when -fstrict-aliasing is specified (STR #679)
  • The PDF filter incorrectly calculated the bounding box of a page (STR #682)
  • The IPP backend did not use SSL when printing over a port other than 443 (STR #730)
  • The scheduler could crash when processing a Limit or LimitExcept directive (STR #728)
  • The lpq, lpr, and lp commands did not differentiate between the server being unresponsive and the lack of a default printer (STR #728)
  • The PAM checks in the configure script did not stop after the first match (STR #728)
  • The cups-config man page was incorrectly placed in section 3 (STR #728)
  • The cupstestppd utility did not show a warning message when a PPD file indicated BCP protocol support with PJL (STR #720)
  • The scheduler did not return the correct exit code when startup failed (STR #718)
  • The cupsRasterReadPixels() function checked for EAGAIN, which caused problems on FreeBSD (STR #723)
  • The cupsGetDests() function did not use the current encryption setting (STR #653)
  • The scheduler did not properly parse name-based BrowseRelay directives in the cupsd.conf file (STR #711)
  • The IPP backend now supports the following options in the device URI: encryption, waitjob, and waitprinter (STR #699)
  • The parallel, serial, socket, and USB backends did not return a non-zero exit status when a job failed to print in the middle of sending it (STR #715)
  • Location directives in the cupsd.conf file were case-sensitive for printer and class names, so queue-specific access control was not reliable (STR #700)
  • cupsDoFileRequest() did not handle HTTP continue status messages in all cases, causing sporatic problems with IPP printers from some vendors (STR #716)
  • The rastertodymo driver now supports the Zebra ZPL language (STR #713)
  • The test suite no longer generates a printcap file, which caused problems when testing as the root user (STR #693)
  • The scheduler now updates the accepting state of an implicit class based upon the accepting state of its member printers (STR #697)
  • The pstops filter didn't properly skip leading PJL commands (STR #664)
  • The reinterpret_cast keyword was not highlighted when printing C/C++ source files in prettyprint mode (STR #694)
  • Fixed a segfault problem with some of the client programs (STR #668)
  • When using RunAsUser, the scheduler did not correctly set the ownership of the log files, preventing log file rotation (STR #686)
  • The image filters did not correctly load 1-bit PNG files (STR #687)
  • The pdftops filter did not show all annotation objects in a PDF file (STR #674)
  • The pdftops filter did not print the contents of textual form elements, making it impossible to print a filled-in for