github apple/cups release-1.1.16
v1.1.16
on GitHub

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.
4 years ago