diff options
author | Didier Raboud <odyx@debian.org> | 2012-10-25 20:44:09 +0200 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2012-10-25 20:44:09 +0200 |
commit | b0950df0920600c7b76f0aada5fb2d7dfe01eb7b (patch) | |
tree | 572af97f88a95670b867d6986953623579edc26e /CHANGES-1.1.txt | |
parent | 3621a2b09269d8c9c136b4317193c31e96471ec6 (diff) |
Imported Upstream version 1.4.4
Diffstat (limited to 'CHANGES-1.1.txt')
-rw-r--r-- | CHANGES-1.1.txt | 3462 |
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. |