6 - Documentation updates (STR #2785)
7 - The web interface "move jobs" operation redirected users to
8 the wrong URL (STR #2815)
9 - The Polish web interface translation contained errors
11 - The scheduler did not report PostScript printer PPDs with
12 filters as PostScript devices.
13 - The scheduler did not set the job document-format attribute
14 for jobs submitted using Create-Job and Send-Document.
15 - cupsFileTell() did not work for log files opened in append
17 - The scheduler did not set QUERY_STRING all of the time
18 for CGI scripts (STR #2781, STR #2816)
19 - The scheduler now returns an error for bad job-sheets
21 - Authenticated remote printing did not work over domain
23 - The scheduler incorrectly logged errors for print filters
24 when a job was canceled (STR #2806, #2808)
25 - The scheduler not long allows multiple RSS subscriptions
26 with the same URI (STR #2789)
27 - The scheduler now supports Kerberized printing with
28 multiple server names (STR #2783)
29 - "Satisfy any" did not work in IPP policies (STR #2782)
30 - The CUPS imaging library would crash with very large
31 images - more than 16Mx16M pixels (STR #2805)
32 - The PNG image loading code would crash with large images
34 - The scheduler did not limit the total number of filters.
35 - The scheduler now ensures that the RSS directory has
36 the correct permissions.
37 - The RSS notifier did not quote the feed URL in the RSS
38 file it created (STR #2801)
39 - The web interface allowed the creation and cancellation
40 of RSS subscriptions without a username (STR #2774)
41 - Increased the default MaxCopies value on Mac OS X to
42 9999 to match the limit imposed by the print dialog.
43 - The scheduler did not reject requests with an empty
44 Content-Length field (STR #2787)
45 - The scheduler did not log the current date and time and
46 did not escape special characters in request URIs when
47 logging bad requests to the access_log file (STR #2788)
50 CHANGES IN CUPS V1.3.7
52 - CVE-2008-0047: cgiCompileSearch buffer overflow (STR #2729)
53 - CVE-2008-1373: CUPS GIF image filter overflow (STR #2765)
54 - Updated the "make check" tests to do a more thorough
56 - cups-driverd complained about missing directories (STR
58 - cupsaddsmb would leave the Samba username and password on
59 disk if no Windows drivers were installed (STR #2779)
60 - The Linux USB backend used 100% CPU when a printer was
61 disconnected (STR #2769)
62 - The sample raster drivers did not properly handle SIGTERM
64 - The scheduler sent notify_post() messages too often on
66 - Kerberos access to the web interface did not work
68 - The scheduler did not support "AuthType Default" in IPP
70 - The scheduler did not support the "HideImplicitMembers"
71 directive as documented (STR #2760)
72 - "make check" didn't return a non-zero exit code on
74 - The scheduler incorrectly logged AUTH_foo environment
75 variables in debug mode (STR #2751)
76 - The image filters inverted PBM files (STR #2746)
77 - cupsctl would crash if the scheduler was not running
79 - The scheduler could crash when printing using a port
81 - The scheduler would crash if PAM was broken (STR #2734)
82 - The image filters did not work with some CMYK JPEG files
83 produced by Adobe applications (STR #2727)
84 - The Mac OS X USB backend did not work with printers that
85 did not report a make or model.
86 - The job-sheets option was not encoded properly (STR #2715)
87 - The scheduler incorrectly complained about missing LSB
91 CHANGES IN CUPS V1.3.6
93 - Documentation updates (STR #2646, STR #2647, STR #2649)
94 - Fixed a problem with the web interface "Use Kerberos
95 Authentication" check box (STR #2703)
96 - The scheduler unconditionally overwrote the printer-state-
97 message with "process-name failed" when a filter or backend
98 failed, preventing a useful error message from being shown
100 - Policies on CUPS-Move-Job didn't work as expected (STR
102 - The configure script only supported D-BUS on Linux
104 - The scheduler did not support </LimitExcept> (STR #2701)
105 - The scheduler did not reset the job-hold-until attribute
106 after a job's hold time was reached.
107 - The scheduler did not support printer supply attributes
109 - The Kerberos credentials provided by some Windows KDCs
110 were still too large - now use a dynamic buffer to
111 support credentials up to 64k in size (STR #2695)
112 - Printing a test page from the web interface incorrectly
113 defaulted to the "guest" user (STR #2688)
114 - The cupsEncodeOptions2() function did not parse multiple-
115 value attribute values properly (STR #2690)
116 - The scheduler incorrectly sent printer-stopped events for
117 status updates from the print filters (STR #2680)
118 - The IPP backend could crash when handling printer errors
120 - Multi-file jobs did not print to remote CUPS servers
122 - The scheduler did not provide the Apple language ID to
124 - Kerberos authentication did not work with the web
125 interface (STR #2606, STR #2669)
126 - The requesing-user-name-allowed and -denied functionality
127 did not work for Kerberos-authenticated usernames (STR
129 - CUPS didn't compile on HP-UX 11i (STR #2679)
130 - cupsEncodeOptions2() did not handle option values like
131 "What's up, doc?" properly.
132 - Added lots of memory allocation checks (Fortify)
133 - The scheduler would crash if it was unable to add a job
135 - ppdOpen*() did not check all memory allocations (Coverity)
136 - ippReadIO() did not check all memory allocations (Coverity)
137 - The PostScript filter did not detect read errors (Coverity)
138 - The scheduler did not check for a missing job-sheets-completed
139 attribute when sending an event notification (Coverity)
140 - "Set Printer Options" might not work with raw queues (Coverity)
141 - cupsRasterInterpretPPD() could crash on certain PostScript
143 - The USB backend did not check for back-channel support
144 properly on all systems (Coverity)
145 - Fixed memory leaks in the GIF and PNM image loading code
147 - Removed some dead code in the CUPS API and scheduler (Coverity)
148 - Fixed two overflow bugs in the HP-GL/2 filter (Coverity)
149 - Fixed another ASN1 string parsing bug (STR #2665)
150 - The RSS notifier directory was not installed with the
152 - The standard CUPS backends could use 100% CPU while waiting
153 for print data (STR #2664)
154 - Filename-based MIME rules did not work (STR #2659)
155 - The cups-polld program did not exit if the scheduler crashed
157 - The scheduler would crash if you tried to set the port-monitor
158 on a raw queue (STR #2639)
159 - The scheduler could crash if a polled remote printer was
160 converted to a class (STR #2656)
161 - The web interface and cupsctl did not correctly reflect
162 the "allow printing from the Internet" state (STR #2650)
163 - The scheduler incorrectly treated MIME types as case-
164 sensitive (STR #2657)
165 - The Java support classes did not send UTF-8 strings to
166 the scheduler (STR #2651)
167 - The CGI code did not handle interrupted POST requests
169 - The PostScript filter incorrectly handled number-up when
170 the number of pages was evenly divisible by the number-up
172 - The PDF filter incorrectly filtered pages when page-ranges
173 and number-up were both specified (STR #2643)
174 - The IPP backend did not handle printing of pictwps files
175 to a non-Mac CUPS server properly.
176 - The scheduler did not detect network interface changes
177 on operating systems other than Mac OS X (STR #2631)
178 - The scheduler now logs the UNIX error message when it
179 is unable to create a request file such as a print job.
180 - Added support for --enable-pie on Mac OS X.
183 CHANGES IN CUPS V1.3.5
185 - The SNMP backend did not check for negative string
187 - The scheduler incorrectly removed auth-info attributes,
188 potentially leading to a loss of all options for a job.
189 - The scheduler stopped sending CUPS browse packets on a
190 restart when using fixed addresses (STR #2618)
191 - Fixed PDF filter security issues (CVE-2007-4352
192 CVE-2007-5392 CVE-2007-5393)
193 - Changing settings would always change the DefaultAuthType
194 and Allow lines (STR #2580)
195 - The scheduler would crash when submitting an undefined
196 format file from Samba with LogLevel debug2 (STR #2600)
197 - The scheduler did not use poll() when epoll() was not
198 supported by the running kernel (STR #2582)
199 - Fixed a compile problem with Heimdal Kerberos (STR #2592)
200 - The USB backend now retries connections to a printer
201 indefinitely rather than stopping the queue.
202 - Printers with untranslated JCL options were not exported
203 to Samba correctly (STR #2570)
204 - The USB backend did not work with some Minolta USB
206 - The strcasecmp() emulation code did not compile (STR
208 - The scheduler would crash if a job was sent to an empty
210 - The lpc command did not work in non-UTF-8 locales (STR
212 - Subscriptions for printer-stopped events also received
213 other state changes (STR #2572)
214 - cupstestppd incorrectly reported translation errors for
216 - ppdOpen() did not handle custom options properly when the
217 Custom attribute appeared before the OpenUI for that
219 - The scheduler could crash when deleting a printer or
221 - The Mac OS X USB backend did not allow for requeuing of
222 jobs submitted to a class.
223 - lpmove didn't accept a job ID by itself.
224 - The scheduler incorrectly removed job history information
225 for remote print jobs.
226 - The scheduler incorrectly sent the
227 "com.apple.printerListChanged" message for printer state
229 - The PostScript filter drew the page borders (when enabled)
230 outside the imageable area.
231 - The LPD and IPP backends did not default to the correct
232 port numbers when using alternate scheme names.
233 - The scheduler incorrectly deleted hardwired remote
234 printers on system sleep.
235 - The scheduler would abort if a bad browse protocol name
236 was listed in the cupsd.conf file.
237 - The online cupsd.conf help file incorrectly showed
238 "dns-sd" instead of "dnssd" for Bonjour sharing.
239 - The scheduler could crash changing the port-monitor value.
240 - The scheduler generated CoreFoundation errors when run as
241 a background process.
242 - When printing with number-up > 1, it was possible to get
246 CHANGES IN CUPS V1.3.4
248 - Documentation updates (STR #2560, STR #2563, STR #2569)
249 - CUPS now maps the "nb" locale to "no" on all platforms
251 - CUPS did not work with a Windows 2003 R2 KDC (STR #2568)
252 - ippReadIO() could read past the end of a buffer (STR
254 - The scheduler would crash on shutdown if it was unable
255 to create a Kerberos context.
256 - Multiple AuthTypes in cupsd.conf did not work (STR
258 - The snmp.conf file referenced the wrong man page (STR
260 - The cupsaddsmb program didn't handle domain sockets
262 - The scheduler now validates device URIs when adding
264 - Updated httpSeparateURI() to support hostnames with
265 the backslash character.
266 - Updated the Japanese localization (STR #2546)
267 - The parallel backend now gets the current IEEE-1284
268 device ID string on Linux (STR #2553)
269 - The IPP backend now checks the job status at
270 variable intervals (from 1 to 10 seconds) instead
271 of every 10 seconds for faster remote printing
273 - "lpr -p" and "lpr -l" did not work (STR #2544)
274 - Compilation failed when a previous version of CUPS
275 was installed and was included in the SSL include
277 - The scheduler did not reject requests with charsets
278 other than US-ASCII or UTF-8, and the CUPS API
279 incorrectly passed the locale charset to the scheduler
280 instead of UTF-8 (STR #2537)
281 - cups-deviced did not filter out duplicate devices.
282 - The AppleTalk backend incorrectly added a scheme
283 listing when AppleTalk was disabled or no printers
285 - The PostScript filter generated N^2 copies when the
286 printer supported collated copies and user requested
287 reverse-order output.
288 - The scheduler did not reprint all of the files in a
290 - The scheduler did not update the printcap file after
291 removing stale remote queues.
292 - The cupsd.conf man page incorrectly referenced
293 "AuthType Kerberos" instead of "AuthType Negotiate".
296 CHANGES IN CUPS V1.3.3
298 - The scheduler did not use the attributes-natural-language
299 attribute when passing the LANG environment variable to
300 cups-deviced or cups-driverd.
301 - The scheduler did not use the printer-op-policy when
302 modifying classes or printers (STR #2525)
303 - The auth-info-required attribute was not always updated
304 for remote queues that required authentication.
305 - The German web interface localization contained errors
307 - The Swedish localization contained errors (STR #2522)
310 CHANGES IN CUPS V1.3.2
312 - The 1.3.1 release was incorrectly created from the
313 1.4.x source tree (STR #2519)
314 - Added support for 32/64-bit libraries on HP-UX
316 - The scheduler incorrectly used portrait as the default
317 orientation (STR #2513)
318 - The scheduler no longer writes the printcap file for
319 every remote printer update (STR #2512)
320 - Remote raw printing with multiple copies did not work
322 - Updated the configure script to require at least autoconf
324 - Some gzip'd PPD files were not read in their entirety
328 CHANGES IN CUPS V1.3.1
330 - Documentation updates.
331 - The USB backend on Mac OS X could hang if the driver and
332 printer did not match.
333 - Delegated Kerberos credentials were not working.
334 - "make distclean" incorrectly removed the edit-config.tmpl
336 - Fix compile problem on HP-UX (STR #2501)
337 - The cupstestppd utility now tests for resolutions greater
338 than 99999 DPI to detect a missing "x" between the X and Y
340 - Fixed many problems in the various translations and added
341 a new "checkpo" utility to validate them.
342 - The cupstestppd utility now tests the custom page size code
343 for CUPS raster drivers.
344 - cupsLangDefault() did not attempt to return a language that
345 was supported by the calling application.
346 - If a remote printer stopped while a job was being sent, the
347 local queue would also get stopped and the job re-queued,
348 resulting in duplicate prints in some cases.
349 - A few Apple-specific job options needed to be omitted when
350 printing a banner page.
351 - The new peer credential support did not compile on FreeBSD
353 - Direct links to help files did not set the current section
354 so the table-of-contents was not shown.
355 - The configure script did not support --localedir=foo (STR #2488)
356 - The backends were not displaying their localized messages.
357 - CUPS-Authenticate-Job did not require Kerberos authentication
358 on queues protected by Kerberos.
359 - The Zebra ZPL driver did not work with Brady label printers
361 - Norwegian wasn't localized on Mac OS X.
362 - getnameinfo() returns an error on some systems when DNS is
363 not available, leading to numerous problems (STR #2486)
364 - The cupsfilter command did not work properly on Mac OS X.
365 - The scheduler makefile contained a typo (STR #2483)
366 - The TBCP and BCP port monitors did not handle the trailing
367 CTRL-D in some PostScript output properly.
368 - Fixed the localization instructions and German template for
369 the "Find New Printers" button (STR #2478)
370 - The web interface did not work with the Chinese localization
372 - The web interface home page did not work for languages that
373 were only partially localized (STR #2472)
374 - Updated the Spanish web interface localization (STR #2473)
375 - ppdLocalize() did not work for country-specific localizations.
378 CHANGES IN CUPS V1.3.0
380 - The scheduler did not handle out-of-file conditions
381 gracefully when accepting new connections, leading to
383 - The scheduler did not detect ServerBin misconfigurations
385 - "AuthType Default" did not work as expected when the
386 "DefaultAuthType foo" line appeared after it in the
388 - The on-line help did not describe many common printing
390 - The IPP backend did not return the "auth required" status
391 when printing to a Kerberos-protected queue.
392 - The scheduler was not looking in the correct directories
393 for LSB PPD files (STR #2464)
394 - Changed references to ESP Ghostscript to GPL Ghostscript
396 - The PostScript filter did not cleanly terminate when
397 the job was canceled or stopped.
398 - Fixed generation of Kerberos credentials for remote
399 printing. Note that this requires a recent version of
400 MIT Kerberos with a working krb5_cc_new_unique()
401 function or Heimdal Kerberos.
402 - Added Portuguese and updated Italian message catalogs.
405 CHANGES IN CUPS V1.3rc2
407 - Added more range checking to the pdftops filter.
408 - The scheduler would crash if a remote IPP queue was stopped
410 - The scheduler did not allow "DefaultAuthType None".
413 CHANGES IN CUPS V1.3rc1
415 - Updated the German localization (STR #2443)
416 - cupsAdminGetServerSettings() did not handle </Foo> properly.
417 - When lprm and cancel are run with no job ID, they now will
418 cancel the first stopped job if no pending or processing
419 jobs are left in the queue.
420 - The scheduler now logs successful print jobs, filter
421 failures, and the job file types at the default log
423 - The scheduler now logs the usernames it is using for
424 authorization at LogLevel debug instead of debug2 (STR #2448)
425 - Added Intellitech Intellibar and Zebra CPCL PPDs to the list
427 - Added 6" and 8" wide label sizes for the Zebra ZPL Label
428 Printer driver (STR #2442)
429 - The cupsaddsmb program and web interface now support
430 exporting of 64-bit Windows drivers, when available
432 - Moving a job that was printing did not stop the job on the
433 original printer (STR #2262)
434 - The cups-lpd mini-daemon did not work on Mac OS X server.
435 - Added httpGetAuthString() and httpSetAuthString() APIs to get
436 and set the current (cached) authorization string to use for
438 - Updated the default cupsd.conf policy to list the
439 "administrative" operations separately from the "printer
440 control" operations so that it is easier to define a
441 group of users that are "printer operators".
442 - The web interface now pulls the default cupsd.conf file
443 from cupsd.conf.default in the CUPS config directory.
444 - Added a help file for using Kerberos with CUPS.
445 - The scheduler now strips the "@KDC" portion of Kerberos
446 usernames since those usernames typically do not appear in
447 the group membership lists used by CUPS.
448 - cupsMarkOptions() could (incorrectly) leave multiple option
450 - Backends could (incorrectly) run as root during discovery
452 - Avahi is now supported for DNS-SD (Bonjour) printer sharing
454 - The default cupsd.conf file had typos and old operation names
456 - The scheduler now erases authentication cache files using the
457 7-pass US DoD algorithm.
458 - Delegated Kerberos credentials (proxy authentication) did not
460 - The filter makefile did not optimize the libcupsimage.2.dylib
461 with a sectorder file.
462 - The IPP backend incorrectly wrote an empty printer message
463 when processing the "none" state reason.
464 - The USB backend could deadlock on Mac OS X while performing
465 a side-channel command.
466 - The scheduler did not prevent remote queues from being
468 - The scheduler did not remove the temporary request file on
469 authentication errors.
470 - ppdLocalizeIPPReason() did not handle "scheme:" schemes or
472 - ppdLocalizeIPPReason() was not exported on Mac OS X.
475 CHANGES IN CUPS V1.3b1
477 - Copyright updates - CUPS is now owned by Apple Inc.
478 - Documentation updates (STR #1775, STR #2027, STR #2130,
479 STR #2131, STR #2263, STR #2356, STR #2397)
480 - Added new cupsfilter utility (STR #1734)
481 - Added new job-printer-state-message and
482 job-printer-state-reasons attributes to jobs (STR #2418)
483 - Added LDAP+SSL support (STR #1967)
484 - CUPS now supports authentication via peer credentials
485 over domain sockets (STR #2242, STR #2277)
486 - The CUPS sample driver PPDs are now generated by the PPD
487 compiler and include all of the localized languages by
489 - You can now specify "AuthType Default" in the cupsd.conf
490 file to use the default authentication defined by the
491 DefaultAuthType directive.
492 - The SNMP backend no longer adds a default Address line
493 when none is specified in the snmp.conf file; this allows
494 the backend to be easily disabled as needed (STR #2434)
495 - Added a new cupsctl command for doing basic changes to
496 the cupsd.conf file (STR #1777)
497 - Added a new ppdLocalizeIPPReason() function to get the
498 localized text/URI for a given IPP reason keyword for a
500 - Removed the deskjet2.ppd driver, as it only worked with
501 a very small subset of HP DeskJet printers and was
502 confusing to users. The rastertohp driver still
503 supports the deskjet2.ppd options for existing queues.
504 - The scheduler did not add a trailing banner page if a
505 client did not specify the last document in a job (STR
507 - The scheduler did not report Bonjour shared printers as
508 remote printers (STR #2384)
509 - Added new -R and -W options to the cupstestppd program
510 for greater control over the testing of PPDs.
511 - Added a new cupsGetServerPPD() function for getting
512 an available PPD from the server (STR #2334)
513 - Added a new cupsDoIORequest() function for reading
514 and writing files via IPP requests (STR #2334)
515 - Added a new CUPS_GET_PPD operation for getting an
516 available PPD file on the server (STR #2334)
517 - CUPS_GET_PPDS now reports multiple ppd-product values
518 based on the PPD ModelName and Product strings (STR
520 - CUPS_GET_PPDS now reports the PSVersion attributes
521 from a PPD file in the ppd-psversion attribute
523 - CUPS_GET_PPDS now reports the cupsModelNumber attribute
524 from a PPD file in the ppd-model-number attribute (STR
526 - CUPS_GET_PPDS now reports a driver type string in the
527 ppd-type attribute based on the cupsFax and cupsFilter
528 attributes in a PPD file (STR #2383)
529 - Added a new printer attribute called "cups-version"
530 which reports the version of CUPS that is running
532 - backendRunLoop() now aborts immediately on SIGTERM
533 if no data has been written yet (STR #2103)
534 - Due to poor IPP support from the vendors, the SNMP
535 backend no longer tries IPP connections; instead,
536 it now uses a lookup file with fallback to port 9100
537 (socket://address) and 515 (lpd://address) printing
538 (STR #2035, STR #2354)
539 - The scheduler now recreates the CUPS log directory as
541 - cupsLangDefault() now maps new-style Apple locale names
542 to the traditional ll_CC form (STR #2357)
543 - Add new cupsArrayNew2() API to support hashed lookups
544 of array elements (STR #2358)
545 - ppdConflicts() optimizations (STR #2358)
546 - The cupstestppd program now tests for existing filters,
547 icons, profiles, and dialog extensions (STR #2326)
548 - The web interface no longer lists new printers on the
549 main administration page. Instead, a new "List Available
550 Printers" button is provided that shows a separate page
551 with the list of printers.
552 - The web interface now supports setting the banner and
553 policy options on raw printers and classes (STR #2238)
554 - The socket backend now reads any pending back-channel
555 data before shutting down the socket (STR #2325)
556 - Added a new ErrorPolicy directive in the cupsd.conf
558 - Printers that use JCL options are now exported to Samba
559 correctly (STR #1985)
560 - The IPP backend now relays printer-state-message values
561 from the server to the client (STR #2109)
562 - Added support for the PWG printer-alert and
563 printer-alert-description attributes (STR #2088)
564 - Added support for LPD "stream" mode (STR #2036)
565 - The scheduler now reports the PostScript product string
566 from PPD files in CUPS-Get-PPDs responses (STR #1900)
567 - Raw printing with queues pointing to the file pseudo-
568 device and multiple files and/or banners now works (STR
570 - Added new public cupsAdminGetServerSettings() and
571 cupsAdminSetServerSettings() APIs.
572 - Added new "makebuttons" script in the "tools" directory
573 for creating web interface buttons (STR #2231)
574 - Added support for DNS-SD (aka "Bonjour") printer sharing
576 - Job operations (cancel, hold, release, etc.) from the
577 web interface now return back to the original page (STR
579 - The classes or printers list is now shown after a
580 successful deletion from the web interface (STR #1999)
581 - The default configuration now allows browse packets from
582 any address (STR #2008)
583 - The web interface now provides an "allow printing from the
584 Internet" check box (STR #1897)
585 - The notify-events-default and
586 notify-lease-duration-default attributes can now be set
588 - Server-side default options are now sent to clients when
589 the "printer-defaults" attribute group is requested (STR
591 - Added support for Linux "relro" linker option (STR #1614)
592 - CUPS now validates the number-up option value (STR #1329)
593 - The on-line help now provides better search capabilities
595 - The web interface "Add This Printer" button now allows you
596 to change the printer name, description, and location
598 - Added support for Mac OS X authorization services
600 - Added support for driver-specific pre-filters (STR #2108)
601 - Added a new side-channel API for drivers and backends
602 for basic device control and information queries (STR
604 - The scheduler now uses poll(), epoll(), or /dev/kqueue
605 instead of select() when possible (STR #1261)
606 - Added new cupsArrayGetIndex() and cupsArrayGetInsert()
607 functions to get the current index and insertion
608 positions of an array.
609 - Added a new --with-max-copies configure option (STR
611 - Added new cupsRemoveDest() and cupsSetDefaultDest()
613 - Added support for cupsPJLCharset attribute in PPD files
614 which specifies the character set that is used in PJL
616 - Moved the definition of the (private) _http_s structure
617 to http-private.h; code that directly accesses the
618 http_t members will no longer compile!
619 - Added support for setting the document-format-default
620 attribute on a per-printer basis.
621 - Added support for IntelliBar label printers.