Releases: apple/cups
Releases · apple/cups
v1.1
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.
v1.0.5
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.
v1.0.4
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
v1.0.3
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.
v1.0.2
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.
v1.0.1
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.