| 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. |