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)
cupsAdminGetServerSettings() did not handle </Foo> properly.
When lprm and cancel are run with no job ID, they now will cancel the first stopped job if no pending or processing jobs are left in the queue.
The scheduler now logs successful print jobs, filter failures, and the job file types at the default log level (STR #2458)
The scheduler now logs the usernames it is using for authorization at LogLevel debug instead of debug2 (STR #2448)
Added Intellitech Intellibar and Zebra CPCL PPDs to the list of installed PPDs.
Added 6" and 8" wide label sizes for the Zebra ZPL Label Printer driver (STR #2442)
The cupsaddsmb program and web interface now support exporting of 64-bit Windows drivers, when available (STR #2439)
Moving a job that was printing did not stop the job on the original printer (STR #2262)
The cups-lpd mini-daemon did not work on Mac OS X server.
Added httpGetAuthString() and httpSetAuthString() APIs to get and set the current (cached) authorization string to use for HTTP requests.
Updated the default cupsd.conf policy to list the "administrative" operations separately from the "printer control" operations so that it is easier to define a group of users that are "printer operators".
The web interface now pulls the default cupsd.conf file from cupsd.conf.default in the CUPS config directory.
Added a help file for using Kerberos with CUPS.
The scheduler now strips the "@KDC" portion of Kerberos usernames since those usernames typically do not appear in the group membership lists used by CUPS.
cupsMarkOptions() could (incorrectly) leave multiple option choices marked.
Backends could (incorrectly) run as root during discovery (STR #2454)
Avahi is now supported for DNS-SD (Bonjour) printer sharing (STR #2455)
The default cupsd.conf file had typos and old operation names (STR #2450)
The scheduler now erases authentication cache files using the 7-pass US DoD algorithm.
Delegated Kerberos credentials (proxy authentication) did not work.
The filter makefile did not optimize the libcupsimage.2.dylib with a sectorder file.
The IPP backend incorrectly wrote an empty printer message when processing the "none" state reason.
The USB backend could deadlock on Mac OS X while performing a side-channel command.
The scheduler did not prevent remote queues from being shared/published.
The scheduler did not remove the temporary request file on authentication errors.
ppdLocalizeIPPReason() did not handle "scheme:" schemes or "file" URLs.
ppdLocalizeIPPReason() was not exported on Mac OS X.
CUPS now supports authentication via peer credentials over domain sockets (STR #2242, STR #2277)
The CUPS sample driver PPDs are now generated by the PPD compiler and include all of the localized languages by default (STR #2164)
You can now specify "AuthType Default" in the cupsd.conf file to use the default authentication defined by the DefaultAuthType directive.
The SNMP backend no longer adds a default Address line when none is specified in the snmp.conf file; this allows the backend to be easily disabled as needed (STR #2434)
Added a new cupsctl command for doing basic changes to the cupsd.conf file (STR #1777)
Added a new ppdLocalizeIPPReason() function to get the localized text/URI for a given IPP reason keyword for a driver.
Removed the deskjet2.ppd driver, as it only worked with a very small subset of HP DeskJet printers and was confusing to users. The rastertohp driver still supports the deskjet2.ppd options for existing queues.
The scheduler did not add a trailing banner page if a client did not specify the last document in a job (STR #1711)
The scheduler did not report Bonjour shared printers as remote printers (STR #2384)
Added new -R and -W options to the cupstestppd program for greater control over the testing of PPDs.
Added a new cupsGetServerPPD() function for getting an available PPD from the server (STR #2334)
Added a new cupsDoIORequest() function for reading and writing files via IPP requests (STR #2334)
Added a new CUPS_GET_PPD operation for getting an available PPD file on the server (STR #2334)
CUPS_GET_PPDS now reports multiple ppd-product values based on the PPD ModelName and Product strings (STR #2334, STR #2383)
CUPS_GET_PPDS now reports the PSVersion attributes from a PPD file in the ppd-psversion attribute (STR #2334)
CUPS_GET_PPDS now reports the cupsModelNumber attribute from a PPD file in the ppd-model-number attribute (STR #2383)
CUPS_GET_PPDS now reports a driver type string in the ppd-type attribute based on the cupsFax and cupsFilter attributes in a PPD file (STR #2383)
Added a new printer attribute called "cups-version" which reports the version of CUPS that is running (STR #2240)
backendRunLoop() now aborts immediately on SIGTERM if no data has been written yet (STR #2103)
Due to poor IPP support from the vendors, the SNMP backend no longer tries IPP connections; instead, it now uses a lookup file with fallback to port 9100 (socket://address) and 515 (lpd://address) printing (STR #2035, STR #2354)
The scheduler now recreates the CUPS log directory as needed (STR #2353)
cupsLangDefault() now maps new-style Apple locale names to the traditional ll_CC form (STR #2357)
Add new cupsArrayNew2() API to support hashed lookups of array elements (STR #2358)