blob: 5ac921349098cd4a12807060beec7017cd54f435 [file]
CHANGES.txt - 2006-08-29
------------------------
CHANGES IN CUPS V1.2.3
- The scheduler did not send job-state or
job-config-changed events when a job was held,
released, or changed (STR #1947)
- The scheduler now aborts if the configuration file and
directory checks fail (STR #1941)
- Fixed a problem with ippPort() not using the port
number that was set via the client.conf file or
CUPS_SERVER environment variable (STR #1945)
- HTTP headers were not buffered (STR #1899)
- Some IPP printers (HP) did not like UTF-8 job names
(STR #1837)
- The CUPS desktop icon is now localized for Polish (STR
#1920)
- Printer options were not always honored when printing
from Windows clients (STR #1839)
- The openssl command would lock up the scheduler when
generating an encryption certificate on some platforms
due to a lack of entropy for the random number
generator (STR #1876)
- The web admin page did not recognize that "Listen 631"
enabled remote access (STR #1908)
- The web admin page did not check whether changes were
made to the Basic Server Settings check boxes (STR
#1908)
- The IPP backend could generate N*N copies in certain
edge cases.
- The scheduler did not restore remote printers properly
when BrowseShortNames was enabled (STR #1893)
- Polling did not handle changes to the network
environment on Mac OS X (STR #1896)
- The "make test" subscription tests used invalid
notify-recipient-uri values (STR #1910)
- Printers could be left in an undefined state on system
sleep (STR #1905)
- The Berkeley and System V commands did not always use
the expected character set (STR #1915)
- Remote printing fixes (STR #1881)
- The cupstestppd utility did not validate translation
strings for custom options properly.
- Multi-language PPD files were not properly localized in
the web interface (STR #1913)
- The admin page's simple settings options did not check
for local domain socket or IPv6 addresses and did not
use "localhost" as the listen address.
- An empty BrowseProtocols, BrowseLocalProtocols, or
BrowseRemoteProtocols line would crash the scheduler
instead of disabling the corresponding browsing options.
- The scheduler now logs IPP operation status as debug
messages instead of info or error.
- cupsFileRewind() didn't clear the end-of-file state.
- cupstestppd didn't report the actual misspelling of the
1284DeviceID attribute (STR #1849)
- BrowseRelay didn't work on Debian (STR #1887)
- configure --without-languages didn't work (STR #1879)
- Manually added remote printers did not work (STR #1881)
- The <cups/backend.h> header was not installed.
- Updated the build files for Autoconf 2.60 (STR #1853)
- The scheduler incorrectly terminated the polling
processes after receiving a partial log line.
- The cups-lpd mini-daemon reported "No printer-state
attribute found" errors when reporting the queue status
(PR #6250, STR #1821)
- SNMP backend improvements (STR #1737, STR #1742, STR
#1790, STR #1835, STR #1880)
- The scheduler erroneously reported an error with the
CGI pipe (STR #1860)
- Fixed HP-UX compile problems (STR #1858, STR #1859)
- cupstestppd crashed with some PPD files (STR #1864)
- The <cups/dir.h> and <cups/file.h> header files did not
work with C++.
CHANGES IN CUPS V1.2.2
- Documentation updates (STR #1765, STR #1780)
- CUPS didn't know about alternate character set names
for Asian text (STR #1819)
- The lpoptions -o and -r options did not work unless you
specified a printer.
- The lpoptions command incorrectly allowed users to set
printer attributes like printer-type (STR #1791)
- httpWait() did not flush the write buffer, causing "bad
request" errors when communicating with CUPS 1.1.x
servers (STR #1717)
- Polling did not sanitize the printer description,
location, or make and model strings like broadcasts
did.
- Polled printers did not show the server's default
job-sheets option value.
- The Samba password prompt was not properly localized
(STR #1814)
- Added a German translation (STR #1842)
- The scheduler now creates self-signed SSL certficates
automatically when using OpenSSL and CDSA for
encryption, just as for GNU TLS.
- The SNMP backend sporatically reported some printers as
"unknown" (STR #1774)
- The scheduler now forces BrowseTimeout to be at least
twice the BrowseInterval value and non-zero to avoid
common configuration errors.
- The scheduler incorrectly returned printer URIs of the
form "ipp://server/printers/classname" for classes (STR
#1813)
- Updated Japanese localization (STR #1805)
- The scheduler's SSL certificate/key directory was not
created on installation (STR #1788)
- Added a mailto.conf man page and help page (STR #1754)
- The parallel and USB backends no longer wait for the
printer to go on-line - this caused problems with
certain printers that don't follow with the IEEE-1284
standard (STR #1738)
- The scheduler could crash on a reload when implicit
classes were present (STR #1828)
- The IPP backend incorrectly used the CUPS_ENCRYPTION
environment variable to determine the default
encryption mode when printing (STR #1820)
- USB printing did not work on Solaris (STR #1756)
- The scheduler sorted job priorities in the wrong order
(STR #1811)
- The scheduler did not automatically restart notifiers
that exited or crashed (STR #1793)
- IPv6 support did not work on NetBSD (STR #1834)
- The EPM packaging file did not work (STR #1804)
- The scheduler used up the CPU if BrowseRemoteProtocols
was empty (STR #1792)
- Custom page sizes did not work (STR #1787)
- The SNMP backend could crash on some systems when SNMP
logging was enabled (STR #1789)
- Browsing could produce some funny printer names when
ServerName was set to an IP address (STR #1799)
- Fixed the log message for BrowseRelay (STR #1798)
- Fixes to allow CUPS to compile on MirBSD (STR #1796)
- The scheduler incorrectly set the FINAL_CONTENT_TYPE
environment variable (STR #1795)
- The pdftops filter incorrectly embedded a "produced by"
comment, causing PDF printing not to work on some
operating systems (STR #1801)
- Sending raw jobs from a client system could cause the
client's scheduler to eventually crash (STR #1786)
- The scheduler now checks that the notifier exists prior
to accepting a new subscription request.
- The scheduler now reports the supported
notify-recipient schemes based on the contents of the
ServerBin/notifier directory.
- Event notifications did not include the
notify-sequence-number or other required attributes
(STR #1747)
- Allow/Deny addresses of the form "11.22.33.*" did not
work on Linux (STR #1769)
- cupsGetPPD() did not work if the scheduler was only
listening on a domain socket (STR #1766)
- The scheduler could crash advertising a class (STR
#1768)
- The scheduler could crash if the default printer was
deleted (STR #1776)
- Added a new default CUPS raster format (v3) which does
not compress the raster stream in order to provide the
same cupsRasterReadPixels() and cupsRasterWritePixels()
performance as CUPS 1.1.x.
- The cupsaddsmb man page listed the wrong files for the
CUPS driver.
- Some configure --with options did not work (STR #1746)
- "Allow @IF(name)" didn't work if "name" wasn't the
first network interface (STR #1758)
- The lpstat command did not use the correct character
set when reporting the date and time (STR #1751)
- The cupsaddsmb command and web interface did not update
the Windows PPD files properly, resulting in corrupt
PPD files for the Windows client to use (STR #1750)
- The cupsd.conf man page didn't describe the Listen
domain socket syntax (STR #1753)
- The scheduler no longer tries to support more than
FD_SETSIZE file descriptors.
- CDSA (encryption) support fixes for MacOS X.
- The lppasswd program needs to be setuid to root to
create and update the /etc/cups/passwd.md5 file (STR
#1735)
- 32/64-bit library installation was broken (STR #1741)
- The USB backend now reports a "no such device" error
when using the old filename-based USB URIs instead of
the "success" error.
- Increased the HTTP and IPP read timeouts to 10 seconds,
as 1 second was too short on congested networks (STR
#1719)
- The SNMP backend now uses the device description over
the printer-make-and-model attribute when the attribute
contains a generic name (STR #1728)
- Fixed another file descriptor leak when printing raw
files (STR #1736)
- Raw queues were not shared via LDAP (STR #1739)
- The pstops filter didn't always embed PageSetup
commands from the PPD file (STR #1740)
- "make install" didn't work if you disabled all of the
localizations.
- The scheduler didn't always choose the least costly
filter.
- Fixed parsing of IPv6 addresses in Allow, Deny,
BrowseAllow, BrowseDeny, and BrowseRelay directives
(STR #1713)
- Printers that were shared via LDAP did not get added to
the LDAP server properly (STR #1733)
- LDAP browsing would crash the scheduler if a required
value was missing (STR #1731)
- Special cases for the "localhost" hostname did not
work, causing printing to not work when the /etc/hosts
file did not contain a localhost entry (STR #1723)
- Updated the Spanish translation (STR #1720, STR #1770)
- Reverse-order page output was broken when N-up or
landscape orientations were used (STR #1725)
- The parallel, serial, socket, and USB backends needed
print data before they would report back-channel data,
causing problems with several new drivers (STR #1724)
CHANGES IN CUPS V1.2.1
- "lprm -h hostname" did not work (STR #1800)
- The web interface did not handle reloads properly for
MSIE (STR #1716)
- The configure script no longer adds linker rpath
options when they are unnecessary.
- The scheduler could crash printing a debug message on
Solaris (STR #1714)
- The --enable-32bit and --enable-64bit configure options
did not always work.
- The password prompt showed the domain socket address
instead of "localhost" for local authentication (STR
#1706)
- The web interface filtered the list of printers even if
the user wasn't logged in (STR #1700)
- The IPP backend did not work reliably with some Xerox
printers (STR #1704)
- Trailing banners were not added when printing a single
file (STR #1698)
- The web interface support programs crashed on Solaris
(STR #1699)
- cupstestppd incorrectly reported problems with
*1284DeviceID attributes (STR #1710)
- Browsing could get disabled after a restart (STR #1670)
- Custom page sizes were not parsed properly (STR #1709)
- The -U option wasn't supported by lpadmin (STR #1702)
- The -u option didn't work with lpadmin (STR #1703)
- The scheduler did not create non-blocking back-channel
pipes, which caused problems when the printer driver
did not read the back-channel data (STR #1705)
- The scheduler no longer uses chunking in responses to
clients - this caused problems with older versions of
CUPS like 1.1.17 (PR #6143)
- Automatic raw printing was broken (STR #1667)
- 6-up printing was broken (STR #1697)
- The pstops filter did not disable CTRL-D processing on
the printer/RIP.
- ppdOpen*() did not load custom options properly (STR
#1680)
- "Set Printer Options" in the web interface did not
update the DefaultImageableArea or
DefaultPaperDimension attributes in the PPD file (STR
#1689)
- Fixed compile errors (STR #1682, STR #1684, STR #1685,
STR #1690)
- The lpstat command displayed the wrong error message
for a missing destination (STR #1683)
- Revised and completed the Polish translation (STR
#1669)
- Stopped jobs did not show up in the list of active jobs
(STR #1676)
- The configure script did not use the GNU TLS
"libgnutls-config" script to find the proper compiler
and linker options.
- The imagetoraster filter did not correctly generate
several 1, 2, and 4-bit color modes.
- cupsRasterWritePixels() could lose track of the current
output row.
- cupsRasterReadPixels() did not automatically swap
12/16-bit chunked pixel data.
- Moved the private _cups_raster_s structure out of the
public header.
- Updated the CUPS raster format specification to include
encoding rules and colorspace definitions.
- The Zebra PPD files had the wrong PostScript code for
the "default" option choices.
- The imagetoraster filter did not generate correct CIE
XYZ or Lab color data.
- The cups-config script did not work when invoked from a
source directory (STR #1673)
- The SNMP backend did not compile on systems that used
the getifaddrs emulation functions (STR #1668)
CHANGES IN CUPS V1.2.0
- Documentation updates (STR #1618, STR #1620, STR #1622,
STR #1637)
- Static file copy buffers reduced from 64k to 32k to
work around bogus MallocDebug library assumptions (STR
#1660)
- The scheduler did not decode the backend exit code
properly (STR #1648)
- The MacOS X USB backend did not report the 1284 device ID,
nor did it fix device IDs returned by HP printers.
- The scheduler started more slowly than 1.1.x with large
numbers of printers (STR #1653)
- cupsRasterInterpretPPD() didn't support the
cupsPreferredBitsPerColor attribute, and imagetoraster
didn't use the new API.
- The "make test" script did not create all of the necessary
subdirectories for testing (STR #1638)
- The scheduler did not prevent rotation of logs
redirected to /dev/null (STR #1651)
- "make test" did not include the SNMP backend in the
test environment (STR #1625)
- The EPM packaging files did not work (STR #1621)
- "Use Default Configuration" inserted a broken
configuration file (STR #1624)
- Redirects in the web interface did not always preserve
the encrypted status of a connection (STR #1603)
- Added the Apple "pap" backend.
- Added CUPS library to CUPS Image shared library
linkage to support Linux --as-needed linker option
(STR #1606)
- Fixed support for --enable-pie (STR #1609)
- The pdftops filter did not validate the length of the
encryption key (STR #1608)
- Updated the Polish localization.
- "Encryption Required" in the cupsd.conf file now only
requires encryption when the connection is not over the
loopback interface or domain socket.
- Printer names containing "+" were not quoted properly in
the web interface (STR #1600)
- The SNMP backend now reports the make and model in the
information string so that the auto-generated printer
name is more useful than just an IP address.
CHANGES IN CUPS V1.2rc3
- The cups-lpd program always did reverse lookups on the
client address, which could be a performance problem.
Added a "-n" option to disable lookups.
- When configured with SSL support, require encryption by
default when displaying the /admin location (STR #1592)
- The next job ID was not computed correctly if the job
cache file got out of sync with the spool directory
(STR #1582)
- The PNG image handling code used deprecated functions
from libpng (STR #1587)
- Added a Polish translation (STR #1584, STR #1586)
- More changes to the scheduler to improve battery life
on portable devices (STR #1583)
- Changed the default log level for status messages back
to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579)
- The error string was not set properly when
cupsDoFileRequest() was given the name of a directory
(STR #1578)
- Fixed handling of job-hold-until (STR #1581)
- Added explicit notes to the cupsaddsmb man page
explaining that the driver filenames are case-sensitive
under UNIX and that they must be all lowercase (Windows
2000) or all UPPERCASE (Windows 95/98/Me) to work (STR
#1568)
- The USB backend incorrectly split the manufacturer name
if it contained spaces (STR #1566)
- The scheduler would hang when listing PPD files for a
manufacturer whose name contained spaces (STR #1567)
- Added the SNMP backend for network printer discovery
(STR #1555)
- cupstestppd now fails PPD files with 1284DeviceId
instead of 1284DeviceID, and cups-driverd uses a
case-insensitive comparison when looking for it (STR
#1573)
- cupsDoFileRequest() and cupsDoRequest() now work
properly with non-blocking HTTP connections.
- Added Swedish translation (STR #1569)
- "make install" now installs the MIME files with world
read permissions (STR #1565)
- More CDSA encryption support fixes (STR #1563)
- Updated the default mime.types file to support printing
of files that do not have a locally-recognized MIME
media type to raw or System V queues.
- Updated the serial port detection code on Linux (STR
#1562)
- Added some more error checking to httpGetHostname()
(STR #1561)
- The title of some administration pages was not
localized (STR #1548)
- The edit-config.tmpl file was not generated or
installed for the Spanish or Japanese localizations
(STR #1547)
- The mimeDelete() function freed the types before the
filters, but the filters needed the type data (STR #1558)
- The scheduler didn't keep track of the status pipes
properly, leading to a bad select() for multi-file jobs
(STR #1559)
- The cupstestdsc program didn't validate the ordinal
page number value for %%Page: comments.
CHANGES IN CUPS V1.2rc2
- The scheduler was not always using the string pool,
causing random crashes.
- The lpmove and the web interface's Move Job button did
not work with stopped jobs (STR #1534)
- The PostScript filter did not handle the page-set
option properly with number-up printing (STR #1543)
- The scheduler now only warns about unsupported ACLs
once (STR #1532)
- The "fitplot" option did not work with output from
Mozilla (STR #1542)
- The imagetops filter did not work with Level 2 or 3
printers (STR #1533)
- The scheduler now recognizes PostScript files with PJL
commands that do not include an ENTER LANGUAGE command.
- Added --with-printcap configure option.
- 64-bit SSL fixes for MacOS X.
- The scheduler didn't send some printer state change
events.
- The scheduler didn't send jobs to busy remote printers.
- Fixed some problems with the launchd support.
- Added new USB printer backend for MacOS X.
- The PostScript filter now handles files that start with
an incomplete PJL header (PR #6076)
- The web interface language selection code did not try
the generic language localization (STR #1531)
- The language cache, string pool, and transcoding caches
are now process global instead of per-thread to avoid
problems with GNOME and to allow for data sharing
between threads (STR #1530)
- Fixed a CUPS 1.1.x compatibility bug (STR #1528)
- The web interface redirection after certain printer
administration tasks was broken (STR #1516)
- Web interface authorization could get stuck (STR #1512)
- Localization updates (STR #1513, STR #1518, STR #1520)
- The pstops filter didn't work with some files (STR
#1523)
- "./configure --enable-static" didn't work (STR #1522)
- The scheduler was not using the configured default
Group (STR #1521)
- The web interface still did not show the localized time
and date for some locales and systems (STR #1509)
- httpAddrGetList() would crash on systems without
getaddrinfo().
- Socket URIs without a trailing slash would cause the
port number to not be accepted (STR #1519)
- Local raw and System V printers were not advertised as
such for printer browsing (STR #1502)
- The RPM spec file incorrectly put duplicate copies of
the Japanese and Spanish web interface templates in the
main cups package (STR #1517)
- cupsSetDests() did not explicitly set the permissions
of the /etc/cups/lpoptions file (STR #1508)
- The lpq command crashed with the -h option (STR #1515)
CHANGES IN CUPS V1.2rc1
- Documentation updates (STR #1497, STR #1498)
- The scheduler now redirects browsers to https: URLs
when encryption is required.
- The scheduler would crash when printing with a banner
(STR #1500)
- cups-driverd did not use the LanguageEncoding attribute
in PPD files to convert the NickName to UTF-8 (STR
#1503)
- The lpadmin command could not set the
printer-error-policy attribute (STR #1504)
- The web interface did not show the time and date in the
correct format for the locale (STR #1505)
- CUPS no longer accepts print jobs if a printer does not
support the file format (STR #1501)
- Cleaned up the PostScript filter (pstops) so that it
properly supports %%IncludeFeature and page scaling
(STR #1453)
- Fixed the cupsFileRewind() and cupsFileSeek() functions
to work properly with uncompressed files.
- Added cupsFileGetLine(), cupsFileStderr(),
cupsFileStdin(), and cupsFileStdout() functions to the
CUPS library.
- Added a new cupstestdsc program to test the DSC
conformance of PostScript files.
- Added KDE/GNOME icons and a Manage Printers menu item.
- Added --enable-image and --enable-pdftops configure
options to control whether the image and PDF filters
are built and installed (default = yes for all
platforms but MacOS X)
- Fixed a minor memory leak in the PPD API.
- Fixed transcoding issues (STR #1493)
- The scheduler now enforces a minimum job cost of 100
when doing FilterLimit checks.
- The scheduler would leak file descriptors when printing
to raw queues (STR #1491)
- The IPv6 support did not compile on Tru64 UNIX (STR
#1488)
- ppdOpen2() now converts the NickName and all UI text to
UTF-8 (STR #1475)
- The Set Allowed Users web page did not work (STR #1486)
- When the default policy was not set or set to a non-
existing policy, the scheduler did not set the default
policy name to "default" (STR #1484)
- The Zebra CPCL driver did not use the correct righthand
margin for the 4" wide label sizes.
- Fixed a problem with the parsing of fractional real
numbers in PPD files.
- Added Spanish localization files (STR #1480)
- Fixed localization of a few scheduler messages (STR
#1478)
- Fixed support for HEAD requests in the scheduler (STR
#1481)
CHANGES IN CUPS V1.2b2
- Updated the CUPS design description.
- Added --enable-32bit and --enable-64bit configure
options to allow building of separate 32/64-bit
libraries on systems that support both environments
(STR #1472)
- Various compiler warning fixes.
- Fixes for Solaris 10 builds against old GNU TLS and
LDAP libraries.
- Added a cupsArrayUserData() function to retrieve the
user data pointer for an array (useful for typing
arrays)
- The ppdEmitString() function did not compute the
required buffer size properly, leading to dropped
characters on the end of the printer commands in pstops
and imagetops (STR #1470)
CHANGES IN CUPS V1.2b1
- The serial backend now supports Equinox 8-port serial
hubs (STR #526)
- The IPP backend now supports a compression option to
compress print files as they are sent to the remote
server (STR #956)
- The CUPS browse protocol now supports passing of
default options and browse timeout values from the
server to the clients (STR #800)
- Implicit classes that timed out could cause the
scheduler to crash (STR #1439)
- Added DragonFly support in local device backends (STR
#1362)
- Added LDAP printer browsing support (STR #338)
- Added official support for printer maintenance commands
via the CUPS Command file format and hooks in the
printer-type and web interfaces (STR #932)
- The HP-GL/2 filter could get in an infinite loop trying
to convert HP-PCL files (STR #1415)
- CUPS now implements the HTTP/1.1 Expect header (STR
#1407)
- Options in PPD files are no longer automatically put in
an "Extra" group; rather, all options that are not
inside an Open/CloseGroup will be placed in the
"General" group (STR #1385)
- The scheduler now creates a job-uuid attribute that
uniquely identifies a job on a network (STR #1410)
- The init script now unsets the TMPDIR environment
variable to prevent user temporary directories from
being used by cupsd accidentally (STR #1424)
- Added support for launchd on MacOS X.
- Added support for notify_post on MacOS X.
- Added support for DBUS on Linux.
- All of the Berkeley (except for lpc) and System V
commands now support specification of user, host, and
port (STR #1028, STR #1029, STR #1087)
- The lpmove command now allows you to move all jobs for
a given queue (STR #56)
- The web interface now supports moving of a job or jobs
to another queue (STR #56)
- The web interface now provides searching, paging, and
changing of the sort/display order of classes, jobs,
and printers.
- cupsaddsmb now accepts a password on the command-line
and supports passwords with special characters (STR
#822, STR #1236)
- ppdLoad*() no longer tries to "fix" bad characters in
UI text (STR #1101)
- Printer names can now (reliably) contain Unicode
characters (STR #896)
- The lpstat command now shows the time and date of the
last printer state change instead of the hardcoded "Jan
01 00:00" (STR #659)
- The scheduler now adds a job-actual-printer-uri
attribute to job objects when printing to a class (STR
#116)
- The scheduler now logs log file open errors to the
system log (STR #1289)
- The scheduler now sets the job-originating-user-name to
the authenticated username, if available (STR #1318)
- The scheduler now only updates the permissions of SSL
keys and certificates when they are under the
ServerRoot directory (STR #1324)
- The rastertodymo driver has been renamed to
rastertolabel (a symlink is installed so that existing
queues continue to work) and now also supports Zebra's
CPCL language.
- The lpstat command could show the wrong active job for
a printer (STR #1301)
- Fixed a potential crash problem in the scheduler when
aborting a CGI program (STR #1290)
- Added a "cancel all jobs" button to the class and
printer web interfaces (STR #1140)
- The add-printer web page now shows the
set-printer-options page after the printer has been
added (STR #690)
- The classes web page now provides links to each of the
member printers (STR #307)
- CUPS now handles HTTP request/response lines up to 32k
in length; this is mainly for better cookie support
(STR #1274)
- Added support for the Apache PassEnv and SetEnv
directives to cupsd.conf (STR #853)
- Added large file (64-bit) support (STR #541)
- Fixed a performance issue with the ippReadIO()
implementation (STR #1284)
- Fixed a performance issue with the scheduler's implicit
class implementation (STR #1283)
- The pdftops filter now adds the Title and Creator
fields from the PDF file to the PostScript document
comments section (STR #539, STR #830)
- Added a new cups_array_t and cupsArray*() functions to
the CUPS API to support sorted lists of data.
- Made the CUPS API library thread-safe (STR #1276)
- Added "media" option support for EFI EFMediaType option
(STR #902)
- Added write buffering to the HTTP code to improve
performance (STR #547)
- The scheduler now uses the attributes-natural-language
attribute to localize banner pages (STR #386)
- The scheduler now returns the address that was used to
connect to it (STR #1076)
- Fixed a problem with N-up printing and OpenOffice (STR
#576)
- Added support for the GCC position independent
executable options (STR #1209)
- Added new BrowseLocalProtocols and
BrowseRemoteProtocols directives to cupsd.conf,
allowing for different browse protocols for local and
remote printers (STR #877)
- PPD files can now contain strings up to 256k in length
(STR #1215)
- The pstops filter now supports the IncludeFeature DSC
comment (STR #1212)
- The pstops filter now disables the setpagedevice
procedure when doing N-up printing (STR #1161)
- The serial backend now supports "stop=1", "stop=2",
"parity=space", and "parity=mark" options (STR #1155)
- "make install" no longer overwrites an existing PAM
configuration file (STR #1064)
- The scheduler now closes all files on startup when run
in daemon mode (STR #1009)
- Added a new RGBW colorspace to the CUPS raster format
(STR #1071)
- The pdftops filter now sets the page size based on the
media box when not scaling the output (STR #912)
- The pdftops filter now supports masked images (STR
#281)
- The pdftops filter produced large output when rendering
PDF files containing lot of repeated images (STR #327)
- The pdftops filter now minimizes print processing of
PDF files when using the page-ranges option (STR #273)
- Updated pdftops filter to Xpdf 3.01.
- Added new cupsBackchannelRead() and
cupsBackchannelWrite() functions, as well as
backchannel support to the parallel, serial, socket,
and USB backends (STR #1252)
- The parallel and USB backends now treat a "no space
available" error as an out-of-paper condition (STR
#1225)
- The "lpc" command now supports the "status all" command
(STR #1004)
- ippReadIO() did not read collections properly (STR
#1249)
- The "make test" script now creates the test files in
"/tmp/cups-$USER" instead of "/tmp/$USER" (STR #981)
- All backends now abort on error when printing a job to
a class - this allows the next printer in the class to
print the job (STR #1084)
- The scheduler now verifies that a printer supports
Letter or A4 media sizes before setting them as the
initial default (STR #1250)
- The cupstestppd program now flags bad Resolution
options (STR #1269)
- The USB backend now retries printing when the printer
is disconnected or turned off (STR #1267)
- Added new httpGetHostname() function to CUPS API, and
use it instead of gethostname() so that the web
interface will work correctly on systems whose hostname
is not the FQDN (STR #1266)
- The scheduler now stops printers if the backend for the
queue is missing on startup (STR #1265)
- The configure script now supports "--disable-library"
to disable particular image file format support
libraries, even if they are available on the build
system (STR #1248)
- The IPP backend did not always report on the total
number of pages that were printed (STR #1251)
- The lpstat program could display garbage date and time
values for locales whose date format exceeded 31
characters (STR #1263)
- The cupstestppd program would segfault when testing
certain broken PPD files (STR #1268)
- Dramatically reduced the overhead of implicit classes.
- Added new cupsDir*() functions to CUPS API.
- Printers can now be published individually for sharing.
- Fixed a bug in the scheduler's startup signalling code
which caused cupsd to send the SIGUSR1 signal to the
init process instead of the original parent process
(STR #1258)
- Added new on-line help CGI to web interface to provide
searchable help.
- Devices are now tracked dynamically, with each query
doing a new device scan. This eliminates a previous
startup delay caused by slow backends and allows new
printers to be seen without restarting the server,
however it limits the amount of device URI checking
that can be done (basically now the scheduler only
requires a URI with a method that is a listed backend)
- Added new printer auto-detection, server configuration,
and log file viewing to the administration web page.
- Added new "set allowed users" web interface to set the
list of allowed users for a printer or class.
- The scheduler, command-line, and web interfaces now
limit the list of printers and classes to those
accessible by a user.
- cupsMarkOptions() now handles more non-standard
duplexing options and choices (STR #915)
- cups-lpd now honors remote banner requests with the
"standard" banner whenever a printer does not have one
defined (STR #1220)
- The scheduler's denial-of-service checks did not work
properly with IPv6 addresses (STR #1134)
- The lp and lpr commands did not error out properly when
they were unable to write to a temporary file (STR
#1129)
- The pstops filter did not handle Adobe-specific
comments in Windows NT driver output (STR #1085)
- "lpstat -l -p" incorrectly reported the printer
interface (STR #936)
- The web interface now operates exclusively with the
UTF-8 encoding, and sends the appropriate character set
and header information to the web browser (STR #919,
STR #1007)
- Added a "set allowed users" interface to the web
interface so that you can set the list of allowed or
denied users/groups for a printer or class.
- Disallow the "#" character in printer names, since it
has special meaning in the shell, config files, and in
URIs (STR #917, STR #1202)
- Added a new application/x-csource MIME type, and
support for it to the texttops filter so that you can
pretty print plain text files without the C/C++
keywords being highlighted.
- The pdftops filter did not compile with GCC 4.0 (STR
#1226)
- The texttops filter did not highlight preprocessor
directives followed by a tab properly.
- HP PJL output now uses both JOB DISPLAY and RDYMSG
commands to show the current job on the printer's
display (STR #1218)
- Local authentication certificates are now stored in
/var/run/cups/certs by default instead of
/etc/cups/certs (STR #1211)
- Backends now use "&" to separate options in device
URIs; "+" is still recognized but is deprecated (STR
#842)
- The USB backend no longer supports the usb:/dev/foo
format on systems that support device ID queries.
- Forced classification markings did not work when the
job-sheets parameters were "none,none".
- "lpstat -l -p" incorrectly showed all users as allowed,
even if the queue was restricted to certain users (STR
#801)
- The scheduler now automatically detects SSL/TLS clients
without using the SSLPort/SSLListen directives.
- The CUPS API and scheduler no longer support SSLv2-
encrypted connections.
- Updated the cupsaddsmb utility to correctly export the
CUPS driver for Windows.
- Fixed a signal-handling bug in httpRead() which
ultimately caused the server to print multiple copies
when it was busy (STR #1184)
- The cupsFile API now uses the O_APPEND option when
opening files in append mode (STR #990)
- The md5.h header and md5_* functions are now officially
private and have been renamed to avoid conflicts with
other implementations with the same name.
- The pdftops filter incorrectly embedded some Type1
fonts (STR #1093)
- The scheduler didn't detect a closed connection in the
middle of an IPP request (STR #1153)
- The scheduler could block trying to read the job status
if there was input pending and the job was cancelled in
the same input cycle (STR #1157)
- The scheduler could crash when deleting a class due to
infinite recursion.
- Updated the Zebra ZPL label printer driver to use the
run-length encoding and support more options.
- Updated serial backend to scan for /dev/ttyC* as well
as /dev/ttyc* for Cyclades serial ports (STR #1049)
- The scheduler could hang reading the job status under
certain circumstances (STR #1068)
- The USB backend termination signal code was inverted
(STR #1046)
- Moved enable and disable commands to sbindir to be
consistent.
- Added new cupsRasterInterpretPPD() function for RIP
filters to setup the raster page header from
PostScript commands in a PPD file.
- The CUPS browsing protocol now offers a "delete" bit
to remove printers as soon as they are deleted on the
server or as soon as the server shuts down gracefully
(STR #793)
- The CUPS_SERVER and ServerName directives (client.conf
and ~/.cupsrc) may now contain names of the form
"server:port" and "/path/to/domain/socket".
- The "cancel -u user" command now works for ordinary
users (STR #751)
- Added test run support to "make test" target (STR #64)
- Added domain socket support (STR #656)
- Added BrowseLocalOptions directive to allow the
administrator to add printer URI options to the browse
URI, e.g. "encryption=required" (STR #732)
- Added BrowseRemoteOptions directive to allow the
administrator to add standard URI options to the
remote printer URI, e.g. "encryption=required" (STR
#732)
- Now put "-I.." compiler option in front of all others
to ensure that local CUPS headers are used before
installed headers (STR #437)
- New cupsLangPrintf() and cupsLangPuts() for localized
interfaces.
- Now support custom attributes and extended options in
PPD files.
- Now provide functions to save PPD files.
- New policy mechanism allows per-operation and
per-printer control over what users and groups are
allowed to do various IPP operations.
- New error policy mechanism to control how aborted
backend errors are handled by the scheduler
(abort-job, retry-job, requeue-job, stop-printer)
- Updated the printer test page with a better color
wheel and a separate grayscale ramp.
- A single backend process is now run to send all print
data for a job.
- Backends and filters can now send and receive
backchannel data over file descriptor 3.
- Updated the raster stream format to support more
user-defined attributes and to do compression of the
page data.