Merge changes from CUPS 1.4svn-r7874.
[thirdparty/cups.git] / CHANGES-1.3.txt
1 CHANGES-1.3.txt
2 ---------------
3
4 CHANGES IN CUPS V1.3.9
5
6         - Documentation updates (STR #2904)
7         - The scheduler required Kerberos authentication for
8           all operations on remote Kerberized printers instead
9           of just for the operations that needed it.
10         - The socket backend could wait indefinitely for back-
11           channel data with some devices.
12         - PJL panel messages were not reset correctly on older
13           printers (STR #2909)
14         - cupsfilter used the wrong default path (STR #2908)
15         - Fixed address matching for "BrowseAddress @IF(name)"
16           (STR #2910)
17         - Fixed compiles on AIX.
18         - Firefox 3 did not work with the CUPS web interface in SSL
19           mode (STR #2892)
20         - Custom options with multiple parameters were not emitted
21           correctly.
22         - Refined the cupstestppd utility.
23         - ppdEmit*() did not support custom JCL options (STR #2889)
24         - The cupstestppd utility incorrectly reported missing
25           "en" base translations (STR #2887)
26
27
28 CHANGES IN CUPS V1.3.8
29
30         - Documentation updates (STR #2785, STR #2861, STR #2862)
31         - The scheduler did not add the ending job sheet when the
32           job was released.
33         - The IPP backend did not relay marker-* attributes.
34         - The CUPS GNOME/KDE menu item was not localized for
35           Chinese (STR #2880)
36         - The CUPS GNOME/KDE menu item was not localized for
37           Japanese (STR #2876)
38         - The cupstestppd utility reported mixed line endings for
39           Mac OS and Windows PPD files (STR #2874)
40         - The pdftops filter did not print landscape orientation PDF
41           pages correctly on all printers (STR #2850)
42         - The scheduler did not handle expiring of implicit classes
43           or their members properly, leading to a configuration where
44           one of the members would have a short name (STR #2766)
45         - The scheduler and cupstestppd utilities did not support
46           cupsFilter and cupsPreFilter programs with spaces in their
47           names (STR #2866)
48         - Removed unused variables and assignments found by the
49           LLVM "clang" tool.
50         - Added NULL checks recommended by the LLVM "clang" tool.
51         - The scheduler would crash if you started a printer that
52           pointed to a backend that did not exist (STR #2865)
53         - The ppdLocalize functions incorrectly mapped all generic
54           locales to country-specific locales.
55         - The cups-driverd program did not support Simplified Chinese
56           or Traditional Chinese language version strings (STR #2851)
57         - Added an Indonesian translation (STR #2792)
58         - Fixed a timing issue in the backends that could cause data
59           corruption with the CUPS_SC_CMD_DRAIN_OUTPUT side-channel
60           command (STR #2858)
61         - The scheduler did not support "HostNameLookups" with all of
62           the boolean names (STR #2861)
63         - Fixed a compile problem with glibc 2.8 (STR #2860)
64         - The scheduler incorrectly filtered out queues with ACLs and
65           authentication.
66         - The PostScript filter did not support %%IncludeFeature lines
67           in the page setup section of each page (STR #2831)
68         - The scheduler did not generate printer-state events when the
69           default printer was changed (STR #2764)
70         - cupstestppd incorrectly reported a warning about the PPD format
71           version in some locales (STR #2854)
72         - cupsGetPPD() and friends incorrectly returned a PPD file for
73           a class with no printers.
74         - The member-uris values for local printers in a class returned
75           by the scheduler did not reflect the connected hostname or
76           port.
77         - The CUPS PHP extension was not thread-safe (STR #2828)
78         - The scheduler incorrectly added the document-format-default
79           attribute to the list of "common" printer attributes, which
80           over time would slow down the printing system (STR #2755,
81           STR #2836)
82         - The cups-deviced and cups-driverd helper programs did not set
83           the CFProcessPath environment variable on Mac OS X (STR #2837)
84         - "lpstat -p" could report the wrong job as printing (STR #2845)
85         - The scheduler would crash when some cupsd.conf directives
86           were missing values (STR #2849)
87         - The web interface "move jobs" operation redirected users to
88           the wrong URL (STR #2815)
89         - The Polish web interface translation contained errors
90           (STR #2815)
91         - The scheduler did not report PostScript printer PPDs with
92           filters as PostScript devices.
93         - The scheduler did not set the job document-format attribute
94           for jobs submitted using Create-Job and Send-Document.
95         - cupsFileTell() did not work for log files opened in append
96           mode (STR #2810)
97         - The scheduler did not set QUERY_STRING all of the time
98           for CGI scripts (STR #2781, STR #2816)
99         - The scheduler now returns an error for bad job-sheets
100           values (STR #2775)
101         - Authenticated remote printing did not work over domain
102           sockets (STR #2750)
103         - The scheduler incorrectly logged errors for print filters
104           when a job was canceled (STR #2806, #2808)
105         - The scheduler no longer allows multiple RSS subscriptions
106           with the same URI (STR #2789)
107         - The scheduler now supports Kerberized printing with
108           multiple server names (STR #2783)
109         - "Satisfy any" did not work in IPP policies (STR #2782)
110         - The CUPS imaging library would crash with very large
111           images - more than 16Mx16M pixels (STR #2805)
112         - The PNG image loading code would crash with large images
113           (STR #2790)
114         - The scheduler did not limit the total number of filters.
115         - The scheduler now ensures that the RSS directory has
116           the correct permissions.
117         - The RSS notifier did not quote the feed URL in the RSS
118           file it created (STR #2801)
119         - The web interface allowed the creation and cancellation
120           of RSS subscriptions without a username (STR #2774)
121         - Increased the default MaxCopies value on Mac OS X to
122           9999 to match the limit imposed by the print dialog.
123         - The scheduler did not reject requests with an empty
124           Content-Length field (STR #2787)
125         - The scheduler did not log the current date and time and
126           did not escape special characters in request URIs when
127           logging bad requests to the access_log file (STR #2788)
128
129
130 CHANGES IN CUPS V1.3.7
131
132         - CVE-2008-0047: cgiCompileSearch buffer overflow (STR #2729)
133         - CVE-2008-1373: CUPS GIF image filter overflow (STR #2765)
134         - Updated the "make check" tests to do a more thorough
135           automated test.
136         - cups-driverd complained about missing directories (STR
137           #2777)
138         - cupsaddsmb would leave the Samba username and password on
139           disk if no Windows drivers were installed (STR #2779)
140         - The Linux USB backend used 100% CPU when a printer was
141           disconnected (STR #2769)
142         - The sample raster drivers did not properly handle SIGTERM
143           (STR #2770)
144         - The scheduler sent notify_post() messages too often on
145           Mac OS X.
146         - Kerberos access to the web interface did not work
147           (STR #2748)
148         - The scheduler did not support "AuthType Default" in IPP
149           policies (STR #2749)
150         - The scheduler did not support the "HideImplicitMembers"
151           directive as documented (STR #2760)
152         - "make check" didn't return a non-zero exit code on
153           error (STR #2758)
154         - The scheduler incorrectly logged AUTH_foo environment
155           variables in debug mode (STR #2751)
156         - The image filters inverted PBM files (STR #2746)
157         - cupsctl would crash if the scheduler was not running
158           (STR #2741)
159         - The scheduler could crash when printing using a port
160           monitor (STR #2742)
161         - The scheduler would crash if PAM was broken (STR #2734)
162         - The image filters did not work with some CMYK JPEG files
163           produced by Adobe applications (STR #2727)
164         - The Mac OS X USB backend did not work with printers that
165           did not report a make or model.
166         - The job-sheets option was not encoded properly (STR #2715)
167         - The scheduler incorrectly complained about missing LSB
168           PPD directories.
169
170
171 CHANGES IN CUPS V1.3.6
172
173         - Documentation updates (STR #2646, STR #2647, STR #2649)
174         - Fixed a problem with the web interface "Use Kerberos
175           Authentication" check box (STR #2703)
176         - The scheduler unconditionally overwrote the printer-state-
177           message with "process-name failed" when a filter or backend
178           failed, preventing a useful error message from being shown
179           to the user.
180         - Policies on CUPS-Move-Job didn't work as expected (STR
181           #2699)
182         - The configure script only supported D-BUS on Linux
183           (STR #2702)
184         - The scheduler did not support </LimitExcept> (STR #2701)
185         - The scheduler did not reset the job-hold-until attribute
186           after a job's hold time was reached.
187         - The scheduler did not support printer supply attributes
188           (STR #1307)
189         - The Kerberos credentials provided by some Windows KDCs
190           were still too large - now use a dynamic buffer to
191           support credentials up to 64k in size (STR #2695)
192         - Printing a test page from the web interface incorrectly
193           defaulted to the "guest" user (STR #2688)
194         - The cupsEncodeOptions2() function did not parse multiple-
195           value attribute values properly (STR #2690)
196         - The scheduler incorrectly sent printer-stopped events for
197           status updates from the print filters (STR #2680)
198         - The IPP backend could crash when handling printer errors
199           (STR #2667)
200         - Multi-file jobs did not print to remote CUPS servers
201           (STR #2673)
202         - The scheduler did not provide the Apple language ID to
203           job filters.
204         - Kerberos authentication did not work with the web
205           interface (STR #2606, STR #2669)
206         - The requesing-user-name-allowed and -denied functionality
207           did not work for Kerberos-authenticated usernames (STR
208           #2670)
209         - CUPS didn't compile on HP-UX 11i (STR #2679)
210         - cupsEncodeOptions2() did not handle option values like
211           "What's up, doc?" properly.
212         - Added lots of memory allocation checks (Fortify)
213         - The scheduler would crash if it was unable to add a job
214           file (Fortify)
215         - ppdOpen*() did not check all memory allocations (Coverity)
216         - ippReadIO() did not check all memory allocations (Coverity)
217         - The PostScript filter did not detect read errors (Coverity)
218         - The scheduler did not check for a missing job-sheets-completed
219           attribute when sending an event notification (Coverity)
220         - "Set Printer Options" might not work with raw queues (Coverity)
221         - cupsRasterInterpretPPD() could crash on certain PostScript
222           errors (Coverity)
223         - The USB backend did not check for back-channel support
224           properly on all systems (Coverity)
225         - Fixed memory leaks in the GIF and PNM image loading code
226           (Coverity)
227         - Removed some dead code in the CUPS API and scheduler (Coverity)
228         - Fixed two overflow bugs in the HP-GL/2 filter (Coverity)
229         - Fixed another ASN1 string parsing bug (STR #2665)
230         - The RSS notifier directory was not installed with the
231           correct permissions.
232         - The standard CUPS backends could use 100% CPU while waiting
233           for print data (STR #2664)
234         - Filename-based MIME rules did not work (STR #2659)
235         - The cups-polld program did not exit if the scheduler crashed
236           (STR #2640)
237         - The scheduler would crash if you tried to set the port-monitor
238           on a raw queue (STR #2639)
239         - The scheduler could crash if a polled remote printer was
240           converted to a class (STR #2656)
241         - The web interface and cupsctl did not correctly reflect
242           the "allow printing from the Internet" state (STR #2650)
243         - The scheduler incorrectly treated MIME types as case-
244           sensitive (STR #2657)
245         - The Java support classes did not send UTF-8 strings to
246           the scheduler (STR #2651)
247         - The CGI code did not handle interrupted POST requests
248           properly (STR #2652)
249         - The PostScript filter incorrectly handled number-up when
250           the number of pages was evenly divisible by the number-up
251           value.
252         - The PDF filter incorrectly filtered pages when page-ranges
253           and number-up were both specified (STR #2643)
254         - The IPP backend did not handle printing of pictwps files
255           to a non-Mac CUPS server properly.
256         - The scheduler did not detect network interface changes
257           on operating systems other than Mac OS X (STR #2631)
258         - The scheduler now logs the UNIX error message when it
259           is unable to create a request file such as a print job.
260         - Added support for --enable-pie on Mac OS X.
261
262
263 CHANGES IN CUPS V1.3.5
264
265         - The SNMP backend did not check for negative string
266           lengths (STR #2589)
267         - The scheduler incorrectly removed auth-info attributes,
268           potentially leading to a loss of all options for a job.
269         - The scheduler stopped sending CUPS browse packets on a
270           restart when using fixed addresses (STR #2618)
271         - Fixed PDF filter security issues (CVE-2007-4352
272           CVE-2007-5392 CVE-2007-5393)
273         - Changing settings would always change the DefaultAuthType
274           and Allow lines (STR #2580)
275         - The scheduler would crash when submitting an undefined
276           format file from Samba with LogLevel debug2 (STR #2600)
277         - The scheduler did not use poll() when epoll() was not
278           supported by the running kernel (STR #2582)
279         - Fixed a compile problem with Heimdal Kerberos (STR #2592)
280         - The USB backend now retries connections to a printer
281           indefinitely rather than stopping the queue.
282         - Printers with untranslated JCL options were not exported
283           to Samba correctly (STR #2570)
284         - The USB backend did not work with some Minolta USB
285           printers (STR #2604)
286         - The strcasecmp() emulation code did not compile (STR
287           #2612)
288         - The scheduler would crash if a job was sent to an empty
289           class (STR #2605)
290         - The lpc command did not work in non-UTF-8 locales (STR
291           #2595)
292         - Subscriptions for printer-stopped events also received
293           other state changes (STR #2572)
294         - cupstestppd incorrectly reported translation errors for
295           the "en" locale.
296         - ppdOpen() did not handle custom options properly when the
297           Custom attribute appeared before the OpenUI for that
298           option.
299         - The scheduler could crash when deleting a printer or
300           listing old jobs.
301         - The Mac OS X USB backend did not allow for requeuing of
302           jobs submitted to a class.
303         - lpmove didn't accept a job ID by itself.
304         - The scheduler incorrectly removed job history information
305           for remote print jobs.
306         - The scheduler incorrectly sent the
307           "com.apple.printerListChanged" message for printer state
308           changes.
309         - The PostScript filter drew the page borders (when enabled)
310           outside the imageable area.
311         - The LPD and IPP backends did not default to the correct
312           port numbers when using alternate scheme names.
313         - The scheduler incorrectly deleted hardwired remote
314           printers on system sleep.
315         - The scheduler would abort if a bad browse protocol name
316           was listed in the cupsd.conf file.
317         - The online cupsd.conf help file incorrectly showed
318           "dns-sd" instead of "dnssd" for Bonjour sharing.
319         - The scheduler could crash changing the port-monitor value.
320         - The scheduler generated CoreFoundation errors when run as
321           a background process.
322         - When printing with number-up > 1, it was possible to get
323           an extra blank page.
324
325
326 CHANGES IN CUPS V1.3.4
327
328         - Documentation updates (STR #2560, STR #2563, STR #2569)
329         - CUPS now maps the "nb" locale to "no" on all platforms
330           (STR #2575)
331         - CUPS did not work with a Windows 2003 R2 KDC (STR #2568)
332         - ippReadIO() could read past the end of a buffer (STR
333           #2561)
334         - The scheduler would crash on shutdown if it was unable
335           to create a Kerberos context.
336         - Multiple AuthTypes in cupsd.conf did not work (STR
337           #2545)
338         - The snmp.conf file referenced the wrong man page (STR
339           #2564)
340         - The cupsaddsmb program didn't handle domain sockets
341           properly (STR #2556)
342         - The scheduler now validates device URIs when adding
343           printers.
344         - Updated httpSeparateURI() to support hostnames with
345           the backslash character.
346         - Updated the Japanese localization (STR #2546)
347         - The parallel backend now gets the current IEEE-1284
348           device ID string on Linux (STR #2553)
349         - The IPP backend now checks the job status at
350           variable intervals (from 1 to 10 seconds) instead
351           of every 10 seconds for faster remote printing
352           (STR #2548)
353         - "lpr -p" and "lpr -l" did not work (STR #2544)
354         - Compilation failed when a previous version of CUPS
355           was installed and was included in the SSL include
356           path (STR #2538)
357         - The scheduler did not reject requests with charsets
358           other than US-ASCII or UTF-8, and the CUPS API
359           incorrectly passed the locale charset to the scheduler
360           instead of UTF-8 (STR #2537)
361         - cups-deviced did not filter out duplicate devices.
362         - The AppleTalk backend incorrectly added a scheme
363           listing when AppleTalk was disabled or no printers
364           were found.
365         - The PostScript filter generated N^2 copies when the
366           printer supported collated copies and user requested
367           reverse-order output.
368         - The scheduler did not reprint all of the files in a
369           job that was held.
370         - The scheduler did not update the printcap file after
371           removing stale remote queues.
372         - The cupsd.conf man page incorrectly referenced
373           "AuthType Kerberos" instead of "AuthType Negotiate".
374
375
376 CHANGES IN CUPS V1.3.3
377
378         - The scheduler did not use the attributes-natural-language
379           attribute when passing the LANG environment variable to
380           cups-deviced or cups-driverd.
381         - The scheduler did not use the printer-op-policy when
382           modifying classes or printers (STR #2525)
383         - The auth-info-required attribute was not always updated
384           for remote queues that required authentication.
385         - The German web interface localization contained errors
386           (STR #2523)
387         - The Swedish localization contained errors (STR #2522)
388
389
390 CHANGES IN CUPS V1.3.2
391
392         - The 1.3.1 release was incorrectly created from the
393           1.4.x source tree (STR #2519)
394         - Added support for 32/64-bit libraries on HP-UX
395           (STR #2520)
396         - The scheduler incorrectly used portrait as the default
397           orientation (STR #2513)
398         - The scheduler no longer writes the printcap file for
399           every remote printer update (STR #2512)
400         - Remote raw printing with multiple copies did not work
401           (STR #2518)
402         - Updated the configure script to require at least autoconf
403           2.60 (STR #2515)
404         - Some gzip'd PPD files were not read in their entirety
405           (STR #2510)
406
407
408 CHANGES IN CUPS V1.3.1
409
410         - Documentation updates.
411         - The USB backend on Mac OS X could hang if the driver and
412           printer did not match.
413         - Delegated Kerberos credentials were not working.
414         - "make distclean" incorrectly removed the edit-config.tmpl
415           files (STR #2508)
416         - Fix compile problem on HP-UX (STR #2501)
417         - The cupstestppd utility now tests for resolutions greater
418           than 99999 DPI to detect a missing  "x" between the X and Y
419           resolutions.
420         - Fixed many problems in the various translations and added
421           a new "checkpo" utility to validate them.
422         - The cupstestppd utility now tests the custom page size code
423           for CUPS raster drivers.
424         - cupsLangDefault() did not attempt to return a language that
425           was supported by the calling application.
426         - If a remote printer stopped while a job was being sent, the
427           local queue would also get stopped and the job re-queued,
428           resulting in duplicate prints in some cases.
429         - A few Apple-specific job options needed to be omitted when
430           printing a banner page.
431         - The new peer credential support did not compile on FreeBSD
432           (STR #2495)
433         - Direct links to help files did not set the current section
434           so the table-of-contents was not shown.
435         - The configure script did not support --localedir=foo (STR #2488)
436         - The backends were not displaying their localized messages.
437         - CUPS-Authenticate-Job did not require Kerberos authentication
438           on queues protected by Kerberos.
439         - The Zebra ZPL driver did not work with Brady label printers
440           (STR #2487)
441         - Norwegian wasn't localized on Mac OS X.
442         - getnameinfo() returns an error on some systems when DNS is
443           not available, leading to numerous problems (STR #2486)
444         - The cupsfilter command did not work properly on Mac OS X.
445         - The scheduler makefile contained a typo (STR #2483)
446         - The TBCP and BCP port monitors did not handle the trailing
447           CTRL-D in some PostScript output properly.
448         - Fixed the localization instructions and German template for
449           the "Find New Printers" button (STR #2478)
450         - The web interface did not work with the Chinese localization
451           (STR #2477)
452         - The web interface home page did not work for languages that
453           were only partially localized (STR #2472)
454         - Updated the Spanish web interface localization (STR #2473)
455         - ppdLocalize() did not work for country-specific localizations.
456
457
458 CHANGES IN CUPS V1.3.0
459
460         - The scheduler did not handle out-of-file conditions
461           gracefully when accepting new connections, leading to
462           heavy CPU usage.
463         - The scheduler did not detect ServerBin misconfigurations
464           (STR #2470)
465         - "AuthType Default" did not work as expected when the
466           "DefaultAuthType foo" line appeared after it in the
467           cupsd.conf file.
468         - The on-line help did not describe many common printing
469           options (STR #1846)
470         - The IPP backend did not return the "auth required" status
471           when printing to a Kerberos-protected queue.
472         - The scheduler was not looking in the correct directories
473           for LSB PPD files (STR #2464)
474         - Changed references to ESP Ghostscript to GPL Ghostscript
475           (STR #2463)
476         - The PostScript filter did not cleanly terminate when
477           the job was canceled or stopped.
478         - Fixed generation of Kerberos credentials for remote
479           printing.  Note that this requires a recent version of
480           MIT Kerberos with a working krb5_cc_new_unique()
481           function or Heimdal Kerberos.
482         - Added Portuguese and updated Italian message catalogs.
483
484
485 CHANGES IN CUPS V1.3rc2
486
487         - Added more range checking to the pdftops filter. 
488         - The scheduler would crash if a remote IPP queue was stopped
489           (STR #2460)
490         - The scheduler did not allow "DefaultAuthType None".
491
492
493 CHANGES IN CUPS V1.3rc1
494
495         - Updated the German localization (STR #2443)
496         - cupsAdminGetServerSettings() did not handle </Foo> properly.
497         - When lprm and cancel are run with no job ID, they now will
498           cancel the first stopped job if no pending or processing
499           jobs are left in the queue.
500         - The scheduler now logs successful print jobs, filter
501           failures, and the job file types at the default log
502           level (STR #2458)
503         - The scheduler now logs the usernames it is using for
504           authorization at LogLevel debug instead of debug2 (STR #2448)
505         - Added Intellitech Intellibar and Zebra CPCL PPDs to the list
506           of installed PPDs.
507         - Added 6" and 8" wide label sizes for the Zebra ZPL Label
508           Printer driver (STR #2442)
509         - The cupsaddsmb program and web interface now support
510           exporting of 64-bit Windows drivers, when available
511           (STR #2439)
512         - Moving a job that was printing did not stop the job on the
513           original printer (STR #2262)
514         - The cups-lpd mini-daemon did not work on Mac OS X server.
515         - Added httpGetAuthString() and httpSetAuthString() APIs to get
516           and set the current (cached) authorization string to use for
517           HTTP requests.
518         - Updated the default cupsd.conf policy to list the
519           "administrative" operations separately from the "printer
520           control" operations so that it is easier to define a
521           group of users that are "printer operators".
522         - The web interface now pulls the default cupsd.conf file
523           from cupsd.conf.default in the CUPS config directory.
524         - Added a help file for using Kerberos with CUPS.
525         - The scheduler now strips the "@KDC" portion of Kerberos
526           usernames since those usernames typically do not appear in
527           the group membership lists used by CUPS.
528         - cupsMarkOptions() could (incorrectly) leave multiple option
529           choices marked.
530         - Backends could (incorrectly) run as root during discovery
531           (STR #2454)
532         - Avahi is now supported for DNS-SD (Bonjour) printer sharing
533           (STR #2455)
534         - The default cupsd.conf file had typos and old operation names
535           (STR #2450)
536         - The scheduler now erases authentication cache files using the
537           7-pass US DoD algorithm.
538         - Delegated Kerberos credentials (proxy authentication) did not
539           work.
540         - The filter makefile did not optimize the libcupsimage.2.dylib
541           with a sectorder file.
542         - The IPP backend incorrectly wrote an empty printer message
543           when processing the "none" state reason.
544         - The USB backend could deadlock on Mac OS X while performing
545           a side-channel command.
546         - The scheduler did not prevent remote queues from being
547           shared/published.
548         - The scheduler did not remove the temporary request file on
549           authentication errors.
550         - ppdLocalizeIPPReason() did not handle "scheme:" schemes or
551           "file" URLs.
552         - ppdLocalizeIPPReason() was not exported on Mac OS X.
553
554
555 CHANGES IN CUPS V1.3b1
556
557         - Copyright updates - CUPS is now owned by Apple Inc.
558         - Documentation updates (STR #1775, STR #2027, STR #2130,
559           STR #2131, STR #2263, STR #2356, STR #2397)
560         - Added new cupsfilter utility (STR #1734)
561         - Added new job-printer-state-message and
562           job-printer-state-reasons attributes to jobs (STR #2418)
563         - Added LDAP+SSL support (STR #1967)
564         - CUPS now supports authentication via peer credentials
565           over domain sockets (STR #2242, STR #2277)
566         - The CUPS sample driver PPDs are now generated by the PPD
567           compiler and include all of the localized languages by
568           default (STR #2164)
569         - You can now specify "AuthType Default" in the cupsd.conf
570           file to use the default authentication defined by the
571           DefaultAuthType directive.
572         - The SNMP backend no longer adds a default Address line
573           when none is specified in the snmp.conf file; this allows
574           the backend to be easily disabled as needed (STR #2434)
575         - Added a new cupsctl command for doing basic changes to
576           the cupsd.conf file (STR #1777)
577         - Added a new ppdLocalizeIPPReason() function to get the
578           localized text/URI for a given IPP reason keyword for a
579           driver.
580         - Removed the deskjet2.ppd driver, as it only worked with
581           a very small subset of HP DeskJet printers and was
582           confusing to users.  The rastertohp driver still
583           supports the deskjet2.ppd options for existing queues.
584         - The scheduler did not add a trailing banner page if a
585           client did not specify the last document in a job (STR
586           #1711)
587         - The scheduler did not report Bonjour shared printers as
588           remote printers (STR #2384)
589         - Added new -R and -W options to the cupstestppd program
590           for greater control over the testing of PPDs.
591         - Added a new cupsGetServerPPD() function for getting
592           an available PPD from the server (STR #2334)
593         - Added a new cupsDoIORequest() function for reading
594           and writing files via IPP requests (STR #2334)
595         - Added a new CUPS_GET_PPD operation for getting an
596           available PPD file on the server (STR #2334) 
597         - CUPS_GET_PPDS now reports multiple ppd-product values
598           based on the PPD ModelName and Product strings (STR
599           #2334, STR #2383)
600         - CUPS_GET_PPDS now reports the PSVersion attributes
601           from a PPD file in the ppd-psversion attribute
602           (STR #2334)
603         - CUPS_GET_PPDS now reports the cupsModelNumber attribute
604           from a PPD file in the ppd-model-number attribute (STR
605           #2383)
606         - CUPS_GET_PPDS now reports a driver type string in the
607           ppd-type attribute based on the cupsFax and cupsFilter
608           attributes in a PPD file (STR #2383)
609         - Added a new printer attribute called "cups-version"
610           which reports the version of CUPS that is running
611           (STR #2240)
612         - backendRunLoop() now aborts immediately on SIGTERM
613           if no data has been written yet (STR #2103)
614         - Due to poor IPP support from the vendors, the SNMP
615           backend no longer tries IPP connections; instead,
616           it now uses a lookup file with fallback to port 9100
617           (socket://address) and 515 (lpd://address) printing
618           (STR #2035, STR #2354) 
619         - The scheduler now recreates the CUPS log directory as
620           needed (STR #2353)
621         - cupsLangDefault() now maps new-style Apple locale names
622           to the traditional ll_CC form (STR #2357)
623         - Add new cupsArrayNew2() API to support hashed lookups
624           of array elements (STR #2358)
625         - ppdConflicts() optimizations (STR #2358)
626         - The cupstestppd program now tests for existing filters,
627           icons, profiles, and dialog extensions (STR #2326)
628         - The web interface no longer lists new printers on the
629           main administration page.  Instead, a new "List Available
630           Printers" button is provided that shows a separate page
631           with the list of printers.
632         - The web interface now supports setting the banner and
633           policy options on raw printers and classes (STR #2238)
634         - The socket backend now reads any pending back-channel
635           data before shutting down the socket (STR #2325)
636         - Added a new ErrorPolicy directive in the cupsd.conf
637           file (STR #1871)
638         - Printers that use JCL options are now exported to Samba
639           correctly (STR #1985)
640         - The IPP backend now relays printer-state-message values
641           from the server to the client (STR #2109)
642         - Added support for the PWG printer-alert and
643           printer-alert-description attributes (STR #2088)
644         - Added support for LPD "stream" mode (STR #2036)
645         - The scheduler now reports the PostScript product string
646           from PPD files in CUPS-Get-PPDs responses (STR #1900)
647         - Raw printing with queues pointing to the file pseudo-
648           device and multiple files and/or banners now works (STR
649           #1933)
650         - Added new public cupsAdminGetServerSettings() and
651           cupsAdminSetServerSettings() APIs.
652         - Added new "makebuttons" script in the "tools" directory
653           for creating web interface buttons (STR #2231)
654         - Added support for DNS-SD (aka "Bonjour") printer sharing
655           (STR #1171)
656         - Job operations (cancel, hold, release, etc.) from the
657           web interface now return back to the original page (STR
658           #2239)
659         - The classes or printers list is now shown after a
660           successful deletion from the web interface (STR #1999)
661         - The default configuration now allows browse packets from
662           any address (STR #2008)
663         - The web interface now provides an "allow printing from the
664           Internet" check box (STR #1897)
665         - The notify-events-default and
666           notify-lease-duration-default attributes can now be set
667           (STR #1671)
668         - Server-side default options are now sent to clients when
669           the "printer-defaults" attribute group is requested (STR
670           #1923)
671         - Added support for Linux "relro" linker option (STR #1614)
672         - CUPS now validates the number-up option value (STR #1329)
673         - The on-line help now provides better search capabilities
674           (STR #1701)
675         - The web interface "Add This Printer" button now allows you
676           to change the printer name, description,  and location
677           (STR #1646)
678         - Added support for Mac OS X authorization services
679           (STR #2206)
680         - Added support for driver-specific pre-filters (STR #2108)
681         - Added a new side-channel API for drivers and backends
682           for basic device control and information queries (STR
683           #1898)
684         - The scheduler now uses poll(), epoll(), or /dev/kqueue
685           instead of select() when possible (STR #1261)
686         - Added new cupsArrayGetIndex() and cupsArrayGetInsert()
687           functions to get the current index and insertion
688           positions of an array.
689         - Added a new --with-max-copies configure option (STR
690           #2090)
691         - Added new cupsRemoveDest() and cupsSetDefaultDest()
692           functions.
693         - Added support for cupsPJLCharset attribute in PPD files
694           which specifies the character set that is used in PJL
695           strings (STR #1969)
696         - Moved the definition of the (private) _http_s structure
697           to http-private.h; code that directly accesses the
698           http_t members will no longer compile!
699         - Added support for setting the document-format-default
700           attribute on a per-printer basis.
701         - Added support for IntelliBar label printers.