From: Michael R Sweet Date: Wed, 1 Nov 2017 15:23:38 +0000 (-0400) Subject: Start CUPS 2.3.x development. X-Git-Tag: v2.3b1~88 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=11143dcf5bab261c62e44c109c915b5561902784;p=thirdparty%2Fcups.git Start CUPS 2.3.x development. --- diff --git a/CHANGES-1.0.txt b/CHANGES-1.0.txt deleted file mode 100644 index 296d89f79..000000000 --- a/CHANGES-1.0.txt +++ /dev/null @@ -1,217 +0,0 @@ -CHANGES-1.0.txt ---------------- - -CHANGES IN CUPS v1.0.5 - - - The HP-GL/2 filter did not correctly set the pen color - for pens other than #1. - - The scheduler would only accept 26 simultaneous jobs - under some OS releases (mkstemp() limitation.) It now - handles up to 2^32 simultaneous jobs. - - The PostScript filter loaded the printer's PPD file - twice. - - The PAM authentication code now uses pam_strerror() to - provide a textual error message in the error_log file. - - The scheduler now copies PPD and interface script - files instead of moving them; this fixes installations - with a separate requests directory. - - The PostScript RIP did not generate correct 6-color - output. - - Several filters were marking PPD options twice when - they didn't need to. - - The scheduler did not save the printer or class state - after an accept-jobs or reject-jobs operation. - - The cupsGetDefault() function now ignores the PRINTER - environment variable if it is set to "lp". - - New ippErrorString() function to get textual error - messages. - - Better error reporting in the System V commands. - - The lpadmin and lpstat commands always tried to - connect to the default server. - - The text filter didn't load the charset files from the - correct location. - - Wasn't sending a WWW-Authenticate: field to HTTP - clients when authentication was required. - - httpSeparate() didn't always set the default port - number for known methods. - - The HP-GL/2 filter now looks for "PSwidth,length" - instead of (the correct) "PSlength,width" as - documented by HP. It appears that many major CAD - applications are broken and this change allows the - auto-rotation to work with them. - - The IPP "printer-resolution" option was not being - translated. - - The charset files did not include the Microsoft - "standard" characters from 128 to 159 (unused by the - ISO-8859-x charsets) - - The scheduler was chunking the Content-Type field from - CGI programs; this problem was most noticeable with - Microsoft Internet Explorer 5. - - By popular demand, the printers, jobs, and classes - CGIs no longer force a reload of the page every 10/30 - seconds. - - The scheduler incorrectly required that the IPP client - provide a document-format attribute for the - validate-job operation. - - Clients that sent bad IPP requests without the - required attributes-natural-language and - attributes-charset attributes would crash the - scheduler. - - -CHANGES IN CUPS v1.0.4 - - - Documentation updates. - - Jobs would get stuck in the queue and wouldn't print - until you enabled the queue. - - The lp and lpr commands now catch SIGHUP and SIGINTR. - - The lp and lpr commands now use sigaction or sigset - when available. - - CUPS library updates for WIN32/OS-2 - - -CHANGES IN CUPS v1.0.3 - - - Documentation updates. - - The lpq man page was missing. - - The configure script was not properly detecting the - image libraries. - - The top-level makefile was calling "make" instead of - "$(MAKE)". - - PostScript filter fixes for number-up, OutputOrder, - and %Trailer. - - The imagetops filter didn't end the base-85 encoding - properly if the image data was not a multiple of 4 - bytes in length. - - The imagetoraster filter didn't generate good banded - RGB or CMY data (was dividing the line width by 4 - instead of 3...) - - The imagetoraster filter now records the bounding - box of the image on the page. - - The CUPS image library cache code wasn't working as - designed; images larger than the maximum RIP cache - would eventually thrash using the same cache tile. - - The CUPS image library TIFF loading code didn't - handle unknown resolution units properly; the fixed - code uses a default resolution of 128 PPI. - - cupsGetClasses() and cupsGetPrinters() did not free - existing strings if they ran out of memory. - - The scheduler logs incorrectly contained 3 digits for - the timezone offset instead of 4. - - The scheduler now does a lookup for the default user - and group ID; the previous hardcoded values caused - problems with the LPD backend. - - The cancel-job operation now allows any user in the - system group to cancel any job. - - The cancel-job operation stopped the print queue if - the job was being printed. - - Now only stop printers if the backend fails. If the - filter fails then the failure is noted in the - error_log and printing continues with the next file in - the queue. - - Now log whether a filter fails because of a signal - or because it returned a non-zero exit status. - - The root user now always passes the system group test. - - Printers with an interface script and remote printers - and classes didn't have a printer-make-and-model - attribute. - - Added logging of lost/timed-out remote printers. - - The HP-GL/2 filter was scaling the pen width twice. - - Updated the HP-GL/2 filter to use a single SP (Set - Pen) procedure. This makes the output smaller and is - more appropriate since the filter keeps track of the - pen states already. - - The scheduler didn't handle passwords with spaces. - - The IPP backend now does multiple copies and retries - if the destination server requires it (e.g. HP - JetDirect.) - - The disable command didn't implement the "-c" option - (cancel all jobs.) - - Changed the CMYK generation function for the image file - and PostScript RIPs. - - The lp command didn't support the "-h" option as - documented. - - The AppSocket, IPP, and LPD backends now retry on all - network errors. This should prevent stopped queues - caused by a printer being disconnected from the - network or powered off. - - The scheduler now restarts a job if the corresponding - printer is modified. - - The image RIPs now rotate the image if needed to fit - on the page. - - -CHANGES IN CUPS v1.0.2 - - - The HP-GL/2 filter didn't always scale the output - correctly. - - The HP-GL/2 filter now supports changing the page size - automatically when the "fitplot" option is not used. - - The cancel-job operation was expecting a resource name - of the form "/job/#" instead of "/jobs/#"; this - prevented the cancel and lprm commands from working. - - The backends didn't log pages when files were printed - using the "-oraw" option. - - The authorization code did not work with the Slackware - long shadow password package because its crypt() can - return NULL. - - The chunking code didn't work for reading the response - of a POST request. - - cupsGetPPD() now does authentication as needed. - - The N-up code in the PostScript filter didn't work - with some printers (grestoreall would restore the - default blank page and device settings). - - The N-up code in the PostScript filter didn't scale - the pages to fit within the imageable area of the - page. - - Wasn't doing an fchown() on the request files. This - caused problems when the default root account group - and CUPS group were not the same. - - -CHANGES IN CUPS v1.0.1 - - - Documentation updates. - - Fixed a bunch of possible buffer-overflow conditions. - - The scheduler now supports authentication using PAM. - - Updated the Italian message file. - - httpEncode64() didn't add an extra "=" if there was - only one byte in the last three-byte group. - - Now drop any trailing character set from the locale - string (e.g. "en_US.ISO_8859-1" becomes "en_US") - - Fixed "timezone" vs "tm_gmtoff" usage for BSD-based - operating systems. - - Updated IPP security so that "get" operations can be - done from any resource name; this allows the CGIs to - work with printer authentication enabled so long as - authentication isn't turned on for the whole "site". - - The IPP code didn't properly handle the "unsupported" - group; this caused problems with the HP JetDirect since - it doesn't seem to support the "copies" attribute. - - The HTTP chunking code was missing a CR LF pair at the - end of a 0-length chunk. - - The httpSeparate() function didn't handle embedded - usernames and passwords in the URI properly. - - Doing "lpadmin -p printer -E" didn't restart printing - if there were pending jobs. - - The cancel-job operation now requires either a - requesting-user-name attribute or an authenticated - username. - - The add-printer code did not report errors if the - interface script or PPD file could not be renamed. - - Request files are now created without world read - permissions. - - Added a cupsLastError() function to the CUPS API to - retrieve the IPP error code from the last request. - - Options are now case-insensitive. - - The lpq command now provides 10 characters for the - username instead of the original (Berkeley standard) - 7. - - The cancel command needed a local CUPS server to work - (or the appropriate ServerName in cupsd.conf) - - The cancel and lprm commands didn't report the IPP - error if the job could not be cancelled. - - The lp and lpr commands didn't intercept SIGTERM to - remove temporary files when printing from stdin. - - The lp and lpr commands didn't report the IPP error if - the job could not be printed. diff --git a/CHANGES-1.1.txt b/CHANGES-1.1.txt deleted file mode 100644 index c641e794a..000000000 --- a/CHANGES-1.1.txt +++ /dev/null @@ -1,3462 +0,0 @@ -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 instead of - . - - 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 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, , , 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 , 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. diff --git a/CHANGES-1.2.txt b/CHANGES-1.2.txt deleted file mode 100644 index 7b0b1f2de..000000000 --- a/CHANGES-1.2.txt +++ /dev/null @@ -1,1261 +0,0 @@ -CHANGES-1.2.txt ---------------- - -CHANGES IN CUPS V1.2.12 - - - The PHP cups_print_file() function crashed if the options - array contained non-string option values (STR #2430) - - The image/tiff file matching rule incorrectly identified - some text files as TIFF files (STR #2431) - - The filter(7) man page incorrectly documented the - "PAGE: total #-pages" message (STR #2427) - - PCL text files were mis-identified as HP-GL/2 and - caused the HP-GL/2 filter to hang (STR #2423) - - When printing to a queue with user ACLs, the scheduler - incorrectly returned a quota error instead of a "not - allowed to print" error (STR #2409) - - cupsaddsmb could get in a loop if no printer drivers - were installed (STR #2407) - - cupsRasterReadHeader() did not byte-swap the header - properly when compiled with certain versions of GCC. - - The IPP backend did not send the document-format - attribute for filtered jobs (STR #2411) - - Some PPD files could cause a crash in ppdOpen2 (STR - #2408) - - The web admin interface incorrectly handled the "share - printers" and "show remote printers" settings (STR - #2393) - - The scheduler's log messages about AuthClass and - AuthGroupName advised using a replacement directive but - had the wrong syntax (STR #2400) - - Updated the PostScript/PJL and HP-GL/2 MIME rules to - look in the first 4k of the file, not just the first 1k - (STR #2386) - - Updated the Italian localization (STR #2382) - - -CHANGES IN CUPS V1.2.11 - - - Fixed the "relaying from" log message (STR #2376) - - Updated the launchd support on Mac OS X to better - support reconfiguration. - - "make distclean" didn't remove all generated files - (STR #2366) - - Fixed a bug in the advertisement of classes (STR - #2373) - - The IPP backend now stays running until the job is - actually printed by the remote server; previously - it would stop monitoring the job if it was held or - temporarily stopped (STR #2352) - - PDF files were not always printed using the correct - orientation (STR #2348) - - The scheduler could crash if you specified a bad file: - URI for a printer (STR #2351) - - The Renew-Subscription operation now returns the - notify-lease-duration value that was used (STR #2346) - - The IPP backend sent job options to IPP printers, - however some printers tried to override the options - embedded in the PS/PCL stream with those job options - (STR #2349) - - ppdLocalize() now also tries a country-specific - localization for when localizing to a generic locale - name. - - The cupstestppd program now allows for partial - localizations to reduce the size of universal PPD - files. - - Chinese PPD files were incorrectly tagged with the - "cn" locale (should have been "zh") - - The backends now manage the printer-state-reasons - attribute more accurately (STR #2345) - - Java, PHP, Perl, and Python scripts did not work - properly (STR #2342) - - The scheduler would take forever to start if the - maximum number of file descriptors was set to - "unlimited" (STR #2329) - - The page-ranges option was incorrectly applied to the - banner pages (STR #2336) - - Fixed some GCC compile warnings (STR #2340) - - The DBUS notification code was broken for older - versions of DBUS (STR #2327) - - The IPv6 code did not compile on HP-UX 11.23 (STR - #2331) - - PPD constraints did not work properly with custom - options. - - Regular PPD options with the name "CustomFoo" did - not work. - - The USB backend did not work on NetBSD (STR #2324) - - The printer-state-reasons attribute was incorrectly - cleared after a job completed (STR #2323) - - The scheduler did not set the printer operation policy - on startup, only on soft reload (STR #2319) - - The AP_FIRSTPAGE_InputSlot option did not clear any - ManualFeed setting that was made, which caused problems - with some PPD files (STR #2318) - - cupsDoFileRequest() and cupsDoRequest() did not abort - when getting an error in the response (STR #2315) - - The scheduler did not schedule jobs properly to remote - or nested classes (STR #2317) - - Updated the mime.types and mime.convs headers to warn - that the files are overwritten when CUPS is installed. - Local changes should go in local.types or local.convs, - respectively (STR #2310) - - The scheduler could get in an infinite loop if a - printer in an implicit class disappeared (STR #2311) - - The pstops filter did not handle %%EndFeature comments - properly (STR #2306) - - Fixed a problem with the Polish web page printer icons - (STR #2305) - - ppdLocalize() now also localizes the cupsICCProfile - attributes. - - The scheduler still had a reference to the incorrect - "notify-recipient" attribute (STR #2307) - - The "make check" and "make test" subscription tests did - not set the locale (STR #2307) - - The "make check" and "make test" subscription tests - incorrectly used the notify-recipient attribute instead - of notify-recipient-uri (STR #2307) - - cupsRasterInterpretPPD() incorrectly limited the - cupsBorderlessScalingFactor when specified in the - job options. - - -CHANGES IN CUPS V1.2.10 - - - ppdLocalize() now supports localizing for Japanese - using the "jp" locale name used by the ppdmerge - program from the CUPS DDK 1.1.0 (STR #2301) - - _cupsAdminSetServerSettings() did not support changing - of top-level directives as designed. - - The init script path check was broken. - - CUPS incorrectly used the attribute "notify-recipient" - instead of "notify-recicpient-uri" in several places - (STR #2297) - - Fixed a configure script bug on MirBSD (STR #2294) - - The pdftops filter did not limit the amount of recursion - of page sets (STR #2293) - - Custom page sizes with fractional point sizes did not - work (STR #2296) - - The lpoptions command would crash when adding or removing - options on a system with no printers (STR #2295) - - -CHANGES IN CUPS V1.2.9 - - - The scheduler did not use the default job-sheets - (banners) for implicit classes (STR #2284) - - The scheduler could crash when listing complete jobs - that had been unloaded from memory (STR #2288) - - The French localization was doubled up (STR #2287) - - Build system fixes for several platforms (STR #2260, - STR #2275) - - The scheduler's openssl certificate generation code was - broken on some platforms (STR #2282) - - The scheduler's log rotation check for devices was - broken (STR #2278) - - The LPD mini-daemon did not handle the document-format - option correctly (STR #2266) - - The pdftops filter ignored the "match" size option in the - pdftops.conf file (STR #2285) - - cupstestppd now validates UTF-8 text strings in - globalized PPD files (STR #2283) - - The outputorder=reverse option did not work with all - printers (STR #2279) - - Classes containing other classes did not always work - (STR #2255) - - Printer location and description information was lost - if the corresponding string contained the "#" character - (STR #2254) - - cupsRemoveOption() did not work properly (STR #2264) - - The USB backend did not work with some USB to parallel - cables on Mac OS X. - - The test page did not print the rulers properly on - large media sizes (STR #2252) - - The text filter could crash when pretty printing certain - types of files (STR #2158) - - -CHANGES IN CUPS V1.2.8 - - - Documentation fixes (STR #2141, STR #2157) - - The HTTP upgrade redirection used by the scheduler did - not work with Internet Explorer (STR #2235) - - Members of a class with Unicode names did not appear - correctly in the web interface (STR #2154) - - Changing the "Save debugging information" setting in - the web interface no longer affects the other server - settings (STR #1993) - - The scheduler did not choose SSL certificates correctly - on Mac OS X (STR #2225) - - The scheduler could get in an infinite loop when - printing to a remote class (STR #2228) - - The jobs web page did not have separating space after - the number of pages column (STR #2230) - - Added French localization (STR #2221) - - Updated Spanish localization (STR #2223) - - Updated Japanese localization (STR #2216) - - cupsBorderlessScalingFacter was limited to a range of - 0.9 to 1.1, but some printers need larger values (STR - #2222) - - Landscape printing of PDF files did not always work - (STR #2149) - - Fixed slow USB printing on Minolta printers (STR #2104, - STR #2219) - - The ZPL label printer driver could produce stretched - output (PR #6448) - - The IPP backend now clears the printer-state-message - when there are no outstanding errors or warnings (STR - #2126) - - The CUPS Java scripting support did not work with - recent versions of Java due to the use of Sun's private - Base64 class (STR #2152) - - The scheduler did not pass HTTP GET form variables to - custom CGI programs (STR #2173) - - The lpoptions command now displays the reason why a PPD - file cannot be found (STR #2184) - - The scheduler did not accept "none" as a browse - protocol name (STR #2200) - - The scheduler still loaded the remote printer cache, - even when browsing was disabled (STR #2198) - - The SNMP backend now shows OfficeJet printers with the - "HP" manufacturer prefix (STR #2151) - - Web interface HTML cleanup (STR #2153) - - The parallel backend consumed 100% CPU on FreeBSD due - to an apparently common parallel port driver bug (STR - #2161) - - ippReadIO() incorrectly returned IPP_IDLE when the - initial IPP message header could not be read (STR - #2179) - - cupsRasterInterpretPPD() did not support custom options - (STR #1960) - - Collated output produced by the PostScript filter could - lose some options (STR #2137) - - job-hold-until with time values for the next day would - be held for 60 days (STR #2144) - - Some types of Sun raster files did not print correctly - (STR #2107) - - Raw PBM files did not print correctly (STR #2106) - - The SNMP backend no longer uses IPP with HP printers, - as some recent firmware versions appear to not work - (STR #2055) - - cupsMarkOptions() did not handle the - multiple-document-handling option (STR #2135) - - lpstat did not show the local job ID of active printers - (STR #2125) - - The backends incorrectly used STATUS: - media-tray-empty-error messages for out-of-paper - conditions (STR #2123, STR #2124) - - cupsGetPPD2() returned the wrong error when the PPD - file did not exist (STR #2122) - - cupsDoAuthentication() did not translate the password - prompt (STR #2121) - - httpGetLength2() did not handle error messages without - content correctly (STR #2133) - - Added support for 32/64-bit libraries on HP-UX Itanium - systems (STR #2115) - - Fixed a configure script problem with the 32/64-bit - library support (STR #2114) - - The PostScript filter did not properly output document - setup commands for reversed output (STR #2111) - - The scheduler did not parse IPv6 netmasks properly (STR - #2117) - - -CHANGES IN CUPS V1.2.7 - - - Documentation updates (STR #2089) - - Added an Italian translation (STR #2105) - - The PostScript filter now rotates the bounding box - values as needed (STR #2079) - - The scheduler no longer loads the remote printer cache - when browsing is disabled (STR #2084) - - The scheduler no longer writes a new launchd - configuration file if it doesn't have to (STR #2083) - - Updated the USB and PAP backends for Mac OS X (STR - #2086) - - The scheduler now picks up on changes to IPv6 and DNS - configuration on Mac OS X (STR #2085) - - The lpstat program could still hang (STR #2098) - - Fixed an inefficiency in the SNMP IPP detection code - (STR #2100) - - The SSL negotiation code did not implement short - timeouts (STR #2091) - - -CHANGES IN CUPS V1.2.6 - - - The web interface was not localized on Mac OS X (STR - #2075) - - "lpc status" did not show the number of queued jobs for - disabled queues (STR #2069) - - The lpstat program could hang (STR #2073) - - The serial backend did not support the new USB serial - filenames on Linux (STR #2061) - - The parallel backend did not support bidirectional I/O - properly (STR #2056) - - The network backends now log the numeric address that - is being used (STR #2046) - - Fixed a compile error when using libpaper. - - Fixed a compile error when compiling on Solaris with - threading enabled (STR #2049, STR #2050) - - Missing printer-state-changed event for - printer-state-message updates (STR #2047) - - -CHANGES IN CUPS V1.2.5 - - - Documentation updates (STR #2038) - - The SNMP backend no longer uses IPP for Epson printers - (STR #2028) - - Updated the configure script for Tru64 UNIX 5.1 (STR - #2033) - - Tru64 5.1B's getaddrinfo() and getnameinfo() functions - leak file descriptors (STR #2034) - - cupsAddDest() didn't add the parent destination's - options and attributes. - - ppdConflicts() did not handle custom option - constraints. - - Raw printing of gzip'd files did not work (STR #2009) - - The scheduler no longer preserves default option - choices when the new PPD no longer provides the old - default choice (STR #1929) - - The Linux SCSI backend is now only built if the SCSI - development headers are installed. - - USB printing to Minolta printers did not work (STR - #2019) - - Windows clients could not monitor the queue status (STR - #2006) - - The scheduler didn't log the operation name in the - access_log file for Create-Job and Print-Job requests. - - The PostScript filter now separates collated copies - with any required JCL commands so that JCL-based - finishing options act on the individual copies and not - all of the copies as a single document. - - The PostScript filter now disables duplex printing when - printing a 1-page document. - - cups-lpd didn't pass the correct - job-originating-host-name value (STR #2023) - - Fixed some speling errors in the German message catalog - (STR #2012) - - cupstestppd did not catch PPD files with bad - UIConstraints values (STR #2016) - - The USB backend did not work with the current udev- - created printers if the first printer was disconnected - (STR #2017) - - Mirrored and rotated printing did not work with some - documents (STR #2004) - - 2-sided printing with banners did not work properly on - some printers (STR #2018) - - Updated the raw type rule to handle PJL within the - first 4k of a print job (STR #1969) - - Added an Estonian translation (STR #1957) - - Clarified the documentation for the cupsd.conf @LOCAL - and @IF(name) allow/deny functionality (STR #1992) - - The PostScript filters did not escape the Title and For - comments in the print job header (STR #1988) - - The scheduler would use 100% CPU if browsing was - disabled and the cupsd.conf file contained BrowsePoll - lines (STR #1994) - - The cupsDirRead() function did not work properly on - non-POSIX-compliant systems (STR #2001) - - The cupsFile functions didn't handle read/write errors - properly (STR #1996) - - The DBUS support now works with older versions of the - DBUS library. - - -CHANGES IN CUPS V1.2.4 - - - The --with-printcap configure option did not work (STR - #1984) - - The character set reported by cupsLangGet() did not - always reflect the default character set of a given - locale (STR #1983) - - Older Lexmark and Tektronix printers did not work with - IPP (STR #1980) - - Failsafe printing did not work (PR #6328) - - Some web interface redirects did not work (STR #1978) - - The web interface change settings button could - introduce a "Port 0" line in cupsd.conf if there was no - loopback connection available (STR #1979) - - The web interface change settings and edit - configuration file buttons would truncate the - cupsd.conf file (STR #1976) - - The German web interface used the wrong printer icon - images (STR #1973) - - The "All Documents" link in the on-line help was - missing a trailing slash (STR #1971) - - The Polish web interface translation used the wrong - URLs for the job history (STR #1963) - - The "reprint job" button did not work (STR #1956) - - The scheduler did not always report printer or job - events properly (STR #1955) - - The scheduler always stopped the queue on error, - regardless of the exit code, if the error policy was - set to "stop-printer" (STR #1959) - - ppdEmitJCL() included UTF-8 characters in the JCL job - name, which caused problems on some printers (STR - #1959) - - Fixed a buffering problem that cause high CPU usage - (STR #1968) - - The command-line applications did not convert - command-line strings to UTF-8 as needed (STR #1958) - - cupsDirRead() incorrectly aborted when reading a - symbolic link that pointed to a file/directory that did - not exist (STR #1953) - - The cupsInterpretRasterPPD() function did not handle - custom page sizes properly. - - -CHANGES IN CUPS V1.2.3 - - - The scheduler did not send job-state or - job-config-changed events when a job was held, - released, or changed (STR #1947) - - The scheduler now aborts if the configuration file and - directory checks fail (STR #1941) - - Fixed a problem with ippPort() not using the port - number that was set via the client.conf file or - CUPS_SERVER environment variable (STR #1945) - - HTTP headers were not buffered (STR #1899) - - Some IPP printers (HP) did not like UTF-8 job names - (STR #1837) - - The CUPS desktop icon is now localized for Polish (STR - #1920) - - Printer options were not always honored when printing - from Windows clients (STR #1839) - - The openssl command would lock up the scheduler when - generating an encryption certificate on some platforms - due to a lack of entropy for the random number - generator (STR #1876) - - The web admin page did not recognize that "Listen 631" - enabled remote access (STR #1908) - - The web admin page did not check whether changes were - made to the Basic Server Settings check boxes (STR - #1908) - - The IPP backend could generate N*N copies in certain - edge cases. - - The scheduler did not restore remote printers properly - when BrowseShortNames was enabled (STR #1893) - - Polling did not handle changes to the network - environment on Mac OS X (STR #1896) - - The "make test" subscription tests used invalid - notify-recipient-uri values (STR #1910) - - Printers could be left in an undefined state on system - sleep (STR #1905) - - The Berkeley and System V commands did not always use - the expected character set (STR #1915) - - Remote printing fixes (STR #1881) - - The cupstestppd utility did not validate translation - strings for custom options properly. - - Multi-language PPD files were not properly localized in - the web interface (STR #1913) - - The admin page's simple settings options did not check - for local domain socket or IPv6 addresses and did not - use "localhost" as the listen address. - - An empty BrowseProtocols, BrowseLocalProtocols, or - BrowseRemoteProtocols line would crash the scheduler - instead of disabling the corresponding browsing options. - - The scheduler now logs IPP operation status as debug - messages instead of info or error. - - cupsFileRewind() didn't clear the end-of-file state. - - cupstestppd didn't report the actual misspelling of the - 1284DeviceID attribute (STR #1849) - - BrowseRelay didn't work on Debian (STR #1887) - - configure --without-languages didn't work (STR #1879) - - Manually added remote printers did not work (STR #1881) - - The header was not installed. - - Updated the build files for Autoconf 2.60 (STR #1853) - - The scheduler incorrectly terminated the polling - processes after receiving a partial log line. - - The cups-lpd mini-daemon reported "No printer-state - attribute found" errors when reporting the queue status - (PR #6250, STR #1821) - - SNMP backend improvements (STR #1737, STR #1742, STR - #1790, STR #1835, STR #1880) - - The scheduler erroneously reported an error with the - CGI pipe (STR #1860) - - Fixed HP-UX compile problems (STR #1858, STR #1859) - - cupstestppd crashed with some PPD files (STR #1864) - - The and header files did not - work with C++. - - -CHANGES IN CUPS V1.2.2 - - - Documentation updates (STR #1765, STR #1780) - - CUPS didn't know about alternate character set names - for Asian text (STR #1819) - - The lpoptions -o and -r options did not work unless you - specified a printer. - - The lpoptions command incorrectly allowed users to set - printer attributes like printer-type (STR #1791) - - httpWait() did not flush the write buffer, causing "bad - request" errors when communicating with CUPS 1.1.x - servers (STR #1717) - - Polling did not sanitize the printer description, - location, or make and model strings like broadcasts - did. - - Polled printers did not show the server's default - job-sheets option value. - - The Samba password prompt was not properly localized - (STR #1814) - - Added a German translation (STR #1842) - - The scheduler now creates self-signed SSL certficates - automatically when using OpenSSL and CDSA for - encryption, just as for GNU TLS. - - The SNMP backend sporatically reported some printers as - "unknown" (STR #1774) - - The scheduler now forces BrowseTimeout to be at least - twice the BrowseInterval value and non-zero to avoid - common configuration errors. - - The scheduler incorrectly returned printer URIs of the - form "ipp://server/printers/classname" for classes (STR - #1813) - - Updated Japanese localization (STR #1805) - - The scheduler's SSL certificate/key directory was not - created on installation (STR #1788) - - Added a mailto.conf man page and help page (STR #1754) - - The parallel and USB backends no longer wait for the - printer to go on-line - this caused problems with - certain printers that don't follow with the IEEE-1284 - standard (STR #1738) - - The scheduler could crash on a reload when implicit - classes were present (STR #1828) - - The IPP backend incorrectly used the CUPS_ENCRYPTION - environment variable to determine the default - encryption mode when printing (STR #1820) - - USB printing did not work on Solaris (STR #1756) - - The scheduler sorted job priorities in the wrong order - (STR #1811) - - The scheduler did not automatically restart notifiers - that exited or crashed (STR #1793) - - IPv6 support did not work on NetBSD (STR #1834) - - The EPM packaging file did not work (STR #1804) - - The scheduler used up the CPU if BrowseRemoteProtocols - was empty (STR #1792) - - Custom page sizes did not work (STR #1787) - - The SNMP backend could crash on some systems when SNMP - logging was enabled (STR #1789) - - Browsing could produce some funny printer names when - ServerName was set to an IP address (STR #1799) - - Fixed the log message for BrowseRelay (STR #1798) - - Fixes to allow CUPS to compile on MirBSD (STR #1796) - - The scheduler incorrectly set the FINAL_CONTENT_TYPE - environment variable (STR #1795) - - The pdftops filter incorrectly embedded a "produced by" - comment, causing PDF printing not to work on some - operating systems (STR #1801) - - Sending raw jobs from a client system could cause the - client's scheduler to eventually crash (STR #1786) - - The scheduler now checks that the notifier exists prior - to accepting a new subscription request. - - The scheduler now reports the supported - notify-recipient schemes based on the contents of the - ServerBin/notifier directory. - - Event notifications did not include the - notify-sequence-number or other required attributes - (STR #1747) - - Allow/Deny addresses of the form "11.22.33.*" did not - work on Linux (STR #1769) - - cupsGetPPD() did not work if the scheduler was only - listening on a domain socket (STR #1766) - - The scheduler could crash advertising a class (STR - #1768) - - The scheduler could crash if the default printer was - deleted (STR #1776) - - Added a new default CUPS raster format (v3) which does - not compress the raster stream in order to provide the - same cupsRasterReadPixels() and cupsRasterWritePixels() - performance as CUPS 1.1.x. - - The cupsaddsmb man page listed the wrong files for the - CUPS driver. - - Some configure --with options did not work (STR #1746) - - "Allow @IF(name)" didn't work if "name" wasn't the - first network interface (STR #1758) - - The lpstat command did not use the correct character - set when reporting the date and time (STR #1751) - - The cupsaddsmb command and web interface did not update - the Windows PPD files properly, resulting in corrupt - PPD files for the Windows client to use (STR #1750) - - The cupsd.conf man page didn't describe the Listen - domain socket syntax (STR #1753) - - The scheduler no longer tries to support more than - FD_SETSIZE file descriptors. - - CDSA (encryption) support fixes for MacOS X. - - The lppasswd program needs to be setuid to root to - create and update the /etc/cups/passwd.md5 file (STR - #1735) - - 32/64-bit library installation was broken (STR #1741) - - The USB backend now reports a "no such device" error - when using the old filename-based USB URIs instead of - the "success" error. - - Increased the HTTP and IPP read timeouts to 10 seconds, - as 1 second was too short on congested networks (STR - #1719) - - The SNMP backend now uses the device description over - the printer-make-and-model attribute when the attribute - contains a generic name (STR #1728) - - Fixed another file descriptor leak when printing raw - files (STR #1736) - - Raw queues were not shared via LDAP (STR #1739) - - The pstops filter didn't always embed PageSetup - commands from the PPD file (STR #1740) - - "make install" didn't work if you disabled all of the - localizations. - - The scheduler didn't always choose the least costly - filter. - - Fixed parsing of IPv6 addresses in Allow, Deny, - BrowseAllow, BrowseDeny, and BrowseRelay directives - (STR #1713) - - Printers that were shared via LDAP did not get added to - the LDAP server properly (STR #1733) - - LDAP browsing would crash the scheduler if a required - value was missing (STR #1731) - - Special cases for the "localhost" hostname did not - work, causing printing to not work when the /etc/hosts - file did not contain a localhost entry (STR #1723) - - Updated the Spanish translation (STR #1720, STR #1770) - - Reverse-order page output was broken when N-up or - landscape orientations were used (STR #1725) - - The parallel, serial, socket, and USB backends needed - print data before they would report back-channel data, - causing problems with several new drivers (STR #1724) - - -CHANGES IN CUPS V1.2.1 - - - "lprm -h hostname" did not work (STR #1800) - - The web interface did not handle reloads properly for - MSIE (STR #1716) - - The configure script no longer adds linker rpath - options when they are unnecessary. - - The scheduler could crash printing a debug message on - Solaris (STR #1714) - - The --enable-32bit and --enable-64bit configure options - did not always work. - - The password prompt showed the domain socket address - instead of "localhost" for local authentication (STR - #1706) - - The web interface filtered the list of printers even if - the user wasn't logged in (STR #1700) - - The IPP backend did not work reliably with some Xerox - printers (STR #1704) - - Trailing banners were not added when printing a single - file (STR #1698) - - The web interface support programs crashed on Solaris - (STR #1699) - - cupstestppd incorrectly reported problems with - *1284DeviceID attributes (STR #1710) - - Browsing could get disabled after a restart (STR #1670) - - Custom page sizes were not parsed properly (STR #1709) - - The -U option wasn't supported by lpadmin (STR #1702) - - The -u option didn't work with lpadmin (STR #1703) - - The scheduler did not create non-blocking back-channel - pipes, which caused problems when the printer driver - did not read the back-channel data (STR #1705) - - The scheduler no longer uses chunking in responses to - clients - this caused problems with older versions of - CUPS like 1.1.17 (PR #6143) - - Automatic raw printing was broken (STR #1667) - - 6-up printing was broken (STR #1697) - - The pstops filter did not disable CTRL-D processing on - the printer/RIP. - - ppdOpen*() did not load custom options properly (STR - #1680) - - "Set Printer Options" in the web interface did not - update the DefaultImageableArea or - DefaultPaperDimension attributes in the PPD file (STR - #1689) - - Fixed compile errors (STR #1682, STR #1684, STR #1685, - STR #1690) - - The lpstat command displayed the wrong error message - for a missing destination (STR #1683) - - Revised and completed the Polish translation (STR - #1669) - - Stopped jobs did not show up in the list of active jobs - (STR #1676) - - The configure script did not use the GNU TLS - "libgnutls-config" script to find the proper compiler - and linker options. - - The imagetoraster filter did not correctly generate - several 1, 2, and 4-bit color modes. - - cupsRasterWritePixels() could lose track of the current - output row. - - cupsRasterReadPixels() did not automatically swap - 12/16-bit chunked pixel data. - - Moved the private _cups_raster_s structure out of the - public header. - - Updated the CUPS raster format specification to include - encoding rules and colorspace definitions. - - The Zebra PPD files had the wrong PostScript code for - the "default" option choices. - - The imagetoraster filter did not generate correct CIE - XYZ or Lab color data. - - The cups-config script did not work when invoked from a - source directory (STR #1673) - - The SNMP backend did not compile on systems that used - the getifaddrs emulation functions (STR #1668) - - -CHANGES IN CUPS V1.2.0 - - - Documentation updates (STR #1618, STR #1620, STR #1622, - STR #1637) - - Static file copy buffers reduced from 64k to 32k to - work around bogus MallocDebug library assumptions (STR - #1660) - - The scheduler did not decode the backend exit code - properly (STR #1648) - - The MacOS X USB backend did not report the 1284 device ID, - nor did it fix device IDs returned by HP printers. - - The scheduler started more slowly than 1.1.x with large - numbers of printers (STR #1653) - - cupsRasterInterpretPPD() didn't support the - cupsPreferredBitsPerColor attribute, and imagetoraster - didn't use the new API. - - The "make test" script did not create all of the necessary - subdirectories for testing (STR #1638) - - The scheduler did not prevent rotation of logs - redirected to /dev/null (STR #1651) - - "make test" did not include the SNMP backend in the - test environment (STR #1625) - - The EPM packaging files did not work (STR #1621) - - "Use Default Configuration" inserted a broken - configuration file (STR #1624) - - Redirects in the web interface did not always preserve - the encrypted status of a connection (STR #1603) - - Added the Apple "pap" backend. - - Added CUPS library to CUPS Image shared library - linkage to support Linux --as-needed linker option - (STR #1606) - - Fixed support for --enable-pie (STR #1609) - - The pdftops filter did not validate the length of the - encryption key (STR #1608) - - Updated the Polish localization. - - "Encryption Required" in the cupsd.conf file now only - requires encryption when the connection is not over the - loopback interface or domain socket. - - Printer names containing "+" were not quoted properly in - the web interface (STR #1600) - - The SNMP backend now reports the make and model in the - information string so that the auto-generated printer - name is more useful than just an IP address. - - -CHANGES IN CUPS V1.2rc3 - - - The cups-lpd program always did reverse lookups on the - client address, which could be a performance problem. - Added a "-n" option to disable lookups. - - When configured with SSL support, require encryption by - default when displaying the /admin location (STR #1592) - - The next job ID was not computed correctly if the job - cache file got out of sync with the spool directory - (STR #1582) - - The PNG image handling code used deprecated functions - from libpng (STR #1587) - - Added a Polish translation (STR #1584, STR #1586) - - More changes to the scheduler to improve battery life - on portable devices (STR #1583) - - Changed the default log level for status messages back - to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579) - - The error string was not set properly when - cupsDoFileRequest() was given the name of a directory - (STR #1578) - - Fixed handling of job-hold-until (STR #1581) - - Added explicit notes to the cupsaddsmb man page - explaining that the driver filenames are case-sensitive - under UNIX and that they must be all lowercase (Windows - 2000) or all UPPERCASE (Windows 95/98/Me) to work (STR - #1568) - - The USB backend incorrectly split the manufacturer name - if it contained spaces (STR #1566) - - The scheduler would hang when listing PPD files for a - manufacturer whose name contained spaces (STR #1567) - - Added the SNMP backend for network printer discovery - (STR #1555) - - cupstestppd now fails PPD files with 1284DeviceId - instead of 1284DeviceID, and cups-driverd uses a - case-insensitive comparison when looking for it (STR - #1573) - - cupsDoFileRequest() and cupsDoRequest() now work - properly with non-blocking HTTP connections. - - Added Swedish translation (STR #1569) - - "make install" now installs the MIME files with world - read permissions (STR #1565) - - More CDSA encryption support fixes (STR #1563) - - Updated the default mime.types file to support printing - of files that do not have a locally-recognized MIME - media type to raw or System V queues. - - Updated the serial port detection code on Linux (STR - #1562) - - Added some more error checking to httpGetHostname() - (STR #1561) - - The title of some administration pages was not - localized (STR #1548) - - The edit-config.tmpl file was not generated or - installed for the Spanish or Japanese localizations - (STR #1547) - - The mimeDelete() function freed the types before the - filters, but the filters needed the type data (STR #1558) - - The scheduler didn't keep track of the status pipes - properly, leading to a bad select() for multi-file jobs - (STR #1559) - - The cupstestdsc program didn't validate the ordinal - page number value for %%Page: comments. - - -CHANGES IN CUPS V1.2rc2 - - - The scheduler was not always using the string pool, - causing random crashes. - - The lpmove and the web interface's Move Job button did - not work with stopped jobs (STR #1534) - - The PostScript filter did not handle the page-set - option properly with number-up printing (STR #1543) - - The scheduler now only warns about unsupported ACLs - once (STR #1532) - - The "fitplot" option did not work with output from - Mozilla (STR #1542) - - The imagetops filter did not work with Level 2 or 3 - printers (STR #1533) - - The scheduler now recognizes PostScript files with PJL - commands that do not include an ENTER LANGUAGE command. - - Added --with-printcap configure option. - - 64-bit SSL fixes for MacOS X. - - The scheduler didn't send some printer state change - events. - - The scheduler didn't send jobs to busy remote printers. - - Fixed some problems with the launchd support. - - Added new USB printer backend for MacOS X. - - The PostScript filter now handles files that start with - an incomplete PJL header (PR #6076) - - The web interface language selection code did not try - the generic language localization (STR #1531) - - The language cache, string pool, and transcoding caches - are now process global instead of per-thread to avoid - problems with GNOME and to allow for data sharing - between threads (STR #1530) - - Fixed a CUPS 1.1.x compatibility bug (STR #1528) - - The web interface redirection after certain printer - administration tasks was broken (STR #1516) - - Web interface authorization could get stuck (STR #1512) - - Localization updates (STR #1513, STR #1518, STR #1520) - - The pstops filter didn't work with some files (STR - #1523) - - "./configure --enable-static" didn't work (STR #1522) - - The scheduler was not using the configured default - Group (STR #1521) - - The web interface still did not show the localized time - and date for some locales and systems (STR #1509) - - httpAddrGetList() would crash on systems without - getaddrinfo(). - - Socket URIs without a trailing slash would cause the - port number to not be accepted (STR #1519) - - Local raw and System V printers were not advertised as - such for printer browsing (STR #1502) - - The RPM spec file incorrectly put duplicate copies of - the Japanese and Spanish web interface templates in the - main cups package (STR #1517) - - cupsSetDests() did not explicitly set the permissions - of the /etc/cups/lpoptions file (STR #1508) - - The lpq command crashed with the -h option (STR #1515) - - -CHANGES IN CUPS V1.2rc1 - - - Documentation updates (STR #1497, STR #1498) - - The scheduler now redirects browsers to https: URLs - when encryption is required. - - The scheduler would crash when printing with a banner - (STR #1500) - - cups-driverd did not use the LanguageEncoding attribute - in PPD files to convert the NickName to UTF-8 (STR - #1503) - - The lpadmin command could not set the - printer-error-policy attribute (STR #1504) - - The web interface did not show the time and date in the - correct format for the locale (STR #1505) - - CUPS no longer accepts print jobs if a printer does not - support the file format (STR #1501) - - Cleaned up the PostScript filter (pstops) so that it - properly supports %%IncludeFeature and page scaling - (STR #1453) - - Fixed the cupsFileRewind() and cupsFileSeek() functions - to work properly with uncompressed files. - - Added cupsFileGetLine(), cupsFileStderr(), - cupsFileStdin(), and cupsFileStdout() functions to the - CUPS library. - - Added a new cupstestdsc program to test the DSC - conformance of PostScript files. - - Added KDE/GNOME icons and a Manage Printers menu item. - - Added --enable-image and --enable-pdftops configure - options to control whether the image and PDF filters - are built and installed (default = yes for all - platforms but MacOS X) - - Fixed a minor memory leak in the PPD API. - - Fixed transcoding issues (STR #1493) - - The scheduler now enforces a minimum job cost of 100 - when doing FilterLimit checks. - - The scheduler would leak file descriptors when printing - to raw queues (STR #1491) - - The IPv6 support did not compile on Tru64 UNIX (STR - #1488) - - ppdOpen2() now converts the NickName and all UI text to - UTF-8 (STR #1475) - - The Set Allowed Users web page did not work (STR #1486) - - When the default policy was not set or set to a non- - existing policy, the scheduler did not set the default - policy name to "default" (STR #1484) - - The Zebra CPCL driver did not use the correct righthand - margin for the 4" wide label sizes. - - Fixed a problem with the parsing of fractional real - numbers in PPD files. - - Added Spanish localization files (STR #1480) - - Fixed localization of a few scheduler messages (STR - #1478) - - Fixed support for HEAD requests in the scheduler (STR - #1481) - - -CHANGES IN CUPS V1.2b2 - - - Updated the CUPS design description. - - Added --enable-32bit and --enable-64bit configure - options to allow building of separate 32/64-bit - libraries on systems that support both environments - (STR #1472) - - Various compiler warning fixes. - - Fixes for Solaris 10 builds against old GNU TLS and - LDAP libraries. - - Added a cupsArrayUserData() function to retrieve the - user data pointer for an array (useful for typing - arrays) - - The ppdEmitString() function did not compute the - required buffer size properly, leading to dropped - characters on the end of the printer commands in pstops - and imagetops (STR #1470) - - -CHANGES IN CUPS V1.2b1 - - - The serial backend now supports Equinox 8-port serial - hubs (STR #526) - - The IPP backend now supports a compression option to - compress print files as they are sent to the remote - server (STR #956) - - The CUPS browse protocol now supports passing of - default options and browse timeout values from the - server to the clients (STR #800) - - Implicit classes that timed out could cause the - scheduler to crash (STR #1439) - - Added DragonFly support in local device backends (STR - #1362) - - Added LDAP printer browsing support (STR #338) - - Added official support for printer maintenance commands - via the CUPS Command file format and hooks in the - printer-type and web interfaces (STR #932) - - The HP-GL/2 filter could get in an infinite loop trying - to convert HP-PCL files (STR #1415) - - CUPS now implements the HTTP/1.1 Expect header (STR - #1407) - - Options in PPD files are no longer automatically put in - an "Extra" group; rather, all options that are not - inside an Open/CloseGroup will be placed in the - "General" group (STR #1385) - - The scheduler now creates a job-uuid attribute that - uniquely identifies a job on a network (STR #1410) - - The init script now unsets the TMPDIR environment - variable to prevent user temporary directories from - being used by cupsd accidentally (STR #1424) - - Added support for launchd on MacOS X. - - Added support for notify_post on MacOS X. - - Added support for DBUS on Linux. - - All of the Berkeley (except for lpc) and System V - commands now support specification of user, host, and - port (STR #1028, STR #1029, STR #1087) - - The lpmove command now allows you to move all jobs for - a given queue (STR #56) - - The web interface now supports moving of a job or jobs - to another queue (STR #56) - - The web interface now provides searching, paging, and - changing of the sort/display order of classes, jobs, - and printers. - - cupsaddsmb now accepts a password on the command-line - and supports passwords with special characters (STR - #822, STR #1236) - - ppdLoad*() no longer tries to "fix" bad characters in - UI text (STR #1101) - - Printer names can now (reliably) contain Unicode - characters (STR #896) - - The lpstat command now shows the time and date of the - last printer state change instead of the hardcoded "Jan - 01 00:00" (STR #659) - - The scheduler now adds a job-actual-printer-uri - attribute to job objects when printing to a class (STR - #116) - - The scheduler now logs log file open errors to the - system log (STR #1289) - - The scheduler now sets the job-originating-user-name to - the authenticated username, if available (STR #1318) - - The scheduler now only updates the permissions of SSL - keys and certificates when they are under the - ServerRoot directory (STR #1324) - - The rastertodymo driver has been renamed to - rastertolabel (a symlink is installed so that existing - queues continue to work) and now also supports Zebra's - CPCL language. - - The lpstat command could show the wrong active job for - a printer (STR #1301) - - Fixed a potential crash problem in the scheduler when - aborting a CGI program (STR #1290) - - Added a "cancel all jobs" button to the class and - printer web interfaces (STR #1140) - - The add-printer web page now shows the - set-printer-options page after the printer has been - added (STR #690) - - The classes web page now provides links to each of the - member printers (STR #307) - - CUPS now handles HTTP request/response lines up to 32k - in length; this is mainly for better cookie support - (STR #1274) - - Added support for the Apache PassEnv and SetEnv - directives to cupsd.conf (STR #853) - - Added large file (64-bit) support (STR #541) - - Fixed a performance issue with the ippReadIO() - implementation (STR #1284) - - Fixed a performance issue with the scheduler's implicit - class implementation (STR #1283) - - The pdftops filter now adds the Title and Creator - fields from the PDF file to the PostScript document - comments section (STR #539, STR #830) - - Added a new cups_array_t and cupsArray*() functions to - the CUPS API to support sorted lists of data. - - Made the CUPS API library thread-safe (STR #1276) - - Added "media" option support for EFI EFMediaType option - (STR #902) - - Added write buffering to the HTTP code to improve - performance (STR #547) - - The scheduler now uses the attributes-natural-language - attribute to localize banner pages (STR #386) - - The scheduler now returns the address that was used to - connect to it (STR #1076) - - Fixed a problem with N-up printing and OpenOffice (STR - #576) - - Added support for the GCC position independent - executable options (STR #1209) - - Added new BrowseLocalProtocols and - BrowseRemoteProtocols directives to cupsd.conf, - allowing for different browse protocols for local and - remote printers (STR #877) - - PPD files can now contain strings up to 256k in length - (STR #1215) - - The pstops filter now supports the IncludeFeature DSC - comment (STR #1212) - - The pstops filter now disables the setpagedevice - procedure when doing N-up printing (STR #1161) - - The serial backend now supports "stop=1", "stop=2", - "parity=space", and "parity=mark" options (STR #1155) - - "make install" no longer overwrites an existing PAM - configuration file (STR #1064) - - The scheduler now closes all files on startup when run - in daemon mode (STR #1009) - - Added a new RGBW colorspace to the CUPS raster format - (STR #1071) - - The pdftops filter now sets the page size based on the - media box when not scaling the output (STR #912) - - The pdftops filter now supports masked images (STR - #281) - - The pdftops filter produced large output when rendering - PDF files containing lot of repeated images (STR #327) - - The pdftops filter now minimizes print processing of - PDF files when using the page-ranges option (STR #273) - - Updated pdftops filter to Xpdf 3.01. - - Added new cupsBackchannelRead() and - cupsBackchannelWrite() functions, as well as - backchannel support to the parallel, serial, socket, - and USB backends (STR #1252) - - The parallel and USB backends now treat a "no space - available" error as an out-of-paper condition (STR - #1225) - - The "lpc" command now supports the "status all" command - (STR #1004) - - ippReadIO() did not read collections properly (STR - #1249) - - The "make test" script now creates the test files in - "/tmp/cups-$USER" instead of "/tmp/$USER" (STR #981) - - All backends now abort on error when printing a job to - a class - this allows the next printer in the class to - print the job (STR #1084) - - The scheduler now verifies that a printer supports - Letter or A4 media sizes before setting them as the - initial default (STR #1250) - - The cupstestppd program now flags bad Resolution - options (STR #1269) - - The USB backend now retries printing when the printer - is disconnected or turned off (STR #1267) - - Added new httpGetHostname() function to CUPS API, and - use it instead of gethostname() so that the web - interface will work correctly on systems whose hostname - is not the FQDN (STR #1266) - - The scheduler now stops printers if the backend for the - queue is missing on startup (STR #1265) - - The configure script now supports "--disable-library" - to disable particular image file format support - libraries, even if they are available on the build - system (STR #1248) - - The IPP backend did not always report on the total - number of pages that were printed (STR #1251) - - The lpstat program could display garbage date and time - values for locales whose date format exceeded 31 - characters (STR #1263) - - The cupstestppd program would segfault when testing - certain broken PPD files (STR #1268) - - Dramatically reduced the overhead of implicit classes. - - Added new cupsDir*() functions to CUPS API. - - Printers can now be published individually for sharing. - - Fixed a bug in the scheduler's startup signalling code - which caused cupsd to send the SIGUSR1 signal to the - init process instead of the original parent process - (STR #1258) - - Added new on-line help CGI to web interface to provide - searchable help. - - Devices are now tracked dynamically, with each query - doing a new device scan. This eliminates a previous - startup delay caused by slow backends and allows new - printers to be seen without restarting the server, - however it limits the amount of device URI checking - that can be done (basically now the scheduler only - requires a URI with a method that is a listed backend) - - Added new printer auto-detection, server configuration, - and log file viewing to the administration web page. - - Added new "set allowed users" web interface to set the - list of allowed users for a printer or class. - - The scheduler, command-line, and web interfaces now - limit the list of printers and classes to those - accessible by a user. - - cupsMarkOptions() now handles more non-standard - duplexing options and choices (STR #915) - - cups-lpd now honors remote banner requests with the - "standard" banner whenever a printer does not have one - defined (STR #1220) - - The scheduler's denial-of-service checks did not work - properly with IPv6 addresses (STR #1134) - - The lp and lpr commands did not error out properly when - they were unable to write to a temporary file (STR - #1129) - - The pstops filter did not handle Adobe-specific - comments in Windows NT driver output (STR #1085) - - "lpstat -l -p" incorrectly reported the printer - interface (STR #936) - - The web interface now operates exclusively with the - UTF-8 encoding, and sends the appropriate character set - and header information to the web browser (STR #919, - STR #1007) - - Added a "set allowed users" interface to the web - interface so that you can set the list of allowed or - denied users/groups for a printer or class. - - Disallow the "#" character in printer names, since it - has special meaning in the shell, config files, and in - URIs (STR #917, STR #1202) - - Added a new application/x-csource MIME type, and - support for it to the texttops filter so that you can - pretty print plain text files without the C/C++ - keywords being highlighted. - - The pdftops filter did not compile with GCC 4.0 (STR - #1226) - - The texttops filter did not highlight preprocessor - directives followed by a tab properly. - - HP PJL output now uses both JOB DISPLAY and RDYMSG - commands to show the current job on the printer's - display (STR #1218) - - Local authentication certificates are now stored in - /var/run/cups/certs by default instead of - /etc/cups/certs (STR #1211) - - Backends now use "&" to separate options in device - URIs; "+" is still recognized but is deprecated (STR - #842) - - The USB backend no longer supports the usb:/dev/foo - format on systems that support device ID queries. - - Forced classification markings did not work when the - job-sheets parameters were "none,none". - - "lpstat -l -p" incorrectly showed all users as allowed, - even if the queue was restricted to certain users (STR - #801) - - The scheduler now automatically detects SSL/TLS clients - without using the SSLPort/SSLListen directives. - - The CUPS API and scheduler no longer support SSLv2- - encrypted connections. - - Updated the cupsaddsmb utility to correctly export the - CUPS driver for Windows. - - Fixed a signal-handling bug in httpRead() which - ultimately caused the server to print multiple copies - when it was busy (STR #1184) - - The cupsFile API now uses the O_APPEND option when - opening files in append mode (STR #990) - - The md5.h header and md5_* functions are now officially - private and have been renamed to avoid conflicts with - other implementations with the same name. - - The pdftops filter incorrectly embedded some Type1 - fonts (STR #1093) - - The scheduler didn't detect a closed connection in the - middle of an IPP request (STR #1153) - - The scheduler could block trying to read the job status - if there was input pending and the job was cancelled in - the same input cycle (STR #1157) - - The scheduler could crash when deleting a class due to - infinite recursion. - - Updated the Zebra ZPL label printer driver to use the - run-length encoding and support more options. - - Updated serial backend to scan for /dev/ttyC* as well - as /dev/ttyc* for Cyclades serial ports (STR #1049) - - The scheduler could hang reading the job status under - certain circumstances (STR #1068) - - The USB backend termination signal code was inverted - (STR #1046) - - Moved enable and disable commands to sbindir to be - consistent. - - Added new cupsRasterInterpretPPD() function for RIP - filters to setup the raster page header from - PostScript commands in a PPD file. - - The CUPS browsing protocol now offers a "delete" bit - to remove printers as soon as they are deleted on the - server or as soon as the server shuts down gracefully - (STR #793) - - The CUPS_SERVER and ServerName directives (client.conf - and ~/.cupsrc) may now contain names of the form - "server:port" and "/path/to/domain/socket". - - The "cancel -u user" command now works for ordinary - users (STR #751) - - Added test run support to "make test" target (STR #64) - - Added domain socket support (STR #656) - - Added BrowseLocalOptions directive to allow the - administrator to add printer URI options to the browse - URI, e.g. "encryption=required" (STR #732) - - Added BrowseRemoteOptions directive to allow the - administrator to add standard URI options to the - remote printer URI, e.g. "encryption=required" (STR - #732) - - Now put "-I.." compiler option in front of all others - to ensure that local CUPS headers are used before - installed headers (STR #437) - - New cupsLangPrintf() and cupsLangPuts() for localized - interfaces. - - Now support custom attributes and extended options in - PPD files. - - Now provide functions to save PPD files. - - New policy mechanism allows per-operation and - per-printer control over what users and groups are - allowed to do various IPP operations. - - New error policy mechanism to control how aborted - backend errors are handled by the scheduler - (abort-job, retry-job, requeue-job, stop-printer) - - Updated the printer test page with a better color - wheel and a separate grayscale ramp. - - A single backend process is now run to send all print - data for a job. - - Backends and filters can now send and receive - backchannel data over file descriptor 3. - - Updated the raster stream format to support more - user-defined attributes and to do compression of the - page data. diff --git a/CHANGES-1.3.txt b/CHANGES-1.3.txt deleted file mode 100644 index 9af534f9b..000000000 --- a/CHANGES-1.3.txt +++ /dev/null @@ -1,856 +0,0 @@ -CHANGES-1.3.txt ---------------- - -CHANGES IN CUPS V1.3.11 - - - The scheduler did not prevent nested classes (STR #3211) - - The scheduler did not reprint processing jobs that were moved to - another destination (STR #3222) - - The scheduler did not reset the current job file when stopping a - printer (STR #3226) - - The scheduler did not handle POSTs to custom CGIs properly (STR #3221) - - The pdftops filter did not print landscape PDF pages properly - (STR #2881) - - The scheduler did not handle partial header lines properly from CGI - programs (STR #3194) - - The web interface could hang on OpenBSD (STR #3176, STR #3196) - - The scheduler and cupsfilter utility did not handle rules starting - with a negation operator properly (STR #3160) - - The scheduler and cupsfilter utility would crash with certain MIME - .types rules (STR #3159) - - httpSetField wasn't bracketing IPv6 numeric addresses for the Host: - field (STR #3164) - - The ServerName, if specified, was not treated as a valid alias for the - local system (STR #3167) - - "make epm" did not work (STR #3166) - - "lpstat -h server" showed non-shared printers (STR #3147) - - "make check" did not work on Linux (STR #3161) - - -CHANGES IN CUPS V1.3.10 - - - Documentation fixes (STR #2994, STR #2995, STR #3008, STR #3056, - STR #3057) - - SECURITY: The scheduler now protects against DNS rebinding attacks - (STR #3118) - - SECURITY: Fixed TIFF integer overflow in image filters (STR #3031) - - The scheduler did not support the job-hold-until attribute with the - Restart-Job operation (STR #3130) - - SECURITY: The PNG image reading code did not validate the - image size properly, leading to a potential buffer overflow - (STR #2974) - - The rastertohp driver did not set the 1-sided printing mode when - needed (STR #3131) - - Now use a wrapper program instead of our fork of the Xpdf code to - support printing of PDF files. The new wrapper supports using Xpdf, - poppler, or Ghostscript to convert PDF files to PostScript (STR #3129) - - Long job names caused problems with some PJL printers (STR #3125) - - The lpq command did not work when showing all destinations (STR #3117) - - The scheduler used a codeset name of UTF8 which is not supported on - Solaris (STR #3113) - - cupsGetJobs() did not work with a NULL destination (STR #3107) - - Fixed a localization problem for option choices (incorrectly) named - "Custom" (STR #3106) - - The fallback OpenSSL random number seeding would not work (STR #3079) - - The scheduler might miss a child signal, causing high CPU usage. - - The scheduler did not enforce quotas after the job history was - unloaded (STR #3078) - - The job-k-limit, job-page-limit, and job-quota-period attributes - could not be set using the lpadmin command (STR #3077) - - httpSeparateURI() did not error out on URIs with a missing port - number after a colon. - - Fixed a Valgrind-detected initialization error when creating a - missing directory on startup. - - The scheduler did not always read all of the HTTP headers from a - CGI script/program. - - The scheduler did not always set the "air" property in Bonjour/DNS-SD - registrations. - - The scheduler incorrectly compared Mac OS X UUIDs for access - control, preventing access in certain configurations. - - The IPP backend incorrectly reset the required authentication - to Kerberos when authentication failed. - - The scheduler no longer looks up the local hostname by default; - turn on hostname lookups to restore the previous behavior. - - The scheduler did not always load MIME type rules correctly - (STR #3059) - - The test page did not format correctly on A4 paper (STR #3060) - - The web interface sometimes incorrectly redirected users to - 127.0.0.1 (STR #3022) - - cupsPrintFile*() did not send the document filename for single - file submissions (STR #3055) - - The scheduler did not update the member-names attribute when - removing the last printer from a class. - - The scheduler did not report PPD Products with parenthesis - in them properly (STR #3046) - - The wrong italic fonts were listed in the UTF-8 charset file - for the text filter. - - The backends did not return an OK status for the - CUPS_SC_CMD_GET_BIDI side-channel command (STR #3029) - - The scheduler did not purge jobs that were missing a - time-at-creation attribute, indicating a bad job control file - (STR #3030) - - The "-o job-hold-until=week-end" option did not work properly - (STR #3025) - - The Solaris USB printer device does not support select or poll - (STR #3028) - - The scheduler would crash if you exceeded the MaxSubscriptions - limit. - - The lp "-H immediate" option did not specify that the job - should not be held (STR #3013) - - The scheduler did not support the "Connection: close" - HTTP header (STR #3010) - - The mailto notifier didn't terminate messages properly - (STR #3011) - - Backends could spin trying to read back-channel data - (STR #3001) - - The HP-GL/2 filter was using the wrong default colors - (STR #2966) - - The scheduler incorrectly allowed Get-Jobs operations without a - printer-uri (STR #2996) - - The compression option was not being encoded properly - (STR #2997) - - Added a missing character map for JIS-X0213/ShiftJIS. - - The scheduler now rejects ATTR: messages with empty values. - - The scheduler could consume all CPU handling closed connections - (STR #2988) - - Fixed some configure script bugs with rc/xinetd directories - (STR #2970) - - The Epson sample driver PPDs contained errors (STR #2979) - - -CHANGES IN CUPS V1.3.9 - - - SECURITY: The HP-GL/2 filter did not range check pen numbers - (STR #2911) - - SECURITY: The SGI image file reader did not range check - 16-bit run lengths (STR #2918) - - SECURITY: The text filter did not range check cpi, lpi, or - column values (STR #2919) - - Documentation updates (STR #2904, STR #2944) - - The French web admin page was never updated (STR #2963) - - The IPP backend did not retry print jobs when the printer - reported itself as busy or unavailable (STR #2951) - - The "Set Allowed Users" web interface did not handle trailing - whitespace correctly (STR #2956) - - The PostScript filter did not work with Adobe applications - using custom page sizes (STR #2968) - - The Mac OS X USB backend did not work with some printers - that reported a bad 1284 device ID. - - The scheduler incorrectly resolved the client connection - address when HostNameLookups was set to Off (STR #2946) - - The IPP backend incorrectly stopped the local queue if - the remote server reported the "paused" state. - - The cupsGetDests() function did not catch all types of - request errors. - - The scheduler did not always log "job queued" messages - (STR #2943) - - The scheduler did not support destination filtering using - the printer-location attribute properly (STR #2945) - - The scheduler did not send the server-started, - server-restarted, or server-stopped events (STR #2927) - - The scheduler no longer enforces configuration file - permissions on symlinked files (STR #2937) - - CUPS now reinitializes the DNS resolver on failures - (STR #2920) - - The CUPS desktop menu item was broken (STR #2924) - - The PPD parser was too strict about missing keyword - values in "relaxed" mode. - - The PostScript filter incorrectly mirrored landscape - documents. - - The scheduler did not correctly update the - auth-info-required value(s) if the AuthType was Default. - - The scheduler required Kerberos authentication for - all operations on remote Kerberized printers instead - of just for the operations that needed it. - - The socket backend could wait indefinitely for back- - channel data with some devices. - - PJL panel messages were not reset correctly on older - printers (STR #2909) - - cupsfilter used the wrong default path (STR #2908) - - Fixed address matching for "BrowseAddress @IF(name)" - (STR #2910) - - Fixed compiles on AIX. - - Firefox 3 did not work with the CUPS web interface in SSL - mode (STR #2892) - - Custom options with multiple parameters were not emitted - correctly. - - Refined the cupstestppd utility. - - ppdEmit*() did not support custom JCL options (STR #2889) - - The cupstestppd utility incorrectly reported missing - "en" base translations (STR #2887) - - -CHANGES IN CUPS V1.3.8 - - - Documentation updates (STR #2785, STR #2861, STR #2862) - - The scheduler did not add the ending job sheet when the - job was released. - - The IPP backend did not relay marker-* attributes. - - The CUPS GNOME/KDE menu item was not localized for - Chinese (STR #2880) - - The CUPS GNOME/KDE menu item was not localized for - Japanese (STR #2876) - - The cupstestppd utility reported mixed line endings for - Mac OS and Windows PPD files (STR #2874) - - The pdftops filter did not print landscape orientation PDF - pages correctly on all printers (STR #2850) - - The scheduler did not handle expiring of implicit classes - or their members properly, leading to a configuration where - one of the members would have a short name (STR #2766) - - The scheduler and cupstestppd utilities did not support - cupsFilter and cupsPreFilter programs with spaces in their - names (STR #2866) - - Removed unused variables and assignments found by the - LLVM "clang" tool. - - Added NULL checks recommended by the LLVM "clang" tool. - - The scheduler would crash if you started a printer that - pointed to a backend that did not exist (STR #2865) - - The ppdLocalize functions incorrectly mapped all generic - locales to country-specific locales. - - The cups-driverd program did not support Simplified Chinese - or Traditional Chinese language version strings (STR #2851) - - Added an Indonesian translation (STR #2792) - - Fixed a timing issue in the backends that could cause data - corruption with the CUPS_SC_CMD_DRAIN_OUTPUT side-channel - command (STR #2858) - - The scheduler did not support "HostNameLookups" with all of - the boolean names (STR #2861) - - Fixed a compile problem with glibc 2.8 (STR #2860) - - The scheduler incorrectly filtered out queues with ACLs and - authentication. - - The PostScript filter did not support %%IncludeFeature lines - in the page setup section of each page (STR #2831) - - The scheduler did not generate printer-state events when the - default printer was changed (STR #2764) - - cupstestppd incorrectly reported a warning about the PPD format - version in some locales (STR #2854) - - cupsGetPPD() and friends incorrectly returned a PPD file for - a class with no printers. - - The member-uris values for local printers in a class returned - by the scheduler did not reflect the connected hostname or - port. - - The CUPS PHP extension was not thread-safe (STR #2828) - - The scheduler incorrectly added the document-format-default - attribute to the list of "common" printer attributes, which - over time would slow down the printing system (STR #2755, - STR #2836) - - The cups-deviced and cups-driverd helper programs did not set - the CFProcessPath environment variable on Mac OS X (STR #2837) - - "lpstat -p" could report the wrong job as printing (STR #2845) - - The scheduler would crash when some cupsd.conf directives - were missing values (STR #2849) - - The web interface "move jobs" operation redirected users to - the wrong URL (STR #2815) - - The Polish web interface translation contained errors - (STR #2815) - - The scheduler did not report PostScript printer PPDs with - filters as PostScript devices. - - The scheduler did not set the job document-format attribute - for jobs submitted using Create-Job and Send-Document. - - cupsFileTell() did not work for log files opened in append - mode (STR #2810) - - The scheduler did not set QUERY_STRING all of the time - for CGI scripts (STR #2781, STR #2816) - - The scheduler now returns an error for bad job-sheets - values (STR #2775) - - Authenticated remote printing did not work over domain - sockets (STR #2750) - - The scheduler incorrectly logged errors for print filters - when a job was canceled (STR #2806, #2808) - - The scheduler no longer allows multiple RSS subscriptions - with the same URI (STR #2789) - - The scheduler now supports Kerberized printing with - multiple server names (STR #2783) - - "Satisfy any" did not work in IPP policies (STR #2782) - - The CUPS imaging library would crash with very large - images - more than 16Mx16M pixels (STR #2805) - - The PNG image loading code would crash with large images - (STR #2790) - - The scheduler did not limit the total number of filters. - - The scheduler now ensures that the RSS directory has - the correct permissions. - - The RSS notifier did not quote the feed URL in the RSS - file it created (STR #2801) - - The web interface allowed the creation and cancellation - of RSS subscriptions without a username (STR #2774) - - Increased the default MaxCopies value on Mac OS X to - 9999 to match the limit imposed by the print dialog. - - The scheduler did not reject requests with an empty - Content-Length field (STR #2787) - - The scheduler did not log the current date and time and - did not escape special characters in request URIs when - logging bad requests to the access_log file (STR #2788) - - -CHANGES IN CUPS V1.3.7 - - - CVE-2008-0047: cgiCompileSearch buffer overflow (STR #2729) - - CVE-2008-1373: CUPS GIF image filter overflow (STR #2765) - - Updated the "make check" tests to do a more thorough - automated test. - - cups-driverd complained about missing directories (STR - #2777) - - cupsaddsmb would leave the Samba username and password on - disk if no Windows drivers were installed (STR #2779) - - The Linux USB backend used 100% CPU when a printer was - disconnected (STR #2769) - - The sample raster drivers did not properly handle SIGTERM - (STR #2770) - - The scheduler sent notify_post() messages too often on - Mac OS X. - - Kerberos access to the web interface did not work - (STR #2748) - - The scheduler did not support "AuthType Default" in IPP - policies (STR #2749) - - The scheduler did not support the "HideImplicitMembers" - directive as documented (STR #2760) - - "make check" didn't return a non-zero exit code on - error (STR #2758) - - The scheduler incorrectly logged AUTH_foo environment - variables in debug mode (STR #2751) - - The image filters inverted PBM files (STR #2746) - - cupsctl would crash if the scheduler was not running - (STR #2741) - - The scheduler could crash when printing using a port - monitor (STR #2742) - - The scheduler would crash if PAM was broken (STR #2734) - - The image filters did not work with some CMYK JPEG files - produced by Adobe applications (STR #2727) - - The Mac OS X USB backend did not work with printers that - did not report a make or model. - - The job-sheets option was not encoded properly (STR #2715) - - The scheduler incorrectly complained about missing LSB - PPD directories. - - -CHANGES IN CUPS V1.3.6 - - - Documentation updates (STR #2646, STR #2647, STR #2649) - - Fixed a problem with the web interface "Use Kerberos - Authentication" check box (STR #2703) - - The scheduler unconditionally overwrote the printer-state- - message with "process-name failed" when a filter or backend - failed, preventing a useful error message from being shown - to the user. - - Policies on CUPS-Move-Job didn't work as expected (STR - #2699) - - The configure script only supported D-BUS on Linux - (STR #2702) - - The scheduler did not support (STR #2701) - - The scheduler did not reset the job-hold-until attribute - after a job's hold time was reached. - - The scheduler did not support printer supply attributes - (STR #1307) - - The Kerberos credentials provided by some Windows KDCs - were still too large - now use a dynamic buffer to - support credentials up to 64k in size (STR #2695) - - Printing a test page from the web interface incorrectly - defaulted to the "guest" user (STR #2688) - - The cupsEncodeOptions2() function did not parse multiple- - value attribute values properly (STR #2690) - - The scheduler incorrectly sent printer-stopped events for - status updates from the print filters (STR #2680) - - The IPP backend could crash when handling printer errors - (STR #2667) - - Multi-file jobs did not print to remote CUPS servers - (STR #2673) - - The scheduler did not provide the Apple language ID to - job filters. - - Kerberos authentication did not work with the web - interface (STR #2606, STR #2669) - - The requesing-user-name-allowed and -denied functionality - did not work for Kerberos-authenticated usernames (STR - #2670) - - CUPS didn't compile on HP-UX 11i (STR #2679) - - cupsEncodeOptions2() did not handle option values like - "What's up, doc?" properly. - - Added lots of memory allocation checks (Fortify) - - The scheduler would crash if it was unable to add a job - file (Fortify) - - ppdOpen*() did not check all memory allocations (Coverity) - - ippReadIO() did not check all memory allocations (Coverity) - - The PostScript filter did not detect read errors (Coverity) - - The scheduler did not check for a missing job-sheets-completed - attribute when sending an event notification (Coverity) - - "Set Printer Options" might not work with raw queues (Coverity) - - cupsRasterInterpretPPD() could crash on certain PostScript - errors (Coverity) - - The USB backend did not check for back-channel support - properly on all systems (Coverity) - - Fixed memory leaks in the GIF and PNM image loading code - (Coverity) - - Removed some dead code in the CUPS API and scheduler (Coverity) - - Fixed two overflow bugs in the HP-GL/2 filter (Coverity) - - Fixed another ASN1 string parsing bug (STR #2665) - - The RSS notifier directory was not installed with the - correct permissions. - - The standard CUPS backends could use 100% CPU while waiting - for print data (STR #2664) - - Filename-based MIME rules did not work (STR #2659) - - The cups-polld program did not exit if the scheduler crashed - (STR #2640) - - The scheduler would crash if you tried to set the port-monitor - on a raw queue (STR #2639) - - The scheduler could crash if a polled remote printer was - converted to a class (STR #2656) - - The web interface and cupsctl did not correctly reflect - the "allow printing from the Internet" state (STR #2650) - - The scheduler incorrectly treated MIME types as case- - sensitive (STR #2657) - - The Java support classes did not send UTF-8 strings to - the scheduler (STR #2651) - - The CGI code did not handle interrupted POST requests - properly (STR #2652) - - The PostScript filter incorrectly handled number-up when - the number of pages was evenly divisible by the number-up - value. - - The PDF filter incorrectly filtered pages when page-ranges - and number-up were both specified (STR #2643) - - The IPP backend did not handle printing of pictwps files - to a non-Mac CUPS server properly. - - The scheduler did not detect network interface changes - on operating systems other than Mac OS X (STR #2631) - - The scheduler now logs the UNIX error message when it - is unable to create a request file such as a print job. - - Added support for --enable-pie on Mac OS X. - - -CHANGES IN CUPS V1.3.5 - - - The SNMP backend did not check for negative string - lengths (STR #2589) - - The scheduler incorrectly removed auth-info attributes, - potentially leading to a loss of all options for a job. - - The scheduler stopped sending CUPS browse packets on a - restart when using fixed addresses (STR #2618) - - Fixed PDF filter security issues (CVE-2007-4352 - CVE-2007-5392 CVE-2007-5393) - - Changing settings would always change the DefaultAuthType - and Allow lines (STR #2580) - - The scheduler would crash when submitting an undefined - format file from Samba with LogLevel debug2 (STR #2600) - - The scheduler did not use poll() when epoll() was not - supported by the running kernel (STR #2582) - - Fixed a compile problem with Heimdal Kerberos (STR #2592) - - The USB backend now retries connections to a printer - indefinitely rather than stopping the queue. - - Printers with untranslated JCL options were not exported - to Samba correctly (STR #2570) - - The USB backend did not work with some Minolta USB - printers (STR #2604) - - The strcasecmp() emulation code did not compile (STR - #2612) - - The scheduler would crash if a job was sent to an empty - class (STR #2605) - - The lpc command did not work in non-UTF-8 locales (STR - #2595) - - Subscriptions for printer-stopped events also received - other state changes (STR #2572) - - cupstestppd incorrectly reported translation errors for - the "en" locale. - - ppdOpen() did not handle custom options properly when the - Custom attribute appeared before the OpenUI for that - option. - - The scheduler could crash when deleting a printer or - listing old jobs. - - The Mac OS X USB backend did not allow for requeuing of - jobs submitted to a class. - - lpmove didn't accept a job ID by itself. - - The scheduler incorrectly removed job history information - for remote print jobs. - - The scheduler incorrectly sent the - "com.apple.printerListChanged" message for printer state - changes. - - The PostScript filter drew the page borders (when enabled) - outside the imageable area. - - The LPD and IPP backends did not default to the correct - port numbers when using alternate scheme names. - - The scheduler incorrectly deleted hardwired remote - printers on system sleep. - - The scheduler would abort if a bad browse protocol name - was listed in the cupsd.conf file. - - The online cupsd.conf help file incorrectly showed - "dns-sd" instead of "dnssd" for Bonjour sharing. - - The scheduler could crash changing the port-monitor value. - - The scheduler generated CoreFoundation errors when run as - a background process. - - When printing with number-up > 1, it was possible to get - an extra blank page. - - -CHANGES IN CUPS V1.3.4 - - - Documentation updates (STR #2560, STR #2563, STR #2569) - - CUPS now maps the "nb" locale to "no" on all platforms - (STR #2575) - - CUPS did not work with a Windows 2003 R2 KDC (STR #2568) - - ippReadIO() could read past the end of a buffer (STR - #2561) - - The scheduler would crash on shutdown if it was unable - to create a Kerberos context. - - Multiple AuthTypes in cupsd.conf did not work (STR - #2545) - - The snmp.conf file referenced the wrong man page (STR - #2564) - - The cupsaddsmb program didn't handle domain sockets - properly (STR #2556) - - The scheduler now validates device URIs when adding - printers. - - Updated httpSeparateURI() to support hostnames with - the backslash character. - - Updated the Japanese localization (STR #2546) - - The parallel backend now gets the current IEEE-1284 - device ID string on Linux (STR #2553) - - The IPP backend now checks the job status at - variable intervals (from 1 to 10 seconds) instead - of every 10 seconds for faster remote printing - (STR #2548) - - "lpr -p" and "lpr -l" did not work (STR #2544) - - Compilation failed when a previous version of CUPS - was installed and was included in the SSL include - path (STR #2538) - - The scheduler did not reject requests with charsets - other than US-ASCII or UTF-8, and the CUPS API - incorrectly passed the locale charset to the scheduler - instead of UTF-8 (STR #2537) - - cups-deviced did not filter out duplicate devices. - - The AppleTalk backend incorrectly added a scheme - listing when AppleTalk was disabled or no printers - were found. - - The PostScript filter generated N^2 copies when the - printer supported collated copies and user requested - reverse-order output. - - The scheduler did not reprint all of the files in a - job that was held. - - The scheduler did not update the printcap file after - removing stale remote queues. - - The cupsd.conf man page incorrectly referenced - "AuthType Kerberos" instead of "AuthType Negotiate". - - -CHANGES IN CUPS V1.3.3 - - - The scheduler did not use the attributes-natural-language - attribute when passing the LANG environment variable to - cups-deviced or cups-driverd. - - The scheduler did not use the printer-op-policy when - modifying classes or printers (STR #2525) - - The auth-info-required attribute was not always updated - for remote queues that required authentication. - - The German web interface localization contained errors - (STR #2523) - - The Swedish localization contained errors (STR #2522) - - -CHANGES IN CUPS V1.3.2 - - - The 1.3.1 release was incorrectly created from the - 1.4.x source tree (STR #2519) - - Added support for 32/64-bit libraries on HP-UX - (STR #2520) - - The scheduler incorrectly used portrait as the default - orientation (STR #2513) - - The scheduler no longer writes the printcap file for - every remote printer update (STR #2512) - - Remote raw printing with multiple copies did not work - (STR #2518) - - Updated the configure script to require at least autoconf - 2.60 (STR #2515) - - Some gzip'd PPD files were not read in their entirety - (STR #2510) - - -CHANGES IN CUPS V1.3.1 - - - Documentation updates. - - The USB backend on Mac OS X could hang if the driver and - printer did not match. - - Delegated Kerberos credentials were not working. - - "make distclean" incorrectly removed the edit-config.tmpl - files (STR #2508) - - Fix compile problem on HP-UX (STR #2501) - - The cupstestppd utility now tests for resolutions greater - than 99999 DPI to detect a missing "x" between the X and Y - resolutions. - - Fixed many problems in the various translations and added - a new "checkpo" utility to validate them. - - The cupstestppd utility now tests the custom page size code - for CUPS raster drivers. - - cupsLangDefault() did not attempt to return a language that - was supported by the calling application. - - If a remote printer stopped while a job was being sent, the - local queue would also get stopped and the job re-queued, - resulting in duplicate prints in some cases. - - A few Apple-specific job options needed to be omitted when - printing a banner page. - - The new peer credential support did not compile on FreeBSD - (STR #2495) - - Direct links to help files did not set the current section - so the table-of-contents was not shown. - - The configure script did not support --localedir=foo (STR #2488) - - The backends were not displaying their localized messages. - - CUPS-Authenticate-Job did not require Kerberos authentication - on queues protected by Kerberos. - - The Zebra ZPL driver did not work with Brady label printers - (STR #2487) - - Norwegian wasn't localized on Mac OS X. - - getnameinfo() returns an error on some systems when DNS is - not available, leading to numerous problems (STR #2486) - - The cupsfilter command did not work properly on Mac OS X. - - The scheduler makefile contained a typo (STR #2483) - - The TBCP and BCP port monitors did not handle the trailing - CTRL-D in some PostScript output properly. - - Fixed the localization instructions and German template for - the "Find New Printers" button (STR #2478) - - The web interface did not work with the Chinese localization - (STR #2477) - - The web interface home page did not work for languages that - were only partially localized (STR #2472) - - Updated the Spanish web interface localization (STR #2473) - - ppdLocalize() did not work for country-specific localizations. - - -CHANGES IN CUPS V1.3.0 - - - The scheduler did not handle out-of-file conditions - gracefully when accepting new connections, leading to - heavy CPU usage. - - The scheduler did not detect ServerBin misconfigurations - (STR #2470) - - "AuthType Default" did not work as expected when the - "DefaultAuthType foo" line appeared after it in the - cupsd.conf file. - - The on-line help did not describe many common printing - options (STR #1846) - - The IPP backend did not return the "auth required" status - when printing to a Kerberos-protected queue. - - The scheduler was not looking in the correct directories - for LSB PPD files (STR #2464) - - Changed references to ESP Ghostscript to GPL Ghostscript - (STR #2463) - - The PostScript filter did not cleanly terminate when - the job was canceled or stopped. - - Fixed generation of Kerberos credentials for remote - printing. Note that this requires a recent version of - MIT Kerberos with a working krb5_cc_new_unique() - function or Heimdal Kerberos. - - Added Portuguese and updated Italian message catalogs. - - -CHANGES IN CUPS V1.3rc2 - - - Added more range checking to the pdftops filter. - - The scheduler would crash if a remote IPP queue was stopped - (STR #2460) - - The scheduler did not allow "DefaultAuthType None". - - -CHANGES IN CUPS V1.3rc1 - - - Updated the German localization (STR #2443) - - cupsAdminGetServerSettings() did not handle properly. - - When lprm and cancel are run with no job ID, they now will - cancel the first stopped job if no pending or processing - jobs are left in the queue. - - The scheduler now logs successful print jobs, filter - failures, and the job file types at the default log - level (STR #2458) - - The scheduler now logs the usernames it is using for - authorization at LogLevel debug instead of debug2 (STR #2448) - - Added Intellitech Intellibar and Zebra CPCL PPDs to the list - of installed PPDs. - - Added 6" and 8" wide label sizes for the Zebra ZPL Label - Printer driver (STR #2442) - - The cupsaddsmb program and web interface now support - exporting of 64-bit Windows drivers, when available - (STR #2439) - - Moving a job that was printing did not stop the job on the - original printer (STR #2262) - - The cups-lpd mini-daemon did not work on Mac OS X server. - - Added httpGetAuthString() and httpSetAuthString() APIs to get - and set the current (cached) authorization string to use for - HTTP requests. - - Updated the default cupsd.conf policy to list the - "administrative" operations separately from the "printer - control" operations so that it is easier to define a - group of users that are "printer operators". - - The web interface now pulls the default cupsd.conf file - from cupsd.conf.default in the CUPS config directory. - - Added a help file for using Kerberos with CUPS. - - The scheduler now strips the "@KDC" portion of Kerberos - usernames since those usernames typically do not appear in - the group membership lists used by CUPS. - - cupsMarkOptions() could (incorrectly) leave multiple option - choices marked. - - Backends could (incorrectly) run as root during discovery - (STR #2454) - - Avahi is now supported for DNS-SD (Bonjour) printer sharing - (STR #2455) - - The default cupsd.conf file had typos and old operation names - (STR #2450) - - The scheduler now erases authentication cache files using the - 7-pass US DoD algorithm. - - Delegated Kerberos credentials (proxy authentication) did not - work. - - The filter makefile did not optimize the libcupsimage.2.dylib - with a sectorder file. - - The IPP backend incorrectly wrote an empty printer message - when processing the "none" state reason. - - The USB backend could deadlock on Mac OS X while performing - a side-channel command. - - The scheduler did not prevent remote queues from being - shared/published. - - The scheduler did not remove the temporary request file on - authentication errors. - - ppdLocalizeIPPReason() did not handle "scheme:" schemes or - "file" URLs. - - ppdLocalizeIPPReason() was not exported on Mac OS X. - - -CHANGES IN CUPS V1.3b1 - - - Copyright updates - CUPS is now owned by Apple Inc. - - Documentation updates (STR #1775, STR #2027, STR #2130, - STR #2131, STR #2263, STR #2356, STR #2397) - - Added new cupsfilter utility (STR #1734) - - Added new job-printer-state-message and - job-printer-state-reasons attributes to jobs (STR #2418) - - Added LDAP+SSL support (STR #1967) - - CUPS now supports authentication via peer credentials - over domain sockets (STR #2242, STR #2277) - - The CUPS sample driver PPDs are now generated by the PPD - compiler and include all of the localized languages by - default (STR #2164) - - You can now specify "AuthType Default" in the cupsd.conf - file to use the default authentication defined by the - DefaultAuthType directive. - - The SNMP backend no longer adds a default Address line - when none is specified in the snmp.conf file; this allows - the backend to be easily disabled as needed (STR #2434) - - Added a new cupsctl command for doing basic changes to - the cupsd.conf file (STR #1777) - - Added a new ppdLocalizeIPPReason() function to get the - localized text/URI for a given IPP reason keyword for a - driver. - - Removed the deskjet2.ppd driver, as it only worked with - a very small subset of HP DeskJet printers and was - confusing to users. The rastertohp driver still - supports the deskjet2.ppd options for existing queues. - - The scheduler did not add a trailing banner page if a - client did not specify the last document in a job (STR - #1711) - - The scheduler did not report Bonjour shared printers as - remote printers (STR #2384) - - Added new -R and -W options to the cupstestppd program - for greater control over the testing of PPDs. - - Added a new cupsGetServerPPD() function for getting - an available PPD from the server (STR #2334) - - Added a new cupsDoIORequest() function for reading - and writing files via IPP requests (STR #2334) - - Added a new CUPS_GET_PPD operation for getting an - available PPD file on the server (STR #2334) - - CUPS_GET_PPDS now reports multiple ppd-product values - based on the PPD ModelName and Product strings (STR - #2334, STR #2383) - - CUPS_GET_PPDS now reports the PSVersion attributes - from a PPD file in the ppd-psversion attribute - (STR #2334) - - CUPS_GET_PPDS now reports the cupsModelNumber attribute - from a PPD file in the ppd-model-number attribute (STR - #2383) - - CUPS_GET_PPDS now reports a driver type string in the - ppd-type attribute based on the cupsFax and cupsFilter - attributes in a PPD file (STR #2383) - - Added a new printer attribute called "cups-version" - which reports the version of CUPS that is running - (STR #2240) - - backendRunLoop() now aborts immediately on SIGTERM - if no data has been written yet (STR #2103) - - Due to poor IPP support from the vendors, the SNMP - backend no longer tries IPP connections; instead, - it now uses a lookup file with fallback to port 9100 - (socket://address) and 515 (lpd://address) printing - (STR #2035, STR #2354) - - The scheduler now recreates the CUPS log directory as - needed (STR #2353) - - cupsLangDefault() now maps new-style Apple locale names - to the traditional ll_CC form (STR #2357) - - Add new cupsArrayNew2() API to support hashed lookups - of array elements (STR #2358) - - ppdConflicts() optimizations (STR #2358) - - The cupstestppd program now tests for existing filters, - icons, profiles, and dialog extensions (STR #2326) - - The web interface no longer lists new printers on the - main administration page. Instead, a new "List Available - Printers" button is provided that shows a separate page - with the list of printers. - - The web interface now supports setting the banner and - policy options on raw printers and classes (STR #2238) - - The socket backend now reads any pending back-channel - data before shutting down the socket (STR #2325) - - Added a new ErrorPolicy directive in the cupsd.conf - file (STR #1871) - - Printers that use JCL options are now exported to Samba - correctly (STR #1985) - - The IPP backend now relays printer-state-message values - from the server to the client (STR #2109) - - Added support for the PWG printer-alert and - printer-alert-description attributes (STR #2088) - - Added support for LPD "stream" mode (STR #2036) - - The scheduler now reports the PostScript product string - from PPD files in CUPS-Get-PPDs responses (STR #1900) - - Raw printing with queues pointing to the file pseudo- - device and multiple files and/or banners now works (STR - #1933) - - Added new public cupsAdminGetServerSettings() and - cupsAdminSetServerSettings() APIs. - - Added new "makebuttons" script in the "tools" directory - for creating web interface buttons (STR #2231) - - Added support for DNS-SD (aka "Bonjour") printer sharing - (STR #1171) - - Job operations (cancel, hold, release, etc.) from the - web interface now return back to the original page (STR - #2239) - - The classes or printers list is now shown after a - successful deletion from the web interface (STR #1999) - - The default configuration now allows browse packets from - any address (STR #2008) - - The web interface now provides an "allow printing from the - Internet" check box (STR #1897) - - The notify-events-default and - notify-lease-duration-default attributes can now be set - (STR #1671) - - Server-side default options are now sent to clients when - the "printer-defaults" attribute group is requested (STR - #1923) - - Added support for Linux "relro" linker option (STR #1614) - - CUPS now validates the number-up option value (STR #1329) - - The on-line help now provides better search capabilities - (STR #1701) - - The web interface "Add This Printer" button now allows you - to change the printer name, description, and location - (STR #1646) - - Added support for Mac OS X authorization services - (STR #2206) - - Added support for driver-specific pre-filters (STR #2108) - - Added a new side-channel API for drivers and backends - for basic device control and information queries (STR - #1898) - - The scheduler now uses poll(), epoll(), or /dev/kqueue - instead of select() when possible (STR #1261) - - Added new cupsArrayGetIndex() and cupsArrayGetInsert() - functions to get the current index and insertion - positions of an array. - - Added a new --with-max-copies configure option (STR - #2090) - - Added new cupsRemoveDest() and cupsSetDefaultDest() - functions. - - Added support for cupsPJLCharset attribute in PPD files - which specifies the character set that is used in PJL - strings (STR #1969) - - Moved the definition of the (private) _http_s structure - to http-private.h; code that directly accesses the - http_t members will no longer compile! - - Added support for setting the document-format-default - attribute on a per-printer basis. - - Added support for IntelliBar label printers. diff --git a/CHANGES-1.4.txt b/CHANGES-1.4.txt deleted file mode 100644 index 09326b288..000000000 --- a/CHANGES-1.4.txt +++ /dev/null @@ -1,843 +0,0 @@ -CHANGES-1.4.txt ---------------- - -CHANGES IN CUPS V1.4.8 - - - The scheduler would delete job data files when restarted (STR #3880) - - The network backends could crash if a printer returned a value of 0 - for the maximum capacity for a supply (STR #3875) - - -CHANGES IN CUPS V1.4.7 - - - Documentation changes (STR #3710, STR #3720, STR #3745, STR #3750, - STR #3757, STR #3758, STR #3782, STR #3826, STR #3829, STR #3837) - - Web interface fixes (STR #3412, STR #3345, STR #3455, STR #3707, - STR #3755, STR #3769, STR #3783) - - Configure script fixes (STR #3659, STR #3691) - - Compilation fixes (STR #3718, STR #3771, STR #3774) - - The imageto* filters could crash with bad GIF files (STR #3867) - - The scheduler might leave old job data files in the spool directory - (STR #3795) - - CUPS did not work with locales using the ASCII character set - (STR #3832) - - httpAddrString() did not return a URI-style IPv6 numeric address - (STR #3814) - - Fixed an issue when reading compressed CUPS raster streams (STR #3812) - - Fixed an issue with PostScript printer auto-configuration (STR #3443) - - Fixed some compatibility issues with the libusb-based USB backend - (STR #3799) - - The network backends no longer try to collect SNMP supply and status - information for raw queues (STR #3809) - - The DBUS notifier did not report job state changes (STR #3805) - - The scheduler did not always report that the "normal" print-quality - value was supported (STR #3803) - - The gziptoany filter did not report the correct error if it was unable - to write the uncompressed document to the next filter or backend in - the chain (STR #3797) - - The Epson and Oki 9-pin drivers had a bad resolution option - (STR #3798) - - The scheduler did not always register the correct default ICC profile - on Mac OS X. - - The scheduler did not use the job owner when authorizing access for - the CUPS-Get-Document operation, preventing non-admins from accessing - their own jobs. - - CUPS did not work with some printers that incorrectly implemented the - HTTP/1.1 standard (STR #3778, STR #3791) - - The scheduler did not retry fax jobs properly. - - The scheduler now recognizes an empty cupsCommands PPD keyword as - meaning that CUPS commands are not supported for a printer (STR #3773) - - Fixed a crash bug in the scheduler when the application/octet-stream - MIME type was not defined (STR #3690) - - Polled printers were advertised more slowly than necessary (STR #3574) - - cupsResolveConflicts() did not handle resolving multiple UIConstraints - issues (STR #3705) - - The SetEnv and PassEnv directives had no effect (STR #3664) - - The libusb-based USB backend printed slowly to the LaserJet 1300 and - other printers (STR #3405) - - "lp" and "lpr" failed to print with Kerberos enabled (STR #3768) - - The cupsctl program now displays an error if you try to directly set - the Port or Listen directives (STR #3749) - - PPD files with "*JobPatchFile: bla" no longer fail to load in relaxed - conformance mode (STR #3747) - - The scheduler generated a bad notify-text string for printer state - change notifications (STR #3739) - - The scheduler incorrectly updated printers.conf when it really needed - to update classes.conf or remote.cache (STR #3726) - - Hardwired remote printers with options did not work (STR #3717) - - Accessing the CUPS web interface using a CNAME-based hostname would - sometimes fail due to redirection to the actual hostname (STR #3701) - - Subscription events had a misspelled attribute (STR #3693) - - "make check" failed if LC_MESSAGES was set (STR #3765) - - Fixed the configure script to always look for the pkg-config script - (STR #3761) - - The scheduler now only looks up interface hostnames if HostNameLookups - are enabled (STR #3737) - - Fixed a compilation problem on DragonFly BSD (STR #3738) - - The default PageLogFormat value had the username and job ID swapped - from CUPS 1.3.x (STR #3727) - - The scheduler could crash if a browsed printer times out while a job - is printing (STR #3754) - - The scheduler incorrectly mapped custom page sizes to standard sizes - (STR #3764) - - cupsfilter and pstops did not map IPP attributes to PPD options due to - a change in cupsMarkOptions (STR #3756) - - The scheduler did not always show the most recent status message from - the print filters (STR #3731) - - The PostScript filter did not apply the mirror and number-up options - properly, leading to offset and clipped output (STR #3732) - - The network backends always reported "low toner" or "out of toner" - states, even for inkjet printers (STR #3733) - - -CHANGES IN CUPS V1.4.6 - - - Fixed a "make check" issue on Solaris (STR #3729) - - Regression: The pstops filter did not support landscape printing of - PostScript files (STR #3722) - - The scheduler killed retried (fax) jobs after restarting them - (STR #3697) - - The cupsAdminSetServerSettings() function disabled sharing when - debug logging was enabled (STR #3712) - - -CHANGES IN CUPS V1.4.5 - - - Documentation fixes (STR #3542, STR #3650) - - Localization fixes (STR #3635, STR #3636, STR #3647, STR #3666) - - Security: Fixed a memory corruption bug reported in CVE-2010-2941 - (STR #3648) - - The CUPS API incorrectly mapped the HTTP_UNAUTHORIZED status to the - IPP_NOT_AUTHORIZED status code, when IPP_NOT_AUTHENTICATED would be - the correct mapping (STR #3684) - - The scheduler would restart jobs while shutting down (STR #3679) - - Fixed a PPD loader bug that could cause a crash in cupsd (STR #3680) - - Improved the mapping of non-standard PPD and PWG names (STR #3671) - - The scheduler did not initialize Kerberos in all cases (STR #3662) - - cupsAdminSetServerSettings duplicated Listen and Order lines - (STR #3645) - - Added DeviceN colorspace support to the CUPS Raster format (STR #3419) - - ppdMarkDefaults() did not clear the marked field of the previous - choices (STR #3642) - - The serial backend would not allow a raw job to be canceled - (STR #3649) - - The socket backend could go into an infinite loop with certain - printers (STR #3622) - - Setting the PRINTER or LPDEST environment variables to "name/instance" - did not work (STR #3485) - - The scheduler did not handle the JobRetryLimit setting properly - (STR #3466) - - The lpstat command always showed a remote job ID of 0 for shared - printers (STR #3627) - - Increased the write timeout for the libusb-based USB backend to 5 - minutes (STR #3595) - - The libusb-base USB backend did not check whether the printer has a - serial number (STR #3590) - - The lpadmin command did not support setting of custom option values - (STR #3631) - - The lpadmin command did not support setting of the location or - description of a class (STR #3613) - - The cupsaddsmb command did not give up after too many failed attempts - (STR #3615) - - The CUPS library no longer uses certain problematic ctype macros that - change based on the locale's character set. - - PJL value substitution of more than 9 values was broken (STR #3621) - - Custom options with missing string values caused ppdEmit* to segfault - (STR #3620) - - Fixed an issue with the Italian version of the web interface - (STR #3624) - - Fixed the Solaris SMF configuration file for cups-lpd (STR #3611) - - The scheduler did not set the notify-subscribed-event attribute when - delivering printer-added or printer-modified events (STR #3608) - - The mailto notifier could get into an infinite loop (STR #3609) - - Date/time information was not shown in banner pages. - - Relational operators were broken in #if/#elif/#else/#endif expressions - for the PPD compiler. - - Moving a job via the web interface failed without asking for - authentication (STR #3559) - - The scheduler now clears the printer-state-reasons when the driver is - changed (STR #3570) - - The web interface did not allow a user to change the driver - (STR #3537, STR #3601) - - The scheduler was not setting the PATH_INFO environment variable when - needed (STR #3600) - - The scheduler incorrectly set the CUPSD_AUTH_TYPE environment - variable instead of AUTH_TYPE (STR #3599) - - Fixed a buffer overrun in the PPD compiler (STR #3594) - - Fixed some additional IPP job template attribute mapping issues in the - scheduler. - - -CHANGES IN CUPS V1.4.4 - - - Documentation updates (STR #3453, STR #3527, STR #3528, STR #3529) - - Security: The fix for CVE-2009-3553 was incomplete (STR #3490) - - Security: The texttops filter did not check the results of allocations - (STR #3516) - - Security: The web admin interface could disclose the contents of - memory (STR #3577) - - Security: CUPS could overwrite files as root in directories owned or - writable by non-root users (STR #3510) - - The cups-config utility did not return the correct linker options on - AIX (STR #3587) - - Fixed some IPP conformance issues with the scheduler's - ippget-event-life, operations-supported, output-bin, and sides - attributes (STR #3554) - - The OpenSSL interfaces have been made thread-safe and the GNU TLS - interface is explicitly forbidden when threading is enabled - (STR #3461) - - Fixed an IPP conformance issue with the scheduler's Send-Document - implementation (STR #3514) - - Added additional validation checks for the 1284 device ID (STR #3534) - - Fixed a problem with the RPM spec file (STR #3544) - - The lpstat command did not limit the job list to the specified - printers (STR #3541) - - The cupsfilter command did not set the RIP_MAX_CACHE environment - variable (STR #3531) - - Fixed support for media-col and page size variants (STR #3394) - - The PostScript filter did not support all media selection options for - the first page (STR #3525) - - The scheduler did not always remove job control files (STR #3425) - - The scheduler could crash on restart if classes were defined - (STR #3524) - - The scheduler no longer looks up network interface hostnames by - default on Mac OS X (STR #3523) - - ippWriteIO did not write collection (member) attributes properly in - all cases (STR #3521) - - The "cupsctl --remote-any" and corresponding web interface check box - (allow printing from the Internet) did not work reliably (STR #3520) - - The lpq and lpr commands would sometimes choose different default - printers (STR #3503) - - cupsDo*Request did not flush error text, leading to multiple issues - (STR #3325, STR #3519) - - cupsDoAuthentication did not cancel password authentication after 3 - failures (STR #3518) - - Fixed several LDAP browsing bugs (STR #3392) - - The Dymo driver did not support copies (STR #3457) - - The scheduler did not update the classes.conf file when deleting a - printer belonging to a class (STR #3505) - - The lppasswd command did not use localized password prompts - (STR #3492) - - The socket backend no longer waits for back-channel data on platforms - other than Mac OS X (STR #3495) - - The scheduler didn't send events when a printer started accepting or - rejecting jobs (STR #3480) - - The web interface now includes additional CSRF protection (STR #3498) - - -CHANGES IN CUPS V1.4.3 - - - SECURITY: The scheduler could try responding on a closed client - connection, leading to a crash (STR #3200) - - SECURITY: The lppasswd program allowed the localization files to be - overridden when running in setuid mode (STR #3482) - - Localization updates (STR #3352, STR #3409, STR #3422, STR #3452, - STR #3473, STR #3502) - - Documentation updates (STR #3451, STR #3504) - - The IPP backend now sets the printer-state-message to "Ready to - print." at the end of a successful job (STR #3460) - - The PPD compiler did not correctly add the manufacturer to the output - filename when using the "-m" option (STR #3469) - - The IPP backend did not handle authentication properly for the Get- - Printer-Attributes operation (STR 3458) - - Getting SNMP values larger than 127 bytes did not work. - - IPP conformance: Get-Jobs has a default value for requested-attributes - (STR #3383) - - cupsPrintFiles() did not report all errors (STR #3449) - - cupsAddDest() could read freed memory (STR #3448) - - The DBUS notifier did not build (STR #3447) - - The scheduler would crash when an active printer was deleted. - - The snmp backend did not work with some printers (STR #3413) - - The web interface did not show the conflicting values when setting - options (STR #3440) - - Setting options in the web interface did not always work (STR #3439) - - The scheduler did not use the Get-Job-Attributes policy for a printer - (STR #3431) - - The scheduler added two job-name attributes to each job object - (STR #3428) - - CSS files would not print (STR #3442) - - The scheduler did not clean out completed jobs when PreserveJobHistory - was turned off (STR #3425) - - The web interface did not show completed jobs for a printer - (STR #3436) - - Authenticated printing did not always work when printing directly to - a remote server (STR #3435) - - The USB backend did not work on Solaris (STR #3423) - - cupstestppd didn't catch problems with JobPatchFile definitions - (STR #3421) - - The socket backend could crash if a SNMP string had a negative length. - - Fixed some termination issues with the USB backend on Mac OS X. - - The side-channel APIs did not handle interrupts properly. - - The network backends incorrectly cleared the media-empty-warning - state. - - The web interface did not allow users to successfully add serial - printers (STR #3391) - - cupsTempFd() did not work in some situations (STR #3382) - - Some C API headers were missing C++ wrapper logic. - - The PPD compiler did not localize single-language PPD options properly - (STR #3386) - - Modifying a printer from the web interface sometimes caused the wrong - driver to be selected (STR #3418) - - The scheduler did not handle out-of-memory conditions properly when - loading a job (STR #3407) - - When adding printers from the web interface, the dynamic updates of - the device list made it hard to pick a device (STR #3406) - - Fixed a typo in the web interface admin page template (STR 3403) - - The web interface did not preserve the "printer is shared" state when - modifying a printer (STR #3390) - - The PPD compiler incorrectly inserted translations of empty strings - (STR #3411) - - The scheduler did not reset the SIGPIPE handler of child processes - (STR #3399) - - cupsGetNamedDest() incorrectly returned the default printer if the - named printer did not exist (STR #3397) - - Fixed a GNU TLS error handling bug (STR #3381) - - -CHANGES IN CUPS V1.4.2 - - - SECURITY: The CUPS web interface was vulnerable to several XSS and - HTTP header/body attacks via attribute injection (STR #3367, - STR #3401) - - Fixed localization errors (STR #3359, STR #3372, STR #3380, STR #3387) - - The documentation for classes.conf and printers.conf did not provide - the correct instructions for manual changes (STR #3351) - - The scheduler did not always rebuild printer cache files when the - driver was changed (STR #3356) - - The documentation makefile failed to install localizations when using - newer versions of Bash (STR #3360) - - The configure script did not use the --with-xinetd value for the - default LPD configuration path (STR #3347) - - The configure script incorrectly required glib for DBUS support - (STR #3346) - - The cupstestppd program incorrectly reported filters with bad - permisssions as missing (STR #3363) - - The cups.desktop file used the wrong locale names (STR #3358) - - cupsSideChannelRead() did not return an error for short reads. - - The installed PAM configuration file did not use the correct options - with the pam_unix2 module (STR #3313) - - The scheduler did not preserve default options that contained special - characters (STR #3340) - - The scheduler did not remove old pre-filters when updating a printer - driver (STR #3342) - - The HP/GL-2 filter did not check for early end-of-file (STR #3319) - - The USB backend did not compile on some platforms (STR #3332) - - cupsSideChannelSNMPWalk() could go into an infinite loop with broken - SNMP implementations. - - -CHANGES IN CUPS V1.4.1 - - - Documention fixes (STR #3296) - - SNMP supply levels and states were wrong for some printers. - - The IPP backend did not update the auth-info-required value. - - The libusb-based USB backend would hang at the end of the job - (STR #3315, STR #3318) - - DNS-SD registrations for raw queues had an empty "ty" key (STR #3299) - - The JPEG and BMP MIME type rules were broken (STR #3284) - - cupsGetNamedDest returned the default printer when the named - destination did not exist (STR #3285) - - The JobKillDelay was not triggered for canceled jobs (STR #3292) - - The PPD compiler could get in an infinite loop (STR #3293) - - The configure check for dns-sd.h was broken (STR #3297) - - The "Query Printer for Default Options" page did not go away if the - query job was held (STR #3302) - - Boolean options did not show up as selected in the web interface - (STR #3303) - - The scheduler did not cache or report driver information files - correctly, leading to a variety of issues (STR #3283, STR #3297, - STR #3305) - - cupsDoIORequest() did not abort on permanent errors (STR #3311) - - Modifying a class in the web interface did not work (STR #3312) - - BrowseLocalProtocols could be cleared when changing the sharing - setting (STR #3287) - - The scheduler could return an empty supported document format - (STR #3308) - - The PPD compiler generated invalid PPD files when the locale used - something other than "." for the decimal point (STR #3300) - - The IPP backend did not handle some non-comforming IPP printer - implementations (STR #3262) - - The scheduler leaked three file descriptors to each job filter - (STR #3263) - - The scheduler now uses a default CUPS-Get-Devices timeout of 15 - seconds (STR #3307) - - -CHANGES IN CUPS V1.4.0 - - - Localization updates (STR #3223, STR #3246, STR #3248, STR #3250) - - Documentation updates (STR #3225, STR #3230, STR #3242, STR #3260) - - The --with-pdftops configure option did not accept a full path to the - filter (STR #3278) - - The banner filter did not position the back side image correctly - (STR #3277) - - The dnssd backend could crash (STR #3272) - - The 1284 device ID sometimes contained trailing garbage (STR #3266) - - The USB backend returned different URIs for some printers than in - CUPS 1.3 (STR #3259) - - The scheduler did not do local job-hold-until processing for remote - queues (STR #3258) - - The scheduler did not try all possible SSL certificates on Mac OS X. - - The scheduler did not always remove a file descriptor when using the - kqueue interface (STR #3256) - - The scheduler did not protect against bad job control files in all - cases (STR #3253) - - The scheduler did not encode "+" in model names (STR #3254) - - The web interface didn't show the default options (STR #3244) - - The IPP and LPD backends needed print data before they would do an - SNMP query. - - Fixed a GNU TLS compatibility issue (STR #3231) - - Fixed a HTML error in the add and modify printer web interface - templates (STR #3229) - - The scheduler did not minimize the number of printer state events that - were generated by filter STATE: messages, which could lead to poor - performance. - - The USB backend on Mac OS X did not cleanly cancel a job. - - The network backends now set the connecting-to-device printer-state- - reasons value when looking up the address and copying the print data - for consistency. - - The scheduler now supports the com.apple.print.recoverable-warning - reason on all platforms. - - -CHANGES IN CUPS V1.4rc1 - - - The PPD compiler documentation was missing information on localization - (STR #3212) - - The IPP backend now reconnects after every request when talking to - printers that claim IPP support but only use HTTP/1.0. - - The PPD compiler crashed when both "Resolution" and "Group foo Option - Resolution" were specified in the .drv file. - - The PPD compiler's #if/#elif/#else/#endif did not work for undefined - variables (STR #3210) - - Static libraries could not be installed by a non-root user on systems - needing a ranlib program (STR #3209) - - The scheduler incorrectly always tried to copy Kerberos credentials - for print jobs. - - Updated the Spanish localization (STR #3204) - - The scheduler crashed when getting the default paper size from - libpaper (STR #3205, STR #3206) - - The PPD compiler now defines six variables: CUPS_VERSION, - CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, CUPS_VERSION_PATCH, - PLATFORM_NAME, and PLATFORM_ARCH (STR #3203) - - Fixed a whitespace skipping bug in cupsRasterInterpretPPD. - - The scheduler did not return HTTP 403 (Forbidden) for authenticated - users that were not authorized to do IPP operations (STR #3193) - - The scheduler did not report more than 8 Product strings from a PPD - file. Some PPD files have as many as 24. - - ppdOpen*() could crash if a keyword had no value string (something - that cupstestppd looks for...) - - cupsLangDefault() did not return the correct language on Mac OS X. - - The Mac OS X USB backend did not handle aborted or stalled pipe - conditions properly, which prevented drivers from ejecting partial - pages when a job was canceled or held. - - -CHANGES IN CUPS V1.4b3 - - - Documentation fixes (STR #3044, STR #3057, STR #3153, STR #3158, - STR #3173) - - Added complete localizations for German, Japanese, Polish, and - Russian and partial localizations for Chinese, Danish, Finnish, - French, Italian, Korean, Norwegian, Portuguese, and Swedish - (STR #3096, STR #3098, STR #3109, STR #3111, STR #3141) - - Updated the configure check for -fstack-protector (STR #3198) - - The network backends now correctly convert SNMP supply descriptions to - UTF-8 encoding as needed. - - The scheduler could crash when deleting an attribute (STR #3197) - - The cups-driverd program did not detect symlink loops (STR #3185) - - The EPSON 24-pin series driver should now feed the correct amount - (STR #2624) - - The scheduler now automatically logs the last N debug messages for - failed print jobs. - - You can now modify a raw print queue (STR #3133) - - Fixed a number of ppdi issues and added a unit test to validate that - ppdc + ppdi can generate and import the same data (STR #3152) - - Moving jobs in the web interface now shows an error if you only have - one printer or class added (STR #3094) - - Since classes have never truly supported the printer-error-policy - stuff added in CUPS 1.2, update the code to reflect the current - reality and support only the retry-current-job policy for now - (STR #3171) - - Revised the password callback support (STR #2953) - - ppdEmit*() did not choose between PageSize and PageRegion properly. - - Make some fairly substantial changes to the Kerberos support code so - that CUPS can work in multi-realm environments and does not require - delegatable credentials. Shared printing still requires delegation, - however "delegation by policy" can be enabled in the KDC to make this - all work. - - "AccessLogLevel actions" did not hide client-error-not-found errors. - - AP_FIRST_InputSlot did not work with number-up. - - cupsBackChannelRead() and cupsBackChannelWrite() could fail due to a - lack of kernel buffers. - - The IPP and LPD backends did not respond to side-channel requests - while copying print data to a temporary file. - - cupsWriteRequestData() flushed the output buffer unnecessarily, - causing reduced performance in some situations. - - If a CGI process died before sending its MIME headers, the request - would hang on the client. - - The printer/class/job search feature on the web interface did not - work (STR #3132) - - The scheduler did not write the printers out for classes. - - CUPS-Get-PPDs did not work properly when filtering by language, - product, or psversion (STR #3136) - - The scheduler now kills job filters when it takes more than 30 seconds - (configurable) to cancel or hold the job. - - The cupstestppd program did not validate the capitalization of - filenames in the PPD file. - - The cupstestppd program did not validate the PageSize and PageRegion - values. - - The cups-deviced helper program could miss reporting some backend - devices (STR #3108) - - The cupsSideChannelSNMP* functions did not work. - - The scheduler could consume 100% CPU when jobs were canceled. - - Clicking on "Select Another Make/Manufacturer" in the web interface - incorrectly added the printer (STR #3095) - - The scheduler no longer uses programs with insecure file - permissions. - - httpAssembleURI*() did not escape backslashes in hostnames. - - The dnssd backend did not unquote "full names" before creating the - device URI. - - The scheduler now supports JobRetryInterval values less than 10 - seconds. - - Updated the Spanish localization (STR #3090) - - The scheduler did not redo Bonjour/DNS-SD registrations when updating - them failed. - - The "authenticated" policy incorrectly required authentication for - status operations. - - ppdOpen*() incorrectly loaded PPDs with multiple JobPatchFile - keywords. - - The network backends no longer report the SNMP "offline" or - maintenance status bits since they are inconsistently implemented and - often unreliable. - - The scheduler no longer logs child processes killed via SIGKILL as - "crashed". - - The printer link shown on the "job moved" template was bad (STR #3085) - - Updated the HTML templates to use the final HTML 4 DOCTYPE (STR #3086) - - The scheduler did not track the "paused" reason properly if a - printer had other reasons associated with it. - - cupsSendRequest() did not clear old local certificate auth data. - - The PPD compiler did not search for localization files properly - (STR #3084) - - cupsGetNamedDest() did not use the fallback default like - cupsGetDests*() (STR #3082) - - The scheduler now provides a LogTimeFormat directive to enable - microseconds in the date and time that are logged. - - The scheduler now provides a MultipleOperationTimeout directive to - control the timeout for multi-file print jobs. - - The configure script incorrectly allowed Avahi to be used for DNS-SD - printer discovery (STR #3065) - - The web interface and scheduler did not support URIs up to 1024 bytes - in length (STR #3072) - - Fixed pdftops issues with page sizes (STR #3063) - - Fixed pdftops issues with Ghostscript (STR #3062) - - The scheduler incorrectly registered default profiles for PostScript - printers with no specified colorspace. - - The scheduler incorrectly created an empty org.cups.printers.plist - file on Mac OS X. - - cupsGetPPD3() did not look for local PPDs in the right directory. - - SNMP lookups via side-channel did not work for NULL-VALUE and - and OCTET-STRING OIDs containing nul characters. - - The libusb-based USB backend did not work. - - The scheduler did not set the printer-commands attribute correctly - for some PPDs. - - The ppdi utility did not work. - - The web interface no longer uses multi-part output with old or broken - web browsers (STR #3049) - - CUPS now conforms to the draft IPP/2.0 and IPP/2.1 specification. - - Added a new cupsGetConflicts() API to get a list of conflicting - options. - - The PPD compiler didn't localize options or choices that did not - have associated translation text (STR #3045) - - Updated the Spanish localization (STR #3043) - - Fixed build problems (STR #3040, STR #3047) - - cupsResolveConflicts() did not resolve using the default option - choice in some cases due to the mirror UIConstraints that are - present in most PPD files. - - The scheduler did not honor MIME type priorities. - - The commandtops filter incorrectly used the JCLBegin code to end - its jobs. - - The default BrowseLocalProtocols value was not set properly. - - Since the commandtops filter does not actually support ReportLevels - all on its own, don't list that printer command by default for PS - printers. - - The scheduler did not give filters a chance to log errors or update - printer attributes when a job was canceled. - - The scheduler did not clear the "connecting-to-device" reason keyword - when a job finished. - - -CHANGES IN CUPS V1.4b2 - - - Documentation updates (STR #2983, STR #2998, STR #3021) - - The cupstestppd utility now validates the FileVersion and - FormatVersion values in PPD files. - - The default cupsd.conf file did not reflect the - --with-local-protocols value set at compile-time (STR #3037) - - The cupsGetPPD* APIs now create symlinks to local PPD files - rather than copying them whenever possible. - - Various performance optimizations in the string pool, dests, and - options implementations. - - The cupsGetDests* APIs now return the marker and printer-commands - attributes. - - Side-channel SNMP lookups would not work when cupsSNMPSupplies - was set to False in the PPD file. - - Localized the device descriptions for the SCSI, serial, - and network backends (STR #3014) - - Added a Spanish localization (STR #3015) - - Added support for marker-low-levels and marker-high-levels - attributes. - - The scheduler could hang writing a long log line. - - The cupsGetDevices() function now has an "include_schemes" - parameter. - - The lpinfo command now supports --include-schemes and - --exclude-schemes options. - - The CUPS-Get-PPDs operation now supports the include-schemes - and exclude-schemes attributes. - - The CUPS-Get-Devices operation now supports the include-schemes - attribute. - - The print filters now support a replacement for the fitplot - option called "fit-to-page". - - The LPD backend no longer tries to collect page accounting - information since the LPD protocol does not allow us to - prevent race conditions. - - The scheduler did not save the last marker-change-time value. - - Fixed a problem with printing to some IPP printers, including - CUPS 1.1.x. - - Fixed a redirection problem with the printer web page (STR #3012) - - Fixed a PPD compiler problem with the loading of message - catalogs (STR #2990) - - Fixed a PPD compiler problem with the loading of .strings files - (STR #2989) - - The cupsfilter utility did not set the CONTENT_TYPE environment - variable when running filters. - - The scheduler now waits to allow system sleep until the jobs - have all stopped. - - The IPP, LPD, and socket backends used different "connecting" - progress messages. - - -CHANGES IN CUPS V1.4b1 - - - Documentation updates (STR #2567) - - The PPD compiler now allows local message catalogs to - override the standard CUPS translations (STR #2642) - - The ppdmerge command did not merge custom option strings - (STR #2863) - - The scheduler now supports the Hold-New-Jobs and - Release-Held-New-Jobs operations; these are exposed via the - cupsdisable and cupsenable commands (STR #2332) - - The lpstat command is now much faster when displaying the - status of a single printer (STR #2843) - - The scheduler now caches information from PPD files to provide - significantly faster startup time with large numbers of PPDs - (STR #1293) - - CUPS-Get-Driver now provides much better driver matching based - on the IEEE-1284 device ID and make/model strings (STR #2707) - - Now support the cupsSNMPSupplies keyword to control whether - the network backends query the SNMP Printer MIB for supply - levels. - - Now support and use a new banner file format for better text - support and easier customization (STR #2490) - - The scheduler now sets the PRINTER_INFO and PRINTER_LOCATION - environment variables from the corresponding IPP attributes. - - The ippRead*() and ippWrite*() functions no longer use a - stack-based buffer (STR #2388) - - The CUPS-Add-Modify-Printer operation now allows you to set - the printer-state-reasons attribute. - - The "set printer options" page now supports auto-configuration - of printer options (STR #1440) - - The web interface now provides an advanced server settings - form. - - The web interface's "modify printer" pages now make it - easier to change just one setting (STR #1919) - - The scheduler now supports a plist PrintcapFormat. - - The scheduler now supports multiple addresses in Allow and - Deny lines, just like Apache (STR #2947) - - Added CUPS_JOBTYPE environment variable for job filters so - they know whether they are printing a banner or document - file (STR #2799) - - Added support for printer filtering by the cupsfilter - command (STR #2562) - - Added a SSLOptions directive to allow Windows clients to - talk to CUPS in FIPS mode (STR #2827) - - Renamed the accept and reject commands to cupsaccept and - cupsreject; the old names are still available (STR #2936) - - The locale/translate utility needed an update to work with - Google (STR #2882) - - The lpstat command now supports a -H option to display the - default server (STR #2833) - - The scheduler now supports a FatalErrors directive to control - which errors should cause the scheduler to exit (STR #2536) - - The scheduler now uses the php-cgi program if it is available - (STR #2923) - - The scheduler now supports a DefaultPaperSize directive - (STR #2848) - - The scheduler now passes the job-originating-host-name - value to filters in the options argument (STR #2558) - - CUPS now supports job tickets in PDF files (STR #2903) - - Added a DBUS notifier (STR #2529) - - The LPD mini-daemon now passes the document name when queuing - print jobs (STR #2482) - - The IPP backend did not relay com.apple.print.recoverable-message - values. - - The scheduler now supports a job-media-progress attribute to - track the progress of individual pages. - - The sample HP driver now supports A5 (STR #2798) - - The CUPS web interface menu item now uses the xdg-open - command, when available (STR #2724) - - The cups-lpd program now supports the -h option (STR #2794) - - The scheduler now sets the PAM_TTY parameter and the - PAM_ESTABLISH_CRED credential flag (STR #2745) - - The scheduler now logs unsuccessful requests to the error_log - file as errors (STR #2616) - - Added support for a "retry-current-job" error policy that - retries the current job immediately when the backend encounters - an error (STR #2555) - - The scheduler now returns a "forbidden" error when a user - correctly authenticates but does not have permission to - continue further (STR #2101) - - The scheduler now loads both the server and CA certificates - (if present) from the ServerCertificate file (STR #2146) - - New RSS subscriptions now create their feed files immediately - (STR #2853) - - Added support for a device-location attribute which provides - the physical location of a printer device. - - Added a cupsBackendReport() API which handles quoting of the - device data by a backend. - - Added support for custom options in the web interface - (STR #1729) - - Added support for Mozilla LDAP, reconnection to LDAP servers, - and improved LDAP performance (STR #1962) - - Added Solaris SMF support (STR #1477) - - Added optional support for using TCP wrappers to limit access - to CUPS (STR #263) - - Added ppdPageSizeLimits API. - - Added support for new cupsMediaQualifier2, cupsMediaQualifier3, - cupsMinSize, and cupsMaxSize attributes. - - Added cupsResolveConflicts and ppdInstallableConflict APIs. - - Added support for new cupsUIConstraints and cupsUIResolver - attributes for better option conflict detection and - resolution. - - Increased the maximum size of 1284 device ID strings to - 256 bytes (STR #2877) - - Added an AccessLogLevel directive to cupsd.conf to control - what is logged to the access_log file. - - The default LogLevel is now "warn" instead of "info" to reduce - the amount of logging that is done to disk by default. - - The PPD compiler did not include OID query keywords in PPD - files (STR #2871) - - The cups-driverd helper program now directly supports driver - information files. - - The USB backend now uses libusb when available (STR #1575) - - Added ppdLocalizeAttr function to get the localized version - of an attribute. - - MIME types now support a priority() attribute (STR #2719) - - The standard MIME types are now installed in - DataDir/mime (STR #2719) - - The lpoptions command now describes custom options and - the necessary parameters (STR #2660) - - The ppdmerge program did not support Simplified Chinese - or Traditional Chinese language version strings (STR #2851) - - The PPD compiler now supports localizable attributes - (STR #2738) - - The ppdpo utility now includes cupsIPPReasons values in - the message catalogs it generates (STR #2754) - - The PPD compiler now supports conditional directives - (STR #2636) - - The ppdc utility now supports a "-t" option to test PPD - files (STR #2739) - - The ppdc utility now supports a "-m" option to use the - ModelName value as the output filename. - - The ppdc utility now supports a FileName directive to - set an alternate output filename (STR #2740) - - The side-channel API now supports SNMP queries for the - standard network backends. - - Added a PageLogFormat directive to the cupsd.conf file to - control the format of lines in the page_log file. - - Filters can now send PPD: messages to stderr to set PPD - keywords like DefaultPageSize while a job is printing. - - Added a mdns backend for discovery and printing to printers - that advertise themselves via DNS-SD (Bonjour) - - The ipp, lpd, and socket backends now support DNS-SD service - name resolution. - - The scheduler now uses a single shared file descriptor for - all DNS-SD registrations (STR #2674) - - The ipp, lpd, and socket backends now support SNMP-based - page accounting and supply level monitoring (STR #1655) - - Added support for cupsPJLDisplay attribute to control what - PJL commands are used to display the job information. - - Driver information files can now be installed in - /Library/Printers/PPDs.drv on Mac OS X. - - The CUPS image library now supports reading images larger - than 2GB. - - The scheduler now delays writing config and state files to - reduce disk activity (STR #2684) - - The CUPS-Get-Devices operation now supports the - exclude-schemes and timeout attributes to control which - backends are polled and for how long. - - The cups-deviced helper application now runs backends in - parallel to get the list of devices faster. - - Added --enable-pap configure option. - - The default cupsd.conf file now includes an "authenticated" - policy which requires authentication for remote print jobs. - - Added support for Czech and Hungarian in PPD files - (STR #2735, STR #2736) - - The PPD compiler tools now support Mac OS X .strings files - for localization (STR #2737) - - ppdOpen*() now default the colorspace member to PPD_CS_N - when no DefaultColorSpace attribute is present in the PPD - file. - - The build system has been updated to support separate - installation of data, program, header, and library files. - - All support libraries are now built as shared libraries - by default. - - The scheduler now manages ICC color profiles on Mac OS X. - - The network backends (ipp, lpd, socket) now support - SNMP-based supply and page count monitoring (STR #1655) - - The lppasswd program is no longer installed setuid to - root to make the default installation more secure. - - Added a new ppdLocalizeMarkerName() function to get - the localized version of a marker-names value. - - The scheduler now provides the printer-dns-sd-name - attribute for printers shared via DNS-SD/Bonjour. - - The pdftops filter now executes the Xpdf or poppler - pdftops utility to convert PDF files (STR #1471) - - Bonjour printer registrations now advertise as local or - global based on the current access policies for the - printer. - - cupsGetDests*() and cupsSetDests*() now track the last - used printer preference on Mac OS X. - - Added a new streaming request API (STR #2261) - - Added a new cupsGetNamedDest() function to the CUPS - library for faster printing with lp and lpr (STR #2638) - - The scheduler now sets the PAM RHOST value on systems - that support it (STR #2637) - - The scheduler now sandboxes child processes when - possible. - - The Cancel-Job operation now supports a purge-job - attriibute to purge a specified job. - - ppdEmit* and ppdCollect* now use the NonUIOrderDependency - attributes for custom option selections. - - The web interface now enables/disables the printer - sharing (formerly publishing) controls based on the - server-is-sharing-printers state (STR #2233) - - The scheduler now tracks printer sharing via the - server-is-sharing-printers attribute, and manages LPD - and SMB sharing as well (STR #2233) - - The web interface now allows you to go back to the make/ - manufacturer page if there is no matching printer driver - on the model page (STR #2436) - - The printer list now shows the default media, banner, and - duplex options as well as the color and duplex capabilities - of printers (STR #1175) - - The web interface look-n-feel has been updated (STR #2492) - - The scheduler now supports a CUPS-Get-Document operation - that returns the specified print job document (STR #118) - - The cupsfilter utility now supports a "-J jobid" option - to filter the document from the specified job. - - The scheduler (cupsd) now supports a new option (-t) to - do a syntax check of the cupsd.conf file (STR #2003) - - Added new cupsGetPPD3() API to allow applications to - cache PPDs safely (STR #1473) - - Added generic PostScript and PCL printer driver PPDs. diff --git a/CHANGES-1.5.txt b/CHANGES-1.5.txt deleted file mode 100644 index 39edb4250..000000000 --- a/CHANGES-1.5.txt +++ /dev/null @@ -1,312 +0,0 @@ -CHANGES-1.5.txt ---------------- - -CHANGES IN CUPS V1.5.4 - - - Documentation updates (STR #4112, STR #4130, STR #4134) - - Fixes for libusb-based USB backend (STR #4128) - - The lpq command did not show the owner or title of jobs unless passed - a username on the command-line (STR #4135) - - Localized empty strings contained the message catalog metadata - (STR #4119) - - Fixed a crash in the libusb-based USB backend (STR #4099) - - The cups-lpd mini-daemon no longer handled jobs with multiple copies - (STR #4118) - - Multiple libusb backend fixes (STR #4098, STR #4100) - - The IPP backend no longer tries to get the job status for printers - that do not implement the required operation (STR #4083) - - Sending a document in an unsupported format to an IPP printer now - automatically cancels the job (STR #4093) - - Fix some error reporting issues when printing from /dev/null and - other unusual situations (STR #4015) - - The scheduler now sets the CUPS_MAX_MESSAGE environment variable for - filters (STR #4074) - - Fixed a build issue when using older versions of autoconf (STR #4084) - - The IPP backend now treats the client-error-not-possible status code - as a job history issue, allowing IPP printing to Windows to work - (STR #4047) - - The IPP backend incorrectly included the document-format and - compression attributes in Create-Job requests (STR #4086) - - The libusb-based USB backend did not work on non-Linux platforms - (STR #4088) - - -CHANGES IN CUPS V1.5.3 - - - httpReconnect() did not reset the read/write buffers (STR #4065) - - Compiling without threading support failed (STR #4060) - - Fixed compile problem with old versions of OpenSSL (STR #4036) - - The network backends did not check SNMP supply levels regularly - (STR #4040) - - The online help always included the "help on help" text (STR #4042) - - Fixed a SSL handshake issue on OS X (STR #4045) - - The scheduler could crash if a PPD file contained an invalid paper - size (STR #4049) - - The CUPS polling daemon did not reinitialize its connection to the - remote server on errors in all cases (STR #4031) - - PostScript auto-configuration was slow and unreliable with some - printers (STR #4028) - - Missing localizations caused empty output (STR #4033) - - The cups-driverd program could temporarily "forget" a PPD file if it - was updated in place. - - The dnssd backend now prefers IPPS over IPP. - - The USB backend now uses and requires LIBUSB 1.0 or later (STR #3477) - - The LIBUSB-based USB backend now supports the back-channel (STR #2890) - - Changed how timeouts are implemented in the LPD backend (STR #4013) - - Added more supported color names for SNMP supplies (STR #3981) - - The default InputSlot setting was never used (STR #3957) - - POSIX ACLs are now set properly on certificate files (STR #3970) - - Supplies with commas in their names were not reported correctly - (STR #4020) - - The cupsGetPPD3() function created a temporary file when one was not - needed (STR #4018) - - The scheduler now ensures that job notifications contain a value for - the notify-printer-uri attribute (STR #4014) - - The lp and lpr commands did not cancel jobs queued from stdin on an - error (STR #4015) - - Fixed the IPP backend's handling of HTTP/1.0 compatibility (STR #3988) - - The IPP backend did not always setup username/password authentication - for printers (STR #3985) - - The IPP backend no longer re-queues print jobs that are too large for - the printer/server (STR #3977) - - The RPM spec file did not work (STR #4021, STR #4057) - - Encryption did not work when the server name ended with "." - (STR #4011) - - The multi-purpose tray is now mapped to the IPP "by-pass-tray" - (STR #4009) - - The correct media size was not always passed to IPP printers - (STR #4001) - - Finishing options were not passed to IPP printers (STR #3995) - - Fixed iCloud-based Back to My Mac printing (STR #3996) - - -CHANGES IN CUPS V1.5.2 - - - Reposted what should have been CUPS 1.5.1. - - -CHANGES IN CUPS V1.5.1 - - - Documentation updates (STR #3885, STR #3886, STR #3946, STR #3969) - - Localization updates (STR #3840, STR #3989, STR #3997) - - Build fixes (STR #3956, STR #3999) - - The SNMP backend did not validate the device URIs reported by printers - (STR #4004) - - cupsBackendReport() did not handle newlines in 1284 Device IDs - (STR #4005) - - USB backend fixes for libusb (STR #3965, STR #3978) - - The DBUS notifier did not validate string parameters (STR #3984) - - Group quota ACLs did not work with Kerberos (STR #3972) - - The IPP backend did not retry when a printer responded with - client-error-not-possible (STR #3963) - - PostScript PPDs with filters used the wrong command filter (STR #3973) - - The scheduler incorrectly used free() on a POSIX ACL value, which - could cause a crash (STR #3970) - - PPD files using the MacStandard encoding did not work. - - The web interface did not work on some platforms (STR #3902) - - The lpstat command would crash when then "-u" option was used by a - non-administrator (STR #3953) - - Japanese supply level reporting did not always work. - - The DBUS notifier could crash (STR #3947) - - Relaxed some of the page size checks in cupstestppd. - - The ipptool program now reports attributes that are repeated within - the same attribute group. - - Updated the PWG raster support to match the current draft - specification. - - Fixed some IPP conformance issues in the scheduler. - - Added ipptool support for repeating requests. - - Added IPP/2.2 conformance tests and greatly improved the IPP/1.1, - IPP/2.0, and IPP/2.1 conformance testing. - - IPP messages containing mixed integer/rangeOfInteger values did not - work (STR #3942) - - The ipptool program now provides additional diagnostics for badly- - formatted responses (STR #3857) - - When possible, the IPP backend now stops sending job data early on a - cancel. - - cupsSendRequest and cupsWriteRequestData did not properly read all - HTTP headers, preventing authentication and encryption upgrades from - working in all cases. - - The client.conf Server directive is no longer supported on Mac OS X - 10.7 and later. - - The IPP backend sent the wrong margins in media-col. - - The scheduler did not save or restore large Kerberos credentials for - jobs. - - The dnssd backend did not properly browse for secure IPP printers. - - httpAssembleURI* did not properly escape all special characters in the - username/password field. - - The scheduler now logs config file errors to stderr (STR #3936) - - The configure script incorrectly used bundle-based localizations on - Linux (STR #3938) - - The cups-driverd helper program did not cache .drv files properly, - sometimes leading to a crash (STR #3921) - - CUPS did not build on stock Mac OS X installations. - - Encryption was broken with OpenSSL. - - ipptool's XML output used date/time values with timezone offsets, - which are not supported by Mac OS X's NSDate class. - - Several programs did not support the cupsFilter2 keyword in PPD files. - - The IPP backend incorrectly reported spool-area-full states. - - cupsMarkOptions() did not protect against a bad PPD that was missing - one or more standard Duplex options. - - The PostScript filter did not mirror N-up output properly. - - The ipptool program did not validate UTF-8 strings in XML output. - - Fixed supply level reporting for some printers. - - The scheduler no longer automatically logs debug messages for jobs - that were held or canceled. - - The cupsSendRequest function did not flush remaining response data - from a previous request, leading to apparent chunking issues. - - The scheduler did not report the correct version in the Server: header - (STR #3903) - - The scheduler did not support 1284 device IDs reported by driver - interface programs longer than 127 characters (STR #3871) - - The image filters did not support loading images larger than the - RIPCache setting (STR #3901) - - "PAGE: total NNN" messages did not get logged properly (STR #3887) - - Updated the PWG Raster support to conform to the current draft of the - PWG Raster Format specification. - - The PWG Raster filter did not always write the correct number of - padding lines on the bottom of the page (STR #3904) - - When reporting a denial-of-service attack from the domain socket, the - address reported does not always contain the correct path (STR #3888) - - Badly formed GIF files could cause the image filters to crash - (STR #3914) - - Jobs canceled at the printer were retried by the IPP backend. - - "cupsfilter -u" deleted the input file instead of the PPD file. - - The scheduler did not compute the cost of PPD filters defined using - the cupsFilter2 keyword properly. - - The scheduler did not correctly support the maxsize() attribute for - PPD filters. - - -CHANGES IN CUPS V1.5.0 - - - Documentation updates. - - Localization update (STR #3865) - - Needed to limit TLS to v1.0 on some versions of Mac OS X. - - The snmp backend did not work with some printers. - - -CHANGES IN CUPS V1.5rc1 - - - Compile fixes (STR #3849, STR #3850) - - The scheduler didn't check for empty values for several configuration - directives (STR #3861) - - ipptool didn't generate valid XML when a test was skipped. - - Added additional error checking to the 1284 device ID code (STR #3858) - - Fixed some compatibility issues migrating from the old usblp backend - to the libusb backend (STR #3860) - - Fixed the wake-from-sleep printing behavior on Mac OS X. - - The scheduler incorrectly allowed jobs to be held from a terminating - state. - - The cups-driverd program could crash when a PPD was renamed. - - The dnssd backend took too long to discover printers on large or busy - networks with the new default timeout used by lpinfo and the web - interface. This resulted in "lost" printers. - - -CHANGES IN CUPS V1.5b2 - - - Documentation updates. - - Localization updates (STR #3845) - - Compiler warning cleanup. - - Fixed PIE support for Linux (STR #3846) - - Made httpSetTimeout API public and use it in the IPP backend to avoid - timeout errors. - - The scheduler incorrectly set the "authenticated" printer-type bit for - remote queues using authentication. - - -CHANGES IN CUPS V1.5b1 - - - The CUPS library now supports per-connection HTTP timeouts and - callbacks. - - The CUPS library now supports (limited) SSL/TLS X.509 certificate - validation and revocation (STR #1616) - - Updated the PostScript filter to support IncludeFeature in more - circumstances (STR #3417) - - The schedule did not correctly parse some IPv6 addresses and masks in - the cupsd.conf file (STR #3533) - - Fixed a case-insensitive string comparison issue for locales that do - not treat "I" and "i" as equivalent (STR #3800) - - The scheduler reported an incorrect job-printer-uri value when sharing - was not enabled (STR #3639) - - The scheduler now allows the ServerAlias directive to contain multiple - hostnames separated by spaces or commas (STR #3813) - - The scheduler now sets the process group for child processes and - manages the group (STR #2829) - - Fixed some minor issues discovered by a Coverity scan (STR #3838) - - The scheduler now more carefully creates and removes configuration, - cache, and state files (STR #3715) - - The lpadmin command now allows default option values to be deleted - (STR #2959) - - The lpadmin command now allows the cupsIPPSupplies and - cupsSNMPSupplies keywords to be set in a PPD file (STR #3825) - - Moving a held job no longer releases it (STR #3839) - - Restored support for GNU TLS and OpenSSL with threading enabled - (STR #3605) - - Fixed a confusing error message from cups-polld (STR #3806) - - Increased the default RIPCache value to 128MB (STR #3535) - - MIME errors are now routed to the error_log file (STR #2410) - - Updated PDF filter to support new Ghostscript ps2write device - (STR #3766) - - Updated PDF filter to support new Poppler option to preserve page - sizes in PDF files when the user has not selected a particular media - size (STR #3689) - - Added new PWG Raster filter for IPP Everywhere printer support. - - Added job-uuid, printer-uuid, and subscription-uuid attributes. - - Added support for the cupsSingleFile PPD keyword. - - Dropped support for the printer-state-history attribute (STR #3654) - - Added support for a new cupsIPPSupplies keyword in PPD files to allow - drivers to disable IPP supply level reporting. - - Added support for a new cupsFilter2 keyword in PPD files to allow for - the propagation of the actual MIME media type produced by a filter. - - The scheduler did not always get the correct Kerberos username when - authenticating (STR #3670) - - Added new cupsRasterOpenIO function and CUPS_RASTER_WRITE_PWG to the - CUPS imaging library to support printing to IPP Everywhere raster - printers. - - The scheduler now provides default values for the pages-per-minute and - pages-per-minute-color attributes for PPD files that lack a - Throughput keyword. - - Email notifications did not work on Mac OS X. - - The cupstestppd program now shows an error for files missing a - CloseGroup keyword (STR #3668) - - Name resolution errors no longer cause queues to stop (STR #3719, - STR #3753) - - Added a new cups-exec helper program that applies security profiles - to filters, port monitors, backends, CGI programs, and mini-daemons. - - The web interface can now be disabled using the WebInterface directive - in cupsd.conf (STR #2625) - - The scheduler now provides privacy controls for jobs and subscriptions - (STR #2969) - - Added new cupsArrayNew3 API which offers memory management of array - elements. - - Added several new color spaces to the CUPS raster format (STR #3419) - - The Validate-Job operation now uses the same policy as Print-Job by - default. - - CUPS now uses iconv to implement all of its character encoding - support (STR #3097) - - The scheduler now implements the Cancel-Jobs, Cancel-My-Jobs, and - Close-Job operations along with the job-ids operation attribute from - PWG 5100.11. - - The main CUPS header () no longer includes the PPD header - (). - - The scheduler and CUPS API now support the print-quality job template - attribute. - - The scheduler no longer supports the old Mac OS X Server quota - plugin. - - The scheduler now allows writing to /Users/Shared from print filters - on Mac OS X. - - CUPS no longer supports the old ~/.cupsrc or ~/.lpoptions files from - CUPS 1.1.x. The ~/.cups/client.conf and ~/.cups/lpoptions files that - were introduced in CUPS 1.2 must now be used. - - The ipptest tool is now a first-class user program and has several - improvements along with new documentation (STR #3484) - - The cupstestppd tool now warns about non-unique filenames and - provides a way to ignore all filename warnings. - - Dropped support for the recoverable: and recovered: message prefixes. - - The scheduler now requires that filters and backends have group write - permissions disabled. - - The PPD compiler now checks for overlapping filenames when writing - PPD files. - - The HP-GL/2 filter is no longer included with CUPS (STR #3322) - - The SCSI backend is no longer included with CUPS (STR #3500) diff --git a/CHANGES-1.6.txt b/CHANGES-1.6.txt deleted file mode 100644 index 23e142297..000000000 --- a/CHANGES-1.6.txt +++ /dev/null @@ -1,244 +0,0 @@ -CHANGES-1.6.txt ---------------- - -CHANGES IN CUPS V1.6.4 - - - Removed some duplicate size definitions for some ISO sizes that were - causing problems () - - The IPP backend did not add the "last-document" attribute - () - - Added a SyncOnClose directive to cups-files.conf to force cupsd to - call fsync before closing any configuration/state files it writes - () - - Added USB quirk rule for Lexmark E238 () - - Closed server connections were still not always detected - () - - The libusb-based USB backend now loads its list of quirks from files - in /usr/share/cups/usb instead of using a hardcoded table - () - - The scheduler did not properly register ICC color profiles with - colord () - - -CHANGES IN CUPS V1.6.3 - - - The configure script now prefers Clang over GCC. - - Fixed a compile problem on AIX (STR #4307) - - The default IPP version did not always get set before creating a new - IPP request message () - - The lp, lpq, lpr, and lpstat now display an error message advising the - use of the /version=1.1 ServerName option () - - Added documentation about the /version=1.1 option to ServerName in - client.conf () - - httpStatus(HTTP_ERROR) did not return a useful error message - () - - The lp, lpq, lpr, and lpstat commands incorrectly ignored the default - printer set in the lpoptions file () - - Fixed a URI encoding issue for hostnames containing the ` (backquote) - character () - - Added support for RFC 6874's IPv6 link local address format in URIs - () - - The USB backend could crash on libusb-based systems if USB was - disabled in the BIOS () - - Fixed a rounding error in the PWG media size mapping code - () - - Fixed several ipptool test files that used old STATUS names. - - Kerberos credentials could get truncated when printing to a shared - printer. - - Printing using "ipps" URIs was not encrypted. - - Insecure ICC profiles prevented installation of user profiles for a - printer on OS X. - - Added more USB quirks for the libusb-based backend (STR #4311, - ) - - The Russian web interface templates were broken (STR #4310) - - The scheduler no longer tries to do Kerberos authentication over the - loopback interface. - - The IPP backend could fail to pause a job for authentication - (STR #4298) - - Fixed a regression on the handling of auth keys on OS X if the - cups-files.conf was not present or did not contain a SystemAuthKey - value. - - The scheduler incorrectly did a reverse lookup of the server address - when HostNameLookups was turned off (STR #4302) - - The scheduler incorrectly computed the final content type value when - null filters were present. - - -CHANGES IN CUPS V1.6.2 - - - Documentation fixes (STR #4229, STR #4239, STR #4234, STR #4248, - STR #4259) - - Security: All file, directory, user, and group settings are now stored - in a separate cups-files.conf configuration file that cannot be set - through the CUPS web interface or APIs (STR #4223) - - Added a Czech localization (STR #4201) - - Added a French localization (STR #4247) - - Added a Russian localization (STR #4228, STR #4285) - - Updated the Catalan localization (STR #4202) - - Local certificate authentication did not guard against an empty - certification file (STR #4293) - - The scheduler did not reject device URIs with spaces. - - Added USB quirk rule for Epson Stylus Photo 750 (STR #4286) - - The IPP backend could crash if the printer disconnects early - (STR #4284) - - cupsGetPPD did not work with statically-configured CUPS shared - queues (STR #4178) - - The scheduler did not support long MIME media types (STR #4270) - - The cupsfilter command did not set the CHARSET environment variable - for the text filters (STR #4273) - - The lp command did not show errors for unknown "--foo" (STR #4261) - - Bad IPP responses could crash ipptool (STR #4262) - - Updated USB quirk rules for Canon and Xerox printers (STR #4217, - STR #4263) - - Added USB blacklisting for printers that require a custom backend - (STR #4218) - - The PPD compiler did not correctly JCL options (STR #4115, STR #4203) - - The ipptool program now supports DEFINE-MATCH and DEFINE-NO-MATCH - predicates for STATUS directives. - - Fixed a problem with local Kerberos authentication (STR #4140) - - Coverity scan: fixed some minor issues (STR #4242) - - The scheduler did not remove color profiles after deleting a printer - (STR #4232, STR #4276) - - The CUPS library did not always detect a timed out connection to the - server which could cause temporary loss of printing from applications - (STR #4187) - - The ipptool program now supports variable substitution in OPERATION - and DELAY directives (STR #4175) - - The IPP backend now stops queues when the server configuration - prevents successful job submission (STR #4125) - - The XML output of ipptool contained empty dictionaries (STR #4136) - - The scheduler did not delete job control backup files (STR #4244) - - cupsGetPPD3 could return a local PPD instead of the correct remote - PPD. - - The scheduler incorrectly advertised auth-info-required for local - queues needing local authentication (STR #4205) - - CUPS 1.6 clients using the ServerName directive in client.conf did not - work with CUPS 1.3.x or older servers (STR #4231, STR #4291) - - The SNMP backend now tries to work around broken printers that use a - newline to separate key/value pairs. - - The IPP backend did not send a cancel request to printers when a job - was canceled and the printer did not support Create-Job. - - Fixed EPM packaging files (STR #4199) - - OpenBSD build fix (STR #4195, STR #4196, STR #4197) - - The scheduler could crash when using Avahi (STR #4183, STR #4192, - STR #4200, STR #4213) - - The IPP backend could get stuck in an endless loop on certain network - errors (STR #4194) - - 32-bit builds failed on Debian (STR #4133) - - The scheduler no longer accepts or sends job description attributes. - - The IPP backend now works around some conformance issues for broken - printers (STR #4190) - - cupsBackendReport() now filters out all control characters from the - reported 1284 device IDs (STR #4124) - - The scheduler no longer allows job-name values that are not valid - network Unicode strings (STR #4072) - - The web interface did not preserve the order of classes, jobs, or - printers (STR #4170) - - The network backends now support disabling of SNMP supply level - queries via the "snmp" URI option (STR #4106) - - The IPP backend did not specify the compression used (STR #4181) - - ipptool did not support octetString values. - - The scheduler did not recognize dnssd: or ipps: URIs as Bonjour shared - queues (STR #4158) - - Applications could not get the PPD file for statically-configured - Bonjour-shared print queues (STR #4159) - - The cupsd.conf file included obsolete browsing directives (STR #4157) - - Fixed a USB backend compatibility issue on systems using libusb - (STR #4155, STR #4191) - - Some Bonjour features were not available on systems with Avahi - (STR #4156) - - CUPS now includes the port number in the Host: header for HTTP - requests. - - Fixed REPEAT-MATCH for STATUS and EXPECT - was incorrectly erroring - out. - - -CHANGES IN CUPS V1.6.1 - - - Documentation fix (STR #4149) - - RPM packaging fixes (STR #4129, #4145) - - The Japanese and English web interface headers were swapped - (STR #4148) - - -CHANGES IN CUPS V1.6.0 - - - Document changes (STR #4131) - - Added new Catalan (STR #4107) and Spanish (STR #4137) localizations. - - -CHANGES IN CUPS V1.6rc1 - - - Added a new Japanese localization (STR #4122) - - The SNMP backend no longer exits if it is unable to obtain an IPv6 - socket (STR #4109) - - The LPD backend incorrectly used "localhost" in the control file - instead of the current hostname. - - -CHANGES IN CUPS V1.6b1 - - - Documentation updates (STR #3927, STR #3980, STR #4010, STR #4068) - - The scheduler now consolidates all PPD updates from filters at the - end of the job (STR #4075) - - CUPS now supports color management using colord (STR #3808) - - CUPS now supports Bonjour using Avahi (STR #3066) - - The PreserveJobFiles and PreserveJobHistory directives now support - specification of a time interval (STR #3143) - - PPD files can now be archived in (gzip'd) tar files to further reduce - the disk space used by PPD files (STR #3772) - - The network backends now deal with printers that report their levels - in percent but do not specify a maximum capacity of 100 (STR #3551) - - The network backends now report full/almost-full waste bins in - printers along with end-of-life for cleaning pads (STR #4017) - - Added a configure option to set the permissions of the installed - cupsd (STR #3459) - - Added a new WITH-ALL-VALUES directive to ipptool EXPECT predicates - (STR #3949) - - CUPS now supports a User directive in client.conf and the CUPS_USER - environment variable for overriding the default username (STR #3114) - - Now set the PJL USERNAME variable as needed (STR #3100) - - Added support for usernames and passwords longer than 32 characters - (STR #2856) - - Added a new MaxHoldTime directive to automatically cancel jobs that - have been held indefinitely after a specific number of seconds - (STR #2291) - - The LPD backend now uses the originating host name when it is not the - local system (STR #2053) - - CUPS now prefers the suffix "dpcm" when reporting resolution in dots- - per-centimeter (STR #4006) - - The configure script and build system no longer support building of - separate 32-bit and 64-bit libraries. - - The "brightness", "columns", "fitplot", "gamma", "hue", - "natural-scaling", "penwidth", "position", "ppi", "saturation", and - "scaling" options are not longer supported (STR #4010) - - The "page-bottom", "page-left", "page-right", "page-top", - "prettyprint", and "wrap" options have been deprecated (STR #4010) - - The scheduler now reports the standard "number-of-documents" attribute - instead of the CUPS-specific "document-count" attribute in - job objects. - - Added new destination connection and enumeration functions (STR #3924) - - Added new option, localization, and job submission functions that do - not depend on PPD files (STR #3925) - - Added a new MaxJobTime directive for cupsd that specifies the maximum - amount of time allowed for a job to complete before it is canceled. - - The default password callback now supports passwords up to 127 - characters. - - The scheduler now supports a DefaultAuthType of "auto" to - automatically choose between Basic (username/password) and Negotiate - (Kerberos) authentication. - - cupsSideChannelSNMPGet/Walk now support OIDs and values up to 64k in - length. - - CUPS no longer supports automatic remote printers or implicit classes - via the CUPS, LDAP, or SLP protocols (STR #3922, STR #3923) - - The PPD APIs are now deprecated and will be removed in a future - version of CUPS (STR #3927) - - The default IPP version for requests is now 2.0 (STR #3929) - - The IPP APIs no longer expose the ipp_t or ipp_attribute_t structures - and instead provide accessor functions (STR #3928) - - The scheduler will no longer run programs with group write permission. - - The PHP module has been removed (STR #3932) - - The bannertops, commandtoescpx, commandtopclx, imagetops, - imagetoraster, pdftops, rastertoescpx, rastertopclx, and texttops - filters have been removed (STR #3930) - - The serial and parallel backends have been removed (STR 3935) diff --git a/CHANGES-1.7.txt b/CHANGES-1.7.txt deleted file mode 100644 index d3438ff18..000000000 --- a/CHANGES-1.7.txt +++ /dev/null @@ -1,250 +0,0 @@ -CHANGES-1.7.txt ---------------- - -CHANGES IN CUPS V1.7.5 - - - Security: Addressed some more situations where symlinked files would - be served by the web interface (STR #4455) - - The LPD backend did not work with some versions of glibc (STR #4452) - - CGI scripts did not work (STR #4454) - - The cupsd.conf man page did not list the ErrorPolicy directive - (STR #4457) - - Updated the Brazilian Portuguese translation (STR #4456) - - -CHANGES IN CUPS V1.7.4 - - - Security: The web interface incorrectly served symlinked files and - files that were not world-readable, potentially leading to a - disclosure of information (STR #4450) - - The CUPS headers incorrectly needed libdispatch for blocks support - (STR #4397) - - CUPS did not compile when Avahi or mDNSResponder was not present - (STR #4402, STR #4424) - - The "snmp" option did not work with the network backends (STR #4422) - - The User directive in client.conf did not override the USER - environment variable (STR #4426) - - The web interface now properly shows a "Go" button for all text-based - browsers (STR #4425) - - The MaxJobTime directive now properly supports time values (STR #4434) - - The RPM spec file did not work due to the new Brazilian Portuguese - localization (STR #4436) - - Fixed an "IPP read error" issue (STR #4440) - - Fixed the --disable-libusb configure option (STR #4439) - - Fixed the debug output from the DNS-SD backend when using Avahi - (STR #4444) - - Fixed a bug in the CUPS_SC_GET_DEVICE_ID handling by the network - backends (STR #4447) - - Added USB quirk rule for Lexmark E230 (STR #4448) - - -CHANGES IN CUPS V1.7.3 - - - Added Brazilian Portuguese translation (STR #4409) - - Fixed mapping of OutputBin values such as "Tray1" - () - - Several ippGet* functions incorrectly returned -1 instead of 0 on - error. - - The cupsGetResponse function did not work properly with - CUPS_HTTP_DEFAULT () - - The IPP backend did not abort a job when the printer did not validate - the supplied options () - - Fixed an authentication race condition in cupsSendRequest (STR #4403) - - The scheduler did not add the "job-hold-until-specified" reason when - holding a job using the lp command (STR #4405) - - The configure script incorrectly added libgcrypt as a GNU TLS - dependency (STR #4399) - - cupsGetDestMediaCount did not work for CUPS_MEDIA_FLAGS DEFAULT - (STR #4414) - - Auto-typing of PWG Raster files did not work (STR #4417) - - IPP queues using hardcoded credentials would ask for credentials - (STR #4371) - - Dates in non-UTF-8 locales did not display correctly (STR #4388) - - The RPM spec file now looks for libusb-devel 1.0 or later. - - Fixed the "create-printer-subscription.test" file for IPPTOOL - (STR #4420) - - -CHANGES IN CUPS V1.7.2 - - - Security: The scheduler now blocks URLs containing embedded HTML - (STR #4356) - - Documentation fixes (STR #3259, STR #4346, STR #4355) - - Fixed the Japanese localization (STR #4385) - - Added a German localization (STR #4363) - - The cupsfilter command incorrectly read the cupsd.conf file; it now - reads the cups-files.conf file instead. - - Fixed OS X builds with Xcode 5.x () - - Fixed SSL support on Windows (STR #4358) - - Fixed documentation and naming of Create-Job/Printer-Subscriptions - operations (STR #4389) - - Phone numbers in fax jobs were not properly filtered for IPP FaxOut - () - - Updated Linux "relro" support (STR #4349) - - Fixed a memory leak in the label printer driver (STR #4393) - - cupsEnumDests did not set the "is_default" field (STR #4332) - - cupsDoIORequest could miss the server status, causing failed lpadmin - and other administrative commands (STR #4386) - - cupsEnumDests didn't always call the callback function (STR #4380) - - "lp -i job-id -H hold" did not work (STR #nnn) - - CUPS didn't compile on older platforms (STR #4338) - - Several libcups files did not have the Apple license exception - notice (STR #4361) - - Fixed a D-BUS threading issue that caused the scheduler to crash - (STR #4347) - - The scheduler now automatically reconnects to Avahi as needed - (STR #4370, STR #4373) - - The scheduler did not handle GET requests for the log files properly - (STR #3265) - - The dnssd backend did not always report all discovered printers using - Avahi (STR #4365) - - The Zebra printer driver did not properly handle negative "label top" - values (STR #4354) - - The scheduler did not always update the MakeModel value in - printers.conf after updating the driver (STR #4264) - - The LPD mini daemon did not support print jobs larger than 2GB - (STR #4351) - - Fixed a bug in the status reading code when sending a compressed data - stream to an IPP printer/server () - - The IPP backend might not include all job attributes in Validate-Job - operations () - - Fixed some clang-reported issues () - - -CHANGES IN CUPS V1.7.1 - - - Security: the lppasswd program incorrectly used settings from - ~/.cups/client.conf (STR #4319) - - Auto debug logging was broken in 1.7.0 () - - Some gzip'd PPD files could not be used () - - Cleaned up some job logging in the scheduler - () - - ATTR messages could cause string pool memory corruption in the - scheduler () - - The RPM spec file did not list the build requirements; this was on - purpose, but now we are listing the Red Hat package names - (, STR #4322) - - Printing to a raw queue could result in corrupt output due to - opportunistic compression () - - The GNU TLS support code triggered many compiler warnings due to the - use of old GNU TLS compatibility type names - () - - The "make check" test suite did not work on Linux without the - cups-filters package installed () - - Japanese PPDs using with the Shift-JIS encoding did not work - () - - "tel:" URIs incorrectly had slashes () - - The libusb-based USB backend incorrectly used write timeouts - () - - Shared printers could become inaccessible after a few days on OS X - () - - The IPP backend did not wait for a busy printer to become available - before attempting to print () - - CUPS did not support "auto-monochrome" or "process-monochrome" for the - "print-color-mode" option () - - Using "@IF(name)" in an Allow or Deny rule did not work (STR #4328) - - lpq and lpstat did not list jobs in the correct order when priorities - were specified (STR #4326) - - The D-BUS notifier did not remove its lockfile (STR #4314) - - CUPS incorrectly used the USER environment variable when the name did - not match the user ID (STR #4327) - - -CHANGES IN CUPS V1.7.0 - - - Updated the Japanese localization. - - The lpadmin command did not send the PPD name from the "-m" option - () - - Network backends now use the prtMarkerSuppliesClass property to - determine the direction of supply level values - () - - The scheduler did not remove backup PPD files when a printer was - deleted () - - The scheduler incorrectly responded to HEAD requests when the web - interface was disabled () - - The scheduler did not respond using the hostname specified by the - client () - - Fax queues did not work when shared via Bonjour - () - - Error messages from the scheduler were not localized using the - language specified in the client's IPP request - () - - Added an Italian localization () - - Fixed a couple memory leaks in ippfind that were reported by Clang. - - Fixed a compile issue on 64-bit Linux with Clang - need to use the - -pie option instead of -Wl,-pie now () - - The ippfind utility reported the wrong port numbers when compiled - against Avahi () - - httpGetFd, httpGetFile, httpPutFd, and httpPutFile did not - automatically reconnect if the server closed the connecion after the - previous response. - - Fixed a compile error in libcups () - - The scheduler incorrectly did not pass a FINAL_CONTENT_TYPE - environment variable to the filters or backend - () - - The cups-exec helper program could fail randomly on OS X due to - sandbox violations when closing excess file descriptors - () - - The scheduler incorrectly did not use the kqueue interface on OS X. - - -CHANGES IN CUPS V1.7rc1 - - - Printer xxx-default values were not reported by Get-Printer-Attributes - or lpoptions () - - Fixed deprecation warnings for many functions on OS X so they are tied - to the deployment version when building () - - Fixed a build issue on ARM-based Linux systems - unable to validate - va_list arguments. - - Added a new ippfind tool for finding IPP printers and other Bonjour - services () - - Fixed some issues with conversion of PWG media size names to - hundredths of millimeters () - - The IPP backend could crash on OS X when printing to a Kerberized - printer () - - The ipptool program now automatically extends timeouts when the - output buffer is filled () - - The ipptool program now supports the --help and --version options. - - The ipptool program did not continue past include file errors by - default () - - The ipptool program now supports FILE-ID and TEST-ID directives and - includes their values in its XML output () - - The ipptool program now supports WITH-HOSTNAME, WITH-RESOURCE, and - WITH-SCHEME expect predicates to compare the corresponding URI - components () - - -CHANGES IN CUPS V1.7b1 - - - The configure script now supports a --with-rundir option to change - the transient run-time state directory from the default to other - locations like /run/cups (STR #4306) - - The scheduler now supports PPD lookups for classes (STR #4296) - - The cupsfilter program did not set the FINAL_CONTENT_TYPE - environment variable for filters. - - Added a new "-x" option to the cancel command (STR #4103) - - Made the PWG media handling APIs public (STR #4267) - - Implemented ready media support for the cupsGetDestMediaXxx APIs - (STR #4289) - - Added new cupsFindDestDefault, cupsFindDestReady, and - cupsFindDestSupported APIs (STR #4289) - - Added new cupsGetDestMediaByIndex, cupsGetDestMediaCount, and - cupsGetDestMediaDefault APIs (STR #4289) - - Added new ippGet/SetOctetString APIs for getting and setting an - octetString value (STR #4289) - - Added new ippCreateRequestedArray API for generating a array of - attributes from the requested-attributes attribute. - - The ipptool utility now supports compression, conditional tests based - on the presence of files, and new DEFINE predicates for STATUS. - - Added new IPP APIs for checking values (STR #4167) - - Added new IPP APis for adding and setting formatted strings. - - Added new HTTP APIs to support basic server functionality via libcups. - - The dnssd backend now generates a 1284 device ID as needed (STR #3702) - - CUPS now supports compressing and decompressing streamed data - (STR #4168) - - CUPS now supports higher-level PIN printing, external accounting - systems, and "print here" printing environments (STR #4169) - - IRIX is no longer a supported operating system (STR #4092) - - The PPD compiler now supports JCL options properly (STR #4115) - - The web interface now checks whether the web browser has cookies - enabled and displays a suitable error message (STR #4141) diff --git a/CHANGES-2.0.txt b/CHANGES-2.0.txt deleted file mode 100644 index dc46f035f..000000000 --- a/CHANGES-2.0.txt +++ /dev/null @@ -1,215 +0,0 @@ -CHANGES-2.0.txt ---------------- - -CHANGES IN CUPS V2.0.4 - - - Fixed a bug in cupsRasterWritePixels (STR #4650) - - Fixed redirection in the web interface (STR #4538) - - The IPP backend did not respond to side-channel requests (STR #4645) - - The scheduler did not start all pending jobs at once (STR #4646) - - The web search incorrectly searched time-at-xxx values (STR #4652) - - Fixed an RPM spec file issue (STR #4657) - - The scheduler incorrectly started jobs while canceling multiple jobs - (STR #4648) - - Fixed processing of server overrides without port numbers (STR #4675) - - Documentation changes (STR #4651, STR #4674) - - -CHANGES IN CUPS V2.0.3 - - - Security: Fixed CERT VU #810572 exploiting the dynamic linker - (STR #4609) - - Security: The scheduler could hang with malformed gzip data - (STR #4602) - - Restored missing generic printer icon file (STR #4587) - - Fixed logging of configuration errors to show up as errors (STR #4582) - - Fixed potential buffer overflows in raster code and filters - (STR #4598, STR #4599, STR #4600, STR #4601) - - Fixed a gzip processing bug (#4602) - - Fixed inside (STR #4575) - - Fixed lpadmin when both -m and -o are used (STR #4578) - - The web interface always showed support for 2-sided printing - (STR #4595) - - cupsRasterReadHeader did not fully validate the raster header - (STR #4596) - - The rastertopwg filter did not check for truncated input (STR #4597) - - The cups-lpd mini-daemon did not check for request parameters - (STR #4603) - - The scheduler could get caught in a busy loop (STR #4605) - - The sample Epson driver could crash (STR #4616) - - The IPP backend now correctly monitors jobs - () - - The ppdhtml and ppdpo utilities crashed when the -D option was used - before a driver information file (STR #4627) - - ippfind incorrectly substituted "=port" for service_port. - - The IPP/1.1 test file did not handle the initial print job - completing early (STR #4576) - - Fixed a memory leak in cupsConnectDest (STR #4634) - - PWG Raster Format output contained invalid ImageBox values - () - - Added Russian translation (STR #4577) - - Added German translation (STR #4635) - - -CHANGES IN CUPS V2.0.2 - - - Security: cupsRasterReadPixels buffer overflow with invalid page - header and compressed raster data (STR #4551) - - Command-line programs were not localized on Mac OS X - () - - The scheduler incorrectly cleared the MakeModel string in the - printers.conf file after a restart () - - CUPS did not compile with older versions of GNU TLS (STR #4527) - - CUPS did not compile without Avahi or mDNSResponder (STR #4523) - - ippLength() did not return the correct length for IPP_TAG_CONST - string values. - - The scheduler incorrectly aborted jobs after a job was restarted - () - - The cups-files.conf file contained the old ServerCertificate/Key - directives instead of ServerKeychain. - - Fixed builds when no SSL/TLS library is available, or when explicitly - disabled (STR #4531) - - Fixed an OpenBSD charset transcoding issue. - - Fixed USB printing on OpenBSD (STR #4525) - - The --without-xinetd configure option did not work (STR #4542) - - Backends needing to load OS X kernel extensions did not work - () - - Mapping of PPD keywords to IPP keywords did not work if the PPD - keyword was already an IPP keyword () - - cupsGetPPD* sent bad requests (STR #4567) - - ippserver used the wrong temporary directory on Windows (STR #4547) - - ippserver did not handle Bonjour registrations properly (STR #4548) - - The scheduler could crash during shutdown if Avahi was shutdown - first (STR #4550) - - Added a USB quirk rule for Intermec printers (STR #4553) - - The scheduler did not always log which configuration file had the - error (STR #4559) - - The ippfind and ipptool programs now correctly match hostnames with - trailing dots (STR #4563) - - The ipptool timeout option did not work (STR #4515) - - Fixed several issues with client.conf, CUPS_SERVER, and the "-h" - option of most commands (STR #4528) - - Another change for OpenBSD (STR #4526) - - Added Japanese localization (STR #4524) - - Documentation changes (STR #4569) - - -CHANGES IN CUPS V2.0.1 - - - Security: SSLv3 is now disabled by default to protect against the - POODLE attack (STR #4476) - - Printer sharing did not work when systemd was being used (STR #4497) - - cupsGetPPD* would return a symlink to the PPD in /etc/cups/ppd even if - it was not readable by the user (STR #4500) - - The web interface now protects against frame "click-jacking" attacks - (STR #4492) - - Fixed a crash in ippAttributeString () - - Fixed a crash in the scheduler on Linux/*BSD if colord was not running - (STR #4496) - - Fixed a random crash in the scheduler when not using systemd - (STR #4484) - - Added systemd support for cups-lpd (STR #4493) - - The scheduler did not honor the FatalErrors directive for mis- - configured Group and SystemGroup values (STR #4495) - - The network backends no longer report waste-receptacle conditions when - using SNMP (STR #4499) - - The IPP backend did not work with some configurations of Windows - (STR #4503) - - RPMs did not build (STR #4490) - - Added a USB quirk rule for the Brother HL-1250 (STR #4519) - - Fixed compiles on unsupported platforms (STR #4510) - - "cancel -a" did not cancel all jobs on all destinations (STR #4513) - - The web interface did not work on OpenBSD (STR #4496) - - -CHANGES IN CUPS V2.0.0 - - - The scheduler did not preserve listener sockets from launchd or - systemd after a restart () - - Added some USB quirk rules for the libusb-based USB backend - (STR #4482) - - Spanish localization update (STR #4487) - - Updated documentation for 2.0.0 release. - - -CHANGES IN CUPS V2.0rc1 - - - Documentation updates (STR #4464) - - The scheduler now monitors the AC power status on OS X, allowing for - "sleep printing" when sharing printers () - - The scheduler incorrectly called launch_activate_socket multiple times - on OS X () - - The ippserver test program now passes the IPP Everywhere self- - certification tests (STR #4101) - - Relaxed the new OS X filter sandbox slightly (STR #4471, - ) - - Dropped the old Epson Stylus Color/Photo sample drivers since they - don't work with any current printers and there are free alternatives - that produce much better output () - - Log and configuration files that are not world-readable are again - accessible via the web interface (STR #4461) - - PPD files are now created using the permissions specified by the - ConfigFilePerm directive. - - Fixed RPM build issues (STR #4459) - - Fixed the spinner image and restart page when reconfiguring the - scheduler through the web interface (STR #4475) - - -CHANGES IN CUPS V2.0b1 - - - Added a "--list-filters" option to the cupsfilter command (STR #4325) - - Added systemd support (STR #3917) - - Added support for re-sending a job as a raster file if a higher-level - format such as PDF fails () - - Added support for regular expression matching in the MIME type rules - () - - Added support for TLS certificate validation and policy enforcement - (STR #1616) - - Added support for simultaneous XML and test output from ipptool. - - Added support for PAUSE directive in ipptool test files. - - Added support for auto-typing of TIFF files by ipptool (STR #4418) - - The scheduler now returns completed jobs in the correct newest-to- - oldest order (STR #4396) - - The configure script now supports target-specific tools for pkg-config - and others (STR #4423) - - The ipptool program now supports EXPECT statements for collection - member attributes () - - The ipptool program now supports collection attributes with multiple - values () - - The sample drivers now include all of the installed localizations by - default () - - Adopted Linux man page conventions and updated all man pages - (STR #4372, STR #4329) - - The scheduler now supports the "first-index" operation attribute for - the Get-Jobs operation (STR #2913) - - Changed the default AccessLogLevel and PageLogFormat to disable the - access_log and page_log files by default () - - cupsRasterInterpretPPD now supports the Orientation header in order to - support long-edge feed raster printers () - - The scheduler now allows run-as-root backends to have group read and - execute permissions (STR #2935) - - The ippFindAttribute and ippFindNextAttribute functions now support - hierarchical searches (STR #4395) - - Dropped OpenSSL support in favor of GNU TLS. - - Dropped "dark wake" support on OS X, which was preventing portables - from going to sleep when there was a stuck job. We now use a variation - of the CUPS 1.4 sleep support to do a cleaner sleep - () - - Dropped support for AIX, HP-UX, and OSF/1 (aka Digital UNIX) - - Dropped lppasswd and support for Digest authentication in in the - scheduler (STR #4321) - - The cupsGetClasses, cupsGetPrinters, and cupsTempFile functions are no - longer supported. - - The scheduler now caches more job history data and limits the number - of completed jobs returned by Get-Jobs as needed in order to prevent a - denial-of-service on busy servers (STR #2913) - - The filter/backend sandbox on OS X now defaults to a more strict - whitelist () - - Increased the default idle exit timeout to 60 seconds on OS X - () - - Printer classes were not accessible on OS X - () - - The scheduler now uses to close the default printer - definition in printers.conf (STR #4153) - - Canceling all jobs in the web interface now just cancels the jobs - (STR #1914) diff --git a/CHANGES-2.1.txt b/CHANGES-2.1.txt deleted file mode 100644 index 7a6b54845..000000000 --- a/CHANGES-2.1.txt +++ /dev/null @@ -1,150 +0,0 @@ -CHANGES-2.1.txt ---------------- - -CHANGES IN CUPS V2.1.4 - - - Fixed reporting of 1284 Device IDs (Issue #3835, PR #3836) - - Fixed printing of multiple files to raw queues (Issue #4782) - - The scheduler did not implement the Hold-New-Jobs opertion correctly - (Issue #4767) - - The ipptool program truncated values at 8k (Issue #4786) - - The ipptool program did not correctly report uriScheme values in plist - output (Issue #4785) - - The cups-lpd mini-daemon incorrectly included the document-name - attribute when creating a job. It should only be included when - sending a job (Issue #4790) - - USB quirk updates (Issue #4778, Issue #4789) - - Documentation update (Issue #4772) - - -CHANGES IN CUPS V2.1.3 - - - The default password function did not work on some platforms - (Issue #4750) - - The scheduler should not exit under memory pressure - () - - The EPL2 and ZPL sample drivers did not properly support the CutMedia - option. - - Pending subscriptions would prevent the scheduler from idle exiting - (Issue #4754) - - Fixed some issues in ipptool for skipped tests - () - - The "lp -H resume" command did not reset the "job-state-reasons" - attribute value (Issue #4752) - - cupsEncodeOptions2 incorrectly handled escaped values - () - - The scheduler did not allow access to resource files (icons, etc.) - when the web interface was disabled (Issue #4755) - - Localization fix (Issue #4756) - - -CHANGES IN CUPS V2.1.2 - - - Re-release of CUPS 2.1.1 as CUPS 2.1.2 due to error in tagging of the - 2.1.1 release (pulled content from the 2.2.x tree instead) - - -CHANGES IN CUPS V2.1.1 - - - Security hardening fixes (, - , , - , , - , , - , , - , , - , , - , , - , , - , , - ) - - The cupsGetPPD* functions did not work with IPP printers (Issue #4725) - - Some older HP LaserJet printers need a delayed close when printing - using the libusb-based USB backend (Issue #4549) - - The libusb-based USB backend did not unload the kernel usblp module - if it was preventing the backend from accessing the printer - (Issue #4707) - - Current Primera printers were incorrectly reported as Fargo printers - (Issue #4708) - - The IPP backend did not always handle jobs getting canceled at the - printer () - - Scheduler logging change (Issue #4728) - - Added USB quirk for Canon MP530 (Issue #4730) - - The scheduler did not deliver job notifications for jobs submitted to - classes (Issue #4733) - - Changing the printer-is-shared value for a remote queue did not - produce an error (Issue #4738) - - The IPP backend incorrectly included the job-password attribute in - Validate-Job requests () - - Updated localizations (Issue #4709) - - -CHANGES IN CUPS V2.1.0 - - - Fixed more scheduler crash bugs in the new logging code (Issue #4687, - Issue #4690) - - The scheduler did not use the ConfigFilePerm setting when copying PPD - files or interface scripts attached to a request (Issue #4703) - - Now support new Chinese locale IDs and their correct fallback locales - (, ) - - "make check" incorrectly reported an expectation of 18 warning - messages when 8 were expected (Issue #4684) - - The new PDF file type rule did not work (Issue #4692) - - The scheduler did not update the jobs.cache file when job files were - expired (Issue #4706) - - Fixed some configure script issues (Issue #4694, Issue #4695, Issue #4698) - - Documentation updates (Issue #4691, Issue #4693) - - -CHANGES IN CUPS V2.1rc1 - - - Added support for 3D printers (basic types only, no built-in filters) - based on PWG white paper. - - Fixed bugs in the new journald support (Issue #4655, Issue #4658, - Issue #4661) - - Fixed domain socket support on Linux (Issue #4679) - - Fixed signal handlers in the dnssd and usb backends (Issue #4671) - - in sections now applies to all operations when - used by itself (Issue #4659) - - Configure script changes for systemd support (Issue #4669) - - Updated autoconf sources to use newer form of AC_INIT (Issue #4664) - - -CHANGES IN CUPS V2.1b1 - - - Improved speed of ppdMarkDefaults for complex/large PPDs - () - - The IPP backend now stops sending print data if the printer indicates - the job has been aborted or canceled () - - The IPP backend now sends the job-pages-per-set attribute when - printing multiple copy jobs with finishings - () - - The IPP backend now updates the cupsMandatory values when the printer - configuration changes () - - No longer install banner files since third-party banner filters now - supply their own (Issue #4518) - - Added support for EXPECT-ALL directive in ipptool test files - (Issue #4469) - - Added support for WITH-VALUE-FROM predicate in ipptool test files - (Issue #4470) - - The scheduler no longer listens on the loopback interface unless the - web interface or printer sharing are enabled - () - - Added a PPD generator for IPP Everywhere printers (Issue #4258) - - Now install "default" versions of more configuration files - () - - The cupstestppd program did not handle "maxsize(nnn)" entries in - cupsFilter/cupsFilter2 values () - - The scheduler now checks the return value of rename() calls - (Issue #4589) - - The scheduler now validates ErrorPolicy values in config files - (Issue #4591) - - Long cookies caused the web interface to stop working (Issue #4619) - - Added SSLOptions values to allow Diffie-Hellman key exchange and - disable TLS/1.0 support. - - Updated the scheduler to support more IPP Everywhere attributes - (Issue #4630) - - The scheduler now supports advanced ASL and journald logging when - "syslog" output is configured (Issue #4474) - - The scheduler now supports logging to stderr when running in the - foreground (Issue #4505) - diff --git a/CHANGES.md b/CHANGES.md index 9e83177d2..6a1a2bd79 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,265 +1,7 @@ -CHANGES - 2.2.6 - 2017-11-01 +CHANGES - 2.3b1 - 2017-11-01 ============================ -Changes in CUPS v2.2.6 +Changes in CUPS v2.3b1 ---------------------- -- DBUS notifications could crash the scheduler (Issue #5143) -- Added USB quirks rules for Canon MP540 and Samsung ML-2160 (Issue #5148) -- Fixed TLS cipher suite selection with GNU TLS (Issue #5145, Issue #5150) -- Localization updates (Issue #5152) - - -Changes in CUPS v2.2.5 ----------------------- - -- The scheduler's `-t` option did not force all errors to the standard error - file, making debugging of configuration problems hard (Issue #5041) -- Fixed a typo in the CUPS Programming Manual (Issue #5042) -- Fixed RPM packaging issue (Issue #5043, Issue #5044) -- The `cupsGetDests` function incorrectly returned an empty list of printers if - there was no default printer (Issue #5046) -- The `cupsGetDests` function waited too long for network printers (Issue #5049) -- Libtool support was completely broken with current libtool versions that use - an incompatible command-line syntax (Issue #5050) -- Fixed a build issue with `--enable-mallinfo` (Issue #5051) -- The ippserver test program contained a deadlock issue (Issue #5054) -- The `cupsLocalizeDest*` functions did not provide base localizations for - all registered IPP attributes and values (Issue #5056) -- The --enable-libtool configure option requires a path to the libtool program, - but doesn't document or check for it (Issue #5062) -- Fixed the `SSLOptions DenyCBC` option when using GNU TLS (Issue #5065) -- Fixed the `ServerTokens None` option (Issue #5065) -- Fixed the default `ServerAlias` value from `ServerName` (Issue #5072) -- Fixed the adminurl field in the TXT record for fully-qualified `ServerName` - values (Issue #5074) -- The scheduler now creates a PID file when not running on demand with a modern - service launcher (Issue #5080) -- The web interface did not support newer language identifiers used by Microsoft - web browsers (Issue #5803) -- Updated the cups-files.conf and cupsd.conf file documentation for missing - directives (Issue #5084) -- Fixed an Avahi-related crash bug in the scheduler (Issue #5085, Issue #5086) -- Fixed the interactions between the "print-quality" and "cupsPrintQuality" - options (Issue #5090) -- The IPP Everywhere PPD generator now sorts the supported resolutions before - choosing them for draft, normal, and best quality modes (Issue #5091) -- Fixed the localization unit test on Linux (Issue #5097) -- The CUPS library did not reuse domain sockets (Issue #5098) -- Fixed the "make check" target for some environments (Issue #5099) -- The scheduler woke up once per second to remove old temporary queues - (Issue #5100) -- Added USB quirk rule for Kyocera printer (Issue #5102, Issue #5103) -- Re-documented the limits of `file:///...` device URIs and moved the FileDevice - directive in `cups-files.conf` to the list of deprecated configuration - directives (Issue #5117) -- Added USB quirk rule for HP LaserJet 1160 printer (Issue #5121) -- Fixed the script interpreter detection in the configure script (Issue #5122) -- The network backends now retry on more error conditions (Issue #5123) -- Added a French translation of the web interface (Issue #5134) -- `cupsGetDests2` was not using the supplied HTTP connection (Issue #5135) -- `httpAddrConnect` leaked sockets in certain circumstances, causing some - printers to hang (rdar://31965686) -- Fixed an issue with Chinese localizations on macOS (rdar://32419311) -- The IPP backend now always sends the "finishings" attribute for printers that - support it because otherwise the client cannot override printer defaults - (rdar://33169732) -- The `cupsGetNamedDest` function did not use the local default printer - (rdar://33228500) -- The IPP backend incorrectly sent the "job-pages-per-set" attribute to PDF - printers (rdar://33250434) -- Fixed the `cups.strings` file that is used on macOS (rdar://33287650) -- CUPS now sends the `Date` HTTP header in IPP requests (rdar://33302034) -- The `ippCopyAttribute` function did not copy out-of-band values correctly - (rdar://33688003) -- Fixed the localization fallback code on macOS (rdar://33583699) -- The scheduler did not run with a high enough priority, causing problems on - busy systems (rdar://33789342) -- Added support for Japanese Kaku 1 envelope size (rdar://34774110) -- The `ipptool` program's `-P` option did not work correctly. -- The `ipptool` program did not compare URI scheme or hostname components - correctly for the WITH-ALL-HOSTNAMES, WITH-ALL-SCHEMES, WITH-HOSTNAME, or - WITH-SCHEME predicates. - - -Changes in CUPS v2.2.4 ----------------------- - -- The scheduler did not remove old job files (Issue #4987) -- cupsEnumDests did not return early when all printers had been discovered - (Issue #4989) -- The CUPS build system now supports cross-compilation (Issue #4897) -- Added a new CUPS Programming Manual to replace the aging API documentation. -- Added the `cupsAddIntegerOption` and `cupsGetIntegerOption` functions - (Issue #4992) -- The `cupsGetDests` and `cupsCreateJob` functions now support Bonjour printers - (Issue #4993) -- Added a USB quirk rule for Lexmark E260dn printers (Issue #4994) -- Fixed a potential buffer overflow in the `cupstestppd` utility (Issue #4996) -- IPP Everywhere improvements (Issue #4998) -- Fixed the "cancel all jobs" function in the web interface for several - languages (Issue #4999) -- Fixed issues with local queues (Issue #5003, Issue #5008, Issue #5009) -- The `lpstat` command now supports a `-e` option to enumerate local printers - (either previously added or on the network) that can be accessed - (Issue #5005) -- The `lp` and `lpr` commands now support printing to network printers that - haven't yet been added (Issue #5006) -- Fixed a typo in the mime.types file. -- Fixed a bug in the Spanish web interface template (Issue #5016) -- The `cupsEnumDests*` and `cupsGetDest*` functions now report the value of the - "printer-is-temporary" Printer Status attribute (Issue #5028) -- Added Chinese localization (Issue #5029) -- The `cupsCheckDestSupported` function did not support `NULL` values - (Issue #5031) -- Fixed some issues in the RPM spec file (Issue #5032) -- The `cupsConnectDest` function now supports the `CUPS_DEST_FLAGS_DEVICE` flag - for explicitly connecting to the device (printer) associated with the - destination. -- The `SSLOptions` directive in "client.conf" and "cupsd.conf" now supports - `DenyCBC` and `DenyTLS1.0` options (Issue #5037) - - -Changes in CUPS v2.2.3 ----------------------- - -- The IPP backend could get into an infinite loop for certain errors, causing a - hung queue () -- The scheduler could pause responding to client requests in order to save state - changes to disk () -- Added support for PPD finishing keywords (Issue #4960, Issue #4961, - Issue #4962) -- The IPP backend did not send a media-col attribute for just the source or type - (Issue #4963) -- IPP Everywhere print queues did not always support all print qualities - supported by the printer (Issue #4953) -- IPP Everywhere print queues did not always support all media types supported - by the printer (Issue #4953) -- The IPP Everywhere PPD generator did not return useful error messages - (Issue #4954) -- The IPP Everywhere finishings support did not work correctly with common UI or - command-line options (Issue #4976) -- Fixed an error handling issue for the network backends (Issue #4979) -- The default cupsd.conf file did not work on systems compiled without Kerberos - support (Issue #4947) -- The "reprint job" option was not available for some canceled jobs - (Issue #4915) -- Updated the job listing in the web interface (Issue #4978) -- Fixed some localization issues on macOS () - - -Changes in CUPS v2.2.2 ----------------------- - -- Fixed some issues with the Zebra ZPL printer driver (Issue #4898) -- Fixed some issues with IPP Everywhere printer support (Issue #4893, - Issue #4909, Issue #4916, Issue #4921, Issue #4923, Issue #4932, Issue #4933, - Issue #4938) -- The rastertopwg filter could crash with certain input (Issue #4942) -- Optimized connection usage in the IPP backend () -- The scheduler did not detect when an encrypted connection was closed by the - client on Linux (Issue #4901) -- The cups-lpd program did not catch all legacy usage of ISO-8859-1 - (Issue #4899) -- Fixed builds on systems without a working poll() implementation (Issue #4905) -- Added a USB quirk rule for the Kyocera Ecosys P6026cdn (Issue #4900) -- The scheduler no longer creates log files on startup - () -- The ippContainsString function now uses case-insensitive comparisons for - mimeMediaType, name, and text values in conformance with RFC 2911. -- The network backends now log the addresses that were found for a printer - () -- Let's Encrypt certificates did not work when the hostname contained uppercase - letters (Issue #4919) -- Fixed reporting of printed pages in the web interface (Issue #4924) -- Updated systemd config files (Issue #4935) -- Updated documentation (PR #4896) -- Updated localizations (PR #4894, PR #4895, PR #4904, PR #4908, Issue #4946) -- Updated packaging files (Issue #4940) - - -Changes in CUPS v2.2.1 ----------------------- - -- Added "CreateSelfSignedCerts" directive for cups-files.conf to control whether - the scheduler automatically creates its own self-signed X.509 certificates for - TLS connections (Issue #4876) -- http*Connect did not handle partial failures (Issue #4870) -- Addressed some build warnings on Linux (Issue #4881) -- cupsHashData did not use the correct hashing algorithm - () -- Updated man pages (PR #4885) -- Updated localizations (PR #4877, PR #4886) - - -Changes in CUPS v2.2.0 ----------------------- - -- Normalized the TLS certificate validation code and added additional error - messages to aid troubleshooting. -- The httpConnect functions did not work on Linux when cupsd was not running - (Issue #4870) -- The --no-remote-any option of cupsctl had no effect (Issue #4866) -- http*Connect did not return early when all addresses failed (Issue #4870) - - -Changes in CUPS v2.2rc1 ------------------------ - -- Updated the list of supported IPP Everywhere media types. -- The IPP backend did not validate TLS credentials properly. -- The printer-state-message attribute was not cleared after a print job with no - errors (Issue #4851) -- The CUPS-Add-Modify-Class and CUPS-Add-Modify-Printer operations did not - always return an error for failed adds (Issue #4854) -- PPD files with names longer than 127 bytes did not work (Issue #4860) -- Updated localizations (Issue #4846, PR #4858) - - -Changes in CUPS v2.2b2 ----------------------- - -- Added Upstart support (PR #4825) -- CUPS now supports Let's Encrypt certificates on Linux. - - -Changes in CUPS v2.2b1 ----------------------- - -- All CUPS commands now support POSIX options (Issue #4813) -- The scheduler now restarts faster (Issue #4760) -- Improved performance of web interface with large numbers of jobs (Issue #3819) -- Encrypted printing can now be limited to only trusted printers and servers - () -- The scheduler now advertises PWG Raster attributes for IPP Everywhere clients - (Issue #4428) -- The scheduler now logs informational messages for jobs at LogLevel "info" - (Issue #4815) -- The scheduler now uses the getgrouplist function when available (Issue #4611) -- The IPP backend no longer enables compression by default except for certain - raster formats that generally benefit from it () -- The scheduler did not handle out-of-disk situations gracefully (Issue #4742) -- The LPD mini-daemon now detects invalid UTF-8 sequences in job, document, and - user names (Issue #4748) -- The IPP backend now continues on to the next job when the remote server/ - printer puts the job on hold () -- The scheduler did not cancel multi-document jobs immediately - () -- The scheduler did not return non-shared printers to local clients unless they - connected to the domain socket () -- The scheduler now reads the spool directory if one or more job cache entries - point to deleted jobs () -- Added support for disc media sizes () -- The httpAddrConnect and httpConnect* APIs now try connecting to multiple - addresses in parallel () -- The cupsd domain socket is no longer world-accessible on macOS - () -- Interface scripts are no longer supported for security reasons - () -- Added a new cupsHashData API and support for hashed job passwords - () -- Localization fixes (, , - Issue #4041, Issue #4796) -- Documentation changes (Issue #4624, Issue #4781) -- Packaging fixes (PR #4832) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c2426277a..2ea63ee96 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,5 @@ -# Contributing to CUPS +Contributing to CUPS +==================== CUPS is developed by Apple Inc. and distributed as open source software under a combination of GNU GPL2 and GNU LGPL2 licenses with exceptions to allow @@ -15,7 +16,8 @@ should be provided as-is or in an archive. Github pull requests can also be used to submit changes. -## HOW TO CONTACT THE DEVELOPERS +How To Contact The Developers +----------------------------- The CUPS mailing lists are the primary means of asking questions and informally discussing issues and feature requests with the CUPS developers and other @@ -24,7 +26,8 @@ CUPS usage questions and new software announcements while the "cups-devel" mailing list provides a forum for CUPS developers and monitoring new bugs. -## INTERFACES +Interfaces +---------- CUPS interfaces, including the C APIs and command-line arguments, environment variables, configuration files, and output format, are stable across patch @@ -47,7 +50,8 @@ published C API to access data stored in a file to avoid compatibility problems in the future. -## BUILD SYSTEM +Build System +------------ The CUPS build system uses GNU autoconf to tailor the library to the local operating system. Project files for the current release of Microsoft Visual @@ -62,7 +66,8 @@ specific extensions, and GNU libtool is not portable or reliable enough for CUPS. -## VERSION NUMBERING +Version Numbering +----------------- CUPS uses a three-part version number separated by periods to represent the major, minor, and patch release numbers. Major release numbers indicate large @@ -113,14 +118,15 @@ minor version numbers followed by the release candidate number: 2.2rc1 -## CODING GUIDELINES +Coding Guidelines +----------------- Contributed source code must follow the guidelines below. While the examples are for C and C++ source files, source code for other languages should conform to the same guidelines as allowed by the language. -### SOURCE FILES +### Source Files All source files names must be 16 characters or less in length to ensure compatibility with older UNIX filesystems. Source files containing functions @@ -154,7 +160,7 @@ the following additional comment appears after the contact information: * This file is subject to the Apple OS-Developed Software exception. -### HEADER FILES +### Header Files All public header files must include the "versioning.h" header file, or a header that does so. Function declarations are then "decorated" with the correct @@ -170,7 +176,7 @@ Typically a private API header file will include the corresponding public API header file. -### COMMENTS +### Comments All source code utilizes block comments within functions to describe the operations being performed by a group of statements; avoid putting a comment @@ -201,7 +207,7 @@ comments ("// comment"): } while (i == (sizeof(array) / sizeof(array[0]))); -### INDENTATION +### Indentation All code blocks enclosed by brackets begin with the opening brace on a new line. The code then follows starting on a new line after the brace and is @@ -239,20 +245,20 @@ spaces after each "case" and "default" case: } -### SPACING +### Spacing A space follows each reserved word such as "if", "while", etc. Spaces are not inserted between a function name and the arguments in parenthesis. -### RETURN VALUES +### Return Values Parenthesis surround values returned from a function: return (CUPS_STATE_IDLE); -### FUNCTIONS +### Functions Functions with a global scope have a lowercase prefix followed by capitalized words, e.g., "cupsDoThis", "cupsDoThat", "cupsDoSomethingElse", etc. Private @@ -294,7 +300,7 @@ text in the function description comment: function name with an underscore) -### VARIABLES +### Variables Variables with a global scope are capitalized, e.g., "ThisVariable", "ThatVariable", "ThisStateVariable", etc. Globals in CUPS libraries are either @@ -314,7 +320,7 @@ comment block describing the variable: static int that_variable; /* The current state of that */ -### TYPES +### Types All type names are lowercase with underscores between words and "\_t" appended to the end of the name, e.g., "cups\_this\_type\_t", "cups\_that\_type\_t", etc. @@ -327,7 +333,7 @@ Each type has a comment block immediately after the typedef: typedef int cups_this_type_t; /* This type is for CUPS foobar options. */ -### STRUCTURES +### Structures All structure names are lowercase with underscores between words and "\_s" appended to the end of the name, e.g., "cups\_this\_s", "cups\_that\_s", etc. @@ -345,7 +351,7 @@ is documented similar to the variable naming policy above: }; -### CONSTANTS +### Constants All constant names are uppercase with underscores between words, e.g., "CUPS\_THIS\_CONSTANT", "CUPS\_THAT\_CONSTANT", etc. Constants begin with an @@ -365,14 +371,14 @@ Comment blocks immediately follow each constant: } cups_tray_t; -## MAKEFILE GUIDELINES +## Makefile Guidelines The following is a guide to the makefile-based build system used by CUPS. These standards have been developed over the years to allow CUPS to be built on as many systems and environments as possible. -### GENERAL ORGANIZATION +### General Organization The CUPS source code is organized functionally into a top-level makefile, include file, and subdirectories each with their own makefile and dependencies @@ -380,7 +386,7 @@ files. The ".in" files are template files for the autoconf software and are used to generate a static version of the corresponding file. -### MAKEFILE DOCUMENTATION +### Makefile Documentation Each makefile starts with the standard CUPS header containing the description of the file, and CUPS copyright and license notice: @@ -388,7 +394,7 @@ of the file, and CUPS copyright and license notice: # # Makefile for ... # - # Copyright 2016 by Apple Inc. + # Copyright 2017 by Apple Inc. # # These coded instructions, statements, and computer programs are the # property of Apple Inc. and are protected by Federal copyright @@ -398,7 +404,7 @@ of the file, and CUPS copyright and license notice: # -### PORTABLE MAKEFILE CONSTRUCTION +### Portable Makefile Construction CUPS uses a common subset of make program syntax to ensure that the software can be compiled "out of the box" on as many systems as possible. The following @@ -469,91 +475,91 @@ is a list of assumptions we follow when constructing makefiles: - Shell; we assume a POSIX-compatible shell is present on the build system. -### STANDARD VARIABLES +### Standard Variables The following variables are defined in the "Makedefs" file generated by the autoconf software: -- ALL_CFLAGS; the combined C compiler options, -- ALL_CXXFLAGS; the combined C++ compiler options, -- AMANDIR; the administrative man page installation directory (section 8/1m +- `ALL_CFLAGS`; the combined C compiler options, +- `ALL_CXXFLAGS`; the combined C++ compiler options, +- `AMANDIR`; the administrative man page installation directory (section 8/1m depending on the platform), -- AR; the library archiver command, -- ARFLAGS; options for the library archiver command, -- AWK; the local awk command, -- BINDIR; the binary installation directory, -- BUILDROOT; optional installation prefix (defaults to DSTROOT), -- CC; the C compiler command, -- CFLAGS; options for the C compiler command, -- CHMOD; the chmod command, -- CXX; the C++ compiler command, -- CXXFLAGS; options for the C++ compiler command, -- DATADIR; the data file installation directory, -- DSO; the C shared library building command, -- DSOXX; the C++ shared library building command, -- DSOFLAGS; options for the shared library building command, -- INCLUDEDIR; the public header file installation directory, -- INSTALL; the install command, -- INSTALL_BIN; the program installation command, -- INSTALL_COMPDATA; the compressed data file installation command, -- INSTALL_CONFIG; the configuration file installation command, -- INSTALL_DATA; the data file installation command, -- INSTALL_DIR; the directory installation command, -- INSTALL_LIB; the library installation command, -- INSTALL_MAN; the documentation installation command, -- INSTALL_SCRIPT; the shell script installation command, -- LD; the linker command, -- LDFLAGS; options for the linker, -- LIBDIR; the library installation directory, -- LIBS; libraries for all programs, -- LN; the ln command, -- MAN1EXT; extension for man pages in section 1, -- MAN3EXT; extension for man pages in section 3, -- MAN5EXT; extension for man pages in section 5, -- MAN7EXT; extension for man pages in section 7, -- MAN8DIR; subdirectory for man pages in section 8, -- MAN8EXT; extension for man pages in section 8, -- MANDIR; the man page installation directory, -- OPTIM; common compiler optimization options, -- PRIVATEINCLUDE; the private header file installation directory, -- RM; the rm command, -- SHELL; the sh (POSIX shell) command, -- STRIP; the strip command, -- srcdir; the source directory. - - -### STANDARD TARGETS +- `AR`; the library archiver command, +- `ARFLAGS`; options for the library archiver command, +- `AWK`; the local awk command, +- `BINDIR`; the binary installation directory, +- `BUILDROOT`; optional installation prefix (defaults to DSTROOT), +- `CC`; the C compiler command, +- `CFLAGS`; options for the C compiler command, +- `CHMOD`; the chmod command, +- `CXX`; the C++ compiler command, +- `CXXFLAGS`; options for the C++ compiler command, +- `DATADIR`; the data file installation directory, +- `DSO`; the C shared library building command, +- `DSOXX`; the C++ shared library building command, +- `DSOFLAGS`; options for the shared library building command, +- `INCLUDEDIR`; the public header file installation directory, +- `INSTALL`; the install command, +- `INSTALL_BIN`; the program installation command, +- `INSTALL_COMPDATA`; the compressed data file installation command, +- `INSTALL_CONFIG`; the configuration file installation command, +- `INSTALL_DATA`; the data file installation command, +- `INSTALL_DIR`; the directory installation command, +- `INSTALL_LIB`; the library installation command, +- `INSTALL_MAN`; the documentation installation command, +- `INSTALL_SCRIPT`; the shell script installation command, +- `LD`; the linker command, +- `LDFLAGS`; options for the linker, +- `LIBDIR`; the library installation directory, +- `LIBS`; libraries for all programs, +- `LN`; the ln command, +- `MAN1EXT`; extension for man pages in section 1, +- `MAN3EXT`; extension for man pages in section 3, +- `MAN5EXT`; extension for man pages in section 5, +- `MAN7EXT`; extension for man pages in section 7, +- `MAN8DIR`; subdirectory for man pages in section 8, +- `MAN8EXT`; extension for man pages in section 8, +- `MANDIR`; the man page installation directory, +- `OPTIM`; common compiler optimization options, +- `PRIVATEINCLUDE`; the private header file installation directory, +- `RM`; the rm command, +- `SHELL`; the sh (POSIX shell) command, +- `STRIP`; the strip command, +- `srcdir`; the source directory. + + +### Standard Targets The following standard targets are defined in each makefile: -- all; creates all target programs, libraries, and documentation files, -- clean; removes all target programs libraries, documentation files, and object +- `all`; creates all target programs, libraries, and documentation files, +- `clean`; removes all target programs libraries, documentation files, and object files, -- depend; generates automatic dependencies for any C or C++ source files (also +- `depend`; generates automatic dependencies for any C or C++ source files (also see "DEPENDENCIES"), -- distclean; removes autoconf-generated files in addition to those removed by +- `distclean`; removes autoconf-generated files in addition to those removed by the "clean" target, -- install; installs all distribution files in their corresponding locations +- `install`; installs all distribution files in their corresponding locations (also see "INSTALL/UNINSTALL SUPPORT"), -- install-data; installs all data files in their corresponding locations (also +- `install-data`; installs all data files in their corresponding locations (also see "INSTALL/UNINSTALL SUPPORT"), -- install-exec; installs all executable files in their corresponding locations +- `install-exec`; installs all executable files in their corresponding locations (also see "INSTALL/UNINSTALL SUPPORT"), -- install-headers; installs all include files in their corresponding locations +- `install-headers`; installs all include files in their corresponding locations (also see "INSTALL/UNINSTALL SUPPORT"), -- install-libs; installs all library files in their corresponding locations +- `install-libs`; installs all library files in their corresponding locations (also see "INSTALL/UNINSTALL SUPPORT"), and -- uninstall; removes all distribution files from their corresponding locations +- `uninstall`; removes all distribution files from their corresponding locations (also see "INSTALL/UNINSTALL SUPPORT"). -### OBJECT FILES +### Object Files Object files (the result of compiling a C or C++ source file) have the extension ".o". -### PROGRAMS +### Programs Program files are the result of linking object files and libraries together to form an executable file. A typical program target looks like: @@ -562,7 +568,7 @@ form an executable file. A typical program target looks like: TAB echo Linking $@... TAB $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) -### STATIC LIBRARIES +### Static Libraries Static libraries have a prefix of "lib" and the extension ".a". A typical static library target looks like: @@ -573,7 +579,7 @@ static library target looks like: TAB $(AR) $(ARFLAGS) $@ $(OBJECTS) TAB $(RANLIB) $@ -### SHARED LIBRARIES +### Shared Libraries Shared libraries have a prefix of "lib" and the extension ".dylib" or ".so" depending on the operating system. A typical shared library is composed of @@ -598,7 +604,7 @@ several targets that look like: TAB $(LN) libname.$(DSOVERSION).dylib libname.$(DSOMAJOR).dylib TAB $(LN) libname.$(DSOVERSION).dylib libname.dylib -### DEPENDENCIES +### Dependencies Static dependencies are expressed in each makefile following the target, for example: @@ -617,19 +623,18 @@ We regenerate the automatic dependencies on an macOS system and express any non-macOS dependencies statically in the makefile. -### INSTALL/UNINSTALL SUPPORT +### Install/Uninstall Support All makefiles contains install and uninstall rules which install or remove the corresponding software. These rules must use the $(BUILDROOT) variable as a prefix to any installation directory so that CUPS can be installed in a temporary location for packaging by programs like rpmbuild. -The $(INSTALL\_BIN), $(INSTALL\_COMPDATA), $(INSTALL\_CONFIG), $(INSTALL\_DATA), -$(INSTALL\_DIR), $(INSTALL\_LIB), $(INSTALL\_MAN), and $(INSTALL\_SCRIPT) variables +The `INSTALL_BIN`, `INSTALL_COMPDATA`, `INSTALL_CONFIG`, `INSTALL_DATA`, +`INSTALL_DIR`, `INSTALL_LIB`, `INSTALL_MAN`, and `INSTALL_SCRIPT` variables must be used when installing files so that the proper ownership and permissions are set on the installed files. -The $(RANLIB) command must be run on any static libraries after installation +The `$(RANLIB)` command must be run on any static libraries after installation since the symbol table is invalidated when the library is copied on some platforms. - diff --git a/INSTALL.md b/INSTALL.md index 2c1c64181..4cf755b8c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,4 +1,4 @@ -INSTALL - CUPS v2.2.6 - 2017-11-01 +INSTALL - CUPS v2.3b1 - 2017-11-01 ================================== This file describes how to compile and install CUPS from source code. For more diff --git a/README.md b/README.md index 17ac7e7db..290bd0ca3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -README - CUPS v2.2.6 - 2017-11-01 +README - CUPS v2.3b1 - 2017-11-01 ================================= Looking for compile instructions? Read the file `INSTALL.md` instead... diff --git a/configure b/configure index c8b573f2e..a18e090b5 100755 --- a/configure +++ b/configure @@ -1,11 +1,13 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for CUPS 2.2.6. +# Generated by GNU Autoconf 2.68 for CUPS 2.3b1. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,31 +136,6 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -192,8 +169,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" +test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -238,25 +214,21 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -359,14 +331,6 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -488,10 +452,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -526,16 +486,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -547,8 +507,28 @@ else as_mkdir_p=false fi -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -580,8 +560,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='CUPS' PACKAGE_TARNAME='cups' -PACKAGE_VERSION='2.2.6' -PACKAGE_STRING='CUPS 2.2.6' +PACKAGE_VERSION='2.3b1' +PACKAGE_STRING='CUPS 2.3b1' PACKAGE_BUGREPORT='https://github.com/apple/cups/issues' PACKAGE_URL='https://www.cups.org/' @@ -1397,6 +1377,8 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1482,7 +1464,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures CUPS 2.2.6 to adapt to many kinds of systems. +\`configure' configures CUPS 2.3b1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1547,7 +1529,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of CUPS 2.2.6:";; + short | recursive ) echo "Configuration of CUPS 2.3b1:";; esac cat <<\_ACEOF @@ -1728,10 +1710,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -CUPS configure 2.2.6 -generated by GNU Autoconf 2.69 +CUPS configure 2.3b1 +generated by GNU Autoconf 2.68 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1882,7 +1864,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - test -x conftest$ac_exeext + $as_test_x conftest$ac_exeext }; then : ac_retval=0 else @@ -2192,8 +2174,8 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by CUPS $as_me 2.2.6, which was -generated by GNU Autoconf 2.69. Invocation command line was +It was created by CUPS $as_me 2.3b1, which was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2667,7 +2649,7 @@ fi ac_config_headers="$ac_config_headers config.h" -CUPS_VERSION="2.2.6" +CUPS_VERSION="2.3b1" CUPS_REVISION="" CUPS_BUILD="cups-$CUPS_VERSION" @@ -2713,7 +2695,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2761,7 +2743,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2805,7 +2787,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3249,7 +3231,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -struct stat; +#include +#include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3499,7 +3482,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3543,7 +3526,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3745,7 +3728,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3785,7 +3768,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3838,7 +3821,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3878,7 +3861,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3918,7 +3901,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3958,7 +3941,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3998,7 +3981,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4038,7 +4021,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4078,7 +4061,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4118,7 +4101,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4158,7 +4141,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_RMDIR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4198,7 +4181,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4238,7 +4221,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XDGOPEN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4314,7 +4297,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4357,7 +4340,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4767,7 +4750,7 @@ do for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -4833,7 +4816,7 @@ do for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -7851,7 +7834,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_KRB5CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7894,7 +7877,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_KRB5CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8446,7 +8429,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LIBGNUTLSCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8489,7 +8472,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_LIBGNUTLSCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9048,8 +9031,6 @@ _ACEOF esac rm -rf conftest* fi - - fi @@ -10091,7 +10072,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_JAVA="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10156,7 +10137,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10221,7 +10202,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PHPCGI="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10262,7 +10243,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PHP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10332,7 +10313,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10802,16 +10783,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -10871,16 +10852,28 @@ else as_mkdir_p=false fi - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -10901,8 +10894,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by CUPS $as_me 2.2.6, which was -generated by GNU Autoconf 2.69. Invocation command line was +This file was extended by CUPS $as_me 2.3b1, which was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -10964,11 +10957,11 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -CUPS config.status 2.2.6 -configured by $0, generated by GNU Autoconf 2.69, +CUPS config.status 2.3b1 +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -11057,7 +11050,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' diff --git a/configure.ac b/configure.ac index ac78c48ad..352c869a6 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl We need at least autoconf 2.60... AC_PREREQ(2.60) dnl Package name and version... -AC_INIT([CUPS], [2.2.6], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/]) +AC_INIT([CUPS], [2.3b1], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/]) sinclude(config-scripts/cups-opsys.m4) sinclude(config-scripts/cups-common.m4) diff --git a/cups/cups.h b/cups/cups.h index 8f5c818f5..a4eae86d9 100644 --- a/cups/cups.h +++ b/cups/cups.h @@ -47,10 +47,10 @@ extern "C" { * Constants... */ -# define CUPS_VERSION 2.0206 +# define CUPS_VERSION 2.0300 # define CUPS_VERSION_MAJOR 2 -# define CUPS_VERSION_MINOR 2 -# define CUPS_VERSION_PATCH 6 +# define CUPS_VERSION_MINOR 3 +# define CUPS_VERSION_PATCH 0 # define CUPS_BC_FD 3 /* Back-channel file descriptor for diff --git a/vcnet/config.h b/vcnet/config.h index 96ec5fafa..563168690 100644 --- a/vcnet/config.h +++ b/vcnet/config.h @@ -94,8 +94,8 @@ typedef unsigned long useconds_t; * Version of software... */ -#define CUPS_SVERSION "CUPS v2.2.6" -#define CUPS_MINIMAL "CUPS/2.2.6" +#define CUPS_SVERSION "CUPS v2.3.0" +#define CUPS_MINIMAL "CUPS/2.3.0" /* diff --git a/xcode/config.h b/xcode/config.h index 76d521c2c..760d723a8 100644 --- a/xcode/config.h +++ b/xcode/config.h @@ -22,8 +22,8 @@ * Version of software... */ -#define CUPS_SVERSION "CUPS v2.2.6" -#define CUPS_MINIMAL "CUPS/2.2.6" +#define CUPS_SVERSION "CUPS v2.3.0" +#define CUPS_MINIMAL "CUPS/2.3.0" /*