CUPS Changelog

New in version 2.0.2

February 10th, 2015
  • The new release addresses a potential buffer overflow for compressed raster data and includes several general bug fixes. Changes include:
  • Security: cupsRasterReadPixels buffer overflow with invalid page header and compressed raster data (STR #4551)
  • Command-line programs were not localized on Mac OS X ()
  • The scheduler incorrectly cleared the MakeModel string in the printers.conf file after a restart ()
  • CUPS did not compile with older versions of GNU TLS (STR #4527)
  • CUPS did not compile without Avahi or mDNSResponder (STR #4523)
  • ippLength() did not return the correct length for IPP_TAG_CONST string values.
  • The scheduler incorrectly aborted jobs after a job was restarted ()
  • The cups-files.conf file contained the old ServerCertificate/Key directives instead of ServerKeychain.
  • Fixed builds when no SSL/TLS library is available, or when explicitly disabled (STR #4531)
  • Fixed an OpenBSD charset transcoding issue.
  • Fixed USB printing on OpenBSD (STR #4525)
  • The --without-xinetd configure option did not work (STR #4542)
  • Backends needing to load OS X kernel extensions did not work ()
  • Mapping of PPD keywords to IPP keywords did not work if the PPD keyword was already an IPP keyword ()
  • cupsGetPPD* sent bad requests (STR #4567)
  • ippserver used the wrong temporary directory on Windows (STR #4547)
  • ippserver did not handle Bonjour registrations properly (STR #4548)
  • The scheduler could crash during shutdown if Avahi was shutdown first (STR #4550)
  • Added a USB quirk rule for Intermec printers (STR #4553)
  • The scheduler did not always log which configuration file had the error (STR #4559)
  • The ippfind and ipptool programs now correctly match hostnames with trailing dots (STR #4563)
  • The ipptool timeout option did not work (STR #4515)
  • Fixed several issues with client.conf, CUPS_SERVER, and the "-h" option of most commands (STR #4528)
  • Another change for OpenBSD (STR #4526)
  • Added Japanese localization (STR #4524)
  • Documentation changes (STR #4569)

New in version 2.0.1 (November 15th, 2014)

  • The new release addresses the SSL 3.0 POODLE attack and fixes a number of bugs that have been reported since the 2.0.0 release.
  • CHANGES INCLUDE:
  • 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 RC 1 (September 8th, 2014)

  • Documentation updates (STR #4464)
  • The scheduler now monitors the AC power status on OS X, allowing for "sleep printing" when sharing printers ()
  • The scheduler incorrectly called launch_activate_socket multiple times on OS X ()
  • The ippserver test program now passes the IPP Everywhere self- certification tests (STR #4101)
  • Relaxed the new OS X filter sandbox slightly (STR #4471, )
  • Dropped the old Epson Stylus Color/Photo sample drivers since they don't work with any current printers and there are free alternatives that produce much better output ()
  • Log and configuration files that are not world-readable are again accessible via the web interface (STR #4461)
  • PPD files are now created using the permissions specified by the ConfigFilePerm directive.
  • Fixed RPM build issues (STR #4459)
  • Fixed the spinner image and restart page when reconfiguring the scheduler through the web interface (STR #4475)

New in version 2.0 Beta 1 (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 RC 1 (July 15th, 2013)

  • Printer xxx-default values were not reported by Get-Printer-Attributes or lpoptions ()
  • Fixed deprecation warnings for many functions on OS X so they are tied to the deployment version when building ()
  • Fixed a build issue on ARM-based Linux systems - unable to validate va_list arguments.
  • Added a new ippfind tool for finding IPP printers and other Bonjour services ()
  • Fixed some issues with conversion of PWG media size names to hundredths of millimeters ()
  • The IPP backend could crash on OS X when printing to a Kerberized printer ()
  • The ipptool program now automatically extends timeouts when the output buffer is filled ()
  • The ipptool program now supports the --help and --version options.
  • The ipptool program did not continue past include file errors by default ()
  • The ipptool program now supports FILE-ID and TEST-ID directives and includes their values in its XML output ()
  • The ipptool program now supports WITH-HOSTNAME, WITH-RESOURCE, and WITH-SCHEME expect predicates to compare the corresponding URI components ()

New in version 1.6.3 (July 15th, 2013)

  • The configure script now prefers Clang over GCC.
  • Fixed a compile problem on AIX (STR #4307)
  • The default IPP version did not always get set before creating a new IPP request message ()
  • The lp, lpq, lpr, and lpstat now display an error message advising the use of the /version=1.1 ServerName option ()
  • Added documentation about the /version=1.1 option to ServerName in client.conf ()
  • httpStatus(HTTP_ERROR) did not return a useful error message ()
  • The lp, lpq, lpr, and lpstat commands incorrectly ignored the default printer set in the lpoptions file ()
  • Fixed a URI encoding issue for hostnames containing the ` (backquote) character ()
  • Added support for RFC 6874's IPv6 link local address format in URIs ()
  • The USB backend could crash on libusb-based systems if USB was disabled in the BIOS ()
  • Fixed a rounding error in the PWG media size mapping code ()
  • Fixed several ipptool test files that used old STATUS names.
  • Kerberos credentials could get truncated when printing to a shared printer.
  • Printing using "ipps" URIs was not encrypted.
  • Insecure ICC profiles prevented installation of user profiles for a printer on OS X.
  • Added more USB quirks for the libusb-based backend (STR #4311, )
  • The Russian web interface templates were broken (STR #4310)
  • The scheduler no longer tries to do Kerberos authentication over the loopback interface.
  • The IPP backend could fail to pause a job for authentication (STR #4298)
  • Fixed a regression on the handling of auth keys on OS X if the cups-files.conf was not present or did not contain a SystemAuthKey value.
  • The scheduler incorrectly did a reverse lookup of the server address when HostNameLookups was turned off (STR #4302)
  • The scheduler incorrectly computed the final content type value when null filters were present.

New in version 1.7.1 Beta 1 (April 19th, 2013)

  • The configure script now supports a --with-rundir option to change the transient run-time state directory from the default to other locations like /run/cups (STR #4306)
  • The scheduler now supports PPD lookups for classes (STR #4296)
  • The cupsfilter program did not set the FINAL_CONTENT_TYPE environment variable for filters.
  • Added a new "-x" option to the cancel command (STR #4103)
  • Made the PWG media handling APIs public (STR #4267)
  • Implemented ready media support for the cupsGetDestMediaXxx APIs (STR #4289)
  • Added new cupsFindDestDefault, cupsFindDestReady, and cupsFindDestSupported APIs (STR #4289)
  • Added new cupsGetDestMediaByIndex, cupsGetDestMediaCount, and cupsGetDestMediaDefault APIs (STR #4289)
  • Added new ippGet/SetOctetString APIs for getting and setting an octetString value (STR #4289)
  • Added new ippCreateRequestedArray API for generating a array of attributes from the requested-attributes attribute.
  • The ipptool utility now supports compression, conditional tests based on the presence of files, and new DEFINE predicates for STATUS.
  • Added new IPP APIs for checking values (STR #4167)
  • Added new IPP APis for adding and setting formatted strings.
  • Added new HTTP APIs to support basic server functionality via libcups.
  • The dnssd backend now generates a 1284 device ID as needed (STR #3702)
  • CUPS now supports compressing and decompressing streamed data (STR #4168)
  • CUPS now supports higher-level PIN printing, external accounting systems, and "print here" printing environments (STR #4169)
  • IRIX is no longer a supported operating system (STR #4092)
  • The PPD compiler now supports JCL options properly (STR #4115)
  • The web interface now checks whether the web browser has cookies enabled and displays a suitable error message (STR #4141)

New in version 1.6.2 (March 19th, 2013)

  • Documentation fixes (STR #4229, STR #4239, STR #4234, STR #4248, STR #4259)
  • Security: All file, directory, user, and group settings are now stored in a separate cups-files.conf configuration file that cannot be set through the CUPS web interface or APIs (STR #4223)
  • Added a Czech localization (STR #4201)
  • Added a French localization (STR #4247)
  • Added a Russian localization (STR #4228, STR #4285)
  • Updated the Catalan localization (STR #4202)
  • Local certificate authentication did not guard against an empty certification file (STR #4293)
  • The scheduler did not reject device URIs with spaces.
  • Added USB quirk rule for Epson Stylus Photo 750 (STR #4286)
  • The IPP backend could crash if the printer disconnects early (STR #4284)
  • cupsGetPPD did not work with statically-configured CUPS shared queues (STR #4178)
  • The scheduler did not support long MIME media types (STR #4270)
  • The cupsfilter command did not set the CHARSET environment variable for the text filters (STR #4273)
  • The lp command did not show errors for unknown "--foo" (STR #4261)
  • Bad IPP responses could crash ipptool (STR #4262)
  • Updated USB quirk rules for Canon and Xerox printers (STR #4217, STR #4263)
  • Added USB blacklisting for printers that require a custom backend (STR #4218)
  • The PPD compiler did not correctly JCL options (STR #4115, STR #4203)
  • The ipptool program now supports DEFINE-MATCH and DEFINE-NO-MATCH predicates for STATUS directives.
  • Fixed a problem with local Kerberos authentication (STR #4140)
  • Coverity scan: fixed some minor issues (STR #4242)
  • The scheduler did not remove color profiles after deleting a printer (STR #4232, STR #4276)
  • The CUPS library did not always detect a timed out connection to the server which could cause temporary loss of printing from applications (STR #4187)
  • The ipptool program now supports variable substitution in OPERATION and DELAY directives (STR #4175)
  • The IPP backend now stops queues when the server configuration prevents successful job submission (STR #4125)
  • The XML output of ipptool contained empty dictionaries (STR #4136)
  • The scheduler did not delete job control backup files (STR #4244)
  • cupsGetPPD3 could return a local PPD instead of the correct remote PPD.
  • The scheduler incorrectly advertised auth-info-required for local queues needing local authentication (STR #4205)
  • CUPS 1.6 clients using the ServerName directive in client.conf did not work with CUPS 1.3.x or older servers (STR #4231, STR #4291)
  • The SNMP backend now tries to work around broken printers that use a newline to separate key/value pairs.
  • The IPP backend did not send a cancel request to printers when a job was canceled and the printer did not support Create-Job.
  • Fixed EPM packaging files (STR #4199)
  • OpenBSD build fix (STR #4195, STR #4196, STR #4197)
  • The scheduler could crash when using Avahi (STR #4183, STR #4192, STR #4200, STR #4213)
  • The IPP backend could get stuck in an endless loop on certain network errors (STR #4194)
  • 32-bit builds failed on Debian (STR #4133)
  • The scheduler no longer accepts or sends job description attributes.
  • The IPP backend now works around some conformance issues for broken printers (STR #4190)
  • cupsBackendReport() now filters out all control characters from the reported 1284 device IDs (STR #4124)
  • The scheduler no longer allows job-name values that are not valid network Unicode strings (STR #4072)
  • The web interface did not preserve the order of classes, jobs, or printers (STR #4170)
  • The network backends now support disabling of SNMP supply level queries via the "snmp" URI option (STR #4106)
  • The IPP backend did not specify the compression used (STR #4181)
  • ipptool did not support octetString values.
  • The scheduler did not recognize dnssd: or ipps: URIs as Bonjour shared queues (STR #4158)
  • Applications could not get the PPD file for statically-configured Bonjour-shared print queues (STR #4159)
  • The cupsd.conf file included obsolete browsing directives (STR #4157)
  • Fixed a USB backend compatibility issue on systems using libusb (STR #4155, STR #4191)
  • Some Bonjour features were not available on systems with Avahi (STR #4156)
  • CUPS now includes the port number in the Host: header for HTTP requests.
  • Fixed REPEAT-MATCH for STATUS and EXPECT - was incorrectly erroring out.

New in version 1.6.1 (July 30th, 2012)

  • The new release fixes some packaging and localization issues that were discovered after release. Changes include:
  • Documentation fix (STR #4149)
  • RPM packaging fixes (STR #4129, #4145)
  • The Japanese and English web interface headers were swapped (STR #4148)

New in version 1.5.3 (May 16th, 2012)

  • httpReconnect() did not reset the read/write buffers (STR #4065)
  • Compiling without threading support failed (STR #4060)
  • Fixed compile problem with old versions of OpenSSL (STR #4036)
  • The network backends did not check SNMP supply levels regularly (STR #4040)
  • The online help always included the "help on help" text (STR #4042)
  • Fixed a SSL handshake issue on OS X (STR #4045)
  • The scheduler could crash if a PPD file contained an invalid paper size (STR #4049)
  • The CUPS polling daemon did not reinitialize its connection to the remote server on errors in all cases (STR #4031)
  • PostScript auto-configuration was slow and unreliable with some printers (STR #4028)
  • Missing localizations caused empty output (STR #4033)
  • The cups-driverd program could temporarily "forget" a PPD file if it was updated in place.
  • The dnssd backend now prefers IPPS over IPP.
  • The USB backend now uses and requires LIBUSB 1.0 or later (STR #3477)
  • The LIBUSB-based USB backend now supports the back-channel (STR #2890)
  • Changed how timeouts are implemented in the LPD backend (STR #4013)
  • Added more supported color names for SNMP supplies (STR #3981)
  • The default InputSlot setting was never used (STR #3957)
  • POSIX ACLs are now set properly on certificate files (STR #3970)
  • Supplies with commas in their names were not reported correctly (STR #4020)
  • The cupsGetPPD3() function created a temporary file when one was not needed (STR #4018)
  • The scheduler now ensures that job notifications contain a value for the notify-printer-uri attribute (STR #4014)
  • The lp and lpr commands did not cancel jobs queued from stdin on an error (STR #4015)
  • Fixed the IPP backend's handling of HTTP/1.0 compatibility (STR #3988)
  • The IPP backend did not always setup username/password authentication for printers (STR #3985)
  • The IPP backend no longer re-queues print jobs that are too large for the printer/server (STR #3977)
  • The RPM spec file did not work (STR #4021, STR #4057)
  • Encryption did not work when the server name ended with "." (STR #4011)
  • The multi-purpose tray is now mapped to the IPP "by-pass-tray" (STR #4009)
  • The correct media size was not always passed to IPP printers (STR #4001)
  • Finishing options were not passed to IPP printers (STR #3995)
  • Fixed iCloud-based Back to My Mac printing (STR #3996)

New in version 1.5.2 (February 6th, 2012)

  • Reposted what should have been CUPS 1.5.1.

New in version 1.5.1 (February 4th, 2012)

  • Documentation updates (STR #3885, STR #3886, STR #3946, STR #3969)
  • Localization updates (STR #3840, STR #3989, STR #3997)
  • Build fixes (STR #3956, STR #3999)
  • The SNMP backend did not validate the device URIs reported by printers (STR #4004)
  • cupsBackendReport() did not handle newlines in 1284 Device IDs (STR #4005)
  • USB backend fixes for libusb (STR #3965, STR #3978)
  • The DBUS notifier did not validate string parameters (STR #3984)
  • Group quota ACLs did not work with Kerberos (STR #3972)
  • The IPP backend did not retry when a printer responded with client-error-not-possible (STR #3963)
  • PostScript PPDs with filters used the wrong command filter (STR #3973)
  • The scheduler incorrectly used free() on a POSIX ACL value, which could cause a crash (STR #3970)
  • PPD files using the MacStandard encoding did not work.
  • The web interface did not work on some platforms (STR #3902)
  • The lpstat command would crash when then "-u" option was used by a non-administrator (STR #3953)
  • Japanese supply level reporting did not always work.
  • The DBUS notifier could crash (STR #3947)
  • Relaxed some of the page size checks in cupstestppd.
  • The ipptool program now reports attributes that are repeated within the same attribute group.
  • Updated the PWG raster support to match the current draft specification.
  • Fixed some IPP conformance issues in the scheduler.
  • Added ipptool support for repeating requests.
  • Added IPP/2.2 conformance tests and greatly improved the IPP/1.1, IPP/2.0, and IPP/2.1 conformance testing.
  • IPP messages containing mixed integer/rangeOfInteger values did not work (STR #3942)
  • The ipptool program now provides additional diagnostics for badly- formatted responses (STR #3857)
  • When possible, the IPP backend now stops sending job data early on a cancel.
  • cupsSendRequest and cupsWriteRequestData did not properly read all HTTP headers, preventing authentication and encryption upgrades from working in all cases.
  • The client.conf Server directive is no longer supported on Mac OS X 10.7 and later.
  • The IPP backend sent the wrong margins in media-col.
  • The scheduler did not save or restore large Kerberos credentials for jobs.
  • The dnssd backend did not properly browse for secure IPP printers.
  • httpAssembleURI* did not properly escape all special characters in the username/password field.
  • The scheduler now logs config file errors to stderr (STR #3936)
  • The configure script incorrectly used bundle-based localizations on Linux (STR #3938)
  • The cups-driverd helper program did not cache .drv files properly, sometimes leading to a crash (STR #3921)
  • CUPS did not build on stock Mac OS X installations.
  • Encryption was broken with OpenSSL.
  • ipptool's XML output used date/time values with timezone offsets, which are not supported by Mac OS X's NSDate class.
  • Several programs did not support the cupsFilter2 keyword in PPD files.
  • The IPP backend incorrectly reported spool-area-full states.
  • cupsMarkOptions() did not protect against a bad PPD that was missing one or more standard Duplex options.
  • The PostScript filter did not mirror N-up output properly.
  • The ipptool program did not validate UTF-8 strings in XML output.
  • Fixed supply level reporting for some printers.
  • The scheduler no longer automatically logs debug messages for jobs that were held or canceled.
  • The cupsSendRequest function did not flush remaining response data from a previous request, leading to apparent chunking issues.
  • The scheduler did not report the correct version in the Server: header (STR #3903)
  • The scheduler did not support 1284 device IDs reported by driver interface programs longer than 127 characters (STR #3871)
  • The image filters did not support loading images larger than the RIPCache setting (STR #3901)
  • "PAGE: total NNN" messages did not get logged properly (STR #3887)
  • Updated the PWG Raster support to conform to the current draft of the PWG Raster Format specification.
  • The PWG Raster filter did not always write the correct number of padding lines on the bottom of the page (STR #3904)
  • When reporting a denial-of-service attack from the domain socket, the address reported does not always contain the correct path (STR #3888)
  • Badly formed GIF files could cause the image filters to crash (STR #3914)
  • Jobs canceled at the printer were retried by the IPP backend.
  • "cupsfilter -u" deleted the input file instead of the PPD file.
  • The scheduler did not compute the cost of PPD filters defined using the cupsFilter2 keyword properly.
  • The scheduler did not correctly support the maxsize() attribute for PPD filters.

New in version 1.5 RC1 (June 16th, 2011)

  • Compile fixes (STR #3849, STR #3850)
  • The scheduler didn't check for empty values for several configuration directives (STR #3861)
  • ipptool didn't generate valid XML when a test was skipped.
  • Added additional error checking to the 1284 device ID code (STR #3858)
  • Fixed some compatibility issues migrating from the old usblp backend to the libusb backend (STR #3860)
  • Fixed the wake-from-sleep printing behavior on Mac OS X.
  • The scheduler incorrectly allowed jobs to be held from a terminating state.
  • The cups-driverd program could crash when a PPD was renamed.
  • The dnssd backend took too long to discover printers on large or busy networks with the new default timeout used by lpinfo and the web interface. This resulted in "lost" printers.

New in version 1.5 Beta 2 (May 26th, 2011)

  • Documentation updates.
  • Localization updates (STR #3845)
  • Compiler warning cleanup.
  • Fixed PIE support for Linux (STR #3846)
  • Made httpSetTimeout API public and use it in the IPP backend to avoid timeout errors.
  • The scheduler incorrectly set the "authenticated" printer-type bit for remote queues using authentication.

New in version 1.5 Beta 1 (May 23rd, 2011)

  • The CUPS library now supports per-connection HTTP timeouts and callbacks.
  • The CUPS library now supports (limited) SSL/TLS X.509 certificate validation and revocation (STR #1616)
  • Updated the PostScript filter to support IncludeFeature in more circumstances (STR #3417)
  • The schedule did not correctly parse some IPv6 addresses and masks in the cupsd.conf file (STR #3533)
  • Fixed a case-insensitive string comparison issue for locales that do not treat "I" and "i" as equivalent (STR #3800)
  • The scheduler reported an incorrect job-printer-uri value when sharing was not enabled (STR #3639)
  • The scheduler now allows the ServerAlias directive to contain multiple hostnames separated by spaces or commas (STR #3813)
  • The scheduler now sets the process group for child processes and manages the group (STR #2829)
  • Fixed some minor issues discovered by a Coverity scan (STR #3838)
  • The scheduler now more carefully creates and removes configuration, cache, and state files (STR #3715)
  • The lpadmin command now allows default option values to be deleted (STR #2959)
  • The lpadmin command now allows the cupsIPPSupplies and cupsSNMPSupplies keywords to be set in a PPD file (STR #3825)
  • Moving a held job no longer releases it (STR #3839)
  • Restored support for GNU TLS and OpenSSL with threading enabled (STR #3605)
  • Fixed a confusing error message from cups-polld (STR #3806)
  • Increased the default RIPCache value to 128MB (STR #3535)
  • MIME errors are now routed to the error_log file (STR #2410)
  • Updated PDF filter to support new Ghostscript ps2write device (STR #3766)
  • Updated PDF filter to support new Poppler option to preserve page sizes in PDF files when the user has not selected a particular media size (STR #3689)
  • Added new PWG Raster filter for IPP Everywhere printer support.
  • Added job-uuid, printer-uuid, and subscription-uuid attributes.
  • Added support for the cupsSingleFile PPD keyword.
  • Dropped support for the printer-state-history attribute (STR #3654)
  • Added support for a new cupsIPPSupplies keyword in PPD files to allow drivers to disable IPP supply level reporting.
  • Added support for a new cupsFilter2 keyword in PPD files to allow for the propagation of the actual MIME media type produced by a filter.
  • The scheduler did not always get the correct Kerberos username when authenticating (STR #3670)
  • Added new cupsRasterOpenIO function and CUPS_RASTER_WRITE_PWG to the CUPS imaging library to support printing to IPP Everywhere raster printers.
  • The scheduler now provides default values for the pages-per-minute and pages-per-minute-color attributes for PPD files that lack a Throughput keyword.
  • Email notifications did not work on Mac OS X.
  • The cupstestppd program now shows an error for files missing a CloseGroup keyword (STR #3668)
  • Name resolution errors no longer cause queues to stop (STR #3719, STR #3753)
  • Added a new cups-exec helper program that applies security profiles to filters, port monitors, backends, CGI programs, and mini-daemons.
  • The web interface can now be disabled using the WebInterface directive in cupsd.conf (STR #2625)
  • The scheduler now provides privacy controls for jobs and subscriptions (STR #2969)
  • Added new cupsArrayNew3 API which offers memory management of array elements.
  • Added several new color spaces to the CUPS raster format (STR #3419)
  • The Validate-Job operation now uses the same policy as Print-Job by default.
  • CUPS now uses iconv to implement all of its character encoding support (STR #3097)
  • The scheduler now implements the Cancel-Jobs, Cancel-My-Jobs, and Close-Job operations along with the job-ids operation attribute from PWG 5100.11.
  • The main CUPS header () no longer includes the PPD header ().
  • The scheduler and CUPS API now support the print-quality job template attribute.
  • The scheduler no longer supports the old Mac OS X Server quota plugin.
  • The scheduler now allows writing to /Users/Shared from print filters on Mac OS X.
  • CUPS no longer supports the old ~/.cupsrc or ~/.lpoptions files from CUPS 1.1.x. The ~/.cups/client.conf and ~/.cups/lpoptions files that were introduced in CUPS 1.2 must now be used.
  • The ipptest tool is now a first-class user program and has several improvements along with new documentation (STR #3484)
  • The cupstestppd tool now warns about non-unique filenames and provides a way to ignore all filename warnings.
  • Dropped support for the recoverable: and recovered: message prefixes.
  • The scheduler now requires that filters and backends have group write permissions disabled.
  • The PPD compiler now checks for overlapping filenames when writing PPD files.
  • The HP-GL/2 filter is no longer included with CUPS (STR #3322)
  • The SCSI backend is no longer included with CUPS (STR #3500)

New in version 1.4.6 (January 7th, 2011)

  • Fixed a "make check" issue on Solaris (STR #3729)
  • Regression: The pstops filter did not support landscape printing of PostScript files (STR #3722)
  • The scheduler killed retried (fax) jobs after restarting them (STR #3697)
  • The cupsAdminSetServerSettings() function disabled sharing when debug logging was enabled (STR #3712)

New in version 1.4.5 (November 16th, 2010)

  • Fixes several scheduler and printing bugs as well as a reported security bug.

New in version 1.4.4 (June 18th, 2010)

  • Documentation updates (STR #3453, STR #3527, STR #3528, STR #3529)
  • Security: The texttops filter did not check the results of allocations (STR #3516)
  • Security: The fix for CVE-2009-3553 was incomplete (STR #3490)
  • Security: The web admin interface could disclose the contents of memory (STR #3577)
  • Security: CUPS could overwrite files as root in directories owned or writable by non-root users (STR #3510)
  • The cups-config utility did not return the correct linker options on AIX (STR #3587)
  • Fixed some IPP conformance issues with the scheduler's ippget-event-life, operations-supported, output-bin, and sides attributes (STR #3554)
  • The OpenSSL interfaces have been made thread-safe and the GNU TLS interface is explicitly forbidden when threading is enabled (STR #3461)
  • Fixed an IPP conformance issue with the scheduler's Send-Document implementation (STR #3514)
  • Added additional validation checks for the 1284 device ID (STR #3534)
  • Fixed a problem with the RPM spec file (STR #3544)
  • The lpstat command did not limit the job list to the specified printers (STR #3541)
  • The cupsfilter command did not set the RIP_MAX_CACHE environment variable (STR #3531)
  • Fixed support for media-col and page size variants (STR #3394)
  • The PostScript filter did not support all media selection options for the first page (STR #3525)
  • The scheduler did not always remove job control files (STR #3425)
  • The scheduler could crash on restart if classes were defined (STR #3524)
  • The scheduler no longer looks up network interface hostnames by default on Mac OS X (STR #3523)
  • ippWriteIO did not write collection (member) attributes properly in all cases (STR #3521)
  • The "cupsctl --remote-any" and corresponding web interface check box (allow printing from the Internet) did not work reliably (STR #3520)
  • The lpq and lpr commands would sometimes choose different default printers (STR #3503)
  • cupsDo*Request did not flush error text, leading to multiple issues (STR #3325, STR #3519)
  • cupsDoAuthentication did not cancel password authentication after 3 failures (STR #3518)
  • Fixed several LDAP browsing bugs (STR #3392)
  • The Dymo driver did not support copies (STR #3457)
  • The scheduler did not update the classes.conf file when deleting a printer belonging to a class (STR #3505)
  • The lppasswd command did not use localized password prompts (STR #3492)
  • The socket backend no longer waits for back-channel data on platforms other than Mac OS X (STR #3495)
  • The scheduler didn't send events when a printer started accepting or rejecting jobs (STR #3480)
  • The web interface now includes additional CSRF protection (STR #3498)

New in version 1.4.3 (March 31st, 2010)

  • SECURITY: The scheduler could try responding on a closed client connection, leading to a crash (STR #3200)
  • SECURITY: The lppasswd program allowed the localization files to be overridden when running in setuid mode (STR #3482)
  • Localization updates (STR #3352, STR #3409, STR #3422, STR #3452, STR #3473, STR #3502)
  • Documentation updates (STR #3451, STR #3504)
  • The IPP backend now sets the printer-state-message to "Ready to print." at the end of a successful job (STR #3460)
  • The PPD compiler did not correctly add the manufacturer to the output filename when using the "-m" option (STR #3469)
  • The IPP backend did not handle authentication properly for the Get- Printer-Attributes operation (STR 3458)
  • Getting SNMP values larger than 127 bytes did not work.
  • IPP conformance: Get-Jobs has a default value for requested-attributes (STR #3383)
  • cupsPrintFiles() did not report all errors (STR #3449)
  • cupsAddDest() could read freed memory (STR #3448)
  • The DBUS notifier did not build (STR #3447)
  • The scheduler would crash when an active printer was deleted.
  • The snmp backend did not work with some printers (STR #3413)
  • The web interface did not show the conflicting values when setting options (STR #3440)
  • Setting options in the web interface did not always work (STR #3439)
  • The scheduler did not use the Get-Job-Attributes policy for a printer (STR #3431)
  • The scheduler added two job-name attributes to each job object (STR #3428)
  • CSS files would not print (STR #3442)
  • The scheduler did not clean out completed jobs when PreserveJobHistory was turned off (STR #3425)
  • The web interface did not show completed jobs for a printer (STR #3436)
  • Authenticated printing did not always work when printing directly to a remote server (STR #3435)
  • The USB backend did not work on Solaris (STR #3423)
  • cupstestppd didn't catch problems with JobPatchFile definitions (STR #3421)
  • The socket backend could crash if a SNMP string had a negative length.
  • Fixed some termination issues with the USB backend on Mac OS X.
  • The side-channel APIs did not handle interrupts properly.
  • The network backends incorrectly cleared the media-empty-warning state.
  • The web interface did not allow users to successfully add serial printers (STR #3391)
  • cupsTempFd() did not work in some situations (STR #3382)
  • Some C API headers were missing C++ wrapper logic.
  • The PPD compiler did not localize single-language PPD options properly (STR #3386)
  • Modifying a printer from the web interface sometimes caused the wrong driver to be selected (STR #3418)
  • The scheduler did not handle out-of-memory conditions properly when loading a job (STR #3407)
  • When adding printers from the web interface, the dynamic updates of the device list made it hard to pick a device (STR #3406)
  • Fixed a typo in the web interface admin page template (STR 3403)
  • The web interface did not preserve the "printer is shared" state when modifying a printer (STR #3390)
  • The PPD compiler incorrectly inserted translations of empty strings (STR #3411)
  • The scheduler did not reset the SIGPIPE handler of child processes (STR #3399)
  • cupsGetNamedDest() incorrectly returned the default printer if the named printer did not exist (STR #3397)
  • Fixed a GNU TLS error handling bug (STR #3381)

New in version 1.4.2 (November 10th, 2009)

  • SECURITY: The CUPS web interface was vulnerable to several XSS and HTTP header/body attacks via attribute injection (STR #3367, STR #3401)
  • Fixed localization errors (STR #3359, STR #3372, STR #3380, STR #3387)
  • The documentation for classes.conf and printers.conf did not provide the correct instructions for manual changes (STR #3351)
  • The scheduler did not always rebuild printer cache files when the driver was changed (STR #3356)
  • The documentation makefile failed to install localizations when using newer versions of Bash (STR #3360)
  • The configure script did not use the --with-xinetd value for the default LPD configuration path (STR #3347)
  • The configure script incorrectly required glib for DBUS support (STR #3346)
  • The cupstestppd program incorrectly reported filters with bad permisssions as missing (STR #3363)
  • The cups.desktop file used the wrong locale names (STR #3358)
  • cupsSideChannelRead() did not return an error for short reads.
  • The installed PAM configuration file did not use the correct options with the pam_unix2 module (STR #3313)
  • The scheduler did not preserve default options that contained special characters (STR #3340)
  • The scheduler did not remove old pre-filters when updating a printer driver (STR #3342)
  • The HP/GL-2 filter did not check for early end-of-file (STR #3319)
  • The USB backend did not compile on some platforms (STR #3332)
  • cupsSideChannelSNMPWalk() could go into an infinite loop with broken SNMP implementations.

New in version 1.4.1 (September 12th, 2009)

  • Fixes several reported printing, web interface, PPD compiler, and CUPS API bugs.

New in version 1.4.0 (August 28th, 2009)

  • Adds over 67 changes and new features to CUPS 1.3.11, including improved Bonjour/DNS-SD support, supply level and status reporting for network printers via SNMP, an improved web interface, and the CUPS DDK tools.
  • Localization updates (STR #3223, STR #3246, STR #3248, STR #3250)
  • Documentation updates (STR #3225, STR #3230, STR #3242, STR #3260)
  • The --with-pdftops configure option did not accept a full path to the filter (STR #3278)
  • The banner filter did not position the back side image correctly (STR #3277)
  • The dnssd backend could crash (STR #3272)
  • The 1284 device ID sometimes contained trailing garbage (STR #3266)
  • The USB backend returned different URIs for some printers than in CUPS 1.3 (STR #3259)
  • The scheduler did not do local job-hold-until processing for remote queues (STR #3258)
  • The scheduler did not try all possible SSL certificates on Mac OS X.
  • The scheduler did not always remove a file descriptor when using the kqueue interface (STR #3256)
  • The scheduler did not protect against bad job control files in all cases (STR #3253)
  • The scheduler did not encode "+" in model names (STR #3254)
  • The web interface didn't show the default options (STR #3244)
  • The IPP and LPD backends needed print data before they would do an SNMP query.
  • Fixed a GNU TLS compatibility issue (STR #3231)
  • Fixed a HTML error in the add and modify printer web interface templates (STR #3229)
  • The scheduler did not minimize the number of printer state events that were generated by filter STATE: messages, which could lead to poor performance.
  • The USB backend on Mac OS X did not cleanly cancel a job.
  • The network backends now set the connecting-to-device printer-state- reasons value when looking up the address and copying the print data for consistency.
  • The scheduler now supports the com.apple.print.recoverable-warning reason on all platforms.

New in version 1.3.11 (July 3rd, 2009)

  • CUPS 1.3.11 fixes some scheduler and web interface issues and improves PDF printing.

New in version 1.4 RC1 (June 9th, 2009)

  • The PPD compiler documentation was missing information on localization (STR #3212)
  • The IPP backend now reconnects after every request when talking to printers that claim IPP support but only use HTTP/1.0.
  • The PPD compiler crashed when both "Resolution" and "Group foo Option Resolution" were specified in the .drv file.
  • The PPD compiler's #if/#elif/#else/#endif did not work for undefined variables (STR #3210)
  • Static libraries could not be installed by a non-root user on systems needing a ranlib program (STR #3209)
  • The scheduler incorrectly always tried to copy Kerberos credentials for print jobs.
  • Updated the Spanish localization (STR #3204)
  • The scheduler crashed when getting the default paper size from libpaper (STR #3205, STR #3206)
  • The PPD compiler now defines six variables: CUPS_VERSION, CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, CUPS_VERSION_PATCH, PLATFORM_NAME, and PLATFORM_ARCH (STR #3203)
  • Fixed a whitespace skipping bug in cupsRasterInterpretPPD.
  • The scheduler did not return HTTP 403 (Forbidden) for authenticated users that were not authorized to do IPP operations (STR #3193)
  • The scheduler did not report more than 8 Product strings from a PPD file. Some PPD files have as many as 24.
  • ppdOpen*() could crash if a keyword had no value string (something that cupstestppd looks for...)
  • cupsLangDefault() did not return the correct language on Mac OS X.
  • The Mac OS X USB backend did not handle aborted or stalled pipe conditions properly, which prevented drivers from ejecting partial pages when a job was canceled or held.

New in version 1.4 Beta 3 (May 20th, 2009)

  • Documentation fixes (STR #3044, STR #3057, STR #3153, STR #3158, STR #3173)
  • Added complete localizations for German, Japanese, Polish, and Russian and partial localizations for Chinese, Danish, Finnish, French, Italian, Korean, Norwegian, Portuguese, and Swedish (STR #3096, STR #3098, STR #3109, STR #3111, STR #3141)
  • Updated the configure check for -fstack-protector (STR #3198)
  • The network backends now correctly convert SNMP supply descriptions to UTF-8 encoding as needed.
  • The scheduler could crash when deleting an attribute (STR #3197)
  • The cups-driverd program did not detect symlink loops (STR #3185)
  • The EPSON 24-pin series driver should now feed the correct amount (STR #2624)
  • The scheduler now automatically logs the last N debug messages for failed print jobs.
  • You can now modify a raw print queue (STR #3133)
  • Fixed a number of ppdi issues and added a unit test to validate that ppdc + ppdi can generate and import the same data (STR #3152)
  • Moving jobs in the web interface now shows an error if you only have one printer or class added (STR #3094)
  • Since classes have never truly supported the printer-error-policy stuff added in CUPS 1.2, update the code to reflect the current reality and support only the retry-current-job policy for now (STR #3171)
  • Revised the password callback support (STR #2953)
  • ppdEmit*() did not choose between PageSize and PageRegion properly.
  • Make some fairly substantial changes to the Kerberos support code so that CUPS can work in multi-realm environments and does not require delegatable credentials. Shared printing still requires delegation, however "delegation by policy" can be enabled in the KDC to make this all work.
  • "AccessLogLevel actions" did not hide client-error-not-found errors.
  • AP_FIRST_InputSlot did not work with number-up.
  • cupsBackChannelRead() and cupsBackChannelWrite() could fail due to a lack of kernel buffers.
  • The IPP and LPD backends did not respond to side-channel requests while copying print data to a temporary file.
  • cupsWriteRequestData() flushed the output buffer unnecessarily, causing reduced performance in some situations.
  • If a CGI process died before sending its MIME headers, the request would hang on the client.
  • The printer/class/job search feature on the web interface did not work (STR #3132)
  • The scheduler did not write the printers out for classes.
  • CUPS-Get-PPDs did not work properly when filtering by language, product, or psversion (STR #3136)
  • The scheduler now kills job filters when it takes more than 30 seconds (configurable) to cancel or hold the job.
  • The cupstestppd program did not validate the capitalization of filenames in the PPD file.
  • The cupstestppd program did not validate the PageSize and PageRegion values.
  • The cups-deviced helper program could miss reporting some backend devices (STR #3108)
  • The cupsSideChannelSNMP* functions did not work.
  • The scheduler could consume 100% CPU when jobs were canceled.
  • Clicking on "Select Another Make/Manufacturer" in the web interface incorrectly added the printer (STR #3095)
  • The scheduler no longer uses programs with insecure file permissions.
  • httpAssembleURI*() did not escape backslashes in hostnames.
  • The dnssd backend did not unquote "full names" before creating the device URI.
  • The scheduler now supports JobRetryInterval values less than 10 seconds.
  • Updated the Spanish localization (STR #3090)
  • The scheduler did not redo Bonjour/DNS-SD registrations when updating them failed.
  • The "authenticated" policy incorrectly required authentication for status operations.
  • ppdOpen*() incorrectly loaded PPDs with multiple JobPatchFile keywords.
  • The network backends no longer report the SNMP "offline" or maintenance status bits since they are inconsistently implemented and often unreliable.
  • The scheduler no longer logs child processes killed via SIGKILL as "crashed".
  • The printer link shown on the "job moved" template was bad (STR #3085)
  • Updated the HTML templates to use the final HTML 4 DOCTYPE (STR #3086)
  • The scheduler did not track the "paused" reason properly if a printer had other reasons associated with it.
  • cupsSendRequest() did not clear old local certificate auth data.
  • The PPD compiler did not search for localization files properly (STR #3084)
  • cupsGetNamedDest() did not use the fallback default like cupsGetDests*() (STR #3082)
  • The scheduler now provides a LogTimeFormat directive to enable microseconds in the date and time that are logged.
  • The scheduler now provides a MultipleOperationTimeout directive to control the timeout for multi-file print jobs.
  • The configure script incorrectly allowed Avahi to be used for DNS-SD printer discovery (STR #3065)
  • The web interface and scheduler did not support URIs up to 1024 bytes in length (STR #3072)
  • Fixed pdftops issues with page sizes (STR #3063)
  • Fixed pdftops issues with Ghostscript (STR #3062)
  • The scheduler incorrectly registered default profiles for PostScript printers with no specified colorspace.
  • The scheduler incorrectly created an empty org.cups.printers.plist file on Mac OS X.
  • cupsGetPPD3() did not look for local PPDs in the right directory.
  • SNMP lookups via side-channel did not work for NULL-VALUE and and OCTET-STRING OIDs containing nul characters.
  • The libusb-based USB backend did not work.
  • The scheduler did not set the printer-commands attribute correctly for some PPDs.
  • The ppdi utility did not work.
  • The web interface no longer uses multi-part output with old or broken web browsers (STR #3049)
  • CUPS now conforms to the draft IPP/2.0 and IPP/2.1 specification.
  • Added a new cupsGetConflicts() API to get a list of conflicting options.
  • The PPD compiler didn't localize options or choices that did not have associated translation text (STR #3045)
  • Updated the Spanish localization (STR #3043)
  • Fixed build problems (STR #3040, STR #3047)
  • cupsResolveConflicts() did not resolve using the default option choice in some cases due to the mirror UIConstraints that are present in most PPD files.
  • The scheduler did not honor MIME type priorities.
  • The commandtops filter incorrectly used the JCLBegin code to end its jobs.
  • The default BrowseLocalProtocols value was not set properly.
  • Since the commandtops filter does not actually support ReportLevels all on its own, don't list that printer command by default for PS printers.
  • The scheduler did not give filters a chance to log errors or update printer attributes when a job was canceled.
  • The scheduler did not clear the "connecting-to-device" reason keyword when a job finished.

New in version 1.3.10 (April 17th, 2009)

  • The new release fixes 3 minor security issues as well as several printing and web interface bug fixes.
  • Documentation fixes (STR #2994, STR #2995, STR #3008, STR #3056, STR #3057)
  • SECURITY: The scheduler now protects against DNS rebinding attacks (STR #3118)
  • SECURITY: Fixed TIFF integer overflow in image filters (STR #3031)
  • The scheduler did not support the job-hold-until attribute with the Restart-Job operation (STR #3130)
  • SECURITY: The PNG image reading code did not validate the image size properly, leading to a potential buffer overflow (STR #2974)
  • The rastertohp driver did not set the 1-sided printing mode when needed (STR #3131)
  • Now use a wrapper program instead of our fork of the Xpdf code to support printing of PDF files. The new wrapper supports using Xpdf, poppler, or Ghostscript to convert PDF files to PostScript (STR #3129)
  • Long job names caused problems with some PJL printers (STR #3125)
  • The lpq command did not work when showing all destinations (STR #3117)
  • The scheduler used a codeset name of UTF8 which is not supported on Solaris (STR #3113)
  • cupsGetJobs() did not work with a NULL destination (STR #3107)
  • Fixed a localization problem for option choices (incorrectly) named "Custom" (STR #3106)
  • The fallback OpenSSL random number seeding would not work (STR #3079)
  • The scheduler might miss a child signal, causing high CPU usage.
  • The scheduler did not enforce quotas after the job history was unloaded (STR #3078)
  • The job-k-limit, job-page-limit, and job-quota-period attributes could not be set using the lpadmin command (STR #3077)
  • httpSeparateURI() did not error out on URIs with a missing port number after a colon.
  • Fixed a Valgrind-detected initialization error when creating a missing directory on startup.
  • The scheduler did not always read all of the HTTP headers from a CGI script/program.
  • The scheduler did not always set the "air" property in Bonjour/DNS-SD registrations.
  • The scheduler incorrectly compared Mac OS X UUIDs for access control, preventing access in certain configurations.
  • The IPP backend incorrectly reset the required authentication to Kerberos when authentication failed.
  • The scheduler no longer looks up the local hostname by default; turn on hostname lookups to restore the previous behavior.
  • The scheduler did not always load MIME type rules correctly (STR #3059)
  • The test page did not format correctly on A4 paper (STR #3060)
  • The web interface sometimes incorrectly redirected users to 127.0.0.1 (STR #3022)
  • cupsPrintFile*() did not send the document filename for single file submissions (STR #3055)
  • The scheduler did not update the member-names attribute when removing the last printer from a class.
  • The scheduler did not report PPD Products with parenthesis in them properly (STR #3046)
  • The wrong italic fonts were listed in the UTF-8 charset file for the text filter.
  • The backends did not return an OK status for the CUPS_SC_CMD_GET_BIDI side-channel command (STR #3029)
  • The scheduler did not purge jobs that were missing a time-at-creation attribute, indicating a bad job control file (STR #3030)
  • The "-o job-hold-until=week-end" option did not work properly (STR #3025)
  • The Solaris USB printer device does not support select or poll (STR #3028)
  • The scheduler would crash if you exceeded the MaxSubscriptions limit.
  • The lp "-H immediate" option did not specify that the job should not be held (STR #3013)
  • The scheduler did not support the "Connection: close" HTTP header (STR #3010)
  • The mailto notifier didn't terminate messages properly (STR #3011)
  • Backends could spin trying to read back-channel data (STR #3001)
  • The HP-GL/2 filter was using the wrong default colors (STR #2966)
  • The scheduler incorrectly allowed Get-Jobs operations without a printer-uri (STR #2996)
  • The compression option was not being encoded properly (STR #2997)
  • Added a missing character map for JIS-X0213/ShiftJIS.
  • The scheduler now rejects ATTR: messages with empty values.
  • The scheduler could consume all CPU handling closed connections (STR #2988)
  • Fixed some configure script bugs with rc/xinetd directories (STR #2970)
  • The Epson sample driver PPDs contained errors (STR #2979)

New in version 1.4 Beta 2 (December 16th, 2008)

  • Documentation updates (STR #2983, STR #2998, STR #3021)
  • The cupstestppd utility now validates the FileVersion and FormatVersion values in PPD files.
  • The default cupsd.conf file did not reflect the --with-local-protocols value set at compile-time (STR #3037)
  • The cupsGetPPD* APIs now create symlinks to local PPD files rather than copying them whenever possible.
  • Various performance optimizations in the string pool, dests, and options implementations.
  • The cupsGetDests* APIs now return the marker and printer-commands attributes.
  • Side-channel SNMP lookups would not work when cupsSNMPSupplies was set to False in the PPD file.
  • Localized the device descriptions for the SCSI, serial, and network backends (STR #3014)
  • Added a Spanish localization (STR #3015)
  • Added support for marker-low-levels and marker-high-levels attributes.
  • The scheduler could hang writing a long log line.
  • The cupsGetDevices() function now has an "include_schemes" parameter.
  • The lpinfo command now supports --include-schemes and --exclude-schemes options.
  • The CUPS-Get-PPDs operation now supports the include-schemes and exclude-schemes attributes.
  • The CUPS-Get-Devices operation now supports the include-schemes attribute.
  • The print filters now support a replacement for the fitplot option called "fit-to-page".
  • The LPD backend no longer tries to collect page accounting information since the LPD protocol does not allow us to prevent race conditions.
  • The scheduler did not save the last marker-change-time value.
  • Fixed a problem with printing to some IPP printers, including CUPS 1.1.x.
  • Fixed a redirection problem with the printer web page (STR #3012)
  • Fixed a PPD compiler problem with the loading of message catalogs (STR #2990)
  • Fixed a PPD compiler problem with the loading of .strings files (STR #2989)
  • The cupsfilter utility did not set the CONTENT_TYPE environment variable when running filters.
  • The scheduler now waits to allow system sleep until the jobs have all stopped.
  • The IPP, LPD, and socket backends used different "connecting" progress messages.

New in version 1.4 Beta 1 (October 28th, 2008)

  • Documentation updates (STR #2567)
  • The PPD compiler now allows local message catalogs to override the standard CUPS translations (STR #2642)
  • The ppdmerge command did not merge custom option strings (STR #2863)
  • The scheduler now supports the Hold-New-Jobs and Release-Held-New-Jobs operations; these are exposed via the cupsdisable and cupsenable commands (STR #2332)
  • The lpstat command is now much faster when displaying the status of a single printer (STR #2843)
  • The scheduler now caches information from PPD files to provide significantly faster startup time with large numbers of PPDs (STR #1293)
  • CUPS-Get-Driver now provides much better driver matching based on the IEEE-1284 device ID and make/model strings (STR #2707)
  • Now support the cupsSNMPSupplies keyword to control whether the network backends query the SNMP Printer MIB for supply levels.
  • Now support and use a new banner file format for better text support and easier customization (STR #2490)
  • The scheduler now sets the PRINTER_INFO and PRINTER_LOCATION environment variables from the corresponding IPP attributes.
  • The ippRead*() and ippWrite*() functions no longer use a stack-based buffer (STR #2388)
  • The CUPS-Add-Modify-Printer operation now allows you to set the printer-state-reasons attribute.
  • The "set printer options" page now supports auto-configuration of printer options (STR #1440)
  • The web interface now provides an advanced server settings form.
  • The web interface's "modify printer" pages now make it easier to change just one setting (STR #1919)
  • The scheduler now supports a plist PrintcapFormat.
  • The scheduler now supports multiple addresses in Allow and Deny lines, just like Apache (STR #2947)
  • Added CUPS_JOBTYPE environment variable for job filters so they know whether they are printing a banner or document file (STR #2799)
  • Added support for printer filtering by the cupsfilter command (STR #2562)
  • Added a SSLOptions directive to allow Windows clients to talk to CUPS in FIPS mode (STR #2827)
  • Renamed the accept and reject commands to cupsaccept and cupsreject; the old names are still available (STR #2936)
  • The locale/translate utility needed an update to work with Google (STR #2882)
  • The lpstat command now supports a -H option to display the default server (STR #2833)
  • The scheduler now supports a FatalErrors directive to control which errors should cause the scheduler to exit (STR #2536)
  • The scheduler now uses the php-cgi program if it is available (STR #2923)
  • The scheduler now supports a DefaultPaperSize directive (STR #2848)
  • The scheduler now passes the job-originating-host-name value to filters in the options argument (STR #2558)
  • CUPS now supports job tickets in PDF files (STR #2903)
  • Added a DBUS notifier (STR #2529)
  • The LPD mini-daemon now passes the document name when queuing print jobs (STR #2482)
  • The IPP backend did not relay com.apple.print.recoverable-message values.
  • The scheduler now supports a job-media-progress attribute to track the progress of individual pages.
  • The sample HP driver now supports A5 (STR #2798)
  • The CUPS web interface menu item now uses the xdg-open command, when available (STR #2724)
  • The cups-lpd program now supports the -h option (STR #2794)
  • The scheduler now sets the PAM_TTY parameter and the PAM_ESTABLISH_CRED credential flag (STR #2745)
  • The scheduler now logs unsuccessful requests to the error_log file as errors (STR #2616)
  • Added support for a "retry-current-job" error policy that retries the current job immediately when the backend encounters an error (STR #2555)
  • The scheduler now returns a "forbidden" error when a user correctly authenticates but does not have permission to continue further (STR #2101)
  • The scheduler now loads both the server and CA certificates (if present) from the ServerCertificate file (STR #2146)
  • New RSS subscriptions now create their feed files immediately (STR #2853)
  • Added support for a device-location attribute which provides the physical location of a printer device.
  • Added a cupsBackendReport() API which handles quoting of the device data by a backend.
  • Added support for custom options in the web interface (STR #1729)
  • Added support for Mozilla LDAP, reconnection to LDAP servers, and improved LDAP performance (STR #1962)
  • Added Solaris SMF support (STR #1477)
  • Added optional support for using TCP wrappers to limit access to CUPS (STR #263)
  • Added ppdPageSizeLimits API.
  • Added support for new cupsMediaQualifier2, cupsMediaQualifier3, cupsMinSize, and cupsMaxSize attributes.
  • Added cupsResolveConflicts and ppdInstallableConflict APIs.
  • Added support for new cupsUIConstraints and cupsUIResolver attributes for better option conflict detection and resolution.
  • Increased the maximum size of 1284 device ID strings to 256 bytes (STR #2877)
  • Added an AccessLogLevel directive to cupsd.conf to control what is logged to the access_log file.
  • The default LogLevel is now "warn" instead of "info" to reduce the amount of logging that is done to disk by default.
  • The PPD compiler did not include OID query keywords in PPD files (STR #2871)
  • The cups-driverd helper program now directly supports driver information files.
  • The USB backend now uses libusb when available (STR #1575)
  • Added ppdLocalizeAttr function to get the localized version of an attribute.
  • MIME types now support a priority() attribute (STR #2719)
  • The standard MIME types are now installed in DataDir/mime (STR #2719)
  • The lpoptions command now describes custom options and the necessary parameters (STR #2660)
  • The ppdmerge program did not support Simplified Chinese or Traditional Chinese language version strings (STR #2851)
  • The PPD compiler now supports localizable attributes (STR #2738)
  • The ppdpo utility now includes cupsIPPReasons values in the message catalogs it generates (STR #2754)
  • The PPD compiler now supports conditional directives (STR #2636)
  • The ppdc utility now supports a "-t" option to test PPD files (STR #2739)
  • The ppdc utility now supports a "-m" option to use the ModelName value as the output filename.
  • The ppdc utility now supports a FileName directive to set an alternate output filename (STR #2740)
  • The side-channel API now supports SNMP queries for the standard network backends.
  • Added a PageLogFormat directive to the cupsd.conf file to control the format of lines in the page_log file.
  • Filters can now send PPD: messages to stderr to set PPD keywords like DefaultPageSize while a job is printing.
  • Added a mdns backend for discovery and printing to printers that advertise themselves via DNS-SD (Bonjour)
  • The ipp, lpd, and socket backends now support DNS-SD service name resolution.
  • The scheduler now uses a single shared file descriptor for all DNS-SD registrations (STR #2674)
  • The ipp, lpd, and socket backends now support SNMP-based page accounting and supply level monitoring (STR #1655)
  • Added support for cupsPJLDisplay attribute to control what PJL commands are used to display the job information.
  • Driver information files can now be installed in /Library/Printers/PPDs.drv on Mac OS X.
  • The CUPS image library now supports reading images larger than 2GB.
  • The scheduler now delays writing config and state files to reduce disk activity (STR #2684)
  • The CUPS-Get-Devices operation now supports the exclude-schemes and timeout attributes to control which backends are polled and for how long.
  • The cups-deviced helper application now runs backends in parallel to get the list of devices faster.
  • Added --enable-pap configure option.
  • The default cupsd.conf file now includes an "authenticated" policy which requires authentication for remote print jobs.
  • Added support for Czech and Hungarian in PPD files (STR #2735, STR #2736)
  • The PPD compiler tools now support Mac OS X .strings files for localization (STR #2737)
  • ppdOpen*() now default the colorspace member to PPD_CS_N when no DefaultColorSpace attribute is present in the PPD file.
  • The build system has been updated to support separate installation of data, program, header, and library files.
  • All support libraries are now built as shared libraries by default.
  • The scheduler now manages ICC color profiles on Mac OS X.
  • The network backends (ipp, lpd, socket) now support SNMP-based supply and page count monitoring (STR #1655)
  • The lppasswd program is no longer installed setuid to root to make the default installation more secure.
  • Added a new ppdLocalizeMarkerName() function to get the localized version of a marker-names value.
  • The scheduler now provides the printer-dns-sd-name attribute for printers shared via DNS-SD/Bonjour.
  • The pdftops filter now executes the Xpdf or poppler pdftops utility to convert PDF files (STR #1471)
  • Bonjour printer registrations now advertise as local or global based on the current access policies for the printer.
  • cupsGetDests*() and cupsSetDests*() now track the last used printer preference on Mac OS X.
  • Added a new streaming request API (STR #2261)
  • Added a new cupsGetNamedDest() function to the CUPS library for faster printing with lp and lpr (STR #2638)
  • The scheduler now sets the PAM RHOST value on systems that support it (STR #2637)
  • The scheduler now sandboxes child processes when possible.
  • The Cancel-Job operation now supports a purge-job attriibute to purge a specified job.
  • ppdEmit* and ppdCollect* now use the NonUIOrderDependency attributes for custom option selections.
  • The web interface now enables/disables the printer sharing (formerly publishing) controls based on the server-is-sharing-printers state (STR #2233)
  • The scheduler now tracks printer sharing via the server-is-sharing-printers attribute, and manages LPD and SMB sharing as well (STR #2233)
  • The web interface now allows you to go back to the make/ manufacturer page if there is no matching printer driver on the model page (STR #2436)
  • The printer list now shows the default media, banner, and duplex options as well as the color and duplex capabilities of printers (STR #1175)
  • The web interface look-n-feel has been updated (STR #2492)
  • The scheduler now supports a CUPS-Get-Document operation that returns the specified print job document (STR #118)
  • The cupsfilter utility now supports a "-J jobid" option to filter the document from the specified job.
  • The scheduler (cupsd) now supports a new option (-t) to do a syntax check of the cupsd.conf file (STR #2003)
  • Added new cupsGetPPD3() API to allow applications to cache PPDs safely (STR #1473)
  • Added generic PostScript and PCL printer driver PPDs.

New in version 1.3.9 (October 27th, 2008)

  • SECURITY: The HP-GL/2 filter did not range check pen numbers.
  • SECURITY: The SGI image file reader did not range check 16-bit run lengths.
  • SECURITY: The text filter did not range check cpi, lpi, or column values.
  • Documentation updates.
  • The French web admin page was never updated.
  • The IPP backend did not retry print jobs when the printer reported itself as busy or unavailable.
  • The "Set Allowed Users" web interface did not handle trailing whitespace correctly.
  • The PostScript filter did not work with Adobe applications using custom page sizes.
  • The Mac OS X USB backend did not work with some printers that reported a bad 1284 device ID.
  • The scheduler incorrectly resolved the client connection address when HostNameLookups was set to Off.
  • The IPP backend incorrectly stopped the local queue if the remote server reported the "paused" state.
  • The cupsGetDests() function did not catch all types of request errors.
  • The scheduler did not always log "job queued" messages.
  • The scheduler did not support destination filtering using the printer-location attribute properly.
  • The scheduler did not send the server-started, server-restarted, or server-stopped events.
  • The scheduler no longer enforces configuration file permissions on symlinked files.
  • CUPS now reinitializes the DNS resolver on failures.
  • The CUPS desktop menu item was broken.
  • The PPD parser was too strict about missing keyword values in "relaxed" mode.
  • The PostScript filter incorrectly mirrored landscape documents.
  • The scheduler did not correctly update the auth-info-required value(s) if the AuthType was Default.
  • The scheduler required Kerberos authentication for all operations on remote Kerberized printers instead of just for the operations that needed it.
  • The socket backend could wait indefinitely for back- channel data with some devices.
  • PJL panel messages were not reset correctly on older printers.
  • cupsfilter used the wrong default path.
  • Fixed address matching for "BrowseAddress @IF(name)".
  • Fixed compiles on AIX.
  • Firefox 3 did not work with the CUPS web interface in SSL mode.
  • Custom options with multiple parameters were not emitted correctly.
  • Refined the cupstestppd utility.
  • ppdEmit*() did not support custom JCL options.
  • The cupstestppd utility incorrectly reported missing "en" base translations.

New in version 1.4SVN Release 7824 (August 4th, 2008)

  • New RSS subscriptions now create their feed files immediately (STR #2853)
  • notifier/rss.c: main(): Create RSS file at beginning of loop and use a "changed" flag so we can create missing RSS files in one place. Also add a 30 second idle timeout.
  • Scheduler/subscriptions.c: cupsdAddSubscription(): Start RSS notifiers immediately when added (doesn't auto-start when starting cupsd...).

New in version 1.3.7 (April 2nd, 2008)

  • CVE-2008-0047: cgiCompileSearch buffer overflow
  • CVE-2008-1373: CUPS GIF image filter overflow
  • Updated the "make check" tests to do a more thorough automated test.
  • cups-driverd complained about missing directories
  • cupsaddsmb would leave the Samba username and password on disk if no Windows drivers were installed
  • The Linux USB backend used 100% CPU when a printer was disconnected
  • The sample raster drivers did not properly handle SIGTERM
  • The scheduler sent notify_post() messages too often on Mac OS X.
  • Kerberos access to the web interface did not work
  • The scheduler did not support "AuthType Default" in IPP policies
  • The scheduler did not support the "HideImplicitMembers" directive as documented
  • "make check" didn't return a non-zero exit code on error
  • The scheduler incorrectly logged AUTH_foo environment variables in debug mode
  • The image filters inverted PBM files
  • cupsctl would crash if the scheduler was not running
  • The scheduler could crash when printing using a port monitor
  • The scheduler would crash if PAM was broken
  • The image filters did not work with some CMYK JPEG files produced by Adobe applications
  • 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
  • The scheduler incorrectly complained about missing LSB PPD directories.

New in version 1.3.6 (February 20th, 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 (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.

New in version 1.3.4 (November 22nd, 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".