2 <!-- SECTION: Getting Started -->
4 <TITLE>What's New in CUPS
1.2</TITLE>
8 <P>CUPS
1.2 adds over
90 changes and new features to CUPS
1.1.x.
9 This page provides a high-level outline of these changes. If you
10 have never used CUPS before, read the
<A
11 HREF=
"overview.html">"Overview of CUPS"</A> document instead.
</P>
13 <H2 CLASS=
"title"><A NAME=
"CHANGES">Changes in CUPS
1.2</A></H2>
20 <LI><EM>IPv6;
</EM> CUPS now supports IPv6
21 connectivity when the host operating system
24 <LI><EM>Domain Sockets;
</EM> CUPS now supports
25 the much faster UNIX domain sockets for local
28 <LI><EM>Auto-SSL;
</EM> CUPS now automatically
29 detects when a client is connecting with SSL
30 encryption, so it can support both unencrypted,
31 SSL-encrypted, and TLS-encrypted connections over
34 <LI><EM>Network Printer Discovery;
</EM> CUPS can
35 now find printers on the LAN using SNMP
</LI>
43 <LI><EM>LDAP Support;
</EM> CUPS now supports
44 printer sharing via the Lightweight Directory
45 Access Protocol, version
3</LI>
47 <LI><EM>Printer Lease Times;
</EM> The server's
48 BrowseTimeout value is now included
</LI>
50 <LI><EM>Network Default Options;
</EM> The server
51 now advertises a printer's default options such
52 as job-sheets, media, and so forth
</LI>
54 <LI><EM>Network Default Printer;
</EM> CUPS now
55 advertises server-default printers so that
56 clients can choose the correct default network
59 <LI><EM>"Delete Printer" Message;
</EM> CUPS now
60 sends a final
"delete printer" message to all
61 clients when a printer is deleted, allowing for
62 extremely long BrowseTimeout values without
65 <LI><EM>BrowseLocalOptions and
66 BrowseRemoteOptions Support;
</EM> You can
67 configure CUPS to use specific IPP options for
68 local and remote printers, for example to
69 compress print jobs that are sent over a slow WAN
72 <LI><EM>BrowseLocalProtocols and
73 BrowseRemoteProtocols Support;
</EM> You can
74 configure CUPS to use different protocols for
75 advertising local shared printers and discovering
76 remote shared printers
</LI>
81 <DT>Web Interface
</DT>
84 <LI><EM>Improved Look and Feel;
</EM> The web
85 interface has improved readability and a more
86 consistent design
</LI>
88 <LI><EM>New Searchable On-Line Help;
</EM> The
89 on-line help has been reorganized into
90 categorized articles and references and can be
93 <LI><EM>Add This Printer;
</EM> The administration
94 page offers a new
<VAR>Add This Printer
</VAR>
95 button for automatically-discovered printers,
96 making printer configuration even easier than
99 <LI><EM>Export Printers to Samba;
</EM> The
100 administration page now offers an
<VAR>Export
101 Printers to Samba
</VAR> button and function which
102 allows administrators to export printer drivers
103 to Windows clients via Samba
</LI>
105 <LI><EM>Change Settings;
</EM> The administration
106 page offers a new simple server settings form for
107 controlling common configuration settings such as
108 printer sharing and remote administration
</LI>
110 <LI><EM>Edit Configuration File;
</EM> The
111 administration page now provides a form for
112 editing the
<VAR>cupsd.conf
</VAR> file from your
115 <LI><EM>View Log Files;
</EM> The administration
116 page now provides access to the
117 <VAR>access_log
</VAR>,
<VAR>error_log
</VAR>, and
118 <VAR>page_log
</VAR> log files
</LI>
120 <LI><EM>Searchable Classes, Jobs, and
121 Printers;
</EM> the class, job, and printer pages
122 can now be searched and shown in ascending or
123 descending order, with the results displayed in
126 <LI><EM>Links for Class Members;
</EM> When
127 viewing a printer class, we now provide
128 hyperlinks to each of the class members -
129 previously only the names were shown
</LI>
131 <LI><EM>Print Self-Test Page;
</EM> When the
132 printer driver supports the CUPS command file
133 format, you can now print the printer's self-test
136 <LI><EM>Clean Print Heads;
</EM> When the printer
137 driver supports the CUPS command file format, you
138 can now clean the printer's heads
</LI>
140 <LI><EM>Set Default Options;
</EM> You can now set
141 the default options for a printer, including the
142 new operation and error policies (the previous
143 incarnation of this was confusingly called
144 "Configure Printer")
</LI>
146 <LI><EM>Set Default Printer;
</EM> You can now
147 make a printer the default printer on the
150 <LI><EM>Set Allowed Users;
</EM> You can now set
151 the list of users and/or groups that are allowed
152 or not allowed to access a printer or class
</LI>
154 <LI><EM>Cancel All Jobs;
</EM> You can now cancel
155 all jobs on a printer or class
</LI>
157 <LI><EM>Move Job;
</EM> You can now move an active
158 job to a different printer or class
</LI>
160 <LI><EM>Move All Jobs;
</EM> You can now move all
161 active jobs to a different printer or class
</LI>
163 <LI><EM>Per-Printer Sharing;
</EM> You can now
164 share (Publish) or hide (Unpublish) printers
167 <LI><EM>Show All Jobs;
</EM> You can now view all
168 jobs in addition to just the active or completed
175 <DD><OL START=
"31"></EM></LI>
177 <LI><EM>IPP Notifications;
</EM> CUPS now supports
178 the complete IPP notification specification to
179 provide asynchronous event notification to
180 clients and users
</LI>
182 <LI><EM>ippget Notification Scheme;
</EM> CUPS now
183 supports the required
<CODE>ippget
</CODE> pull
184 method for event notification, allowing
185 applications to receive events asychronously
</LI>
187 <LI><EM>mailto Notification Scheme;
</EM> CUPS now
188 supports
<CODE>mailto
</CODE> recipients as
189 proposed by the Printer Working Group, allowing
190 users to receive event notifications via
193 <LI><EM>CUPS Extensions to IPP
194 Notifications;
</EM> CUPS adds several server
195 events (start, stop, restart, and audit) that can
196 be monitored via the IPP notification
199 <LI><EM>CUPS-Get-Printers Improvements;
</EM> The
200 CUPS-Get-Printers operation now returns all
201 queues by default and filters the results based
202 on the
<CODE>requesting-user-name
</CODE>
205 <LI><EM>Proxy Authentication;
</EM> CUPS provides
206 the new CUPS-Authenticate-Job operation to
207 support proxy authentication of print jobs
</LI>
209 <LI><EM>Unique Job IDs;
</EM> CUPS maintains a new
210 <CODE>job-uuid
</CODE> attribute which provides a
211 unique identifier that can be used to track a job
212 on your network or anywhere in the world
</LI>
214 <LI><EM>port-monitor;
</EM> CUPS now supports the
215 per-printer
<CODE>port-monitor
</CODE> and
216 <CODE>port-monitor-supported
</CODE> attributes
217 for device-specific data/transport encoding
</LI>
219 <LI><EM>printer-op-policy;
</EM> CUPS supports new
220 <CODE>printer-op-policy
</CODE> and
221 <CODE>printer-op-policy-supported
</CODE>
222 attributes which provide per-printer fine-grained
223 access control policies
</LI>
225 <LI><EM>printer-error-policy;
</EM> CUPS supports
226 new
<CODE>printer-error-policy
</CODE> and
227 <CODE>printer-error-policy-supported
</CODE>
228 attributes which provide per-printer control over
229 job error handling
</LI>
231 <LI><EM>printer-is-shared;
</EM> CUPS supports a
232 new
<CODE>printer-is-shared
</CODE> attribute
233 which provides per-printer sharing
</LI>
235 <LI><EM>printer-state-change-time;
</EM> CUPS now
236 tracks the last time and date of a change to the
237 printer configuration, enabled/disabled state, or
238 accepting/rejecting state
</LI>
240 <LI><EM>printer-uri-supported;
</EM> CUPS now
241 reports the IP address or hostname used by the
242 client in the
<CODE>printer-uri-supported
</CODE>
243 attribute - this prevents hostname resolution
244 issues on complex networks
</LI>
246 <LI><EM>requested-attributes;
</EM> CUPS now fully
247 supports limiting of attributes by name or group
248 - previously CUPS would only limit common
249 attributes and did not support attribute group
252 <LI><EM>Default Job Template Attributes;
</EM>
253 CUPS now supports arbitrary default job template
254 attributes and applies them to print jobs as
257 <LI><EM>which-jobs;
</EM> The Get-Jobs operation
258 now supports a
<CODE>which-jobs
</CODE> value of
259 "all" to return all jobs regardless of state
</LI>
261 <LI><EM>document-format-supported;
</EM> The
262 <CODE>document-format-supported
</CODE> attribute
263 now reflects the formats that are actually
264 supported by the printer
</LI>
266 <LI><EM>printer-type;
</EM> The
267 <CODE>printer-type
</CODE> attribute now provides
268 bits for
"not shared",
"authenticated", and
269 "supports commands"</LI>
277 <LI><EM>Remote Printer Caching;
</EM> The scheduler
278 now maintains a remote printer cache so that
279 remote printers are not lost when the scheduler
280 or system is restarted
</LI>
282 <LI><EM>Job Caching;
</EM> The scheduler now
283 maintains a job cache so that completed jobs do
284 not need to be loaded into memory all of the time
285 - jobs are loaded and unloaded automatically for
286 optimum performance and memory usage
</LI>
288 <LI><EM>Other Performance Improvements;
</EM>
289 Thanks to new CUPS API interfaces, the schedule
290 now uses less memory, less CPU, and scales to
291 even larger installations
</LI>
293 <LI><EM>Improved Logging;
</EM> CUPS now logs the
294 IPP operation and status in in the
295 <VAR>access_log
</VAR> file
</LI>
297 <LI><EM>Policies;
</EM> CUPS now provides
298 per-printer and server access control policies
299 based on IPP operations in addition to the
300 traditional location-based access control
301 available in previous releases
</LI>
303 <LI><EM>DefaultAuthType;
</EM> In conjunction with
304 the new policy support, CUPS now supports a
305 default authentication type that is used for IPP
306 operations requiring a username
</LI>
308 <LI><EM>DefaultEncryption;
</EM> When
309 authenticating a request, CUPS now uses the
310 <CODE>DefaultEncryption
</CODE> setting in
311 addition to any location or policy encryption
312 setting in effect
</LI>
315 document-format-supported;
</EM> CUPS now
316 maintains per-printer
317 <CODE>document-format-supported
</CODE> attributes
318 that reflect the formats that can be printed by a
319 particular printer
</LI>
321 <LI><EM>Server-side Default Options;
</EM> CUPS
322 now supports server-side default options for each
323 printer or class that are applied to new
326 <LI><EM>POSIX ACL Support;
</EM> CUPS now uses
327 POSIX ACLs, when available, to allows multiple
328 system groups to be used for local certificate
331 <LI><EM>RunAsUser Removed;
</EM> The insecure
332 RunAsUser mode has been removed in favor of OS
333 mechanisms such as SELinux
</LI>
335 <LI><EM>Launchd Support;
</EM> The schedule now
336 supports running via the MacOS X launchd program,
337 delaying cupsd startup until needed
</LI>
339 <LI><EM>Dynamic Device Lookup;
</EM> The scheduler
340 now queries the backends for devices as
341 needed - no more restarting to get new devices!
</LI>
343 <LI><EM>Dynamic PPD/Printer Driver Lookup;
</EM>
344 The scheduler now scans for PPD files and/or
345 printer drivers as needed - no more restarting
346 after installing drivers, and PPD files can be
347 generated dynamically!
</LI>
349 <LI><EM>Port Monitor Support;
</EM> CUPS now
350 supports
"port monitor" filters between the
351 printer driver filters and backend to do printer-
352 and device-specific encoding and transport
355 <LI><EM>Multi-File Job Improvements;
</EM> CUPS
356 now sends multi-file jobs in a single connection
357 to the printer or remote server, preserving the
360 <LI><EM>Environment Variable Support;
</EM> The
361 scheduler now supports setting environment
362 variables for filters and CGI programs via the
363 Apache
<CODE>PassEnv
</CODE> and
364 <CODE>SetEnv
</CODE> directives
</LI>
366 <LI><EM>Improved CGI Support;
</EM> The scheduler
367 now supports more of the CGI/
1.1
370 <LI><EM>Log Files;
</EM> Log files are now
371 accessible via HTTP requests using the
372 <VAR>/conf/log/filename
</VAR> resource
</LI>
374 <LI><EM>Power Management;
</EM> The scheduler now
375 responds to power management events from the
376 operating system (currently MacOS X only)
</LI>
381 <DT>LPD Client Support
</DT>
384 <LI><EM>Performance Improvements;
</EM> CUPS no
385 longer loads every available printer before
386 accepting a print job
</LI>
388 <LI><EM>Banner Support;
</EM> Banner pages can now
389 be requested by an LPD client, with server-side
390 overrides as desired
</LI>
392 <LI><EM>Multi-File Support;
</EM> CUPS now creates
393 a single IPP job for multi-file LPD jobs
</LI>
398 <DT>Localization and Internationalization
</DT>
401 <LI><EM>Command-Line Programs;
</EM> All
402 command-line programs are now fully
405 <LI><EM>Character Set Support;
</EM> CUPS now
406 supports a wider range of character sets
407 including Big5 and Shift-JIS
</LI>
409 <LI><EM>Globalized PPD Support;
</EM> PPD files
410 can now contain multiple language
416 <DT>Printer Drivers
</DT>
419 <LI><EM>New Drivers;
</EM> CUPS
1.2 adds Zebra
420 CPCL and EPL label printer drivers
</LI>
422 <LI><EM>Driver Interfaces;
</EM> CUPS now supports
423 driver interfaces which allow a driver to
424 advertise the printers it supports and
425 automatically generate the PPD file as
428 <LI><EM>High-Definition Range Color;
</EM> CUPS
429 1.2 adds
16-bit per channel color support
</LI>
431 <LI><EM>Raster Compression;
</EM> The CUPS raster
432 format has been updated to use data
433 compression for faster printing
</LI>
435 <LI><EM>Extended Printer Attributes;
</EM> The
436 CUPS raster format has been extended to support
437 additional per-page printer-specific
440 <LI><EM>Back-Channel Data Support;
</EM> Printer
441 drivers can now read data back from the printer
444 <LI><EM>Custom PPD Options;
</EM> PPD files can
445 now contain options that accept custom
454 <LI><EM>Thread Safety;
</EM> All of the CUPS API
455 is now thread-safe on systems that support POSIX
458 <LI><EM>Performance Improvements;
</EM> Many of
459 the existing APIs have been optimized for
462 <LI><EM>Array API;
</EM> The new array API
463 provides a generic array container and is used to
464 implement many of the new CUPS
1.2 features and
465 performance improvements
</LI>
467 <LI><EM>Directory API;
</EM> The new directory API
468 allows applications to portably list the contents
471 <LI><EM>File API;
</EM> The new file API supports
472 optionally-compressed file IO and simple socket
473 communications without the limitations of
476 <LI><EM>HTTP API;
</EM> The HTTP API now provides
477 many new URI and address handling functions,
478 accessor functions to key
<CODE>http_t
</CODE>
479 information, write-buffering functions, and large
482 <LI><EM>IPP API;
</EM> The IPP API now provides
483 functions to encode arbitrary options, add
484 <CODE>octetString
</CODE> attributes, create
485 common IPP requests, convert IPP status and
486 operation code values to/from strings, and read
487 and write IPP messages via callbacks.
</LI>
489 <LI><EM>PPD API;
</EM> The PPD API has been
490 updated with new functions to support reading
491 from CUPS files, localization of globalized PPD
492 files, emission of arbitrary ranges of options,
493 custom option support, enhanced JCL support, and
494 access to all options in the PPD file
</LI>
496 <LI><EM>Error Handling;
</EM> The CUPS API now
497 provides a convenience function to get the full
498 error message of the last request
</LI>
500 <LI><EM>Back-Channel API;
</EM> The new
501 back-channel API provides backends and filters
502 with access to information sent back from a
508 <DT>CUPS Imaging API
</DT>
511 <LI><EM>Image API;
</EM> The new image API
512 provides access to image files of arbitrary size
513 and is based on the CUPS
1.1.x private image
516 <LI><EM>Raster API;
</EM> The raster API provides
517 new functions to read and write the version
2
518 raster page headers, and a new function to
519 generate a page header from marked PPD
524 <DT>Scripting Support
</DT>
527 <LI><EM>PHP Bindings;
</EM> The PHP language
528 bindings have been revamped to be more consistent
529 with the CUPS API and are now officially
530 supported and installed by default if you have
531 PHP installed on your system
</LI>