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 ippgetpull
		method for event notification, allowing
		applications to receive events asychronously
- mailto Notification Scheme; CUPS now
		supports mailtorecipients 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-nameattribute
- 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-uuidattribute 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-monitorandport-monitor-supportedattributes
		for device-specific data/transport encoding
- printer-op-policy; CUPS supports new
		printer-op-policyandprinter-op-policy-supportedattributes which provide per-printer fine-grained
		access control policies
- printer-error-policy; CUPS supports
		new printer-error-policyandprinter-error-policy-supportedattributes which provide per-printer control over
		job error handling
- printer-is-shared; CUPS supports a
		new printer-is-sharedattribute
		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-supportedattribute - 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-jobsvalue of
		"all" to return all jobs regardless of state
- document-format-supported; The
		document-format-supportedattribute
		now reflects the formats that are actually
		supported by the printer
- printer-type; The
		printer-typeattribute 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
		DefaultEncryptionsetting in
		addition to any location or policy encryption
		setting in effect
- Per-Printer
		document-format-supported; CUPS now
		maintains per-printer
		document-format-supportedattributes
		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 PassEnvandSetEnvdirectives
- 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_tinformation, write-buffering functions, and large
		file APIs
- IPP API; The IPP API now provides
		functions to encode arbitrary options, add
		octetStringattributes, 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