CHANGES-1.0.txt   [plain text]



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


	- 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


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


	- The HP-GL/2 filter didn't always scale the output
	- 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
	- 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.


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