summaryrefslogtreecommitdiff
path: root/CHANGES-1.1.txt
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2012-10-25 20:44:09 +0200
committerDidier Raboud <odyx@debian.org>2012-10-25 20:44:09 +0200
commitb0950df0920600c7b76f0aada5fb2d7dfe01eb7b (patch)
tree572af97f88a95670b867d6986953623579edc26e /CHANGES-1.1.txt
parent3621a2b09269d8c9c136b4317193c31e96471ec6 (diff)
Imported Upstream version 1.4.4
Diffstat (limited to 'CHANGES-1.1.txt')
-rw-r--r--CHANGES-1.1.txt3462
1 files changed, 3462 insertions, 0 deletions
diff --git a/CHANGES-1.1.txt b/CHANGES-1.1.txt
new file mode 100644
index 000000000..c641e794a
--- /dev/null
+++ b/CHANGES-1.1.txt
@@ -0,0 +1,3462 @@
+CHANGES-1.1.txt
+---------------
+
+CHANGES IN CUPS V1.1.23
+
+ - Updated the Spanish man pages (STR #1041)
+ - The lpstat man page contained a typo (STR #1040)
+ - The scheduler's is_path_absolute() code could cause a
+ DoS (STR #1042)
+ - The scheduler's device loading code used the wrong
+ size limits for the make/model and info parameters
+ (STR #1035)
+ - The PNG loading code did not use a "long unsigned
+ integer" format specifier for the width and height
+ (STR #1032)
+ - The web interface only showed the first 4 or 8
+ characters of "{variable-name}" for undefined template
+ variables (STR #1031)
+ - The hpgltops filter did not handle a common PCL
+ command to enter HP-GL/2 mode (STR #1037)
+
+
+CHANGES IN CUPS V1.1.23rc1
+
+ - The lpr man page did not document the "-U" option (STR
+ #998)
+ - The scheduler no longer sends the page-set option when
+ printing banner pages (STR #995)
+ - Fixed a debug message in the imagetops filter (STR
+ #1012)
+ - The lprm man page listed the "-" option in the wrong
+ order (STR #911)
+ - The hpgltops filter contained two buffer overflows
+ that could potentially allow remote access to the "lp"
+ account (STR #1024)
+ - The lppasswd command did not protect against file
+ descriptor or ulimit attacks (STR #1023)
+ - The "lpc status" command used the wrong resource path
+ when querying the list of printers and jobs, causing
+ unnecessary authentication requests (STR #1018)
+ - The httpWait() function did not handle signal
+ interruptions (STR #1020)
+ - The USB backend used the wrong size status variable
+ when checking the printer status (STR #1017)
+ - The scheduler did not delete classes from other
+ classes or implicit classes, which could cause a crash
+ (STR #1015)
+ - The IPP backend now logs the remote print job ID at
+ log level NOTICE instead of INFO (so it shows up in
+ the error_log file...)
+
+
+CHANGES IN CUPS V1.1.22
+
+ - The lpstat man page incorrectly listed the "-s" option
+ as using the equivalent of the "-p" option to list the
+ printers; it uses the "-v" option to list the printers
+ (STR #986)
+ - Now allow 0-length reads in the CUPS file API (STR
+ #985)
+ - cupsDoFileRequest() now sets cupsLastError() to
+ IPP_ERROR on network errors (STR #953)
+ - The pdftops filter didn't scale small pages up to the
+ output page size when the fitplot option was used (STR
+ #984)
+ - Fixed the ipptest program usage message (STR #959)
+ - Added Spanish man pages (STR #963)
+ - Fixed the order of comparisons in the client.conf
+ reading code (STR #971)
+ - cupsLangGet() incorrectly set the current locale (STR
+ #970)
+
+
+CHANGES IN CUPS V1.1.22rc2
+
+ - The pdftops filter didn't check the range of all
+ integer attributes (STR #972)
+ - Documentation corrections (STR #944, STR #946)
+ - Also sanitize device URI in argv[0] (STR #933)
+ - cupsRasterReadHeader() didn't swap bytes for the
+ numeric fields properly (STR #930)
+
+
+CHANGES IN CUPS V1.1.22rc1
+
+ - Now sanitize the device URI that is reported in the
+ error_log file (STR #920)
+ - Fixed some memory and file descriptor leaks in the job
+ dispatch code (STR #921)
+ - Deleting a printer could cause a crash with browsing
+ enabled (STR #865, STR #881, STR #928)
+ - Browsing would turn off if the scheduler got an EAGAIN
+ error (STR #924)
+ - The mime.types file didn't recognize PostScript as a
+ PJL language name (STR #925)
+
+
+CHANGES IN CUPS V1.1.21
+
+ - The scheduler did not separate Digest authentication
+ parameters with commas (STR #882)
+ - Fixed some problems with image printing to custom page
+ sizes (STR #891)
+ - Removed the remaining scheduler code that did not use
+ the "close-on-exec" file descriptor flag to speed up
+ program invocations (STR #890)
+ - The "lpr -r" command removed the print file even if it
+ was not printed. It now only removes the file if the
+ job is successfully created (STR #886)
+ - Revamped the custom page size orientation fix (STR
+ #127)
+ - The lp, lpq, lpr, and lpstat commands now report when
+ an environment variable is pointing to a non-existent
+ printer instead of just saying "no default
+ destination" (STR #879)
+ - Queue names with 2 periods (e.g. "printer..2") were
+ not supported (STR #866)
+
+
+CHANGES IN CUPS V1.1.21rc2
+
+ - Fixed a denial-of-service bug in the CUPS browse
+ protocol support (STR #863)
+ - The scheduler used a select() timeout of INT_MAX
+ seconds when there was nothing to do, which doesn't
+ work on IRIX (STR #864)
+ - Updated the cupsaddsmb program to use the new Windows
+ 2000 PostScript drivers instead of the Windows NT
+ printer drivers (STR #390)
+ - The gziptoany filter did not produce copies for raw
+ print jobs (STR #808)
+ - The cupsLangGet() function now uses nl_langinfo(),
+ when available, to get the current encoding (STR #856)
+ - Added a ReloadTimeout directive to control how long
+ the scheduler waits for jobs to complete before
+ restarting the scheduler (STR #861)
+ - Added a note to the default cupsd.conf file which
+ mentions that you must allow connections from
+ localhost for the command-line and web interfaces to
+ work (STR #850)
+ - The IPP backend incorrectly used the local port when
+ communicating with a remote server; this caused
+ problems with some custom configurations (STR #852)
+ - The cups-lpd mini-daemon wasn't using the right
+ default banner option (STR #851)
+ - Updated the new httpDecode64_2() and httpEncode64_2()
+ functions to handle arbitrary binary data, not just
+ text (STR #860)
+ - String options with quotes in their values were not
+ quoted properly by the scheduler (STR #839)
+ - Configure script changes for GNU/Hurd (STR #838)
+ - The lppasswd program was not installed properly by GNU
+ install when the installer was not root (STR #836)
+ - Updated the cups-lpd man page (STR #843)
+ - Fixed a typo in the cupsd man page (STR #833)
+ - The USB backend now defaults to using the newer
+ /dev/usb/lpN filenames; this helps on systems which
+ use the devfs filesystem type on Linux (STR #818)
+ - The config.h file did not define the HAVE_USERSEC_H
+ constant when the configure script detected the
+ usersec.h header file. This caused authentication
+ errors on AIX (STR #832)
+ - The lp and lpr commands now report the temporary
+ filename and error if they are unable to create a
+ temporary file (STR #812)
+ - Added ServerTokens directive to control the Server
+ header in HTTP responses (STR #792)
+ - Added new httpDecode64_2(), httpEncode64_2(), and
+ httpSeparate2() functions which offer buffer size
+ arguments (STR #797)
+ - The cupsGetFile() and cupsPutFile() code did not
+ support CDSA or GNUTLS (STR #794)
+ - The httpSeparate() function did not decode all
+ character escapes (STR #795)
+ - The cupstestppd program now checks for invalid Duplex
+ option choices and fails PPD files that use
+ non-standard values (STR #791)
+ - Updated the printer name error message to indicate
+ that spaces are not allowed (STR #675)
+ - The scheduler didn't handle HTTP GET form data
+ properly (STR #744)
+ - The pstops filter now makes sure that the prolog code
+ is sent before the setup code (STR #776)
+ - The pstops filter now handles print files that
+ incorrectly start @PJL commands without a language
+ escape (STR #734)
+ - Miscellaneous build fixes for NetBSD (STR #788)
+ - Added support for quoted system group names (STR #784)
+ - Added "version" option to IPP backend to workaround
+ serious bug in Linksys's IPP implementation (STR #767)
+ - Added Spanish translation of web interface (STR #772,
+ STR #802)
+ - The LPD backend now uses geteuid() instead of getuid()
+ when it is available (STR #752)
+ - The IPP backend did not report the printer state if
+ the wait option was set to "no" (STR #761)
+ - The printer state was not updated for "STATE: foo,bar"
+ messages (STR #745)
+ - Added new CUPS API convenience functions which accept
+ a HTTP connection to eliminate extra username/password
+ prompts. This resolves a previous authentication
+ caching issue (STR #729, STR #743)
+ - The scheduler did not correctly throttle the browse
+ broadcasts, resulting in missing printers on client
+ machines (STR #754)
+ - The scheduler did not pass the correct CUPS_ENCRYPTION
+ setting to CGI programs which caused problems on
+ systems which used non-standard encryption settings
+ (STR #773)
+ - The lpq command showed 11st, 12nd, and 13rd instead of
+ 11th, 12th, and 13th for the rank (STR #769)
+ - "make install" didn't work on some platforms due to an
+ error in the man page makefiles (STR #775)
+ - Changed some calls to snprintf() in the scheduler to
+ SetStringf() (STR #740)
+
+
+CHANGES IN CUPS V1.1.21rc1
+
+ - Fixed some "type-punned" warnings produced by GCC when
+ -fstrict-aliasing is specified (STR #679)
+ - The PDF filter incorrectly calculated the bounding box
+ of a page (STR #682)
+ - The IPP backend did not use SSL when printing over a
+ port other than 443 (STR #730)
+ - The scheduler could crash when processing a Limit or
+ LimitExcept directive (STR #728)
+ - The lpq, lpr, and lp commands did not differentiate
+ between the server being unresponsive and the lack of
+ a default printer (STR #728)
+ - The PAM checks in the configure script did not stop
+ after the first match (STR #728)
+ - The cups-config man page was incorrectly placed in
+ section 3 (STR #728)
+ - The cupstestppd utility did not show a warning message
+ when a PPD file indicated BCP protocol support with
+ PJL (STR #720)
+ - The scheduler did not return the correct exit code
+ when startup failed (STR #718)
+ - The cupsRasterReadPixels() function checked for
+ EAGAIN, which caused problems on FreeBSD (STR #723)
+ - The cupsGetDests() function did not use the current
+ encryption setting (STR #653)
+ - The scheduler did not properly parse name-based
+ BrowseRelay directives in the cupsd.conf file (STR
+ #711)
+ - The IPP backend now supports the following options in
+ the device URI: encryption, waitjob, and waitprinter
+ (STR #699)
+ - The parallel, serial, socket, and USB backends did not
+ return a non-zero exit status when a job failed to
+ print in the middle of sending it (STR #715)
+ - Location directives in the cupsd.conf file were
+ case-sensitive for printer and class names, so
+ queue-specific access control was not reliable (STR
+ #700)
+ - cupsDoFileRequest() did not handle HTTP continue
+ status messages in all cases, causing sporatic
+ problems with IPP printers from some vendors (STR
+ #716)
+ - The rastertodymo driver now supports the Zebra ZPL
+ language (STR #713)
+ - The test suite no longer generates a printcap file,
+ which caused problems when testing as the root user
+ (STR #693)
+ - The scheduler now updates the accepting state of an
+ implicit class based upon the accepting state of its
+ member printers (STR #697)
+ - The pstops filter didn't properly skip leading PJL
+ commands (STR #664)
+ - The reinterpret_cast keyword was not highlighted when
+ printing C/C++ source files in prettyprint mode (STR
+ #694)
+ - Fixed a segfault problem with some of the client
+ programs (STR #668)
+ - When using RunAsUser, the scheduler did not correctly
+ set the ownership of the log files, preventing log
+ file rotation (STR #686)
+ - The image filters did not correctly load 1-bit PNG
+ files (STR #687)
+ - The pdftops filter did not show all annotation objects
+ in a PDF file (STR #674)
+ - The pdftops filter did not print the contents of
+ textual form elements, making it impossible to print a
+ filled-in form (STR #663)
+ - Integrated the MacOS X/Darwin USB backend into the
+ CUPS baseline (STR #661)
+ - The USB backend incorrectly reported "media tray
+ empty" (STR #660)
+ - The scheduler did not use a case-insensitive
+ comparison when checking for group membership, which
+ caused problems with Win9x clients printing via SAMBA
+ (STR #647)
+ - The scheduler did not report the addresses associated
+ with certain network errors, making troubleshooting
+ difficult (STR #648, #649)
+ - The cupstestppd program did not allow a default choice
+ of "Unknown" as required by the PPD spec (STR #651)
+ - The select() buffers are now allocated to be at least
+ as large as sizeof(fd_set) (STR #639)
+ - The LPD backend now supports overriding the print job
+ username via the device URI (STR #631)
+ - The scheduler did not handle an unknown MIME type when
+ checking for a CGI script (STR #603)
+ - Added a timeout optimization to the scheduler's main
+ loop to allow CUPS to sleep more of the time (STR
+ #629)
+ - The USB backend now retries printing to devices of the
+ form "usb://make/model" if any USB port shows up as
+ "busy" (STR #617)
+ - The httpGetHostByName() function did not range check
+ IP address values (STR #608)
+ - The httpUpdate() function could return HTTP_ERROR
+ instead of the HTTP status if the server closed the
+ connection before the client received the whole
+ response (STR #611)
+ - The LPD mini-daemon did not allow the administrator to
+ force banner pages on (STR #605)
+ - Added PAM support for Darwin/MacOS X (STR #550)
+ - The web interface now provides a "Set As Default"
+ button to set the default printer or class on a server
+ (STR #577)
+ - The HTTP authentication cache was broken (STR #517)
+ - The cupstestppd utility now fails PPD files that have
+ a DefaultOption keyword for a non-existance option
+ name (STR #476)
+ - Optimized the scanning of new PPD files on scheduler
+ startup (STR #424)
+ - The EPM list file did not include the bin, lib, or
+ sbin directories (STR #598)
+ - The web interface did not redirect administration
+ tasks to the primary server for a class or printer
+ (STR #491, #652)
+ - The cups-lpd mini-daemon did not reject print jobs to
+ queues that were rejecting new print jobs (STR #515)
+ - Some calls to the ctype functions did not account for
+ platforms that use a signed char type by default (STR
+ #518)
+ - The scheduler could use excess amounts of CPU if a CGI
+ program was sending data faster than the client could
+ take it (STR #595)
+ - Updated the Ghostscript 8.x integration stuff (STR
+ #484)
+ - The lpd backend used a source port of 732 by default,
+ which is outside of the range defined by RFC 1179;
+ also added a new (default) "reserve=any" option for
+ any priviledged port from 1 to 1023 (STR #474)
+ - The scheduler did not check for a valid Listen/Port
+ configuration (STR #499)
+ - The cupsPrintFiles() function did not always set the
+ last IPP error message (STR #538)
+ - The pstops filter did not write the PostScript header
+ line if the file began with a PJL escape sequence (STR
+ #574)
+ - The printer-is-accepting-jobs status of remote
+ printers was not sent to clients via browsing or
+ polling (STR #571)
+ - Browse packets did not indicate whether a printer
+ was accepting or rejecting jobs.
+ - The web interface did not show the printer state
+ history information (STR #592)
+ - The rastertoepson filter would crash under certain
+ cirsumstances (STR #583)
+ - The USB backend did not handle serial numbers using
+ the (incorrect) SN keyword and did not terminate the
+ make and model name strings properly (STR #471, STR
+ #588)
+ - The USB backend did not build on Solaris x86 (STR
+ #585)
+ - The cupsDoAuthentication() function did not use the
+ method name for Digest authentication (STR #584)
+ - The scheduler could crash if a print job could not be
+ printed and the PreserveJobHistory option was turned
+ off (STR #535)
+ - cups-lpd now logs the temporary filenames that could
+ not be opened in order to make troubleshooting easier
+ (STR #565)
+ - cupsGetJobs() now returns -1 on error (STR #569)
+ - Added localization for Belarusian (STR #575)
+ - The LPD backend used the full length of the hostname
+ when creating the data and control filenames, which
+ causes problems with older systems that can't handle
+ long filenames (STR #560)
+ - The scheduler did not refresh the common printer data
+ after a fast reload; this prevented banner and other
+ information from being updated (STR #562)
+ - The scheduler did not send common or history data to
+ the client when processing a CUPS-Get-Default request
+ (STR #559)
+ - The httpFlush() function did not always flush the
+ remaining response data in requests (STR #558)
+ - The scheduler could complete a job before it collected
+ the exit status from all filters and the backend (STR
+ #448)
+ - The PPD conformance tests did not catch group
+ translation strings that exceeded the maximum allowed
+ size (STR #454)
+ - Updated the client code in the scheduler to close the
+ client connection on errors rather than shutting down
+ the receive end of the socket; this caused resource
+ problems on some systems (STR #434)
+ - cups-polld didn't compile on Tru64 5.1B (STR #436)
+ - "lpc stat" crashed if the device URI was empty (STR
+ #548)
+ - The scheduler did not compile without zlib (STR #433)
+ - std:floor() cast needed on IRIX 6.5 with SGI C++
+ compiler (STR #497)
+ - cupsRasterReadPixels() and cupsRasterWritePixels() did
+ not handle EAGAIN and EINTR properly (STR #473)
+ - RequiresPageRegion should not be consulted for Manual
+ Feed (STR #514)
+ - International characters were not substituted in
+ banner files properly (STR #468)
+ - Updated pdftops to Xpdf 2.03 code to fix printing bugs
+ (STR #470)
+ - The Digest authentication code did not include the
+ (required) "uri" attribute in the Authorization
+ response, preventing interoperation with Apache
+ (STR #408)
+ - The web interface could lockup when displaying certain
+ URLs (STR #459)
+ - The PostScript filters now convert underscores ("_")
+ to spaces for custom classification names (STR #555)
+
+
+CHANGES IN CUPS V1.1.20
+
+ - The pstops filter didn't properly handle collated,
+ duplexed copies of documents with an odd number of
+ pages on printers that did not do their own collated
+ copies (STR #389)
+ - Tru64 doesn't define a prototype for hstrerror() (STR
+ #430)
+ - Updated the pdftops filter to use the annotation flags
+ instead of the subtype to determine whether to print
+ an annotation (STR #425)
+ - The French web interface localization did not use
+ absolute paths for the navigation bar (STR #428)
+ - The CUPS test suite did not undefine the PRINTER and
+ LPDEST environment variables. This could lead to bogus
+ test results (STR #380)
+ - The cupsLangDefault() function now works if you don't
+ have the base OS localization installed (STR #418)
+ - The pdftops filter no longer needs to create temporary
+ files with tmpnam (STR #406)
+ - The HTTP code did not use a case-insensitive
+ comparison when checking for the Basic authentication
+ method (STR #407)
+ - The httpEncode() function always added a trailing "="
+ character, which is not required by the Base64
+ encoding specification (STR #407)
+ - The signal handlers did not need to call sigset();
+ this caused a recursion problem on some versions of
+ IRIX (STR #422)
+ - Moved the scheduler termination code into the mainline
+ to be consistent with the way other signals are
+ handled (STR #423)
+ - The cupsaddsmb program didn't export the new CUPS
+ driver for Windows properly (STR #390)
+ - The ppdOpen() functions did not issue an error when a
+ translation string exceeded the maximum allowed by the
+ Adobe PPD specification (STR #399)
+ - The default landscape orientation was not the same as
+ that defined in the PPD file (STR #397)
+ - Updated the pstoraster patch files and CUPS driver to
+ work with Ghostscript 8 (STR #402)
+ - The hpgltops filter did not skip PJL commands (STR
+ #379)
+
+
+CHANGES IN CUPS V1.1.20rc6
+
+ - "lp -i jobid -H restart" would often return an error
+ even though the job restarted successfully (STR #362)
+ - The scheduler did not check for invalid allow/deny
+ addresses such as "11.22.33.44/24". It now masks off
+ the extra address bits and logs a warning message in
+ the error_log file (STR #337)
+ - The cupstestppd utility now checks for missing
+ ImageableArea and PaperDimension attributes for each
+ defined PageSize (STR #365)
+ - The IPP code did not wait for a reply indefinitely on
+ HTTP connections in "blocking" mode (STR #377)
+ - The web interfaces did not rewrite the default printer
+ URI properly (STR #299 and #369)
+ - The LPD backend passed the C and L commands in the
+ wrong order (STR #378)
+ - The Dymo label printer driver did not set the label
+ length properly (STR #373)
+ - The scheduler did not support job IDs higher than
+ 99999 (STR #371)
+ - The Visual C++ project files did not work (STR #366)
+ - The scheduler's cupsLangSeek() function did not reset
+ the "EOF" flag, preventing compressed files from being
+ typed properly in some cases (STR #368)
+ - The cupsLangGet() cache was only used if the locale
+ name provided an explicit character set name (STR
+ #354)
+ - The CUPS API convenience functions did not call
+ cupsLangFree() when they were done with the
+ localization data (STR #354)
+ - The scheduler did not return the
+ job-hold-until-supported or job-hold-until-default
+ attributes (STR #356)
+ - The cupsaddsmb program did not support the new CUPS
+ driver for Windows (STR #357)
+
+
+CHANGES IN CUPS V1.1.20rc5
+
+ - The scheduler did not initialize the browse socket
+ file descriptor properly when only SLP browsing was
+ enabled (STR #259)
+ - The scheduler accessed the job attributes before they
+ were set (STR #347, fix to STR #335)
+ - The cupsCancelJob() function did not return 0 when the
+ job could not be canceled (STR #340)
+
+
+CHANGES IN CUPS V1.1.20rc4
+
+ - The scheduler did not move the incoming job attributes
+ in the operation group to the job group (STR #335)
+ - The cupsDoFileRequest() function did not check for an
+ early HTTP response while sending the file (STR #314)
+ - The web interfaces did not quote #, ?, or . in printer
+ names, which caused some problems with the generated
+ URLs (STR #320)
+ - CUPS couldn't be completely compiled with the -dDEBUG
+ option (STR #331)
+
+
+CHANGES IN CUPS V1.1.20rc3
+
+ - More SLP changes (STR #259)
+ - Revamped the child signal handling code to completely
+ avoid deadlock issues on Solaris (STR #325)
+ - The lpadmin command displayed an incorrect error
+ message when the "-u" option was provided with no
+ arguments (STR #313)
+ - The web admin interface did not display an error
+ message if the PPD file could not be loaded (STR #308)
+ - The ppdEmit() functions did not use the correct
+ orientation value position for custom page sizes (STR
+ #292)
+
+
+CHANGES IN CUPS V1.1.20rc2
+
+ - The serial backend set the IXANY option on the port
+ for XON/XOFF flow control; this caused problems with
+ printers that returned status info but were not ready
+ for more print data (STR #287)
+ - The scheduler didn't support scripted index files
+ (index.php, index.pl, etc. - STR #290)
+ - The scheduler did not correctly localize script files
+ with "GET" variables (STR #268)
+ - Changes in job classification are now logged (STR
+ #289)
+ - Fixed a few more SLP-related bugs (STR #259)
+ - Updated the user/group configure checks for MacOS X
+ 10.3 (STR #270)
+ - Fixed an offset bug in the PDF filter (STR #284)
+ - The cupsDoRequest() and cupsDoFileRequest() functions
+ did not map several HTTP status codes to their IPP
+ counterparts. This made detecting certain conditions
+ very difficult (STR #277)
+ - Config, spool, and status files are now owned by the
+ scheduler user (usually root) with read permission for
+ the filter group (STR #283)
+ - The HP-GL/2 filter did not support the SI command,
+ some values for the AD and SD commands, and did not
+ rotate labels properly via the DI command (STR #282)
+ - The fax support did not update/set the job-hold-until
+ attribute when a fax job fails (STR #269)
+ - The cupsLangGet() function didn't support locales of
+ the form "ll.charset" (STR #271)
+ - The scheduler did not use the charset when getting the
+ language localization for a request; this caused extra
+ disk IO for every request (STR #271)
+ - The scheduler did not support requests with more than
+ one language specified (STR #267)
+
+
+CHANGES IN CUPS V1.1.20rc1
+
+ - The scheduler now waits up to 60 seconds before
+ restarting to allow active jobs to complete printing
+ and pending requests to be processed (STR #226)
+ - The web interface did not work on systems where time_t
+ is 64 bits (STR #262)
+ - Added backend tweeks and content-length check from Red
+ Hat (STR #253)
+ - The USB backend now uses the 8255 constants instead of
+ the standard constants when reporting printer status
+ bits on Linux (STR #254)
+ - Added new cupsDoAuthentication(), cupsGetFd(),
+ cupsGetFile(), cupsPutFd(), and cupsPutFile() functions
+ to the CUPS API (STR #112)
+ - The PDF filter always scaled and offset pages; this
+ caused problems under MacOS X, so now the "fitplot"
+ option controls whether PDF files are scaled to fit
+ within the printable area of the page (STR #250)
+ - The LPD backend did not support the port number in a
+ URI (STR #247)
+ - Some filters didn't properly support boolean options
+ (STR #249)
+ - Landscape PDF files were not always offset by the
+ correct amount when rotating (STR #243)
+ - The scheduler could hang in a call to localtime() when
+ logging messages from the signal handler (STR #242)
+ - The PDF filter no longer prints form widgets; this
+ duplicates the behavior of Acrobat Reader (STR #241)
+ - cupsGetPPD() didn't handle a late termination of a
+ HTTP connection with the server (STR #220)
+ - ppdOpen() did not correctly check for "*PPD-Adobe-4."
+ on the first line of a PPD file. This caused incorrect
+ PASS results for some PPD files (STR #233)
+ - cupsEncodeOptions() did not allow boolean options to
+ use "yes" and "on" for true values (STR #227)
+ - The pstops filter only sent the TBCP exit sequence if
+ it was defined in the JCLEnd attribute in the PPD file
+ (STR #224)
+ - Support for more than 1024 files was broken on Solaris
+ 9 (STR #217)
+ - The setgroups() calls now pass in 1 group (the
+ configured group) instead of 0 for compatibility with
+ BSD and Darwin (STR #213)
+ - The scheduler's built-in broadcast throttling was
+ ineffective since incoming packets would cause the
+ next group of outgoing packets to be sent immediately
+ rather than waiting for the next time slot (STR #211)
+ - Added a new ppdSetConformance() function to set the
+ conformance requirements for PPD files. Currently only
+ two levels are defined, PPD_CONFORM_RELAXED and
+ PPD_CONFORM_STRICT, and the default is the relaxed
+ level (STR #212)
+ - The IPP backend did not correctly execute the
+ pictwpstops filter on OSX (STR #210)
+ - The LPD backend did not set the banner class when the
+ "banner=yes" option was specified in the device URI
+ (STR #209)
+ - The imagetoraster filter did not support all of the
+ page device attributes (STR #208)
+ - The pdftops filter incorrectly auto-rotated pages when
+ the user already had specified the proper orientation
+ (STR #207)
+ - Fixed AIX shared library support (STR #201)
+ - Added support for live testing with Valgrind (STR
+ #193)
+ - The CGI programs now collect the list of needed
+ attributes for the class, job, and printer template
+ files (STR #192)
+ - The scheduler now passes the first port that is bound
+ to the local loopback or "any" addresses to the CGI
+ programs rather than the port that the browser
+ connected to (STR #103)
+ - The cupstestppd program now checks for bad
+ JobPatchFile attributes and incorrect versions of the
+ Manufacturer attribute for HP printers (STR #155)
+ - The filter makefile incorrectly installed
+ libcupsimage.a in the filter directory (STR #180)
+ - The scheduler did not verify that the job history
+ files define the job-priority and
+ job-originating-user-name attributes (STR #178)
+ - The pstops filter didn't handle poorly-formed binary
+ PostScript files that had CTRL-D's in them (STR #156)
+ - The ppdOpen*() and cupsLangGet() functions did not
+ make a copy of the old locale strings when using the
+ POSIX locale when reading files, which apparently
+ caused problems with some implementations of the
+ standard C library. (STR #159)
+ - The pdftops filter did not work properly with some
+ embedded Type1C fonts (STR #177)
+ - Updated the pdftops filter to be based upon Xpdf
+ 2.02pl1 (STR #191)
+ - The scheduler did not reset the group list when
+ running CGI and filter processes (STR #185)
+ - The scheduler no longer calls malloc and free from the
+ signal handlers (STR #190)
+ - The USB backend now uses the manufacturer and model
+ strings if the description string is not available
+ (STR #174)
+ - The ppdOpen functions still supported the
+ VariablePaperSize attribute, which was removed in v4.0
+ of the PPD spec. This caused problems with PPD files
+ that relocated the PageSize option to a non-standard
+ group (STR #158)
+ - The cups.list file referenced MAN1EXT, MAN3EXT, and
+ MAN5EXT, but none of those were actually defined (STR
+ #147)
+ - Chunked requests could cause a Denial of Service if
+ the connection is terminated before the first byte of
+ chunk data is sent/received (STR #143)
+ - Printers with special characters in their names were
+ not accessible from the web interface (STR #120)
+ - The lpstat command now shows the correct interface
+ script or PPD file, if any, for a print queue (STR #89)
+ - The lpstat command now shows the printer-state-message
+ and printer-state-reasons attributes whenever they are
+ not blank (STR #152)
+ - The French and German option-conflict.tmpl template
+ files did not get installed (STR #148)
+ - The cups.list.in file did not work when compiling
+ without shared libraries (STR #149)
+ - The DSOFLAGS included the LDFLAGS, which causes
+ problems on at least HP-UX (STR #150)
+ - The fax printer support did not keep track of the fax
+ capability bit (STR #144)
+ - The appleLangDefault() function could leak a small
+ amount of memory (STR #145)
+ - The ppdOpen() functions now mirror all normal
+ attributes to the attribute list; previously only
+ certain unassigned attributes would be added (STR
+ #139)
+ - The ppdEmitJCL() function wrote JCL commands to stdout
+ instead of the passed file pointer (STR #142)
+ - The httpGets() function could, in certain states,
+ block waiting for data (STR #132)
+ - The cupsEmitJCL() function not outputs an empty @PJL
+ command after the PJL language escape to work around
+ bugs in certain PJL implementations (STR #131)
+ - The cupsEmit*() functions didn't set the orientation
+ value properly (STR #127)
+ - The cups.spec file didn't list the rc2.d init
+ directory or the cupstestppd file (STR #134)
+
+
+CHANGES IN CUPS V1.1.19
+
+ - The GNU TLS code incorrectly used
+ gnutls_check_pending() instead of
+ gnutls_record_check_pending() (STR #128)
+ - The ppdEmit() functions output "PageSize Custom"
+ instead of "CustomPageSize True" in the DSC comments.
+ Also, the custom page size code did not use the
+ ParamCustomPageSize attributes (STR #127)
+ - The cupstestppd command did not list the conflicting
+ options (STR #123)
+ - The lpq command did not ensure that there was
+ whitespace between the fields in the job listing (STR
+ #117)
+ - The German web templates had errors (STR #119)
+ - The configure script didn't specify the static
+ libraries properly when configuring with the
+ --disable-shared option (STR #104)
+ - The cups.list file used file dependencies for package
+ formats other than portable, RPM, and Debian (STR #98)
+ - cupsLangGet() didn't use its language cache (STR #97)
+ - "lpq -P" would segfault instead of showing a usage
+ message (STR #94)
+ - Fixed compiler warnings in pdftops filter (STR #96)
+
+
+CHANGES IN CUPS V1.1.19rc5
+
+ - Jobs with banner pages that were printed to implicit
+ classes would get double banner pages for each
+ file/banner in the job (STR #68)
+ - The mime.convs file was missing the filter definition
+ for Windows BMP (image/x-bitmap) files (STR #85)
+ - The scheduler allowed some READ-ONLY job attributes to
+ be set, which could cause the scheduler to fail on the
+ next restart (STR #82)
+ - The lp and lpr commands did not report when the
+ scheduler was not responding; instead, the user would
+ incorrectly see a "no default destination" error (STR
+ #70)
+ - cupsLangGet() could fail on OSX due to a corrupt
+ language preference (STR #78)
+ - Added more checks for HTTP request timeouts.
+ - The scheduler dropped the first non-alpha character
+ after an open brace when doing attribute substitutions
+ in banner pages (STR #77)
+ - The scheduler child might send SIGUSR1 to the parent
+ before the signal handler was installed; this didn't
+ prevent the scheduler from starting but produced an
+ annoying error message (STR #45)
+
+
+CHANGES IN CUPS V1.1.19rc4
+
+ - The lp command did not accept "-" for printing from
+ the standard input as required by POSIX 1003.1 (STR
+ #59)
+ - Added the job-originating-host-name information for
+ the page_log file documentation in the SAM (STR #31)
+ - The German web interface templates did not use the
+ right paths for job operations (STR #54)
+ - The scheduler would consume all available CPU if
+ started with a pending job in the queue (STR #35)
+ - The polling daemon allocated an extra localization
+ buffer but did not free it, causing cups-polld to
+ eventually use all available memory (STR #40)
+
+
+CHANGES IN CUPS V1.1.19rc3
+
+ - The scheduler could get in an infinite loop cancelling
+ jobs using "cancel -u user dest" (STR #48)
+ - The "cancel -u user" command did nothing (it should
+ cancel all jobs on all printers owned by the named
+ user - STR #48)
+ - The scheduler would write 0-length job control files
+ (STR #46)
+ - Updated the French man pages (translation provided by
+ Gilles QUERRET)
+ - The scheduler would delete all printers from
+ printers.conf if a job was active when a HUP signal
+ was handled (STR #47)
+ - The cups-polld program would leak memory if it was
+ unable to send browse packets to the loopback
+ interface (STR #40)
+ - The scheduler did not put the
+ job-originating-host-name attribute in the job
+ attributes group.
+ - The text filter did not default to wrapping text as
+ defined by the IPP implementation document.
+ - Scan backends first, PPDs second (STR #37)
+ - Updated the Netatalk documentation in the SAM (STR #38
+ and #39)
+ - The test suite sent text files to a non-PS print queue,
+ which requires ESP Ghostscript (provided separately).
+ Now send the JPEG test file (STR #33)
+ - The test suite did not show the estimated disk space
+ requirements (STR #33)
+ - The test suite did not set the MaxLogSize directive to
+ 0 to prevent log file rotation (STR #33)
+ - The test suite still setup the old CUPS Ghostscript
+ symlinks (STR #33)
+ - The pstops filter did not report the correct number of
+ copies for the page_log file when printing collated
+ copies to a printer that doesn't support them in
+ hardware (STR #32)
+ - cupsLangGet() needs to set the CTYPE locale to "C"
+ (POSIX) to avoid erroneous tolower/toupper values (fix
+ suggested by Bjoern Jacke)
+ - Fixed a typo in the cups.list.in file.
+ - Updated all of the Western European locales to default
+ to ISO-8859-15 (for Euro support, suggested by Bjoern
+ Jacke)
+ - Updated the German message catalog (update provided by
+ Bjoern Jacke)
+
+
+CHANGES IN CUPS V1.1.19rc2
+
+ - cupsLangGet() now sets the encoding field based on the
+ trailing charset in the locale name, and doesn't look
+ for a message catalog in a specific locale.charset
+ directory. This fixes STR #26 and is more in line
+ with the CUPS 1.2 implementation.
+ - The configure script now aborts if the "ar" command or
+ compilers cannot be found.
+ - The static cupsimage library was not built by default.
+ - The path for the "ln" command was hardcoded in
+ Makedefs.in instead of being checked at configure time
+ (STR #28).
+ - Banner pages containing unescaped { characters would
+ not work.
+ - The printer-state-time collection attribute was
+ encoded as an enumeration instead of an integer.
+ - The printer-is-accepting-jobs collection attribute was
+ was not added to the collection value.
+ - The printer-state-sequence-number collection attribute
+ was not added to the collection value.
+ - Fixed typo and const mismatch in IPP backend.
+ - Updated the man pages for the new configuration
+ directives.
+ - Updated the SAM for MacOS 10.2, the CUPS drivers for
+ windows, the available LPD backend options, and the
+ new configuration directives.
+ - The imagetops filter didn't position images properly
+ on the page (STR #18)
+ - The configure script didn't add CPPFLAGS to the
+ compiler options or LDFLAGS to the DSO options (STR
+ #13)
+ - The scheduler would try to write a debug log message
+ when starting a job that contained a NULL string.
+ Since not all versions of snprintf() support NULL
+ string pointers this caused some problems (STR #20)
+ - The testipp program now supports reading of IPP
+ message files such as those used for the job history
+ in /var/spool/cups.
+
+
+CHANGES IN CUPS V1.1.19rc1
+
+ - Added CUPS support files for Java, Perl, and PHP
+ (located in the "scripting" subdirectory...)
+ - The scheduler now supports fast-reloads of the
+ cupsd.conf file when it is updated via HTTP.
+ - The scheduler always changed the ownership of log
+ files; it now only does so if they are not in the /dev
+ directory (i.e. don't want to change the ownership and
+ permissions of /dev/null...)
+ - Added libpaper support (patch from Jeff Licquia)
+ - Added a new istring() rule for MIME types files that
+ does a case-insensitive comparison of strings.
+ - The cups-lpd mini-daemon now sends jobs to the default
+ queue when an empty queue name (or "lp" and there is
+ no "lp" queue) is sent.
+ - The scheduler now supports fax queues identified by a
+ "*cupsFax: True" attribute in the PPD file. When a job
+ can't be sent, it is held for 5 minutes by default
+ while other jobs are attempted. The FaxRetryLimit and
+ FaxRetryInterval directives control the number of
+ retries and the time between retries.
+ - The scheduler now preserves the default options of PPD
+ files when modifying/upgrading an existing PPD file.
+ When installing a new printer, the scheduler sets the
+ default media size to Letter or A4 as appropriate for
+ your locale.
+ - The scheduler no longer limits the number of
+ BrowseAddress, BrowsePoll, BrowseRelay, Listen, Port,
+ SSLListen, and SSLPort directives to 10.
+ - The scheduler now supports print files that have been
+ compressed using gzip.
+ - The scheduler used the stdio functions to read any job
+ ticket information in a PostScript print job. Since
+ some platforms limit the number of stdio files to 256,
+ job ticket information was ignored when the server had
+ a large number of clients connected to the system.
+ - Filters and backends may now report the total number
+ of pages ("PAGE: total NNN") to the scheduler.
+ - The LPD backend now supports timeout and
+ sanitize_title options (default to 300 and yes,
+ respectively) and has some additional changes to
+ reduce the chances of multiple copies being printed
+ when only one copy was requested.
+ - Fixed a polygon drawing bug in the HP-GL/2 filter.
+ - Added a robots.txt file to the standard install to
+ prevent search engines from indexing the CUPS server.
+ - Added support for STATE: messages
+ (printer-state-reasons), printer-state-history, and
+ printer-state-time to the scheduler.
+ - When using RunAsUser, the scheduler would initially
+ start any previously queued (pending) jobs with
+ RunAsUser disabled - all backends would be running as
+ root.
+ - If a backend failed for a printer, CUPS would
+ incorrectly requeue the job for printing again.
+ - Added support for IPP collections and files.
+ - Added experimental support for generic CGI scripts and
+ programs, Java, Perl, PHP, and Python to the
+ scheduler. See the file "CGI.txt" for more
+ information.
+ - The CUPS API now supports HTTP cookies and the Expect:
+ field.
+ - The cancel command now correctly supports the "-u
+ user" option to cancel all jobs for the named user.
+ - The Purge-Jobs operation now supports the my-jobs
+ boolean attribute and a new purge-jobs boolean
+ attribute to control whether job history data is
+ purged from the scheduler; the default is false for
+ my-jobs and true for purge-jobs to match the original
+ implementation.
+ - The scheduler would not timeout printers when only
+ using SLP browsing.
+ - If the scheduler was unable to execute a filter, it
+ would try to restart the job indefinitely until the
+ filter could be executed.
+ - When writing BSD printcap files, the scheduler now
+ includes the rm and rp attributes, allowing the file
+ to be exported to LPD clients. [Patch from Dominic
+ Kubla]
+ - The scheduler optimization to reference IPP attribute
+ data instead of performing a full copy caused problems
+ when the referenced data was deleted before it was
+ sent. It now only references attributes that change
+ only when the scheduler is restarted. The change also
+ reduced the memory footprint of a printer object to
+ 2k.
+ - The scheduler now holds signals while logging messages
+ to avoid potential deadlock issues when handling
+ signals on Solaris 8.
+ - The lpadmin command now allows printer access control
+ by group name as well as user name.
+ - "lpoptions -l" got in an infinite loop if no default
+ printer was available.
+ - The scheduler now logs the job-originating-host-name
+ attribute in the page_log file, and uses "-" for any
+ empty fields (patch from Dominik Kubla).
+ - The pdftops filter now scales PDF pages within the
+ printable area of the page.
+ - The pstops filter didn't include the page-label and
+ classification boxes when printing EPS or non-
+ conformant PS files.
+ - The imagetops filter didn't always correctly position
+ the image on the page when printing in landscape
+ orientation.
+ - The ppdEmit() functions now support the
+ RequiresPageRegion attribute when sending InputSlot
+ and ManualFeed commands.
+ - The PPD loading code now supports standard options
+ outside of OpenUI/CloseUI as required by the PPD spec.
+ - The cupstestppd program has been upgraded to provide a
+ concise PASS/FAIL report, additional detailed
+ conformance testing, and support for gzip'd PPD files.
+ - The PPD loading code is now much more strict when
+ loading a PPD file, and tracks more format errors.
+ - The scheduler ignored child signals when gathering the
+ list of available devices, when it should have been
+ using the default signal handler.
+ - The cupsEncodeOptions() function could encode an
+ option with a NULL last string.
+ - The socket backend could report the wrong number of
+ backchannel bytes if an error occurred on the link.
+ - The cups-polld program now only sleeps after getting
+ all printers and classes. This allows for longer
+ intervals without excessive delays before classes show
+ up...
+ - Added a new httpWait() function to support waiting for
+ data for a specific number of milliseconds.
+ - httpGets() now times out after 1 second on
+ non-blocking HTTP connections.
+ - The scheduler no longer accepts rangeOfInteger values
+ that are out of order (e.g. 5-1)
+ - The sides attribute was incorrectly sent as a name
+ value; it is a keyword value.
+ - The IPP backend now detects if the destination queue
+ has gone away and reports an error.
+ - The scheduler and HTTP API now allocate their select()
+ sets to support larger numbers of clients on systems
+ that support it.
+ - The scheduler now sets the CFProcessPath environment
+ variable under MacOS X.
+ - The cupsLangDefault() function now uses the
+ CoreFoundation localization API under MacOS X.
+ - The httpSeparate() function didn't handle file URIs of
+ the form "file:///path" properly.
+ - The lpadmin command now supports a "protocol" option
+ for specifying the binary communications protocol to
+ use when printing binary PostScript data.
+ - The scheduler did not properly parse the SystemGroup
+ directive, so only the first group would be used.
+ - Revamped how strings are stored in the scheduler,
+ providing a substantial improvement in memory usage
+ for systems with large numbers of printers.
+ - The PostScript filter now supports binary PostScript
+ files and files beginning with the PJL language escape
+ sequence.
+ - The PPD API now provides additional information from
+ the PPD file.
+ - The USB backend didn't compile on Solaris Intel.
+ - The cupstestppd utility now supports the "-q" option
+ (quiet) for use in scripts, etc.
+ - Merged several weight-reducing changes into the CUPS
+ baseline donated by Apple.
+ - Added preliminary support for CDSA; patch provided by
+ Apple.
+ - Implicit classes are now created from identical
+ printer classes on the network.
+ - The lp command now supports a "-H restart" option to
+ restart previously printed jobs. This functionality
+ only works if you have enabled the PreserveJobFiles
+ option.
+ - The scheduler now supports URIs in HTTP request lines
+ to conform to the HTTP/1.1 specification.
+ - The time-at-xyz attributes were not recognized in
+ banner files if prefixed by a question mark, e.g.
+ "{?time-at-creation}".
+ - Added support for pre-filtering application/pictwps
+ files on MacOS clients before sending them to a server
+ via IPP.
+ - The scheduler now allows file:/dev/null device URIs
+ even if FileDevices is set to No.
+ - CUPS uses strerror() for hostname resolution errors,
+ when it should have used hstrerror().
+ - The USB backend no longer tries to guess the serial
+ number of a device from the USB devices file; this
+ means that printers that don't report their serial
+ numbers in the device ID string will not be
+ individually selectable.
+ - The pstops filter didn't handle page ranges properly
+ when a page contained an embedded document.
+ - Added a translation of the web interface to German.
+ - When printing using the OutputOrder=Reverse option
+ with duplexing, the output order is now truly
+ reversed; the order of sub-pages when printing N-up is
+ the same.
+ - The pstops filter did not always output the extra
+ blank page when printing a document with an odd number
+ of pages with duplexing enabled.
+ - The ippAddXYZ functions no longer allow the
+ application to add less than 1 value.
+ - Fixed a URL rewrite bug in the web interface - local
+ access was sometimes redirected away from localhost...
+ - The ppdOpen() functions could get in an infinite loop
+ if the PPD file contained a keyword or text that was
+ too large for the buffer.
+ - Added preliminary support for GNU TLS; patch provided
+ by Jeff Licquia.
+ - Now timeout IPP attribute reads after 1 second inside
+ an attribute definition.
+ - Now timeout connections that have been shutdown (due
+ to errors) after 30 seconds instead of the Timeout
+ setting (300 seconds by default). This provides
+ faster recovery from DoS attacks.
+ - A denial-of-service attack warning message was being
+ written to the log files by the scheduler for every
+ detection. This caused a DoS of its own in some
+ situations. The warning message is now written no more
+ than once per minute.
+ - Fixed the CIE colorspace support code in the image and
+ PS RIPs.
+ - The job-quota-period, job-page-limit, and job-k-limit
+ attributes were not flagged as integers, so setting
+ quotas would not work.
+ - Added an additional response check in the scheduler to
+ more quickly recover from denial-of-service attacks.
+ - The cupstestppd file was incorrectly installed in the
+ /usr/sbin directory instead of /usr/bin.
+ - The EPM list file did not include the cupstestppd
+ program or man page files.
+
+
+CHANGES IN CUPS V1.1.18
+
+ - Fixed a bug in the Set-Job-Attributes code in the
+ scheduler that would cause it to crash or continuously
+ write a job control file.
+ - SECURITY FIX: The scheduler now provides a FileDevice
+ directive to control whether new printers can be added
+ using device URIs of the form "file:/filename". The
+ default is to not allow printers with these device
+ URIs.
+ - The scheduler did not compute the cost of filters
+ properly, nor did it choose a multi-filter solution
+ with a lower cost than a single filter solution.
+ - Now install CUPS PPD file test utility (cupstestppd)
+ to support basic conformance testing of PPD files.
+ - The scheduler now logs an error message when it sees a
+ non-conforming PPD file.
+ - Upgraded pdftops filter to Xpdf 2.01 with fixes for
+ TrueType fonts.
+ - Added a MaxClientsPerHost configuration directive to
+ provide limited protection against Denial of Service
+ attacks.
+ - SECURITY FIX: Potential underflow/overflow bug in web
+ interface.
+ - SECURITY FIX: Race condition in certificate creation.
+ - SECURITY FIX: Bad URIs in browse packets could be used
+ to exploint the web interface underflow/overflow bug.
+ - SECURITY FIX: Some types of Denial of Service attacks
+ were not handled properly, so once the attack was over
+ the scheduler did not close the connections
+ immediately on all platforms.
+ - SECURITY FIXES: Added integer overflow/underflow
+ checks for all image formats.
+ - The pstops filter didn't reset the showpage operator
+ back to its original at the end of a job; this
+ prevented the concatenation of documents (used
+ primarily for CUPS 1.2...)
+ - The cupsGetPPD() function didn't always set the
+ cupsLastError() value when an error occurred.
+ - The IPP media, output-bin, and sides attributes took
+ precedence over the corresponding PPD options, which
+ caused inconsistent behavior under MacOS X with some
+ PPD files.
+ - The cupsaddsmb utility specified the wrong number of
+ arguments to the adddriver command when adding the
+ Win9x PostScript drivers.
+ - The web interface did not always report the correct
+ error message.
+ - The scheduler did not clear the POSIX signal action
+ structure when waiting for the child to send it a
+ SIGUSR1 signal; this could cause the signal handler
+ not to be called properly, preventing the parent
+ process from returning.
+
+
+CHANGES IN CUPS V1.1.17
+
+ - The "manual_copies" option did not work when the LPD
+ backend had to retry a print job.
+ - The image filters did not convert GIF images properly.
+ - The RunAsUser option was incompatible with the new
+ daemon-mode code in 1.1.16.
+ - Fixed a problem with the Set-Job-Attributes and
+ PostScript job ticket code in the scheduler - the
+ "last" attribute pointer was never updated, which
+ could cause the scheduler to crash when applying job
+ ticket data.
+ - Fixed a problem in the scheduler that caused it to
+ continue processing HTTP requests on a connection
+ after it was shutdown.
+ - The scheduler now allows accounts authenticated via
+ PAM to not have a corresponding UNIX account, but
+ group membership still requires the account name to be
+ listed in the UNIX group file(s)...
+ - The scheduler used a fixed-size (16k) buffer for
+ encoding job options for filters; it now dynamically
+ allocates and expands the buffer as needed depending
+ on the options that are sent in a job.
+ - The pdftops filter didn't support all of the MacOS
+ characters for MacRoman encoded fonts.
+ - The cupsEncodeOptions() and cupsParseOptions()
+ functions now conform to the grammer defined by the
+ current draft of the PAPI specification. The main
+ difference is that option=yes and option=no are no
+ longer treated as boolean options.
+ - The IPP backend didn't honor the encryption settings
+ in /etc/cups/client.conf.
+ - Fixed a potential bug in the HTTP code which was
+ caused by servers sending the status line and
+ newline(s) in separate packets.
+ - User-defined classification strings are now printed
+ verbatim - previously the classification box would be
+ empty.
+ - Re-added Spanish to the list of PPD languages that
+ CUPS supports.
+ - CUPS API library user and temp file updates for
+ Windows.
+ - The image filters did not properly handle grayscale
+ printing of Sun Raster images.
+ - The scheduler never reset the NumJobs variable before
+ loading the job list (previously this only happened on
+ a full start, so the problem was never apparent...)
+ - The HTTP and IPP read/write code didn't handle EINTR
+ (interrupted system call) errors.
+ - When under high load, the scheduler could abort due to
+ the wrong errno value after a select() call. This was
+ caused by the child signal handler.
+ - Added new load tests to the test target to verify that
+ cupsd can handle hundreds of simultaneous jobs without
+ error.
+ - The Solaris USB backend now supports the new device
+ URI syntax.
+ - The ppdOpen*() functions now reset the numeric locale
+ settings while loading a PPD file.
+ - Fixed the libtool build rules.
+ - The manpage make rules didn't use $(MAKE) and
+ $(MFLAGS) for the language subdirectories.
+ - Now set the LC_TIME locale category to get the
+ properly localized time string.
+ - Fixed a problem in the scheduler that would cause the
+ web interface problems when adding, modifying, or
+ configuring a printer or class.
+ - The backends now ignore SIGPIPE so that failed job
+ filters will not stop a print queue.
+ - The lpstat command did not allow for destination lists
+ ("lpstat -v printer1,printer2")
+ - Fixed parsing of long filter status messages in the
+ scheduler.
+ - Added some startup performance enhancements to the
+ scheduler so that the printer object information is
+ regenerated fewer times and the MIME type database is
+ not filled with lots of empty filters for raw/direct
+ queues.
+ - The LPD backend now sends the job title as the print
+ filename.
+ - Added support for variable sizes in the EPSON dot
+ matrix printer drivers. This allows for pages as
+ short as 1/2" (1 row of labels) and does not do an
+ automatic form feed.
+ - French translation updates.
+ - The filters did not quote the page label string when
+ embedding it in PostScript output.
+ - The serial backend now enumerates serial ports under
+ MacOS X.
+ - The pdftops filter contained font rasterizer code that
+ wasn't being used and that depended on X11. This code
+ has been removed.
+
+
+CHANGES IN CUPS V1.1.16
+
+ - The cancel and lprm commands now both display an error
+ message and return a non-zero exit status if an
+ attempt is made to cancel a job on a non-existent
+ printer.
+ - The lpoptions command incorrectly complained if a
+ request to delete a non-existent printer was made.
+ - If the client.conf file defines an alternate server
+ name, the "configure printer" action in the web
+ interface might not work.
+ - The lpstat command now supports a "-W" option so that
+ you can display completed jobs as well as
+ not-completed (pending) jobs.
+ - The lp and lpr commands did not return an error when
+ one or more files in a set of files for printing could
+ not be printed.
+ - The lp, lpadmin, and lpstat commands now consistently
+ return with a non-zero exit status when an error
+ occurs.
+ - The scheduler would not accept print jobs sent to a
+ stopped remote printer.
+ - The texttops filter incorrectly converted the page
+ numbers in the prettyprint header to double-byte
+ characters when printing a non-Unicode text file. This
+ caused an extra space to appear between each digit in
+ the page number.
+ - The scheduler did not use a case-insensitive
+ comparison when adding filters for a printer.
+ - Upgraded the pdftops filter to Xpdf 1.01.
+ - The scheduler no longer passes the page-border and
+ number-up-layout attributes to filters when printing
+ banner pages.
+ - The LPD backend now uses a 30-second timeout when
+ sending commands and control files, and a 30-second
+ timeout when retrieving responses from an LPD server.
+ If a timeout occurs, it retries indefinitely. This
+ helps to make LPD printing over VPNs work more
+ reliably.
+ - The USB backend now supports device URIs based on the
+ printer serial number and/or model number under Linux.
+ This avoids the "wrong device filename" problem when
+ using more than one USB printer.
+ - Now just shutdown the receiving end of a client
+ connection when sending an error that requires the
+ server to disconnect from the client afterwards. This
+ fixes a problem when doing remote administration with
+ encryption enabled.
+ - The scheduler did not send a printer-state-message
+ attribute if the string was empty; it now always sends
+ this attribute. This caused the printer message to be
+ displayed for other printers in the web interface.
+ - The LPD backend now supports a "manual_copies" option,
+ e.g.: "lpd://server/queue?manual_copies=no", in order
+ to handle copies for raw jobs to printers that don't
+ implement the LPD protocol properly...
+ - The "mirror" option was not being handled by the
+ PostScript or image filters.
+ - Updated the cupsaddsmb command to support the new CUPS
+ driver for Windows NT/2k/XP.
+ - Filter status lines longer than 1023 characters could
+ cause the scheduler to get into an infinite loop.
+ - The scheduler didn't reset the job state to pending
+ when modifying an active printer.
+ - Now limit the maximum number of recursion steps when
+ searching for a filter for a job, in case a user
+ defines a circular filter rule.
+ - The PostScript filter would embed an invalid
+ requirements comment in some cases.
+ - Added support for embedded job tickets in PostScript
+ files.
+ - The PostScript filter now detects EPS files and should
+ better handle printing EPS files.
+ - The cancel command now ignores a trailing destination
+ name when cancelling a specific job ID (Solaris
+ compatibility).
+ - The scheduler now rejects jobs with copies outside the
+ range of 1 to MaxCopies, inclusive.
+ - Added new MaxCopies directive to set the maximum
+ number of copies that a user can request.
+ - The scheduler didn't block signals while it processed
+ others and when it forked processes.
+ - The scheduler checked for new jobs to print when
+ stopping a job. This caused jobs to restart before a
+ shutdown.
+ - Updated the CUPS startup script to better support
+ different timezones and to support the RedHat/Mandrake
+ init script functions, if available.
+ - The scheduler did not properly handle backslashes in
+ banner files; it incorrectly assumed that "\c" should
+ always be replaced by "c", instead of only looking for
+ "\{" and replacing it by "{".
+ - The texttops filter didn't handle prettyprint=no.
+ - The text and HP-GL/2 filters didn't check for other
+ common duplex option names like cupsMarkOptions() did.
+ - "lpoptions -x printer" no longer clears the "default
+ printer" status of the printer.
+ - cupsTempFd() now stops trying to create a temporary
+ file after 1000 tries, and aborts on any error other
+ than EEXIST. This should prevent lp/lpr hangs due to
+ a bad or missing temporary directory.
+ - The lpadmin command did not send the right URI to the
+ scheduler when setting options on classes. This
+ caused a client-error-bad-request error.
+ - The CUPS API convenience functions would attempt to
+ connect to the remote server name in a
+ "printer@server" printer name instead of dealing with
+ the default (usually local) server. Aside from
+ causing user confusion, the remote server name might
+ not be resolved properly, causing further problems.
+ - "lp -q" would cause the "lp" command to segfault, as
+ the program would try to print the option letter that
+ caused the error using the wrong index into the
+ command-line; bugfix from Debian.
+ - Fixed a minor inconsistancy in the encoding of boolean
+ attributes from printer options in
+ cupsEncodeOptions().
+ - Added a FilterNice directive which sets the priority
+ of job filter processes that are run by the scheduler.
+ - Added Solaris x86 USB printer support.
+ - The USB backend now reports both the ulpt and unlpt
+ devices under *BSD.
+ - The "lpstat -o" command would truncate the
+ "printer-jobid" string if it was longer than 21
+ characters.
+ - The PJL-based MIME type rules now look in the first
+ 1024 bytes instead of just the first 512 bytes to find
+ the language mode.
+ - The image file types are now listed explicitly in the
+ mime.convs file so that additional image file formats
+ do not use the standard CUPS image filters by default.
+ - Updated the Software Programmers Manual to include
+ all of the CUPS API functions.
+ - ppdOpen*() no longer sorts choices for an option.
+ - The web interface now enforces constraints in PPD
+ files when configuring a printer.
+ - When stopping a printer, the scheduler didn't set the
+ printer state before stopping the current job.
+ - The cupsaddsmb utility now lists all data files for
+ Win9x and WinMe clients when installing that Windows
+ driver.
+ - Jobs submitted to a class now bounce immediately to
+ the next available printer rather than waiting until
+ that printer is available.
+ - Filters and backends now also get the CLASS
+ environment variable set when a job is printed to a
+ printer class instead of a normal printer.
+ - Added French translations of the web interface, CUPS
+ Overview, Software Administrators Manual, and Software
+ Users Manual contributed by Marian REYT-LLABRES.
+ - Added several "hint" messages for common configuration
+ problems that are stored in the error_log file.
+ - httpSeparate() now unquotes %xx characters in the
+ username:password field of a URI.
+ - When starting the scheduler in daemon mode, the parent
+ process now waits for the child to signal it is ready
+ to accept connections.
+ - Added -F option to cupsd to run cupsd in the
+ foreground but detach from the controlling terminal
+ and current directory.
+ - The scheduler did not reload jobs when receiving a HUP
+ signal; this would cause problems since the pointers
+ into the file type database would no longer be valid
+ for existing jobs.
+ - The scheduler did not save the network interface list
+ update time, thus no caching of the network data was
+ actually provided.
+ - Updated the SuSE PAM configuration file.
+ - The LPD backend now supports a "reserve" option and no
+ longer reserves a priviledged port by default.
+ - The cupsaddsmb command now continues past printers
+ that do not have a PPD file to export.
+ - The lpstat command didn't treat printer names as
+ case-insensitive.
+ - The lpstat command now reports the printer location
+ attribute with "lpstat -l -p".
+ - Fixed a bug in the vsnprintf() emulation function,
+ which was used on old versions of HP-UX, IRIX, and
+ Solaris.
+ - The number-up option was incorrectly being used when
+ printing banner pages.
+ - Added support for Greek and Slovak PPD files.
+ - CUPS now supports printer names containing any
+ printable character, e.g. "123-abc", "foo-bar", etc.
+ - The null filter was not supported in mime.convs due to
+ a bug in the filter validation code.
+ - Changes in the default printer and printer attributes
+ were not always reflected in the generated printcap
+ file.
+ - Implicit classes did not inherit the location or
+ description from member printers.
+ - The httpGetHostByName() function did not handle
+ hostnames that started with a number.
+ - Updated the filters to use the %cupsRotation comment
+ instead of %%Orientation to auto-rotate pages, since
+ the use of %%Orientation is inconsistent.
+ - Added the RootCertDuration directive to control how
+ often the root authentication certificate is updated.
+ - Increased the size of the IPP write buffer to 32k to
+ allow for larger attribute values and to provide more
+ efficient output of large numbers of attributes.
+ - The polling daemon now retries the initial connection
+ to the remote server; this fixes a problem when the
+ remote server is unavailable when the scheduler starts
+ up...
+ - The scheduler didn't validate Digest users against the
+ system group(s), so Digest and BasicDigest
+ authentication didn't work for administration
+ operations.
+ - The scheduler now passes the SHLIB_PATH environment
+ variable to child processes (HP-UX shared libraries)
+ - The scheduler now maps accesses from the loopback
+ interface to "localhost".
+ - The cups-lpd mini-daemon sent a status code byte in
+ response to queue state commands, but those commands
+ only return textual data.
+
+
+CHANGES IN CUPS V1.1.15-1
+
+ - The lpc and lprm sources didn't include the CUPS
+ string function header, which is required on systems
+ that don't have their own snprintf() function.
+ - The French manpage Makefile tried to install the
+ language subdirectories when it (obviously) didn't
+ have to.
+
+
+CHANGES IN CUPS V1.1.15
+
+ - Updated the CUPS license agreement for the new MacOS
+ license exception.
+ - The printer-info attribute now defaults to the printer
+ name if no value has been set.
+ - ppdOpen() and friends now add an "Auto" InputSlot
+ option if none is provided to automatically select the
+ correct tray.
+ - Updated the ppdEmit() and ppdEmitFd() functions to
+ (re)mark the correct PageSize or PageRegion option
+ depending on the selected ManualFeed or InputSlot
+ options.
+ - ppdEmitFd() didn't handle custom page sizes.
+ - Darwin uses <pam/pam_appl.h> instead of
+ <security/pam_appl.h>.
+ - The jobs.cgi web interface now handles all job
+ operations, allowing the administrator to allow "job
+ administrators" or operators to manage jobs (but not
+ queues) on the server.
+ - The cupsDoFileRequest() function now checks if the
+ filename passed into the function is a directory, and
+ returns the IPP_NOT_POSSIBLE error if so.
+ - New SCSI printer backend.
+ - Cleaned up handling of locales with trailing character
+ set definitions.
+ - Fixed handling of invalid PPD attributes inside
+ OpenUI/CloseUI.
+ - Fixed a problem with SSL and the job, printer, and
+ admin CGIs on ports other than 443.
+ - The scheduler didn't handle AuthClass properly.
+ - Added French translation of man pages.
+ - Updated the text filter to support the const_cast,
+ dynamic_cast, and static_cast keywords in ISO C++.
+ - Now use strlcat() and strlcpy() (or emulation
+ functions) for easier string/buffer protection.
+ - The auto-generated printcap/printers.conf files now
+ have a small comment header explaining where the file
+ comes from...
+ - The PostScript filter now supports 6, 9, and 16-up
+ output, as well as new page-border and
+ number-up-layout options.
+ - The lpoptions command didn't set options properly when
+ using the default printer.
+ - Added ConfigFilePerm and LogFilePerm directives.
+ - Increased maximum size of MIME types to IPP_MAX_NAME
+ to allow for longer printer names.
+ - No longer create remote printers when loading job
+ history data.
+ - The printer-make-and-model attribute wasn't set when
+ the PPD file didn't contain a NickName attribute.
+ - Now handle PPD files with translation strings longer
+ than 80 bytes - they are truncated if they go over...
+ - The scheduler didn't handle signals until after it
+ loaded the configuration files the first time; this
+ caused problems on some installations that would
+ restart the scheduler as the system booted into run
+ level 3.
+ - Now throttle broadcasts like we do for polling.
+ - Fixed a bug in the reading of PPD files using CR's
+ instead of CR LF's or LF's.
+ - The scheduler would crash if cupsd.conf contained a
+ BrowseProtocols line with no protocols listed.
+ - The HTML job operation templates now link back to the
+ destination printer or class.
+ - The serial backend now detects USB serial devices.
+ - The LPD mini-daemon (cups-lpd) now passes the
+ job-originating-host-name attribute to the scheduler
+ (cupsd).
+ - Updated the IPP backend to reconnect after downgrading
+ from IPP/1.1 to 1.0, and when sending requests to HP
+ JetDirect interfaces that don't support HTTP
+ Keep-Alive like they should.
+ - Now pass NLSPATH and DYLD_LIBRARY_PATH environment
+ variables, if defined, to CGI and job processes.
+ - Removed the pstoraster filter (based on GNU
+ Ghostscript 5.50) and now provide the raster "driver"
+ and patch file necessary to use the current GNU
+ Ghostscript 7.05 release.
+ - Removed unnecessary fonts and updated the Courier and
+ Symbol fonts to the latest versions to better support
+ non-ISOLatin1 text.
+ - The text filter now always embeds the Courier and
+ Symbol fonts to ensure that they contain the full set
+ of glyphs.
+ - The lp and lpr commands now only override the SIGINT
+ handler if it is not being ignored (patch from Robert
+ Ambrose for some interactive software that catches
+ SIGINT and will gracefully cancel the print...)
+ - The PostScript image filter (imagetops) now supports
+ printing CMYK images using the CMYK colorspace.
+ - The image filters now support CMYK JPEG files, and
+ correctly handles the inverted files from Photoshop
+ (which seems to save RGBW data, not CMYK...)
+ - Added a "check" target to the top-level makefile to
+ conform with GNU standards (same as "test").
+ - The IPP code didn't always map the POSIX locale "C" to
+ the proper IPP language code.
+ - The cupsaddsmb program was updated to use the
+ setdriver command instead of addprinter.
+ - Banner pages were not handled properly for implicit
+ classes.
+ - When tunneling to a remote system using SSH, the
+ printer URIs for local printers on the remote system
+ did not reflect the correct port number.
+ - The Allow, Deny, BrowseAllow, BrowseDeny, and
+ BrowseAddress directives now support the network
+ interface names "@LOCAL" and "@IF(name)" for access
+ control and browsing based on the current interface
+ addresses instead of fixed names or IP addresses.
+ - The texttops filter did not properly recognize the
+ "nowrap" (wrap=false) option.
+ - The InstallableOptions group name in a PPD file is now
+ translated separately (CUPS_MSG_OPTIONS_INSTALLED) so
+ that UIs can accurately detect the presence of this
+ group.
+ - The scheduler no longer keeps job history data for
+ remote printers on the client (just on the server.)
+ - The parallel and USB backends now retry if the backend
+ detects that the printer is not connected to the
+ system (rather than stopping the queue...)
+ - The network backends now retry if the backend detects
+ that the printer is not connected to the network or is
+ unreachable (rather than stopping the queue...)
+ - The cupsGetDests() function no longer lists options
+ and instances for printers that no longer exist.
+ - The scheduler now converts the document language to
+ the correct LANG string.
+ - The cupsaddsmb program now supports alternative CUPS
+ and SAMBA server names.
+ - The PostScript filter now supports the Orientation
+ comment and rotates the page as needed automatically.
+ - Revamped the makefiles slightly to use automatically
+ generated dependencies.
+ - Build fixes for OS X.
+ - The TIFF reading code depended on the newest version
+ of libtiff; now conditionally compile that portion of
+ the loader.
+ - The PPD code now decodes all JCL options in the
+ JCLSetup group, not just those options that start with
+ the prefix "JCL".
+ - The backends now read print data using the read()
+ system call to ensure that the current page is printed
+ while the next page is being processed.
+ - The pdftops filter did not support shading type 3
+ (radial fill) for the "sh" operator.
+ - The cups-polld program now throttles the local
+ broadcasts of polled printers and classes so that the
+ local system is not overwhelmed with hundreds of
+ printers and classes all at once.
+ - Updated the serial backend to support 230,400 baud for
+ the Linux PPC port.
+ - The cupsGetJobs() function wouldn't report completed
+ jobs that did not have a document-format attribute
+ value.
+ - The cupsEncodeOptions() function now maintains a table
+ of known boolean and numeric options, and encodes all
+ other options as strings.
+ - Now add a newline before the end-of-page code in the
+ PostScript filter; this fixes a problem with files
+ that don't end with a newline.
+ - The image filters looked for the "orientation" option
+ instead of the correctly named "orientation-requested"
+ option.
+ - The cupsEncodeOptions() function now handles mixed
+ integers and ranges.
+ - New translation guide for developers to provide native
+ language support for CUPS.
+
+
+CHANGES IN CUPS V1.1.14
+
+ - The ippRead() function did not verify that the
+ attribute name length or string with language value
+ was not larger than the read buffer.
+ - The scheduler set the signal handlers before loading
+ the configuration files the first time; this prevented
+ the RunAsUser directive from blocking server reloads.
+ - Added Swedish message catalog.
+ - The parallel backend now recognizes the /dev/printers
+ device directory under Linux 2.4.x.
+ - MacOS X fixes.
+ - The cupsaddsmb utility sent the server name after the
+ user information when executing the rpcclient program.
+ This caused problems with some versions of SAMBA
+ 2.2.x.
+ - The IPP backend did not pass the requesting user name
+ when checking on the print job status. This prevented
+ it from waiting for the job to complete when
+ communicating with some IPP implementations that
+ require it.
+
+
+CHANGES IN CUPS V1.1.13
+
+ - The lpstat command did not report jobs submitted to
+ regular printer classes.
+ - The texttops filter didn't use sufficient precision
+ when positioning text with some values of cpi and lpi.
+ This could cause the alignment of text to stray.
+ - cupsGetDests() didn't merge the options from the
+ /etc/cups/lpoptions file with ~/.lpoptions - options
+ in ~/.lpoptions overrode them completely.
+ - Added support for KOI8-R and KOI8-U character sets,
+ and added several Russian message catalogs.
+ - The scheduler put the wrong timezone offset in the log
+ files (e.g. +0500 instead of -0500 for EST...)
+ - The scheduler did not ignore trailing whitespace in
+ *.convs files.
+ - The scheduler now forces all processes to exit (kill
+ -9) when it is stopped. This prevents parallel and
+ USB devices from running in the background after cupsd
+ goes away.
+ - The cupsParseOptions() function didn't skip trailing
+ whitespace after quoted values.
+ - More changes to support CUPS on OS/2.
+ - Added Simplified Chinese message catalog.
+ - Added PAM support for IRIX.
+ - The cupsGetPPD() function didn't remove the @server
+ portion of the printer name, and since it would
+ connect immediately to the remote server instead of
+ the local server, the printer would not be found.
+ - Classification and page labels were not rotated to
+ match the page orientation.
+ - Now set the TCP "no delay" option on network
+ connections to improve performance/response time.
+ - Improved the IRIX printing tools support with patches
+ from Andrea Suatoni.
+ - Added a new PrintcapGUI directive to specify the GUI
+ option panel program to use for the IRIX printing
+ tools support.
+ - The cupsGetDests() function did not check to see if a
+ user-defined default printer (set via lpoptions) still
+ existed.
+ - The pstops filter no longer assumes that the default
+ dictionary is writable when doing N-up processing.
+ - The pstops filter now supports printing N-up with the
+ page-set option.
+ - The imagetoraster filter now supports direct printing
+ of CMYK image data without conversion/correction.
+ - The IPP backend now reports printer state/error
+ conditions when possible (toner low, media empty,
+ etc.)
+ - The lpstat command now supports the (undocumented)
+ IRIX -l option ("-lprintername") for a compact job
+ listing for a printer.
+ - The lpstat command now includes printer date/time
+ information in the output (always Jan 01 00:00) to
+ make third-party tools happy.
+ - The text filter now supports non-integer cpi and lpi
+ values.
+ - The Margins field in the CUPS raster header was not
+ initialized by the pstoraster filter.
+ - Added --with-optim="flags" option to configure script.
+ - Updated the Italian message translations.
+ - Updated the cups.list file to install the correct
+ files.
+ - The pstoraster filter accessed the third element of a
+ 2 element array.
+ - The scheduler did not setup a status pipe for polling
+ processes, so error messages went to whatever file
+ descriptor 2 was pointing to when they were started.
+ - The httpMD5Final() function didn't put a colon between
+ the password and nonce strings.
+ - The pstops filter did not default to Binary data for
+ "%%BeginData:".
+ - The pstops filter did not stop processing when a line
+ containing a CTRL-D is seen.
+ - The scheduler no longer replaces the JobSheets values
+ from the printers.conf and classes.conf files with the
+ classification level, if set. This way the original
+ banner settings are preserved when classification
+ levels are changed or turned off.
+ - The serial backend didn't drain the output queue, nor
+ did it restore the original settings.
+ - Updated the default system group under MacOS X.
+ - If no SystemGroup was defined in cupsd.conf, the
+ system default group was not used.
+ - The cups-lpd mini-daemon now supports LPD clients that
+ send multiple control files.
+ - httpConnectEncrypt() now always uses encryption for
+ connections on port 443, since port 443 is reserved
+ for the "https" scheme.
+ - Group authentication via certificates did not work
+ from the web interface for accounts other than
+ "root".
+ - The serial port backend did not clear the OPOST
+ option, which could cause problems with some printers.
+ - The cups-lpd mini-daemon didn't lookup the client IP
+ address properly.
+ - The parallel backend now identifies the polled and
+ interrupt-driven devices under *BSD.
+ - The scheduler allowed the "always" encryption mode
+ inside a Location, which is not valid.
+ - The CUPS startup script now checks for the timezone
+ information under Linux.
+ - Now also map the sides attribute to the JCLDuplex
+ option (if present) in PPD files.
+ - Updated pdftops to Xpdf 0.93a.
+ - Added support for MD5 passwords under Slackware.
+ - Added new AuthType BasicDigest that does Basic
+ authentication using the MD5 password file managed by
+ the lppasswd command.
+ - The banner page attribute substitution code now
+ retains {name} sequences in banner files when the
+ named attribute is undefined. Use {?name} to
+ conditionally substitute an IPP attribute.
+ - The scheduler now ensures that the ServerRoot
+ directory and configuration files are owned by and
+ writable by the User and Group in cupsd.conf.
+ - The USB backend now lists all USB printer devices
+ regardless of whether a printer is connected or not.
+ This allows new USB printers to be connected without
+ restarting cupsd.
+ - Added some more minor performance tweeks to the IPP
+ protocol code to reduce copying and array indexing.
+ - The cupsaddsmb utility now uses the -c option with
+ smbclient and rpcclient to avoid the read length limit
+ for commands on the standard input.
+ - Added an include file to the CRD handling code in
+ pstoraster so that it would compile properly on 64-bit
+ pointer platforms...
+
+
+CHANGES IN CUPS V1.1.12
+
+ - Added "Polish" to the list of known languages for PPD
+ files.
+ - Added missing directory definition to cups-config.
+ - The CUPS-Move-Job operation did not set the
+ destination type for the new destination.
+ - The CUPS-Add-Printer operation did not support the
+ allow=all or deny=none values to clear the per-user
+ printer ACLs.
+ - The SetPrinterAttrs() function did not handle invalid
+ PPD files that were missing the required NickName
+ attribute. It now looks for NickName, ModelName, and
+ then substitutes the string "Bad PPD File" for the
+ printer-make-and-model attribute.
+
+
+CHANGES IN CUPS V1.1.11
+
+ - Added support for embedded TrueType fonts in PDF
+ files.
+ - Added support for PostScript functions in PDF
+ files.
+ - Added new "cupsaddsmb" utility for exporting
+ CUPS printer drivers to SAMBA/Windows clients.
+ - Added preliminary support for Darwin/MacOS X.
+ - The CUPS-Add-Printer operation no longer allows
+ arbitrary scheme names in device URIs to be used - it
+ now restricts the available schemes to those found in
+ the device list (lpinfo -m).
+ - The ippRead() and ipp_read_file() functions could not
+ handle more than IPP_MAX_VALUES (100) values in a
+ 1setOf attribute. These functions have been updated
+ to dynamically allocate more memory as needed, and the
+ IPP_MAX_VALUES constant now represents the allocation
+ increment. [this caused some versions of the
+ GIMP-print drivers to fail since the number of media
+ options exceeded 100...]
+ - The scheduler could crash when BrowseShortNames
+ was set to "No".
+ - The scheduler did not prevent MaxClients from being
+ set to 0, which could cause the scheduler to go in an
+ infinite loop when accepting a request.
+ - Made some performance optimizations in the ippRead()
+ functions to make IPP request/response processing
+ faster.
+ - The accept/reject/enable/disable command did not
+ support properly support the "-h" or default
+ server name.
+ - The scheduler did not save the quota configuration
+ when the job-quota-period attribute was set to 0.
+ - The LPDEST and PRINTER environment variables did not
+ support printer instances.
+ - The text filter now handles more types of boldface and
+ underline formatting.
+ - The cupsTempFd() function did not fail if the
+ temporary directory did not exist; this would cause it
+ to loop indefinitely instead of returning an error
+ (-1).
+ - Stopping (disabling) a printer class did not stop jobs
+ from printing to printers in that class.
+ - The cupsGetDests() function was sending the
+ requested-attributes attribute as a name instead of a
+ keyword; this caused a serious performance problem on
+ slower systems since more information had to be
+ transferred from server to client.
+ - The web interfaces did not always quote < and & in
+ things like the job title. This had the potential for
+ browser-based security violations (on the browser's
+ machine); bug report from SuSE.
+ - The scheduler now treats unauthenticated usernames as
+ case-insensitive when doing quota and allow/deny
+ processing.
+ - The lp command sent the "request ID is ..." message
+ to stderr instead of stdout...
+ - The PostScript filter (pstops) now handles EPS files,
+ adding a showpage command to the files as needed.
+ - The configure script checked for the <stdlib.h> header
+ file before the JPEG libraries; since the JPEG headers
+ can define HAVE_STDLIB_H, the configure check would
+ cause the JPEG check to fail on some systems.
+ - The scheduler now supports localized banner files,
+ using the subdirectory approach, e.g. the "es"
+ subdirectory under /usr/share/cups/banners is used for
+ the Spanish banner files.
+ - Updated the scheduler so it knows the correct
+ language abbreviation to use for all supported
+ PPD LanguageVersion values. The new code also
+ supports country codes as well, so "English-GB"
+ maps to the "en_GB" locale.
+ - The cups-lpd mini-daemon did not support
+ anonymous printing (no username specified).
+ While the username is REQUIRED by RFC-1179,
+ MacOS clients do not send the REQUIRED username
+ information when printing via LPD.
+ - Added many warning and informational messages
+ to cups-lpd where they were missing.
+ - Added Czech message file contributed by SuSE.
+ - The cups-lpd mini-daemon now returns a non-zero
+ status if an invalid destination or job ID is
+ provided.
+ - The scheduler did not honor the KeepAlive setting in
+ cupsd.conf.
+ - Increased the size of the file read/write buffers to
+ 32k.
+ - *BSD static library creation fixes.
+ - Use mkstemps() instead of tmpnam() in pdftops whenever
+ possible.
+ - Added httpGetHostByName() function as a wrapper around
+ gethostbyname() - some implementations of this
+ function do not support IP addresses (e.g. MacOS X.)
+ - Added casts to all printf's of file lengths, since
+ there is currently no standard way of formatting long
+ long values.
+ - The client filename field was not cleared in all
+ instances, resulting in old form data being submitted
+ to CGIs.
+ - The httpConnect*() functions now try all available
+ addresses for a host when connecting for the first
+ time.
+ - The pstoraster filter would "lose" all drawing
+ commands when the PageSize was set but the printer
+ bitmap was not reallocated. This was most noticeable
+ with the output from StarOffice 6 beta and would
+ result in a blank page being output...
+ - The IPP backend was sending a PAGE comment even when
+ printing the output from a filter (it should only send
+ page comments when printing files directly...)
+ - The pdftops filter didn't properly map glyph names of
+ embedded Asian TrueType fonts.
+ - Changed the CUPS startup script to look for a program
+ named "cupsd", not just any program with "cupsd" in
+ the name (this caused the apcupsd UPS monitoring
+ daemon to be stopped/restarted...)
+ - The CUPS-Move-Job operation did not change the
+ internal destination name for held jobs, so moved (but
+ held) jobs would still show up as queued on the
+ original destination.
+ - The cups-polld program didn't send the
+ requested-attributes attribute in the
+ CUPS-Get-Printers and CUPS-Get-Classes requests, which
+ made it use more CPU and bandwidth than required.
+ - The scheduler and CUPS API incorrectly added a
+ job-sheets-default attribute for remote printers. This
+ caused banner pages to be omitted from client system
+ prints.
+
+
+CHANGES IN CUPS V1.1.10-1
+
+ - Minor fixes to the filter, systemv, and template
+ makefiles to install files properly.
+
+
+CHANGES IN CUPS V1.1.10
+
+ - Added a driver for DYMO label printers.
+ - Added new ClassifyOverride directive to allow users
+ to override the classification of individual jobs.
+ - Added new BrowseProtocols directive to control which
+ browse protocols are used (currently CUPS and SLP).
+ - Added SLPv2 support (thanks to Matt Peterson for
+ contributing the initial implementation for CUPS.)
+ - Adding a raw printer on a remote CUPS server now
+ correctly redirects PPD file requests to the remote
+ server.
+ - The serial backend now limits writes to 1/10th
+ second worth of data to avoid buffer overflows
+ with some types of flow control.
+ - The scheduler did not properly process PUT requests,
+ so configuration files could not be uploaded to the
+ server.
+ - The scheduler did not strip trailing whitespace on
+ lines in the configuration files.
+ - The httpWrite() function did not transition the PUT
+ request to the HTTP_STATUS state to get the status
+ from the server.
+ - The scheduler did not properly handle trailing null
+ ("-") filters when testing a driver that sent data
+ to the file: pseudo-backend.
+ - The IPP backend now only sends a document-format of
+ "application/vnd.cups-raw" when printing to another
+ CUPS server using a local printer driver or interface
+ script. Previously the job's document format was
+ used, which was incorrect.
+ - The lpadmin command didn't use the ppd-name attribute
+ with the -m option; this prevented the use of the
+ "raw" model from the command-line.
+ - The pstoraster filter output draft (1-bit) 6-color
+ output in the wrong order; this resulted in yellow
+ being printed instead of black on Stylus Photo
+ printers.
+ - The pdftops filter did not have the Japanese and
+ Chinese text support compiled into it.
+ - The IPP and AppSocket backends did not clear the
+ "waiting for print job to complete" status message,
+ which caused some confusion... :)
+ - The serial backend now opens the port in "no delay"
+ mode to avoid DCD detection problems with some OS's.
+
+
+CHANGES IN CUPS V1.1.9-1
+
+ - The configure script did not substitute the
+ correct user and group names.
+ - The configure script did not use the full path
+ to the install-sh script when it was used.
+ - The pstoraster filter did not correctly support
+ DuplexTumble mode for printers that used flip
+ duplexing.
+ - The cups.list.in file was missing from the
+ distribution.
+ - The New DeskJet series driver did not use the
+ correct OrderDependency for the Duplex option.
+ - Use read() instead of fread() to read piped
+ print files in lpr/lp. This avoids a bug in the
+ HP-UX 10.20 fread() function.
+ - Updated the pstoraster filter to use the MIPS_FIXADE
+ system call under IRIX to fix bus error problems on
+ R12000 processors (Ghostscript is not 64-bit clean...)
+ - Some Xerox PPD files (most notably the Phaser 790)
+ have illegal whitespace in the option keyword in the
+ OpenUI line. This caused the PageRegion option to not
+ be recognized properly for the Phaser 790.
+
+
+CHANGES IN CUPS V1.1.9
+
+ - Revamped the configure script to use a modular
+ approach for the various tests.
+ - Added --with-openssl-* options to properly reference
+ the OpenSSL libraries in DSOs.
+ - Added --with-cups-user and --with-cups-group
+ options to specify the default user and group for
+ CUPS.
+ - Added AIX shared library support.
+ - Added AIX device discovery for the serial and
+ parallel ports.
+ - Now use install program or script to install
+ directories, files, and symlinks.
+ - Updated pstops filter to use strict handling of EPS
+ files embedded in a PostScript document. The %%EOF
+ handling in 1.1.8 caused some dvips files not to
+ print.
+ - Fixed yet another memory allocation bug in pstoraster
+ that would cause it to crash. This fix also ensures
+ that all memory allocations are done on (at least) a
+ 64-bit boundary.
+ - Fixed Digest authentication - httpGetSubField() didn't
+ skip the Digest keyword.
+ - The scheduler did not properly handle Digest
+ authentication with the new multiple-group support.
+ - The scheduler did not allow usernames that were
+ not in the UNIX password file to be used for Digest
+ authentication from passwd.md5.
+ - The scheduler could not scan PPD files that only used
+ a carriage return (i.e. MacOS PPD files); the new code
+ is also about 40% faster, so servers with thousands of
+ PPD files should start much faster now.
+ - The scheduler now stores the PPD file size and
+ modification times in the ppds.dat file, so it can now
+ incrementally update the PPD database from the model
+ directory, resulting in significantly faster startup
+ times.
+ - The lpinfo command did not return a non-zero status
+ code if an error occurred.
+ - Fixed a bug in the scheduler's UpdateJob() function.
+ Basically, all jobs shared the same status buffer, and
+ the "buffer start" pointer could point to 1 byte
+ before the beginning of the buffer. The new
+ implementation uses a separate buffer for each job and
+ eliminates the buffer start bug.
+ - The IPP backend would send N copies of a document if
+ the receiving device didn't support the copies
+ attribute, even if the upstream driver already added
+ the necessary commands to generate the copies. This
+ was most noticeable with HP printers where N * N
+ copies would come out instead of N.
+ - The PostScript filter (pstops) did not properly handle
+ duplex printing on inkjet printers that provide this
+ option. Copies would be put on the front and back
+ sides of the duplexed page, and the filter did not
+ output an even number of pages.
+ - The backends always caught SIGTERM after they
+ connected to the printer. This prevented raw jobs
+ from being cancelled early.
+ - The cupsSetDests() function now removes any printers,
+ instances, and options that are not defined by the
+ user or server. This should prevent old system-wide
+ options from being used in individual user accounts.
+ - Updated the EPSON printer driver and added PPDs for
+ the newer EPSON Stylus printers that only support the
+ "ESC i" graphics command.
+ - The lpadmin command didn't allow you to add remote
+ printers to a local class.
+ - The lpadmin command didn't allow you to set the
+ options (quotas, etc.) for a class.
+ - The scheduler did not load or save the
+ job-sheets-default attribute for classes.
+ - The scheduler did not automatically recreate remote
+ printers that were part of a class.
+ - It was possible for a printer class to list the same
+ printer more than once.
+ - The scheduler now makes a backup copy of classes.conf
+ and printers.conf before writing the new file.
+ - The lppasswd program incorrectly asked for a new
+ password when deleting an existing MD5 password
+ account.
+ - The scheduler did not match "/printers/name.ppd"
+ against a location of "/printers/name".
+ - The client code did not always handle HTTP encryption
+ upgrades properly.
+ - The client code now caches the last Digest password so
+ it can retry using a new resource path or nonce value,
+ which are included in the MD5 sum sent to the server.
+ This should eliminate unnecessary password prompts
+ when using Digest authentication.
+ - The lppasswd command didn't have a man page.
+ - Updated the PJL detection rules to allow the universal
+ escape to occur anywhere in the first 128 bytes of the
+ file.
+ - The cups-polld program would poll servers continuously
+ with no delay if there was an error contacting the
+ server.
+ - The IPP backend would send an empty job-name or
+ requesting-user-name attribute if the corresponding
+ job attribute was an empty string. While this is
+ allowed by the IPP specification, some HP JetDirect
+ implementations return a client-error-bad-request
+ error if an empty name attribute value is received.
+ The new code only sends these attributes if they are
+ not the empty string.
+ - At least some versions of the HP JetDirect firmware
+ do not correctly implement IPP. Added additional
+ checks to the IPP backend to eliminate extra,
+ unsupported attributes which should normally be
+ ignored by a compliant IPP device.
+ - The scheduler did not copy the complete list of
+ supported file types into the
+ document-format-supported attribute. This caused
+ clients to not send the local file type (such as
+ application/vnd.cups-raw for raw print files) and the
+ corresponding bad output in some cases.
+ - The scheduler did not fully copy attributes from a
+ set-job-attributes request - string attributes were
+ only referenced, which could cause cupsd to crash
+ or behave irratically.
+ - The lp command didn't send the right value for the
+ job-hold-until attribute when "-H resume" was
+ specified.
+ - The IPP backend now returns as soon as a job is
+ completed or reported as "pending-held".
+ - Added new ImplicitAnyClasses and HideImplicitMembers
+ directives to the cupsd.conf file to make implicit
+ classes more usable/transparent to the user.
+ - Clients can now (with the appropriate authentication)
+ retrieve and update the server configuration files
+ using HTTP GET and PUT requests.
+ - The web interface didn't allow you to modify the
+ location or description of the printer.
+ - The pdftops filter now uses its own temporary file
+ function to work with PDF files using LZW compression
+ (which use the uncompress program or gunzip)
+ - The SystemGroup directive now supports specification of
+ multiple groups.
+ - Added new Include directive to cupsd.conf, a la
+ Apache.
+ - Added new pseudo-driver/PPD called "raw" that can be
+ used to create/convert a raw queue. This also allows
+ raw queues to be created in the web interface.
+ - The pdftops filter didn't handle image objects that
+ used JPEG and Flate compression together.
+ - The pstops filter counted pages wrong when using the
+ N-up and even/odd printing options. This prevented
+ the page-ranges option from working properly.
+ - Added another fix to pstoraster for a bus error
+ condition caused by a lack of parenthesis in the
+ Ghostscript code.
+ - Added new "natural-scaling" option which scales the
+ natural size of the image (percent of natural image
+ size instead of percent of page size.)
+ - The lppasswd program is now setuid to the CUPS user
+ instead of root.
+ - The PPD functions did not allow for PPD files that
+ defined the page sizes and margins before the page
+ size options.
+ - The mime.types file now checks for the PJL "LANGUAGE =
+ Postscript" command for PostScript files.
+ - The scheduler did not truncate file: output files.
+ - The PPD file reading code did not handle options with
+ raw quotes (") in the human-readable names.
+ - The pdftops filter now remaps the space character when
+ (bad) PDF files contain a .notdef glyph for the space
+ character.
+
+
+CHANGES IN CUPS V1.1.8
+
+ - Updated spec file to generate separate cups-pstoraster
+ package for pstoraster.
+ - The spec file wasn't setting LOGDIR in the install.
+ - The scheduler might restart a stopped printer after
+ stopping a print job. Thanks to Florent
+ Guiliani for finding this bug!
+ - The init script showed run level 0 for the Red Hat
+ chkconfig program. This is incorrect because Red Hat
+ doesn't use run level 0 for shutdown scripts.
+ - The IPP backend did not handle the
+ client-error-not-found error when checking the status
+ of the job that was sent. This caused remote queues
+ to stop on client machines when the server had job
+ history disabled.
+ - Added httpConnectEncrypt() function to avoid
+ performance penalty for setting up encrypted
+ connections initially.
+ - Use httpConnectEncrypt() in all client apps and in the
+ CUPS API to ensure consistent usage of encryption
+ throughout.
+ - Jobs weren't queued to remote classes (fix from
+ Richard Begg.)
+ - AIX changes from Richard Begg.
+ - Fixed the pstops fix for GNOME output - no longer use
+ the page numbers in the %%Page: comment since GNOME
+ puts a filename instead (!?@!#?!). There is still an
+ issue with N-up printing since GNOME defines its fonts
+ in the first page instead of the document setup section
+ (pages must be independent according to the DSC spec)
+ People with GNOME printing problems should consult bug
+ #54489...
+ - The imagetops filter produced PAGE: messages when
+ generating PostScript for a non-PostScript printer
+ (only affects page-label and Classification
+ options.)
+ - The updated pdftops filter was looking for an options
+ file called xpdf.conf instead of pdftops.conf.
+
+
+CHANGES IN CUPS V1.1.7
+
+ - Configuration script changes, including new
+ "--with-docdir=/dir" option to relocate CUPS
+ documentation and web content according to your
+ favorite version of the FHS.
+ - Documentation updates for encryption, SLP, etc.
+ - New Software Test Plan and automated test script to
+ test CUPS prior to installation.
+ - All scheduler configuration files are now case
+ insensitive to match Apache.
+ - Added support for Apache ListenBackLog, Require,
+ Satisfy, <Limit>, <LimitExcept>, and LimitRequestSize
+ directives.
+ - Added support for all Apache log levels...
+ - Added support for "double" HostNameLookups.
+ - Added new "RunAsUser" directive to support non-root
+ configurations on the standard (priviledged) ports.
+ - Added support for non-root invocation of the lpd
+ backend (does no reserve a priviledged port, which
+ might not work with some LPD servers...)
+ - Added new PrintcapFormat directive to control the
+ output format of the printcap file (BSD or Solaris
+ formats are supported at present.)
+ - The CUPS directory service routines now handle
+ ECONNREFUSED errors gracefully rather than shutting
+ all browsing off.
+ - ippErrorString() now returns the recommended error
+ messages from the IPP/1.1 Model and Semantics
+ document.
+ - Fixed a minor IPP compliance issue with responses
+ to requests without the attributes-charset or
+ attributes-natural-language attributes.
+ - Sun fix: need httpFlush() call for chunked IPP
+ requests in cupsDoFileRequest().
+ - httpConnect() now looks up "localhost" by name and
+ by address (127.0.0.1) for users the go to the
+ trouble of removing the required localhost entry
+ in /etc/hosts or on their DNS server...
+ - Added support for Linux 2.4.x devfs parallel port
+ filenames (/dev/parallel/N).
+ - cupsDo[File]Request() and cupsGetPPD() no longer
+ block trying to reconnect to a crashed or inaccessable
+ server.
+ - Added new ppdEmitJCL() function to better handle
+ PJL commands from PPD files.
+ - A bug in UpdateJob() would cause the scheduler to
+ consume 100% CPU until another request was submitted.
+ - The cancel command did not support the "-" option to
+ cancel all jobs on all printers.
+ - The cancel and lprm commands did not support cancelling
+ the next/current job in the queue.
+ - The pdftops and pstoraster filters were using unsafe
+ temporary file functions; while this is not a problem
+ in normal configurations (the CUPS temporary directory
+ is restricted), they now use the cupsTempFd() function.
+ - The mime.types file was missing the recognition rule
+ for Sun Raster images.
+ - The admin CGI was passing a printer make string to
+ ippSetCGIVars() that was being replaced in that
+ function.
+ - "lpoptions -l" would resave the options...
+ - The EPSON drivers now send the "end packet mode"
+ command when printing to USB devices.
+ - The scheduler initialized certificates before loading
+ the cupsd.conf file.
+ - The scheduler used /dev/random to collect random data,
+ which could block if insufficient entropy information
+ had been collected by the kernel. Now use
+ /dev/urandom.
+ - Fixed a bug in the whitespace skipping code in
+ httpGetSubField().
+ - The LPD backend now supports a new "order" option:
+ "lpd://server/queue?order=control,data" (default) and
+ "lpd://server/queue?order=data,control".
+ - The scheduler enforced a 30 second timeout on all
+ clients regardless of the Timeout directive and if a
+ CGI was currently running.
+ - cupsParseOptions() now sets boolean options to
+ option=true or option=false.
+ - The "percent complete" calculations in the LPD backend
+ could overflow on large files, causing the percentage
+ to wrap to 0 every 40MB or so.
+ - Fixed a memory reallocation bug in pstoraster that
+ could cause it to crash.
+ - The LPD backend now sanitizes the job title to avoid
+ potential problems on remote LPD servers.
+ - The lp command did not send the requesting-user-name
+ attribute when altering a job.
+ - The pstops filter did not handle PostScript files with
+ lines longer than 8191 bytes.
+ - The scheduler no longer uses inet_addr() to convert IP
+ addresses in dot format (mmm.nnn.ooo.ppp) to the
+ 32-bit format, since it will not work for IPv6
+ addresses.
+ - New "Classification" directive to force labeling of
+ the current classification on each page.
+ - New "page-label" attribute to add per-page labels
+ ("For Official Use Only", "Draft", etc.)
+ - The scheduler now sets the HTTPS environment variable
+ for CGI programs when a client connects using
+ encryption.
+ - Fixed a recursion bug in the scheduler that could
+ cause cupsd to crash when a printer was removed.
+ - The LPDEST and PRINTER environment variables didn't
+ support instances.
+ - Dropped the "file" backend from the device list that
+ is reported, since it is only available for *testing*
+ and should never be used in a production environment.
+ The file: device can still be used, but it won't show
+ up in the list of devices from lpinfo or the web
+ interface.
+ - Added support for /dev/lpa# parallel ports under *BSD.
+ - Added META variables to the CGI header template to
+ prevent caching of the results.
+ - Fixed an unaligned memory buffer for the pstoraster
+ clist states; this caused bus errors for some
+ combinations of printers, drivers, and options.
+ - Re-added black reduction for colorful colors; this
+ helps to prevent dark colors from getting desaturated.
+ (only used when converting RGB to CMYK)
+ - Added two new directives - MaxJobsPerPrinter and
+ MaxJobsPerUser - to allow an administrator to set
+ the maximum number of pending jobs in a queue or
+ submitted by a user.
+ - The scheduler no longer stops a printer if it can't
+ create the status pipe or run the filters or backend.
+ This will allow heavily loaded servers to service
+ clients or start print jobs as the load allows.
+ - Fixed a bug in the Set-Job-Attributes code that could
+ crash the scheduler (patch from Martin Zielinski)
+ - cupsSetDests() did not quote option values with
+ embedded spaces.
+ - Added support for the Enable-Printer and
+ Disable-Printer extension operations (same as
+ CUPS-Accept-Jobs and CUPS-Reject-Jobs.)
+ - The AppSocket and IPP backends now wait for the print
+ job to be finished before exiting; this should prevent
+ the loss of print jobs with older JetDirect firmware
+ and make consecutive print jobs print faster.
+ - The BMP loading code did not handle resolution values
+ of 0. This is a problem with BMP image files produced
+ by the GIMP.
+ - The HTTP Upgrade code (upgrade to TLS encryption)
+ bypassed the authentication checks.
+ - The HTTP Upgrade code did not send a 426 status code
+ to the client and end the current request. This caused
+ a race condition between the client and server for the
+ upgrade to TLS.
+ - Fixed a bug in the EOF and Trailer detection code in
+ the pstops filter.
+ - The imagetoraster filter did not add the margins to
+ the custom page size in the raster header.
+ - The imagetops filter did not adjust the custom page
+ size to the size of the printed image.
+ - The imagetops filter did not include DSC comments
+ which are required by some printers.
+ - The imagetops filter did not insert newlines in
+ Base85 encoded output, causing files to contain
+ lines longer than 255 characters (violation of the
+ DSC).
+ - Added support for the DeskJet 900 series duplexer
+ and CRET color modes in the HP driver.
+ - Added support for PPD-defined margins in the HP
+ driver.
+ - Fixed the debugging output from pstoraster - the
+ font list was not terminated by a newline.
+ - Some versions of the HP-UX pam_unix authentication
+ module apparently do not pass the appdata_ptr argument
+ to the conversation function, preventing the scheduler
+ from authenticating users using PAM under HP-UX. A
+ workaround using a static variable has been added to
+ address this problem.
+ - Fixed a bug in the scheduler SortPrinters() function
+ that could cause printers to disappear or the
+ scheduler to crash when adding a printer.
+ - Changed the pstops filter to not do per-page filtering
+ if the file does not conform to at least version 3.0
+ of the document structuring conventions. This seems
+ to "fix" printing with broken apps.
+ - The image filters did not handle older TIFF files that
+ lacked the samples-per-pixel and bits-per-pixel tags.
+ - Added new cupsGetJobs() and cupsFreeJobs() functions
+ to manage print jobs.
+ - cupsEncodeOptions() would encode names of 0 length and
+ cupsAddOption() and cupsParseOptions() would add names
+ of 0 length.
+ - The scheduler might block waiting for status messages
+ after starting a new print job. Thanks to Florent
+ Guiliani for finding this bug!
+
+
+CHANGES IN CUPS V1.1.6-3
+
+ - The configure script put the JPEG library before the
+ TIFF library; this caused problems in some
+ configurations since the TIFF library also supports
+ JPEG compression of TIFF images.
+ - Updated the configure script and makefiles to handle
+ admin man pages with the "1m" extension (HP-UX, IRIX,
+ Solaris, Tru64) and in odd directories (IRIX)
+ - The updated cupsTempFile() function did not return
+ the filename when called with a filename buffer of
+ NULL (previously it used a static buffer.)
+ - FreeBSD uses /dev/unlptN, but NetBSD and OpenBSD use
+ /dev/ulptN.
+ - DeletePrinter() didn't remove the printer from any
+ classes it was a member of.
+ - DeletePrinterFromClass() didn't preserve the
+ implicit status of a class.
+ - DeletePrinterFromClasses() didn't remove printers
+ from implicit classes.
+ - StartJob() didn't send the job-sheets, job-priority,
+ and job-hold-until attributes to remote printers.
+ - LoadAllJobs() was looking for job-sheets-completed
+ instead of job-media-sheets-completed. This would
+ prevent accumulation of page data after a restart
+ of the scheduler.
+ - The pstops and imagetops filters now generate copies
+ using the appropriate method for a Level 1, 2, or 3
+ printer since some Level 2/3 printers don't support
+ the /#copies variable anymore.
+ - The man page for cups-lpd did not mention the "-o"
+ option.
+ - The IPP backend didn't handle version-not-supported
+ errors and revert to IPP/1.0 (previously it only checked
+ for a bad-request error)
+ - Caldera fix: lpc now reports unimplemented commands as
+ unimplemented, not invalid.
+ - Caldera fix: lpq didn't recognize BSD lpq "-a" option.
+ - Caldera fix: lpr didn't recognize BSD lpr "-1", "-2",
+ "-3", "-4", "-q", or "-U" options.
+ - RedHat fixes: patches to GNU Ghostscript
+ - SuSE fix: temp file creation patch to GNU Ghostscript
+ (pstoraster).
+ - SuSE fix: remove cgi-bin/abort.c and cgi-bin/email.c,
+ which are not used.
+ - SuSE fix: missing NULL check in cgi_initialize_post().
+ - SuSE fix: potential buffer overflows in
+ cgi_initialize_string().
+ - SuSE fix: potential buffer overflows in
+ ippSetCGIVars()
+ - SuSE fix: more NULL checks in ppdOpen(); also make
+ sure that all memory is freed on error to avoid memory
+ leaks.
+ - SuSE fix: Exit from child if setgid() or setuid()
+ fails.
+ - SuSE fix: Added setgroups() calls after setgid() and
+ setuid() calls.
+ - SuSE fix: potential buffer overflows in httpEncode64()
+ calls.
+ - SuSE fix: potential buffer overflows in httpSeparate()
+ - SuSE fix: potential buffer overflows in ippWrite() for
+ bad input.
+ - SuSE fix: potential nul skip in ppd_decode() for
+ missing hex digits.
+
+
+CHANGES IN CUPS V1.1.6-2
+
+ - Added changes to support NetBSD startup scripts.
+ - Added separate compiler options for pstoraster
+ (Ghostscript) to avoid compiler-induced errors
+ from Ghostscript's twisted code.
+ - The mime.types file contained syntax errors.
+ - Updated the *BSD USB device filenames to use
+ the /dev/unlptN files so that the USB device
+ is not reset prior to printing (causes print
+ corruption on many printers)
+ - Added new cupsTempFd() function to avoid serious
+ security bug in glibc fopen() function. The glibc
+ fopen() function unlinks a file before creating it,
+ which opens up possible symlink attacks.
+ - Now reject 0-length names in add-printer and add-class
+ requests.
+ - Fix for pstoraster when ZLIB is not available.
+ - cupsGetPPD() didn't reconnect when a HTTP connection
+ was lost.
+ - SuSE fix: httpConnect() didn't check that the
+ value from gethostbyname() was a valid IPv4 address.
+ - SuSE fix: httpConnect() didn't allow file descriptor 0
+ to be used for a socket.
+ - SuSE fix: ippRead() didn't confirm that all values in
+ a set were numeric or string types.
+ - SuSE fix: lppasswd race condition fixes.
+ - SuSE fix: directive names could overflow buffer when
+ reading *.conf files.
+ - SuSE fix: HEAD requests for PPD files did not use the
+ same logic as GET requests.
+ - SuSE fix: possible buffer overflow when adding
+ /index.html to requested directory name.
+ - SuSE fix: possible buffer overflow when converting
+ IPP attributes to string options for filters.
+ - SuSE fix: creating file: device output with mode 0666
+ instead of mode 0600.
+ - SuSE fix: creating job info files with mode 0640
+ instead of 0600.
+ - SuSE fix: don't rely on snprintf() for including
+ system name in log filenames.
+ - SuSE fix: add bounds checking when copying quoted
+ and hex strings.
+
+
+CHANGES IN CUPS V1.1.6-1
+
+ - Added configure check for getting the correct
+ strftime() format string; %c is not Y2k safe,
+ and %KC and NULL are not universally supported.
+
+
+CHANGES IN CUPS V1.1.6
+
+ - Fixed another possible DoS attack in httpGets()
+ - Added check for "LANGUAGE = PCL" and "LANGUAGE =
+ POSTSCRIPT" in mime.types.
+ - Resolution options were not being passed into the
+ filter programs properly.
+ - The default compiler options for GCC no longer include
+ "-g3", which apparently is deprecated in newer
+ versions of GCC.
+ - CheckJobs() could cause cupsd to crash if a job is
+ cancelled in StartJob().
+ - The printers.conf and classes.conf files are now
+ written with restricted permissions.
+ - The round-robin algorithm used by FindAvailablePrinter()
+ had problems; fixes contributed by Joel Fredrikson.
+ - If LoadAllJobs() is unable to determine the file type
+ of a print job, assume "application/vnd.cups-raw".
+ - The web interface now provides a job_printer_name
+ value for any corresponding job_printer_uri value.
+ - The cups-lpd mini-daemon now logs the client address
+ and hostname as well as all commands and errors in the
+ syslog file.
+ - The IPP backend now detects the supported file formats
+ and only specifies the document format if it is
+ supported. This makes IPP printing to network print
+ servers and cards more reliable without affecting the
+ capabilities of CUPS servers.
+ - The time_at_xyz attributes are now converted to human-
+ readable dates and times for the web interfaces.
+ - The HP and EPSON sample drivers now correctly catch
+ signals and eject the current page when a job is
+ cancelled.
+ - Fixed bug in CGI code - did not ignore control
+ characters (e.g. newlines) in form data. This caused
+ sporatic web interface problems.
+ - The file type logging code in the scheduler referenced
+ the optional document-format attribute; the new code
+ uses the resolved MIME type instead.
+ - The client.conf parsing code now removes trailing
+ whitespace.
+ - The MaxJobs directive was being treated as a boolean
+ instead of an integer.
+ - The scheduler would not timeout remote printers if
+ BrowseInterval was set to 0.
+ - The lpadmin command now supports setting of options
+ and user-level access control.
+ - Added "-E" option to all printing commands to force
+ encryption.
+ - The client code did not consume the response to the
+ OPTIONS request when switching to secure mode.
+ - The scheduler did not output a Content-Length field
+ when responding to an OPTIONS request.
+ - Added documentation on using cups-lpd with xinetd
+ to the man page.
+ - The socket backend now starts retries at 5 seconds and
+ increases the interval to 30 seconds. This should
+ provide faster printing when multiple jobs/files are
+ queued for a printer.
+ - The filters and backends no longer buffer output to
+ stderr. This should provide much more accurate status
+ reporting.
+
+
+CHANGES IN CUPS V1.1.5-2
+
+ - Fixed configure check for OpenSSL to work with RSA
+ code.
+ - Added configure check for <sys/ioctl.h>, and use this
+ check in backend/serial.c.
+ - Updated configure script handling of data,
+ configuration, and state directories to use datadir,
+ sysconfdir, and localstatedir variables.
+ - NetBSD uses different serial port filenames than
+ FreeBSD and OpenBSD.
+ - The pdftops filter didn't need some X-specific files.
+ - The scheduler makefile doesn't do a chown anymore when
+ installing (cupsd did this automatically on startup
+ anyways)
+
+
+CHANGES IN CUPS V1.1.5-1
+
+ - There was a typo in the top-level Makefile
+ - The top-level Makefile did not install an init script
+ for run level 5.
+ - The configure script did not add the "crypto" library
+ when checking for the OpenSSL library.
+ - The OKIDATA PPD files were missing.
+ - The config.h.in file defined the wrong version number.
+ - The serial backend did not define "funky_hex" under *BSD.
+ - Updated the Visual C++ project files and some of the
+ CUPS API sources to compile under Windows again.
+
+
+CHANGES IN CUPS V1.1.5
+
+ - Security updates - new default configuration does
+ not broadcast printer information and only allows
+ access from the local system.
+ - EXPERIMENTAL encryption support - CUPS now optionally
+ supports TLS/SSL encryption via the OpenSSL library.
+ - Documentation updates.
+ - Makefile/configure script updates.
+ - The RPM spec file didn't work out-of-the-box under
+ RedHat or Mandrake.
+ - Minor code cleanup to remove extraneous compiler
+ warnings.
+ - cupsTempFile() was using %p for the temporary
+ filename; this should have been %08x (just 8 digit
+ hex)
+ - Deleting a printer with active print jobs would still
+ crash the server.
+ - ippWrite() and ipp_write_file() didn't send the
+ correct value length for name-with-language and
+ text-with-language attributes.
+ - Updated IPP code to support copied strings (that
+ should not be freed); this provides slightly more
+ efficient IPP server performance.
+ - Updated PDF filter to Xpdf 0.91.
+ - httpGets() could go into an infinite loop if a line
+ longer than the input buffer size was sent by a
+ client. This could be used in a Denial-of-Service
+ attack.
+ - The lpstat and CUPS API functions now request only the
+ data required when getting the list of printer or
+ class information. This should improve performance
+ with large numbers of printers on slower machines.
+ - The scheduler was always enforcing the FilterLimit,
+ even if FilterLimit was set to 0.
+ - Updated the Linux USB backend to support Mandrake's
+ /dev/usb/usblp# filenames.
+ - The PRINTER and LPDEST environment variables did not
+ override the lpoptions default printer.
+ - The PPD read functions incorrectly included trailing
+ characters (usually whitespace) after quoted string
+ attributes.
+ - The multiple-document-handling attribute handling code
+ did not check for the correct value for collated
+ copies (separate-documents-uncollated-copies).
+ - The EPSON driver did not work with OKIDATA printers in
+ EPSON emulation mode (needed change-emulation command)
+ - The HP-GL/2 filter did not scale the plot properly in
+ scale mode 2.
+ - Added PPD files for 9-pin and 24-pin OKIDATA printers.
+ - The httpSeparate() function didn't handle passwords
+ that started with a number.
+ - ippDelete() could free the character set string
+ multiple times in name-with-language and
+ text-with-language attributes.
+ - The scheduler would access freed memory right after
+ freeing it (for debug messages); these parts of the
+ code have been reordered to avoid this situation
+ which was causing sporatic errors and crashes.
+ - The ppdClose() function didn't free all of the strings
+ in the ppd_file_t structure.
+ - The LoadAllJobs() function in the scheduler did not
+ close the spool directory.
+ - Changed all sprintf's that use string formats to
+ snprintf's, even if the destination buffer is
+ larger than the source string(s); this protects
+ against buffer overflows caused outside of CUPS...
+ - Changed all strcpy's to strncpy's between local and
+ global variables, even if the destination buffer is
+ larger than the source string; this protects
+ against buffer overflows caused outside of CUPS...
+ - The CUPS certificate functions didn't use the
+ CUPS_SERVERROOT environment variable when set.
+ - The directory services code was copying instead of
+ comparing the remote printer info, resulting in
+ unnecessary updates of the printer attributes for
+ remote printers.
+ - Added new mime.types rules to allow automatic raw
+ printing of PCL and ESC/P files; PJL headers are
+ parsed to differentiate between PostScript and
+ PCL job files. This should eliminate a lot of
+ the reports of SAMBA printing problems due to
+ the missing "-oraw" or "-l" options.
+ - The mimeLoadType() function didn't handle the
+ 3-argument contains() function.
+ - The LoadPPDs() function in the scheduler didn't
+ properly set the alloc_ppds variable or handle a PPD
+ database containing 0 printers.
+ - The scheduler FindAvailablePrinter() function didn't
+ use the same queuing logic as the CheckJobs()
+ function. This caused classes to stall if a remote
+ printer was always busy.
+ - Jobs are now assigned to printers in a class
+ round-robin style. This should prevent the first
+ server in the class from bearing the brunt of the
+ jobs.
+ - The scheduler's LoadAllJobs() function didn't always
+ restore remote printers for queued jobs on startup.
+ - The serial backend didn't support the higher baud
+ rates with the old termios interface. It now supports
+ 57600 and 115200 baud.
+ - The serial backend now supports different types of
+ flow control; previously it ignored the flow=XYZ
+ option in the device URI.
+ - The serial backend now supports DTR/DSR flow control,
+ which is popular on dot-matrix printers (access with
+ "flow=dtrdsr" in the device URI)
+ - Added new job-originating-host-name attribute for
+ jobs. The new attribute provides the hostname or
+ IP address of the machine that submitted the job.
+ - The set-job-attributes code no longer allows read-only
+ job attributes to be changed.
+ - Expanded the click area for the navigation bar in the
+ web interface.
+ - Updated the lp and cancel commands to support all of
+ the Solaris print options (some are simply ignored
+ since they do not map)
+ - Updated the scheduler to limit the number of file
+ descriptors to the maximum select() set size. This
+ was causing problems on Solaris systems where the
+ max FD count was increased beyond 1024.
+ - The scheduler's LoadDevices() function was getting
+ interrupted by the SIGCHLD signal handler; now ignore
+ child signals while loading devices.
+ - Added quota and allow/deny user support for printers
+ and classes.
+ - Removed black/CMY adjustment code from the PS and
+ image file RIPs; it was interfering with some CUPS
+ driver dithering code.
+ - The lpc program stopped listing the queue statuses
+ after the first active printer.
+ - The cups-lpd program used an output format that the
+ Solaris printing system did not understand.
+ - Updated the lpq program to use the Solaris format
+ except under Tru64 UNIX.
+ - Some DEC PPD files incorrectly use "Off" for the null
+ value in UI constraints. Added "Off" to the list of
+ accepted null values.
+ - Changed the *BSD define constants to __*BSD__ in all
+ of the backends.
+ - Added support for "lpstat printername", which is an
+ undocumented feature in Solaris.
+ - The HP-GL/2 filter now only sets the plot size if it
+ is set in the plot file.
+ - The lpmove command wasn't sending the requesting
+ user name, causing it to always fail.
+ - Updated the cupsTempFile() code to use GetTempPath()
+ under Windows.
+ - The cups-lpd mini-daemon didn't limit the number of
+ data files accepted, didn't use cupsTempFile(),
+ didn't handle control file job information in any
+ order, and didn't free job options after printing
+ a file.
+ - The scheduler copy_banner() function did not
+ explicitly set the owner and permissions of the banner
+ files, which could prevent the banner pages from
+ printing on some systems.
+ - The lpstat program wasn't listing remote classes.
+ - The scheduler did not verify that the printer-uri
+ attribute was specified in all requests that required
+ it.
+
+
+CHANGES IN CUPS v1.1.4
+
+ - Makefile and configure script fixes.
+ - **** Changed the default Printcap setting **** to
+ /etc/printcap. There are just too many people asking
+ why application XYZ doesn't see their printers!
+ - The web admin interface now displays an error if it
+ can't get the list of printer drivers from cupsd.
+ - The IPP backend was putting the copies option before
+ the other job options were set. This caused the IPP
+ request to contain attribute groups in the wrong
+ order, which prevented remote printing.
+ - Added checks in scheduler to free memory used for
+ IPP requests and language information when closing
+ a client connection.
+ - Fixed the duplex option in the HP LaserJet driver. It
+ should now work with all LaserJet printers (and
+ compatibles)
+ - The add-printer web interface didn't initialize the
+ "old info" data pointer, which caused random crashes
+ on many OS's.
+ - Fixed many page sizes defined in the Level 1
+ compatibility file "gs_statd.ps" to match reality.
+ - Fixed another bug in the setpagedevice "code" in
+ Ghostscript. It should now accept all standard
+ Adobe attributes on all platforms.
+ - Fixed pstoraster so that it reallocates memory for
+ color depth changes as well as size/resolution
+ changes. This removes an ordering constraint on
+ the color, page size, and resolution options in
+ PPD files.
+ - The IPP backend didn't use the job's character set
+ when the destination printer supported it. This
+ caused problems when printing text files to other
+ CUPS servers.
+ - Updated the logic used to determine when to rebuild
+ the PPD file database. The scheduler now checks the
+ dates and the number of PPD files (was just checking
+ the dates.)
+ - Updated the ippSetCGIVars() function (used by the
+ web interfaces) to only filter valid string values.
+ - The PostScript filter was scaling 2-up pages
+ incorrectly. This caused the edges of some pages to
+ be clipped.
+
+
+CHANGES IN CUPS v1.1.3
+
+ - Makefile fixes.
+ - RPM spec file changes.
+ - Documentation updates.
+ - Enabled pstoraster debug messages for everything
+ (only logged when LogLevel set to "debug"...)
+ - Changed the Input/OutputAttributes fix in
+ pstoraster so that it works on all platforms.
+ - The HP-GL/2 filter didn't set the right green
+ color value in encoded polylines or text.
+ - Updated the "fitplot" code to handle plot sizes
+ specified as "PSwidth,length" and "PSlength,width".
+ - Updated the Linux parallel and USB backends to open
+ the device files prior to looking in /proc for
+ autoprobe info. This makes sure that loadable device
+ driver modules are in fact loaded...
+ - Added new FilterLimit directive to limit the number
+ of processing jobs/filters on a system.
+ - set-job-attributes didn't change the job-state to
+ held/pending when the job-hold-until attribute was
+ specified.
+ - set-job-attributes didn't save the new job attributes.
+ - Now change the "requesting-user-name" attribute in
+ requests from remote systems to "remroot" when an
+ unauthenticated "root" user is sent. This can be
+ changed using the new RemoteRoot directive in
+ cupsd.conf.
+ - The cancel-job, hold-job, release-job, and restart-job
+ operations didn't log the authenticated username.
+ - The cups-lpd mini-daemon now checks for a
+ document-format option before forcing raw mode with
+ filter mode 'l'.
+ - The cups-lpd mini-daemon now supports "-o" options
+ on the command-line (passed by inetd) to set global
+ defaults for all print queues.
+ - The pstops filter assumed that a file with a Trailer
+ comment would also have an EOF comment.
+ - Added new cupsSetPasswordCB(), cupsSetServer(),
+ cupsSetUser(), and ippSetPort() functions to better
+ support client applications (especially GUIs...)
+ - The CUPS-add-class and CUPS-add-printer operations
+ didn't reset the printer-name attribute on remote
+ print queues that had to be renamed when a local
+ printer was defined with the same name.
+ - The lpoptions command now supports a "-r" option to
+ remove options for a printer or instance.
+ - The lpadmin and admin.cgi programs no longer allow
+ class and printer names to begin with a number; this
+ caused the command-line utilities to become confused.
+ - The Linux USB backend now looks for both the parallel
+ and usblp driver names in the device list.
+ - Added a new FontPath directive to cupsd.conf, and also
+ a "--with-fontpath" option for the configure script to
+ specify alternate font paths for pstoraster.
+ - The CUPS-move-job operation didn't update the
+ job-printer-uri attribute.
+ - The scheduler only looked up printers and classes by
+ name in IPP requests, instead of using the full URI.
+ This caused problems with KUPS and friends with
+ remote printers.
+ - The scheduler now handles better localization of
+ hostnames (e.g. server is host.foo.com, remote is
+ host.subfoo.foo.com, localized is not host.subfoo...)
+ - The scheduler logging functions now use a common
+ log file checking/rotation function (courtesy of
+ Crutcher Dunnavant at Red Hat)
+ - The scheduler could accept more client connections
+ than it allocated for if more than one Port or Listen
+ line was present in cupsd.conf.
+ - Other minor scheduler performance tweeks.
+ - The lpq and lprm commands didn't support the default
+ printer set using lpoptions.
+ - The lpoptions command now supports a "-l" option to
+ list the printer-specific options and their current
+ settings.
+ - The web printer and class lists now show a link to the
+ default printer or class at the top of the page.
+ - The text filter now supports pretty printing of shell
+ and perl scripts as well as C/C++ source files.
+ - The top and bottom margins were reversed for landscape
+ text printing.
+ - The lpq and lprm commands didn't understand printer
+ instances.
+ - The scheduler only selected on the first 100 file
+ descriptors instead of the maximum file descriptor
+ limit.
+ - The scheduler client, listener, and mainline functions
+ now share code to disable and enable monitoring for
+ new client connections.
+ - The imagetoraster filter didn't support all of the
+ required pagedevice parameters.
+ - The serial backend now checks for 100 serial ports
+ under Linux.
+ - The scheduler used sscanf() to pull out the remote
+ printer location, description, and make/model strings,
+ but if any of these options was empty then sscanf()
+ would stop processing.
+ - Added "debug2" log level to provide a little less
+ verbose debugging information at the "debug" level.
+ - The scheduler would crash if you stopped a printer
+ that was currently printing a job.
+ - The scheduler incorrectly allowed jobs in the cancelled,
+ aborted, or completed state to be cancelled.
+ - The image filters did not load TIFF images properly
+ for bottom-to-top and right-to-left orientations.
+ - Added new cupsEncodeOptions() function to encode
+ CUPS options as IPP job attributes.
+ - The IPP backend, LPD mini-daemon, client commands,
+ and CUPS API did not properly encode multiple
+ option values separated by commas.
+ - Added new scheduler malloc logging in debug mode
+ (provides summary of total arena size, allocated,
+ and free bytes once a minute)
+ - The EPM-based distributions didn't install the
+ correct symlinks for a few man pages.
+ - Fixed a memory leak in the scheduler - wasn't
+ freeing old filters when deleting or renaming
+ printers.
+ - The scheduler now queries the primary IP address
+ for the name of the server and maps any incoming
+ requests from that address to the server name.
+ This fixes web admin mapping problems from
+ server.domain.com to localhost.
+ - The web printer modify interface now remembers
+ the previous device and driver settings (except
+ for serial ports.)
+ - The job-k-octets attribute is now stored as part of
+ the job attributes; this preserves the information
+ after a job is completed when job file history is
+ turned off.
+ - Dropped option sub-group parsing code for the moment,
+ since many Xerox PPD files abuse this feature in PPD
+ files and don't follow the hierarchy rules.
+ - Added new wrapper code around options so that duplex
+ options for some HP printers don't prevent prints.
+ - Added support for Digital UNIX/Tru64 UNIX/OSF/1 format
+ for "lpstat -v" output.
+ - Now show the URI for remote printers instead of
+ /dev/null in "lpstat -v" output.
+ - Creating classes and adding printers to a class with
+ the lpadmin command didn't work.
+ - The banner pages and test page should now format
+ correctly in both portrait and landscape orientations.
+ - Updated banner page substitution so that { can appear
+ by itself without quoting.
+
+
+CHANGES IN CUPS v1.1.2
+
+ - Makefile/configure fixes
+ - RPM spec file and EPM list file fixes
+ - The cupsTempFile() function now uses a different
+ algorithm for generating temp files and "reserves"
+ them to avoid possible security exploitation.
+ - Now use /dev/random (if available) to seed the random
+ number generator for certificates.
+ - The /var/spool/cups and /var/spool/cups/tmp directories
+ were incorrectly owned by root; they are now owned by
+ the filter user, typically "lp".
+ - The scheduler now resets the permissions on the spool
+ and temp directories as needed to match the filter
+ user.
+ - Now expose ppdCollect() as an externally callable
+ function.
+ - The image filters now support filtering from the
+ standard input.
+ - The imagetoraster filter now collects all printer
+ options and job patch files and applies them to the
+ page header as needed.
+ - Added format and banner options to LPD backend.
+ - The send-document operation didn't start a job
+ immediately when last-document was true.
+ - The set-job-attributes operation didn't correctly
+ replace the current job-hold-until value.
+ - Removed the option wrapper code from ppdEmit() and
+ friends since it caused problems with Ghostscript
+ and many PS printers.
+ - Was setting TZ environment variable twice for job
+ filters.
+ - Added syslog logging in cups-lpd to aide in
+ debugging problems.
+ - The HP-UX parallel port backend did not list the
+ available parallel ports on some systems (printf
+ calling problem...)
+ - The lp and lpr commands overrode user options if
+ -d/-P were specified after -o.
+ - The scheduler would crash with a */* filter.
+ - Added support for a "default" filter for unknown file
+ types. The example provided in the mime.types and
+ mime.convs file prints unknown files as if "-oraw" was
+ specified for the job. This functionality is disabled
+ by default.
+ - The "compatibility" mode fix for older backends did not
+ work for smbspool. Added a workaround for it.
+ - The HP-GL/2 filter didn't perform the right pen scaling
+ with some files and the "fitplot" option.
+ - New Software Performance Specification document that
+ describes the memory, disk, and CPU usage of all the
+ CUPS software.
+
+
+CHANGES IN CUPS v1.1.1
+
+ - The pstoraster Makefile still referenced one of the
+ old PDF filter files.
+ - The filter Makefile used INSTALL_DATA instead of
+ INSTALL_LIB to install the CUPS image library.
+ - The administration CGI didn't work properly with
+ network devices.
+ - The BrowseACL variable was not updated after the
+ cupsd.conf file was loaded.
+ - The lpd mini-daemon didn't support printer instances.
+ - Now use a default umask of 077 for child processes.
+ - Now put temp files in /var/spool/cups/tmp for child
+ processes and the root user, unless TMPDIR or TempDir
+ is defined otherwise.
+ - cupsGetPPD() no longer uses easy-to-guess filenames.
+ - The CUPS-Delete-Class and CUPS-Delete-Printer
+ operations now save classes.conf file as needed.
+ - The lppasswd command wouldn't add a user.
+ - The ppdOpen() function could cause a segfault if a
+ 0-length PPD file was read.
+ - The image filters were not handling images with
+ different X and Y resolutions properly.
+ - The imagetoraster filter defaulted to RGB output
+ instead of black output like pstoraster.
+ - The pstops filter didn't handle binary data properly.
+ - The pstops filter didn't handle copies properly for
+ PS files lacking DSC comments.
+ - The pstops filter now appends %%EOF to the end of
+ documents if they don't have it.
+ - The cupsGetPPD() function didn't work with remote
+ printers lacking the @server in the name.
+ - The configure script didn't work right when only
+ --prefix was specified.
+ - The ppdEmit() code now wraps all printer commands so
+ that buggy PostScript printers will still print a file
+ after receiving an option that isn't available.
+ - Fixed the DeskJet margin bug, and disabled 600dpi
+ color mode until it can be fixed.
+ - The cupsAddDest() function didn't sort instances
+ correctly in all cases.
+ - The time-at-xyz attributes now expand to the date and
+ time in banner files.
+
+
+CHANGES IN CUPS v1.1
+
+ - Documentation updates.
+ - Configuration script updates.
+ - Didn't map charset and language value strings to lowercase
+ and _ to - as required by SLP and IPP.
+ - ppdLoadXYZ() didn't add the list of available fonts to the
+ ppd_file_t structure.
+ - The text filter common code was freeing the PPD file data
+ before it was used.
+ - The text filter now embeds missing fonts.
+ - The CGI interface now maps local access to the server to
+ the localhost address.
+ - The HP-GL/2 filter didn't use the specified (or default)
+ color ranges, resulting in strange colors.
+ - The HP-GL/2 filter didn't default to no input window, which
+ caused unnecessary clipping of plots.
+ - Integrated Xpdf's pdftops filter into CUPS, which is a
+ lightweight and reliable replacement for Ghostscript's
+ PDF support.
+ - Removed all PDF support from Ghostscript.
+ - Updated HP driver to set top margin; this seems to fix
+ the offset problem seen on HP DeskJet printers.
+ - Fixed dependencies on the ZLIB and JPEG libraries in
+ pstoraster.
+ - The lpr command wasn't using the lpoptions defined by
+ the user.
+ - The lpr command would segfault if the CUPS server was
+ not running.
+ - The top-level makefile was not installing the CUPS
+ initialization script. It now does so if it sees there
+ is an init.d directory in /sbin, /etc/rc.d, or /etc.
+ - "lpstat -v all" didn't work.
+ - pstoraster would crash on some platforms doing the
+ setpagedevice operator.
+ - The web administration interface now allows you to set
+ the default banner pages.
+ - Images can now be positioned on the page using the new
+ "position" option.
+ - The AccessLog, ErrorLog, and PageLog directives now
+ support "%s" to insert the server name.
+ - Added a new BrowseShortNames directive to allow for
+ short remote printer names ("printer" instead of
+ "printer@server") when possible.
+ - The scheduler could crash if given an invalid PPD file
+ with no PageSize attributes.
+ - Updated the serial, parallel, and usb backends to do
+ multiple writes and ignore ioctl() errors as needed;
+ this should fix problems with serial printing on old
+ serial drivers and with the UltraSPARC parallel port
+ driver under Solaris 2.7.
+ - Now propagate LD_LIBRARY_PATH to child processes from
+ cupsd.
+ - New DataDir directive for installing in alternate
+ locations.
+ - New CUPS_SERVERROOT and CUPS_DATADIR environment
+ variables to specify installation directories as
+ needed.
+ - Queued remote jobs recreate remote printers as needed
+ when the scheduler is started.
+ - Deleting a printer also purges all jobs on that
+ printer.
+ - Old job and control files that don't belong to a
+ printer are automatically deleted.
+ - Wasn't updating time-at-processing and
+ time-at-completed attributes in job.
+ - Didn't send required multiple-operation-time-out
+ attribute in response to a get-printer-attributes
+ request.
+ - cups-lpd now supports options set with lpoptions.
+ - The job-hold-until attribute is now provided with all
+ jobs. For jobs that are not currently held the value
+ is "no-hold".
+ - The scheduler was not sending "unknown" values in IPP
+ responses.
+ - The lpoptions command now accumulates options from
+ previous runs rather than replacing all options for a
+ printer.
+ - The IPP backend now switches to IPP/1.0 if a 1.1
+ request fails.
+ - The lpadmin and admin.cgi programs now validate new
+ printer and class names.
+ - The access_log file now includes the number of IPP bytes
+ received in a POST request.
+
+
+CHANGES IN CUPS v1.1b5
+
+ - Documentation updates.
+ - The pstoraster filter didn't compile without the JPEG library.
+ - The cupsd server didn't support the HTTP OPTIONS request
+ method.
+ - Dropped the "CLOSE" method supported by the cupsd server.
+ (not defined in HTTP specification)
+ - Makefile/configure script fixes.
+ - Missing the job-restart template.
+ - Added IPP test suite for testing.
+ - Missing IPP documentation from binary distributions.
+ - Fixed multiple-document handling code when last-document
+ not specified.
+ - Added more checks to IPP requests to prevent bad requests
+ from getting through.
+ - Not all of the Ghostscript error output was being sent to
+ stderr.
+ - The PostScript filter now added PJL commands to set the
+ job name and display string, if supported.
+ - The scheduler would crash if the browse socket could not
+ be bound. Now disables browsing if port 631 (reserved for
+ IPP) is being used by a misbehaving daemon.
+ - The USB backend now looks for the older Linux 2.2.x USB
+ printer device filenames as well as the newer ones.
+ - The IPP backend now uses the UTF-8 charset exclusively,
+ since apparently only CUPS handles more than US-ASCII and
+ UTF-8...
+ - Wasn't quoting ( in PostScript banners...
+ - Send-document requests with no document-format attribute
+ could cause cupsd to crash.
+ - Old jobs in the spool directory might cause cupsd to
+ crash.
+ - CUPS now supports all of the recommended job-hold-until
+ keywords as well as name values of the form "HH:MM" and
+ "HH:MM:SS".
+ - Added placeholder pointer for TLS encryption to the HTTP
+ connection structure.
+ - Fixed the "fast poll" bug reported by DISA - the
+ status pipe wasn't being closed for multi-file jobs.
+ - Revamped put_params code in pstoraster to fix bitmap
+ allocation bug with FrameMaker output.
+ - Ripped out filename, etc. code from pstoraster as it
+ is a potential security hole.
+ - Added support for RIP_CACHE environment variable in the
+ new pstoraster.
+ - Fixed USB device filenames for Linux; now support new
+ pre-2.4 devices (/dev/usb/lp#) and 2.2 devices
+ (/dev/usblp#)
+ - Fixed accept-jobs crash with classes.
+ - Didn't include dot-matrix EPSON drivers in previous
+ release.
+
+
+CHANGES IN CUPS v1.1b4
+
+ - Documentation updates.
+ - Many makefile and configuration script fixes (should
+ now compile better under *BSD.)
+ - The MediaPosition attribute was being mishandled by
+ GhostScript, causing the RIP to fail whenever a paper
+ tray was selected.
+ - The scheduler now logs the final line of log information
+ from a filter, even if it doesn't end with a newline; this
+ primarily affects GhostScript error output.
+ - The scheduler was saving implicit classes, so after a few
+ restarts you'll end up with AnyPrinter, AnyAnyPrinter, etc.
+ - The JPEG autodetection didn't work with some JPEG files that
+ came from digital cameras (JPEG but not JFIF); the new
+ magic types should work with all images that the JPEG library
+ can handle.
+ - Fixed a bug in the new contains() MIME type rule that could
+ cause cupsd to crash.
+ - Switched to using strtol() in the MIME type code so that you
+ can use hex, octal, or decimal constants as desired in the
+ mime.types file.
+ - Banner files are now treated as templates, allowing any type
+ of file to be used as a banner.
+ - Added a 30-second timeout to backend device reports so that a
+ hung backend will not prevent the scheduler from starting.
+ - Backends are once again terminated when jobs are stopped; the
+ CUPS-supplied backends will stay alive until the downstream
+ filters have had a chance to clear out old page data.
+ - The charset lookup in the CUPS localization support was wrong
+ (iso8859-x instead of iso-8859-x)
+ - Changed the "cpNNNN" code page files to "windows-NNNN" to match
+ the IANA registrations.
+ - New PostScript banner pages.
+ - Added Windows BMP and Alias PIX image file support to the image
+ filter.
+ - The PNG reading coded didn't free all of its buffers.
+ - Added Digest authentication support to the client and server
+ code.
+ - Added Solaris options to System V commands.
+ - Now support the output-bin job template attribute.
+ - Now log the job-billing attribute in the page_log file, and
+ keep track of the total number of pages in the
+ job-media-sheets-completed attribute.
+ - The penwidth option is now in micrometers to support more
+ accurate width specification.
+ - The image filters now support interlaced and transparent PNG
+ files.
+ - Didn't handle Keep-Alive for HTTP/1.0 clients.
+ - The BrowsePoll support didn't handle when BrowseInterval
+ was set to 0 (now uses 30 seconds if BrowseInterval is 0)
+ - The DeskJet driver now supports 600 DPI color for printers
+ that support it.
+ - New lpinfo and lpmove commands.
+ - The lpq command now supports the Digital UNIX output format.
+ - The LPD mini-daemon now supports all required LPD operations.
+ - Implemented timeouts for multi-file documents.
+ - New cupsPrintFiles() function in the CUPS API library to
+ print multiple files using create-job and send-document
+ requests (1 job ID for multiple files)
+ - The lp command now sends multiple files as a single job,
+ matching the behavior of the System V command.
+ - The "cancel -a" command now purges job history files.
+
+
+CHANGES IN CUPS v1.1b3
+
+ - Documentation updates.
+ - The startup script redirected stderr before stdout,
+ which caused problems with some versions of Bourne
+ shell and Bash.
+ - Fixed a bug in the scheduler's PPD language reading
+ code.
+ - Fixed a bug in the scheduler's check for the
+ manufacturer in the PPD.
+ - The pstoraster filter didn't allow some input and
+ output attributes to be set.
+ - Added banner page support.
+ - Added missing PAM configuration file.
+ - Configuration script fixes for Linux and *BSD.
+ - The log file code was using the wrong sign for the
+ timezone offset.
+ - The default printcap file is now empty (no printcap
+ file is generated).
+ - The scheduler did not start jobs destined for remote
+ printers when they became available.
+ - The scheduler now sends jobs to remote printers
+ immediately. (when sending jobs to a class, the remote
+ printer is only used when it becomes available)
+ - The scheduler now supports printing of banner pages
+ via the job-sheets attribute (banner files go in
+ /usr/share/cups/banners)
+ - The cupsd process now forks itself into the background
+ (override with -f)
+ - Added several *BSD enhancements.
+ - Added UNSUPPORTED libtool option to configuration
+ script to allow the use of libtool. Note that this is
+ UNSUPPORTED by us, but added by request of the *BSD
+ folks.
+ - The parallel, serial, and usb backends now retry the
+ opening of their ports. This allows multiple print
+ queues to be associated with a single physical port,
+ and will allow CUPS to support several types of
+ parallel port auto-switches in the near future.
+ - Set-Job-Attributes now supports adding, changing, and
+ deleting job template attributes, and no longer allows
+ job-printer-uri to be set (see CUPS-Move-Job)
+ - Added CUPS-Move-Job operation to support moving of jobs.
+ - The CGI template functionality now supports multiple
+ languages (still only have templates for English)
+ - The CUPS-Get-Printers and CUPS-Get-Classes operations
+ now support filtering as defined in the IDD.
+ - The Get-Jobs, CUPS-Get-Printers, and CUPS-Get-Classes
+ operations no longer limit themselves to 1000 jobs,
+ printers, or classes (believe it or not, this is
+ needed for some sites)
+ - The web interfaces now support language-specific
+ templates.
+ - The web admin interface now supports class management.
+ - The web admin interface now shows a list of
+ manufacturers before selecting the PPD/driver for a
+ specific printer.
+ - The web admin interface now supports configuration of
+ the default printer options in the PPD file.
+ - The web interface now uses printer/class
+ authentication for the test page instead of admin
+ authentication.
+ - Updated the RPM spec file for the current release.
+ - Updated language support for Windows code pages.
+ - 8-bit character set files can now use multiple fonts
+ (needed for Arabic, Greek, Hebrew, etc.)
+ - Added basic right-to-left text support in the text
+ filter.
+ - The POSIX locale now uses ISO-8859-1 instead of
+ US-ASCII.
+ - Fixed PDF printing problems.
+ - Fixed PostScript RIP page device dictionary elements
+ that weren't getting passed in cups_get_params().
+ - Added a new "contains" rule for the magic file typing.
+ - The "printable" rule now accepts characters from 128 to 255
+ (needed for Microsoft character sets)
+ - Added support for ~/.cupsrc as well as /etc/cups/client.conf
+ so that the default server can be configured on a per-user
+ basis without environment variables.
+ - Added LPD mini-daemon to support incoming LPD jobs.
+
+
+CHANGES IN CUPS v1.1b2
+
+ - Documentation updates.
+ - The lp command didn't always load the user-defined
+ destinations, preventing it from seeing the default
+ printer.
+ - Many configure script and makefile fixes.
+ - The Microsoft code page files were missing from the
+ distribution.
+ - Added a workaround for the HP IPP client (which is sending
+ an invalid printer-uri in requests)
+ - Fixed the encoding of text-with-language and name-with-language
+ to match the IPP spec.
+ - Added support for unknown value tags in the IPP routines
+ (previously they would be ignored)
+ - Integrated GNU GhostScript 5.50 into the pstoraster filter.
+ - Client hostname resolution was broken on little-endian
+ machines.
+ - Now look at client.conf file for client's default server
+ and printer.
+ - The cupsServer() function did not close the client.conf file
+ if it contained a ServerName directive.
+ - Added BrowseAllow, BrowseDeny, BrowseOrder, BrowsePoll, and
+ BrowseRelay directives.
+ - BrowseInterval 0 disables advertising of local printers, but
+ still receives information on remote printers.
+ - New browse polling daemon (for polling servers on different
+ networks)
+ - New PPD cache file for faster startup times with large numbers
+ of PPD files.
+ - The Host: field was incorrectly required for HTTP/1.0 clients.
+ - New set-job-attributes operation now supported.
+ - The mime_load_types() and mime_load_convs() functions did not
+ close their input files.
+
+
+CHANGES IN CUPS v1.1b1
+
+ - NEW web-based administration interface.
+ - NEW EPSON printer drivers.
+ - NEW user-defined printers and options.
+ - NEW persistent jobs and job history
+ - NEW IPP/1.1 support
+ - NEW template-based web interfaces.
+ - NEW CUPS-get-devices and CUPS-get-ppds operations.
+ - NEW support for create-job and send-file operations.
+ - NEW certificate-based authentication for local
+ administration.
+ - NEW USB backend.
+ - The lpr command now produces human-readable error messages.
+ - The lpq command now produces BSD standard format output
+ instead of OSF/1 output. This should resolve the SAMBA
+ print queue problems that have been reported.
+ - The IPP backend did not always detect when the "raw" option
+ was being used.
+ - The "lpstat -p" command would stop after the first active
+ printer.
+ - The "lpstat -v" command would stop before the first remote
+ printer.