Common UNIX Printing System 1.1.19rc1
Created at 09:00 Apr 11, 2003 by mike, last modified at 12:24 Apr 11, 2003
The first release candidate for version 1.1.19 of the Common
UNIX Printing System ("CUPS") is now available for download from
the CUPS web site at:
http://www.cups.org/software.php
In accordance with the CUPS Configuration Management Plan, you
now have a minimum of two weeks to test this release candidate
to determine if there are any high-priority problems and report
them using the Software Trouble Report form at:
http://www.cups.org/str.php
Reports sent to the CUPS newsgroups or mailing lists are not
automatically entered into the trouble report database and will
not influence the final production release of 1.1.19, so it is
very important that you report any problems you identify using
the form.
CUPS 1.1.19 adds support for fast reconfiguration, option
retension and defaulting when adding and modifying printers,
binary PostScript printing, fax device features, custom web
applications via CGI, PHP, Java, and Python, and simple
scripting support for Java, Perl, and PHP. The new release also
contains bug fixes including the LPD printing and Solaris signal
handling bugs.
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.
Download ·
Home Page ·
Listing
Submit Comment