CUPS 1.2 adds over 90 changes and new features to CUPS 1.1.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.
- Networking
- IPv6; CUPS now supports IPv6
connectivity when the host operating system
provides it
- Domain Sockets; CUPS now supports
the much faster UNIX domain sockets for local
printing
- Auto-SSL; CUPS now automatically
detects when a client is connecting with SSL
encryption, so it can support both unencrypted,
SSL-encrypted, and TLS-encrypted connections over
a single port
- Network Printer Discovery; CUPS can
now find printers on the LAN using SNMP
- Browsing
- LDAP Support; CUPS now supports
printer sharing via the Lightweight Directory
Access Protocol, version 3
- Printer Lease Times; The server's
BrowseTimeout value is now included
- Network Default Options; The server
now advertises a printer's default options such
as job-sheets, media, and so forth
- Network Default Printer; CUPS now
advertises server-default printers so that
clients can choose the correct default network
printer
- "Delete Printer" Message; CUPS now
sends a final "delete printer" message to all
clients when a printer is deleted, allowing for
extremely long BrowseTimeout values without
side-effects
- BrowseLocalOptions and
BrowseRemoteOptions Support; You can
configure CUPS to use specific IPP options for
local and remote printers, for example to
compress print jobs that are sent over a slow WAN
link
- BrowseLocalProtocols and
BrowseRemoteProtocols Support; You can
configure CUPS to use different protocols for
advertising local shared printers and discovering
remote shared printers
- Web Interface
- Improved Look and Feel; The web
interface has improved readability and a more
consistent design
- New Searchable On-Line Help; The
on-line help has been reorganized into
categorized articles and references and can be
searched
- Add This Printer; The administration
page offers a new Add This Printer
button for automatically-discovered printers,
making printer configuration even easier than
before
- Export Printers to Samba; The
administration page now offers an Export
Printers to Samba button and function which
allows administrators to export printer drivers
to Windows clients via Samba
- Change Settings; The administration
page offers a new simple server settings form for
controlling common configuration settings such as
printer sharing and remote administration
- Edit Configuration File; The
administration page now provides a form for
editing the cupsd.conf file from your
web browser
- View Log Files; The administration
page now provides access to the
access_log, error_log, and
page_log log files
- Searchable Classes, Jobs, and
Printers; the class, job, and printer pages
can now be searched and shown in ascending or
descending order, with the results displayed in
groups of 10
- Links for Class Members; When
viewing a printer class, we now provide
hyperlinks to each of the class members -
previously only the names were shown
- Print Self-Test Page; When the
printer driver supports the CUPS command file
format, you can now print the printer's self-test
page
- Clean Print Heads; When the printer
driver supports the CUPS command file format, you
can now clean the printer's heads
- Set Default Options; You can now set
the default options for a printer, including the
new operation and error policies (the previous
incarnation of this was confusingly called
"Configure Printer")
- Set Default Printer; You can now
make a printer the default printer on the
network
- Set Allowed Users; You can now set
the list of users and/or groups that are allowed
or not allowed to access a printer or class
- Cancel All Jobs; You can now cancel
all jobs on a printer or class
- Move Job; You can now move an active
job to a different printer or class
- Move All Jobs; You can now move all
active jobs to a different printer or class
- Per-Printer Sharing; You can now
share (Publish) or hide (Unpublish) printers
individually
- Show All Jobs; You can now view all
jobs in addition to just the active or completed
jobs
- IPP Support
- IPP Notifications; CUPS now supports
the complete IPP notification specification to
provide asynchronous event notification to
clients and users
- ippget Notification Scheme; CUPS now
supports the required
ippget
pull
method for event notification, allowing
applications to receive events asychronously
- mailto Notification Scheme; CUPS now
supports
mailto
recipients as
proposed by the Printer Working Group, allowing
users to receive event notifications via
email
- CUPS Extensions to IPP
Notifications; CUPS adds several server
events (start, stop, restart, and audit) that can
be monitored via the IPP notification
operations
- CUPS-Get-Printers Improvements; The
CUPS-Get-Printers operation now returns all
queues by default and filters the results based
on the
requesting-user-name
attribute
- Proxy Authentication; CUPS provides
the new CUPS-Authenticate-Job operation to
support proxy authentication of print jobs
- Unique Job IDs; CUPS maintains a new
job-uuid
attribute which provides a
unique identifier that can be used to track a job
on your network or anywhere in the world
- port-monitor; CUPS now supports the
per-printer
port-monitor
and
port-monitor-supported
attributes
for device-specific data/transport encoding
- printer-op-policy; CUPS supports new
printer-op-policy
and
printer-op-policy-supported
attributes which provide per-printer fine-grained
access control policies
- printer-error-policy; CUPS supports
new
printer-error-policy
and
printer-error-policy-supported
attributes which provide per-printer control over
job error handling
- printer-is-shared; CUPS supports a
new
printer-is-shared
attribute
which provides per-printer sharing
- printer-state-change-time; CUPS now
tracks the last time and date of a change to the
printer configuration, enabled/disabled state, or
accepting/rejecting state
- printer-uri-supported; CUPS now
reports the IP address or hostname used by the
client in the
printer-uri-supported
attribute - this prevents hostname resolution
issues on complex networks
- requested-attributes; CUPS now fully
supports limiting of attributes by name or group
- previously CUPS would only limit common
attributes and did not support attribute group
names
- Default Job Template Attributes;
CUPS now supports arbitrary default job template
attributes and applies them to print jobs as
needed
- which-jobs; The Get-Jobs operation
now supports a
which-jobs
value of
"all" to return all jobs regardless of state
- document-format-supported; The
document-format-supported
attribute
now reflects the formats that are actually
supported by the printer
- printer-type; The
printer-type
attribute now provides
bits for "not shared", "authenticated", and
"supports commands"
- Scheduler
- Remote Printer Caching; The scheduler
now maintains a remote printer cache so that
remote printers are not lost when the scheduler
or system is restarted
- Job Caching; The scheduler now
maintains a job cache so that completed jobs do
not need to be loaded into memory all of the time
- jobs are loaded and unloaded automatically for
optimum performance and memory usage
- Other Performance Improvements;
Thanks to new CUPS API interfaces, the schedule
now uses less memory, less CPU, and scales to
even larger installations
- Improved Logging; CUPS now logs the
IPP operation and status in in the
access_log file
- Policies; CUPS now provides
per-printer and server access control policies
based on IPP operations in addition to the
traditional location-based access control
available in previous releases
- DefaultAuthType; In conjunction with
the new policy support, CUPS now supports a
default authentication type that is used for IPP
operations requiring a username
- DefaultEncryption; When
authenticating a request, CUPS now uses the
DefaultEncryption
setting in
addition to any location or policy encryption
setting in effect
- Per-Printer
document-format-supported; CUPS now
maintains per-printer
document-format-supported
attributes
that reflect the formats that can be printed by a
particular printer
- Server-side Default Options; CUPS
now supports server-side default options for each
printer or class that are applied to new
jobs
- POSIX ACL Support; CUPS now uses
POSIX ACLs, when available, to allows multiple
system groups to be used for local certificate
authentication
- RunAsUser Removed; The insecure
RunAsUser mode has been removed in favor of OS
mechanisms such as SELinux
- Launchd Support; The schedule now
supports running via the MacOS X launchd program,
delaying cupsd startup until needed
- Dynamic Device Lookup; The scheduler
now queries the backends for devices as
needed - no more restarting to get new devices!
- Dynamic PPD/Printer Driver Lookup;
The scheduler now scans for PPD files and/or
printer drivers as needed - no more restarting
after installing drivers, and PPD files can be
generated dynamically!
- Port Monitor Support; CUPS now
supports "port monitor" filters between the
printer driver filters and backend to do printer-
and device-specific encoding and transport
functions.
- Multi-File Job Improvements; CUPS
now sends multi-file jobs in a single connection
to the printer or remote server, preserving the
order of jobs
- Environment Variable Support; The
scheduler now supports setting environment
variables for filters and CGI programs via the
Apache
PassEnv
and
SetEnv
directives
- Improved CGI Support; The scheduler
now supports more of the CGI/1.1
specification
- Log Files; Log files are now
accessible via HTTP requests using the
/conf/log/filename resource
- Power Management; The scheduler now
responds to power management events from the
operating system (currently MacOS X only)
- LPD Client Support
- Performance Improvements; CUPS no
longer loads every available printer before
accepting a print job
- Banner Support; Banner pages can now
be requested by an LPD client, with server-side
overrides as desired
- Multi-File Support; CUPS now creates
a single IPP job for multi-file LPD jobs
- Localization and Internationalization
- Command-Line Programs; All
command-line programs are now fully
localized
- Character Set Support; CUPS now
supports a wider range of character sets
including Big5 and Shift-JIS
- Globalized PPD Support; PPD files
can now contain multiple language
localizations
- Printer Drivers
- New Drivers; CUPS 1.2 adds Zebra
CPCL and EPL label printer drivers
- Driver Interfaces; CUPS now supports
driver interfaces which allow a driver to
advertise the printers it supports and
automatically generate the PPD file as
needed
- High-Definition Range Color; CUPS
1.2 adds 16-bit per channel color support
- Raster Compression; The CUPS raster
format has been updated to use data
compression for faster printing
- Extended Printer Attributes; The
CUPS raster format has been extended to support
additional per-page printer-specific
attributes
- Back-Channel Data Support; Printer
drivers can now read data back from the printer
device
- Custom PPD Options; PPD files can
now contain options that accept custom
values
- CUPS API
- Thread Safety; All of the CUPS API
is now thread-safe on systems that support POSIX
threads
- Performance Improvements; Many of
the existing APIs have been optimized for
speed
- Array API; The new array API
provides a generic array container and is used to
implement many of the new CUPS 1.2 features and
performance improvements
- Directory API; The new directory API
allows applications to portably list the contents
of a directory
- File API; The new file API supports
optionally-compressed file IO and simple socket
communications without the limitations of
stdio
- HTTP API; The HTTP API now provides
many new URI and address handling functions,
accessor functions to key
http_t
information, write-buffering functions, and large
file APIs
- IPP API; The IPP API now provides
functions to encode arbitrary options, add
octetString
attributes, create
common IPP requests, convert IPP status and
operation code values to/from strings, and read
and write IPP messages via callbacks.
- PPD API; The PPD API has been
updated with new functions to support reading
from CUPS files, localization of globalized PPD
files, emission of arbitrary ranges of options,
custom option support, enhanced JCL support, and
access to all options in the PPD file
- Error Handling; The CUPS API now
provides a convenience function to get the full
error message of the last request
- Back-Channel API; The new
back-channel API provides backends and filters
with access to information sent back from a
printer
- CUPS Imaging API
- Image API; The new image API
provides access to image files of arbitrary size
and is based on the CUPS 1.1.x private image
filter APIs
- Raster API; The raster API provides
new functions to read and write the version 2
raster page headers, and a new function to
generate a page header from marked PPD
options
- Scripting Support
- PHP Bindings; The PHP language
bindings have been revamped to be more consistent
with the CUPS API and are now officially
supported and installed by default if you have
PHP installed on your system