New in version 2.0.1

November 15th, 2014
  • Security: SSLv3 is now disabled by default to protect against the POODLE attack (STR #4476)
  • Printer sharing did not work when systemd was being used (STR #4497)
  • cupsGetPPD* would return a symlink to the PPD in /etc/cups/ppd even if it was not readable by the user (STR #4500)
  • The web interface now protects against frame "click-jacking" attacks (STR #4492)
  • Fixed a crash in ippAttributeString ()
  • Fixed a crash in the scheduler on Linux/*BSD if colord was not running (STR #4496)
  • Fixed a random crash in the scheduler when not using systemd (STR #4484)
  • Added systemd support for cups-lpd (STR #4493)
  • The scheduler did not honor the FatalErrors directive for misconfigured Group and SystemGroup values (STR #4495)
  • The network backends no longer report waste-receptacle conditions when using SNMP (STR #4499)
  • The IPP backend did not work with some configurations of Windows (STR #4503)
  • RPMs did not build (STR #4490)
  • Added a USB quirk rule for the Brother HL-1250 (STR #4519)
  • Fixed compiles on unsupported platforms (STR #4510)
  • "cancel -a" did not cancel all jobs on all destinations (STR #4513)
  • The web interface did not work on OpenBSD (STR #4496)

New in version 2.0.0 (October 2nd, 2014)

  • The scheduler did not preserve listener sockets from launchd or systemd after a restart ()
  • Added some USB quirk rules for the libusb-based USB backend (STR #4482)
  • Spanish localization update (STR #4487)
  • Updated documentation for 2.0.0 release.

New in version 2.0 Beta 1 (July 31st, 2014)

  • The CUPS library now provides a complete set of APIs for implementing HTTP and IPP services, and the scheduler uses those APIs to provide a modest code size reduction and corresponding improvement in performance. The scheduler is now also launched on demand on Linux, so for most users cupsd will only be running if something is being printed.
  • SSL/TLS support has been largely re-written to support certificate validation and policy enforcement, and on the server side we can now use different certificates depending on the hostname used. OpenSSL support has been dropped for a number of technical and security reasons.
  • IPP Everywhere support has been expanded to support long-edge feed printers and automatic retries using PWG Raster as needed. Finally, the ipptool utility has been updated with features needed to support IPP Everywhere printer self-certification.

New in version 1.7.5 (July 31st, 2014)

  • Added a "--list-filters" option to the cupsfilter command (STR #4325)
  • Added systemd support (STR #3917)
  • Added support for re-sending a job as a raster file if a higher-level format such as PDF fails ()
  • Added support for regular expression matching in the MIME type rules ()
  • Added support for TLS certificate validation and policy enforcement (STR #1616)
  • Added support for simultaneous XML and test output from ipptool.
  • Added support for PAUSE directive in ipptool test files.
  • Added support for auto-typing of TIFF files by ipptool (STR #4418)
  • The scheduler now returns completed jobs in the correct newest-to-oldest order (STR #4396)
  • The configure script now supports target-specific tools for pkg-config and others (STR #4423)
  • The ipptool program now supports EXPECT statements for collection member attributes ()
  • The ipptool program now supports collection attributes with multiple values ()
  • The sample drivers now include all of the installed localizations by default ()
  • Adopted Linux man page conventions and updated all man pages (STR #4372, STR #4329)
  • The scheduler now supports the "first-index" operation attribute for the Get-Jobs operation (STR #2913)
  • Changed the default AccessLogLevel and PageLogFormat to disable the access_log and page_log files by default ()
  • cupsRasterInterpretPPD now supports the Orientation header in order to support long-edge feed raster printers ()
  • The scheduler now allows run-as-root backends to have group read and execute permissions (STR #2935)
  • The ippFindAttribute and ippFindNextAttribute functions now support hierarchical searches (STR #4395)
  • Dropped OpenSSL support in favor of GNU TLS.
  • Dropped "dark wake" support on OS X, which was preventing portables from going to sleep when there was a stuck job. We now use a variation of the CUPS 1.4 sleep support to do a cleaner sleep ()
  • Dropped support for AIX, HP-UX, and OSF/1 (aka Digital UNIX)
  • Dropped lppasswd and support for Digest authentication in in the scheduler (STR #4321)
  • The cupsGetClasses, cupsGetPrinters, and cupsTempFile functions are no longer supported.
  • The scheduler now caches more job history data and limits the number of completed jobs returned by Get-Jobs as needed in order to prevent a denial-of-service on busy servers (STR #2913)
  • The filter/backend sandbox on OS X now defaults to a more strict whitelist ()
  • Increased the default idle exit timeout to 60 seconds on OS X ()
  • Printer classes were not accessible on OS X ()
  • The scheduler now uses to close the default printer definition in printers.conf (STR #4153)
  • Canceling all jobs in the web interface now just cancels the jobs (STR #1914)

New in version 1.7.4 (July 15th, 2014)

  • Security: The web interface incorrectly served symlinked files and files that were not world-readable, potentially leading to a disclosure of information (STR #4450)
  • The CUPS headers incorrectly needed libdispatch for blocks support (STR #4397)
  • CUPS did not compile when Avahi or mDNSResponder was not present (STR #4402, STR #4424)
  • The "snmp" option did not work with the network backends (STR #4422)
  • The User directive in client.conf did not override the USER environment variable (STR #4426)
  • The web interface now properly shows a "Go" button for all text-based browsers (STR #4425)
  • The MaxJobTime directive now properly supports time values (STR #4434)
  • The RPM spec file did not work due to the new Brazilian Portuguese localization (STR #4436)
  • Fixed an "IPP read error" issue (STR #4440)
  • Fixed the --disable-libusb configure option (STR #4439)
  • Fixed the debug output from the DNS-SD backend when using Avahi (STR #4444)
  • Fixed a bug in the CUPS_SC_GET_DEVICE_ID handling by the network backends (STR #4447)
  • Added USB quirk rule for Lexmark E230 (STR #4448)
  • The LPD backend did not work with some versions of glibc (STR #4452)

New in version 1.7.3 (May 28th, 2014)

  • Added Brazilian Portuguese translation (STR #4409)
  • Fixed mapping of OutputBin values such as "Tray1" ()
  • Several ippGet* functions incorrectly returned -1 instead of 0 on error.
  • The cupsGetResponse function did not work properly with CUPS_HTTP_DEFAULT ()
  • The IPP backend did not abort a job when the printer did not validate the supplied options ()
  • Fixed an authentication race condition in cupsSendRequest (STR #4403)
  • The scheduler did not add the "job-hold-until-specified" reason when holding a job using the lp command (STR #4405)
  • The CUPS headers incorrectly needed libdispatch for blocks support (STR #4397)
  • The configure script incorrectly added libgcrypt as a GNU TLS dependency (STR #4399)
  • CUPS did not compile when Avahi or mDNSResponder was not present (STR #4402)
  • cupsGetDestMediaCount did not work for CUPS_MEDIA_FLAGS DEFAULT (STR #4414)
  • Auto-typing of PWG Raster files did not work (STR #4417)
  • IPP queues using hardcoded credentials would ask for credentials (STR #4371)
  • Dates in non-UTF-8 locales did not display correctly (STR #4388)
  • The RPM spec file now looks for libusb-devel 1.0 or later.
  • Fixed the "create-printer-subscription.test" file for IPPTOOL (STR #4420)

New in version 1.7.2 (April 11th, 2014)

  • Security: The scheduler now blocks URLs containing embedded HTML (STR #4356)
  • Documentation fixes (STR #3259, STR #4346, STR #4355)
  • Fixed the Japanese localization (STR #4385)
  • Added a German localization (STR #4363)
  • The cupsfilter command incorrectly read the cupsd.conf file; it now reads the cups-files.conf file instead.
  • Fixed OS X builds with Xcode 5.x ()
  • Fixed SSL support on Windows (STR #4358)
  • Fixed documentation and naming of Create-Job/Printer-Subscriptions operations (STR #4389)
  • Phone numbers in fax jobs were not properly filtered for IPP FaxOut ()
  • Fixed a memory leak in the label printer driver (STR #4393)
  • Updated Linux "relro" support (STR #4349)
  • cupsEnumDests did not set the "is_default" field (STR #4332)
  • cupsDoIORequest could miss the server status, causing failed lpadmin and other administrative commands (STR #4386)
  • cupsEnumDests didn't always call the callback function (STR #4380)
  • "lp -i job-id -H hold" did not work (STR #4401)
  • CUPS didn't compile on older platforms (STR #4338)
  • Several libcups files did not have the Apple license exception notice (STR #4361)
  • Fixed a D-BUS threading issue that caused the scheduler to crash (STR #4347)
  • The scheduler now automatically reconnects to Avahi as needed (STR #4370, STR #4373)
  • The scheduler did not handle GET requests for the log files properly (STR #3265)
  • The dnssd backend did not always report all discovered printers using Avahi (STR #4365)
  • The Zebra printer driver did not properly handle negative "label top" values (STR #4354)
  • The scheduler did not always update the MakeModel value in printers.conf after updating the driver (STR #4264)
  • The LPD mini daemon did not support print jobs larger than 2GB (STR #4351)
  • Fixed a bug in the status reading code when sending a compressed data stream to an IPP printer/server ()
  • The IPP backend might not include all job attributes in Validate-Job operations ()
  • Fixed some clang-reported issues ()

New in version 1.7.1 (January 9th, 2014)

  • Security: the lppasswd program incorrectly used settings from ~/.cups/client.conf (STR #4319)
  • Auto debug logging was broken in 1.7.0 ()
  • Some gzip'd PPD files could not be used ()
  • Cleaned up some job logging in the scheduler ()
  • ATTR messages could cause string pool memory corruption in the scheduler ()
  • The RPM spec file did not list the build requirements; this was on purpose, but now we are listing the Red Hat package names (, STR #4322)
  • Printing to a raw queue could result in corrupt output due to opportunistic compression ()
  • The GNU TLS support code triggered many compiler warnings due to the use of old GNU TLS compatibility type names ()
  • The "make check" test suite did not work on Linux without the cups-filters package installed ()
  • Japanese PPDs using with the Shift-JIS encoding did not work ()
  • "tel:" URIs incorrectly had slashes ()
  • The libusb-based USB backend incorrectly used write timeouts ()
  • Shared printers could become inaccessible after a few days on OS X ()
  • The IPP backend did not wait for a busy printer to become available before attempting to print ()
  • CUPS did not support "auto-monochrome" or "process-monochrome" for the "print-color-mode" option ()
  • Using "@IF(name)" in an Allow or Deny rule did not work (STR #4328)
  • lpq and lpstat did not list jobs in the correct order when priorities were specified (STR #4326)
  • The D-BUS notifier did not remove its lockfile (STR #4314)
  • CUPS incorrectly used the USER environment variable when the name did not match the user ID (STR #4327)

New in version 1.7.0 (October 25th, 2013)

  • Updated Japanese localization.
  • The lpadmin command did not send the PPD name from the "-m" option ()
  • Network backends now use the prtMarkerSuppliesClass property to determine the direction of supply level values ()
  • The scheduler did not remove backup PPD files when a printer was deleted ()
  • The scheduler incorrectly responded to HEAD requests when the web interface was disabled ()
  • The scheduler did not respond using the hostname specified by the client ()
  • Fax queues did not work when shared via Bonjour ()
  • Error messages from the scheduler were not localized using the language specified in the client's IPP request ()
  • Added an Italian localization ()
  • Fixed a couple memory leaks in ippfind that were reported by Clang.
  • Fixed a compile issue on 64-bit Linux with Clang - need to use the -pie option instead of -Wl,-pie now ()
  • The ippfind utility reported the wrong port numbers when compiled against Avahi ()
  • httpGetFd, httpGetFile, httpPutFd, and httpPutFile did not automatically reconnect if the server closed the connecion after the previous response.
  • Fixed a compile error in libcups ()
  • The scheduler incorrectly did not pass a FINAL_CONTENT_TYPE environment variable to the filters or backend ()
  • The cups-exec helper program could fail randomly on OS X due to sandbox violations when closing excess file descriptors ()
  • The scheduler incorrectly did not use the kqueue interface on OS X.