github apple/cups release-1.1.7
v1.1.7

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!
latest releases: v2.3.3, v2.3.1, v2.2.13...
4 years ago