CUPS 1.4 adds over 67 changes and new features to CUPS 1.3.x. This page provides a high-level outline of these changes. If you have never used CUPS before, read the "Overview of CUPS" document instead.
accept and reject; the accept and reject commands have been officially renamed to cupsaccept and cupsreject. The old names are still supported via symlinks.
cupsdisable and cupsenable; the cupsdisable command now supports a --hold option to stop printing after the current job and the cupsenable command now supports a --release option to release pending jobs for printing.
cupsfilter; the cupsfilter program now supports filtering of already-queued print job files and can also run printer-specific filters specified in the PPD file.
cupstestdsc; the cupstestdsc utility has been improved to better detect problems with PostScript print files.
cupstestppd; the cupstestppd utility has been improved to test new PPD keywords and better detect impossible contraints.
lpadmin; the lpadmin command now supports options to hold and release new jobs on a printer or all printers.
lpoptions; the lpoptions command now describes custom options and their parameters.
lppasswd; the lppasswd program is no longer installed setuid by default.
lpstat; the lpstat command now supports a -H option to show the current default server and no longer slows down when a printer is specified.
Access control; the scheduler now supports multiple addresses in Allow and Deny lines. It also now returns a HTTP 403 (forbidden) status when a user authenticates successfully but is not allowed to perform an operation.
Access logging; the scheduler now supports an AccessLogLevel directive to control what is logged in the access_log file.
Configuration files; the default cupsd.conf file now provides an "authenticated" policy for easy authenticated sharing of printers.
Default LogLevel; the default LogLevel is now "warn" instead of "info".
Automatic debug logging; the scheduler now records up to the last N (default 200) debug messages for failed print jobs.
Default paper size; the scheduler now supports a DefaultPaperSize directive to override the default paper size defined by the locale or libpaper configuration.
Encryption support; the scheduler now supports a SSLOptions directive to optionally support Windows clients in "FIPS" mode. It also now loads both the server and CA certificates (if present) from the ServerCertificate file.
Error logging; the scheduler now logs unsuccessful operations as errors in the error_log file.
Error policies; the scheduler now supports a retry-current-job error policy that retries the current job immediately.
Fatal error handling; the scheduler now supports a FatalErrors directive to control which startup errors should be considered fatal.
Filter command-line; the scheduer now passes the job-originating-host-name attribute as a CUPS option to filters and backends.
Filter environment; the scheduler now includes CUPS_JOBTYPE, PRINTER_INFO, and PRINTER_LOCATION variables in the environment passed to filters and backends.
Job progress; the scheduler now supports a job-media-progress attribute to track the printing progress of each page.
MIME database; MIME types now support a priority attribute to override the default (alphabetical) rules of precedence.
Page logging; the scheduler now supports a PageLogFormat directive to control the format of the page_log file.
PAM support; the scheduler now sets more PAM attributes to better support third-party authentication schemes.
PDF job ticket support; the scheduler now supports cupsJobTicket comments at the beginning of PDF print jobs.
Performance tuning; the scheduler now coalesces configuration and state file changes to reduce the amount of disk activity and caches printer attributes to further reduce startup time.
Printcap support; the scheduler no longer clears the printcap file when shutting down, and can now create XML "plist" printcap files as well.
RSS subscriptions; the scheduler now starts the notifier for RSS subscriptions after creation so the feed is available immediately.
Sandbox support; the scheduler now runs child processes using restrictive policies on Mac OS X for improved security and job isolation.
Test option; the scheduler now supports a test mode via the "-t" option.
Device discovery; the cups-deviced helper now runs backends in parallel for faster discovery and streams the results of discovery as the backends provide them.
Driver development kit; the CUPS DDK is now a standard part of CUPS.
Driver information file support; the cups-driverd helper program now directly supports PPD compiler driver information files.
Dynamic PPD support; drivers can now set PPD keywords dynamically using PPD: messages.
Generic PostScript command filter; a new CUPS command file filter for PostScript printers provides auto-configuration, self-test page, and status and supply level reporting functions.
New printer drivers; new generic PostScript and PCL drivers provide improved support for laser printers, the CUPS DDK drivers offer support for many HP DesignJet printers, and new label drivers offer support for Seiko and Tharo label printers.
PJL support; the cupsPJLDisplay PPD attribute controls the PJL commands used to display the current user and job on the printer.
PPD compiler improvements; the PPD compiler now supports Mac OS X .strings files, OID query strings, conditional directives, long file names, and a test mode. It also fixes many other bugs from the CUPS DDK 1.2.3 release.
USB printer support; the usb backend now uses libusb when available to allow it to better work with third-party scanning and printing solutions.