summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R Sweet <michaelrsweet@gmail.com>2017-11-01 11:23:38 -0400
committerMichael R Sweet <michaelrsweet@gmail.com>2017-11-01 11:23:38 -0400
commit11143dcf5bab261c62e44c109c915b5561902784 (patch)
tree2afd47b4b29f3d605c6156b53194650d77b8d05d
parent18a1649286d8978552c6334934a23dc6efe5fc0d (diff)
downloadcups-11143dcf5bab261c62e44c109c915b5561902784.tar.gz
Start CUPS 2.3.x development.
-rw-r--r--CHANGES-1.0.txt217
-rw-r--r--CHANGES-1.1.txt3462
-rw-r--r--CHANGES-1.2.txt1261
-rw-r--r--CHANGES-1.3.txt856
-rw-r--r--CHANGES-1.4.txt843
-rw-r--r--CHANGES-1.5.txt312
-rw-r--r--CHANGES-1.6.txt244
-rw-r--r--CHANGES-1.7.txt250
-rw-r--r--CHANGES-2.0.txt215
-rw-r--r--CHANGES-2.1.txt150
-rw-r--r--CHANGES.md262
-rw-r--r--CONTRIBUTING.md187
-rw-r--r--INSTALL.md2
-rw-r--r--README.md2
-rwxr-xr-xconfigure255
-rw-r--r--configure.ac2
-rw-r--r--cups/cups.h6
-rw-r--r--vcnet/config.h4
-rw-r--r--xcode/config.h4
19 files changed, 232 insertions, 8302 deletions
diff --git a/CHANGES-1.0.txt b/CHANGES-1.0.txt
deleted file mode 100644
index 296d89f79..000000000
--- a/CHANGES-1.0.txt
+++ /dev/null
@@ -1,217 +0,0 @@
-CHANGES-1.0.txt
----------------
-
-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.
-
-
-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
-
-
-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.
-
-
-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.
-
-
-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.
diff --git a/CHANGES-1.1.txt b/CHANGES-1.1.txt
deleted file mode 100644
index c641e794a..000000000
--- a/CHANGES-1.1.txt
+++ /dev/null
@@ -1,3462 +0,0 @@
-CHANGES-1.1.txt
----------------
-
-CHANGES IN CUPS V1.1.23
-
- - Updated the Spanish man pages (STR #1041)
- - The lpstat man page contained a typo (STR #1040)
- - The scheduler's is_path_absolute() code could cause a
- DoS (STR #1042)
- - The scheduler's device loading code used the wrong
- size limits for the make/model and info parameters
- (STR #1035)
- - The PNG loading code did not use a "long unsigned
- integer" format specifier for the width and height
- (STR #1032)
- - The web interface only showed the first 4 or 8
- characters of "{variable-name}" for undefined template
- variables (STR #1031)
- - The hpgltops filter did not handle a common PCL
- command to enter HP-GL/2 mode (STR #1037)
-
-
-CHANGES IN CUPS V1.1.23rc1
-
- - The lpr man page did not document the "-U" option (STR
- #998)
- - The scheduler no longer sends the page-set option when
- printing banner pages (STR #995)
- - Fixed a debug message in the imagetops filter (STR
- #1012)
- - The lprm man page listed the "-" option in the wrong
- order (STR #911)
- - The hpgltops filter contained two buffer overflows
- that could potentially allow remote access to the "lp"
- account (STR #1024)
- - The lppasswd command did not protect against file
- descriptor or ulimit attacks (STR #1023)
- - The "lpc status" command used the wrong resource path
- when querying the list of printers and jobs, causing
- unnecessary authentication requests (STR #1018)
- - The httpWait() function did not handle signal
- interruptions (STR #1020)
- - The USB backend used the wrong size status variable
- when checking the printer status (STR #1017)
- - The scheduler did not delete classes from other
- classes or implicit classes, which could cause a crash
- (STR #1015)
- - The IPP backend now logs the remote print job ID at
- log level NOTICE instead of INFO (so it shows up in
- the error_log file...)
-
-
-CHANGES IN CUPS V1.1.22
-
- - The lpstat man page incorrectly listed the "-s" option
- as using the equivalent of the "-p" option to list the
- printers; it uses the "-v" option to list the printers
- (STR #986)
- - Now allow 0-length reads in the CUPS file API (STR
- #985)
- - cupsDoFileRequest() now sets cupsLastError() to
- IPP_ERROR on network errors (STR #953)
- - The pdftops filter didn't scale small pages up to the
- output page size when the fitplot option was used (STR
- #984)
- - Fixed the ipptest program usage message (STR #959)
- - Added Spanish man pages (STR #963)
- - Fixed the order of comparisons in the client.conf
- reading code (STR #971)
- - cupsLangGet() incorrectly set the current locale (STR
- #970)
-
-
-CHANGES IN CUPS V1.1.22rc2
-
- - The pdftops filter didn't check the range of all
- integer attributes (STR #972)
- - Documentation corrections (STR #944, STR #946)
- - Also sanitize device URI in argv[0] (STR #933)
- - cupsRasterReadHeader() didn't swap bytes for the
- numeric fields properly (STR #930)
-
-
-CHANGES IN CUPS V1.1.22rc1
-
- - Now sanitize the device URI that is reported in the
- error_log file (STR #920)
- - Fixed some memory and file descriptor leaks in the job
- dispatch code (STR #921)
- - Deleting a printer could cause a crash with browsing
- enabled (STR #865, STR #881, STR #928)
- - Browsing would turn off if the scheduler got an EAGAIN
- error (STR #924)
- - The mime.types file didn't recognize PostScript as a
- PJL language name (STR #925)
-
-
-CHANGES IN CUPS V1.1.21
-
- - The scheduler did not separate Digest authentication
- parameters with commas (STR #882)
- - Fixed some problems with image printing to custom page
- sizes (STR #891)
- - Removed the remaining scheduler code that did not use
- the "close-on-exec" file descriptor flag to speed up
- program invocations (STR #890)
- - The "lpr -r" command removed the print file even if it
- was not printed. It now only removes the file if the
- job is successfully created (STR #886)
- - Revamped the custom page size orientation fix (STR
- #127)
- - The lp, lpq, lpr, and lpstat commands now report when
- an environment variable is pointing to a non-existent
- printer instead of just saying "no default
- destination" (STR #879)
- - Queue names with 2 periods (e.g. "printer..2") were
- not supported (STR #866)
-
-
-CHANGES IN CUPS V1.1.21rc2
-
- - Fixed a denial-of-service bug in the CUPS browse
- protocol support (STR #863)
- - The scheduler used a select() timeout of INT_MAX
- seconds when there was nothing to do, which doesn't
- work on IRIX (STR #864)
- - Updated the cupsaddsmb program to use the new Windows
- 2000 PostScript drivers instead of the Windows NT
- printer drivers (STR #390)
- - The gziptoany filter did not produce copies for raw
- print jobs (STR #808)
- - The cupsLangGet() function now uses nl_langinfo(),
- when available, to get the current encoding (STR #856)
- - Added a ReloadTimeout directive to control how long
- the scheduler waits for jobs to complete before
- restarting the scheduler (STR #861)
- - Added a note to the default cupsd.conf file which
- mentions that you must allow connections from
- localhost for the command-line and web interfaces to
- work (STR #850)
- - The IPP backend incorrectly used the local port when
- communicating with a remote server; this caused
- problems with some custom configurations (STR #852)
- - The cups-lpd mini-daemon wasn't using the right
- default banner option (STR #851)
- - Updated the new httpDecode64_2() and httpEncode64_2()
- functions to handle arbitrary binary data, not just
- text (STR #860)
- - String options with quotes in their values were not
- quoted properly by the scheduler (STR #839)
- - Configure script changes for GNU/Hurd (STR #838)
- - The lppasswd program was not installed properly by GNU
- install when the installer was not root (STR #836)
- - Updated the cups-lpd man page (STR #843)
- - Fixed a typo in the cupsd man page (STR #833)
- - The USB backend now defaults to using the newer
- /dev/usb/lpN filenames; this helps on systems which
- use the devfs filesystem type on Linux (STR #818)
- - The config.h file did not define the HAVE_USERSEC_H
- constant when the configure script detected the
- usersec.h header file. This caused authentication
- errors on AIX (STR #832)
- - The lp and lpr commands now report the temporary
- filename and error if they are unable to create a
- temporary file (STR #812)
- - Added ServerTokens directive to control the Server
- header in HTTP responses (STR #792)
- - Added new httpDecode64_2(), httpEncode64_2(), and
- httpSeparate2() functions which offer buffer size
- arguments (STR #797)
- - The cupsGetFile() and cupsPutFile() code did not
- support CDSA or GNUTLS (STR #794)
- - The httpSeparate() function did not decode all
- character escapes (STR #795)
- - The cupstestppd program now checks for invalid Duplex
- option choices and fails PPD files that use
- non-standard values (STR #791)
- - Updated the printer name error message to indicate
- that spaces are not allowed (STR #675)
- - The scheduler didn't handle HTTP GET form data
- properly (STR #744)
- - The pstops filter now makes sure that the prolog code
- is sent before the setup code (STR #776)
- - The pstops filter now handles print files that
- incorrectly start @PJL commands without a language
- escape (STR #734)
- - Miscellaneous build fixes for NetBSD (STR #788)
- - Added support for quoted system group names (STR #784)
- - Added "version" option to IPP backend to workaround
- serious bug in Linksys's IPP implementation (STR #767)
- - Added Spanish translation of web interface (STR #772,
- STR #802)
- - The LPD backend now uses geteuid() instead of getuid()
- when it is available (STR #752)
- - The IPP backend did not report the printer state if
- the wait option was set to "no" (STR #761)
- - The printer state was not updated for "STATE: foo,bar"
- messages (STR #745)
- - Added new CUPS API convenience functions which accept
- a HTTP connection to eliminate extra username/password
- prompts. This resolves a previous authentication
- caching issue (STR #729, STR #743)
- - The scheduler did not correctly throttle the browse
- broadcasts, resulting in missing printers on client
- machines (STR #754)
- - The scheduler did not pass the correct CUPS_ENCRYPTION
- setting to CGI programs which caused problems on
- systems which used non-standard encryption settings
- (STR #773)
- - The lpq command showed 11st, 12nd, and 13rd instead of
- 11th, 12th, and 13th for the rank (STR #769)
- - "make install" didn't work on some platforms due to an
- error in the man page makefiles (STR #775)
- - Changed some calls to snprintf() in the scheduler to
- SetStringf() (STR #740)
-
-
-CHANGES IN CUPS V1.1.21rc1
-
- - Fixed some "type-punned" warnings produced by GCC when
- -fstrict-aliasing is specified (STR #679)
- - The PDF filter incorrectly calculated the bounding box
- of a page (STR #682)
- - The IPP backend did not use SSL when printing over a
- port other than 443 (STR #730)
- - The scheduler could crash when processing a Limit or
- LimitExcept directive (STR #728)
- - The lpq, lpr, and lp commands did not differentiate
- between the server being unresponsive and the lack of
- a default printer (STR #728)
- - The PAM checks in the configure script did not stop
- after the first match (STR #728)
- - The cups-config man page was incorrectly placed in
- section 3 (STR #728)
- - The cupstestppd utility did not show a warning message
- when a PPD file indicated BCP protocol support with
- PJL (STR #720)
- - The scheduler did not return the correct exit code
- when startup failed (STR #718)
- - The cupsRasterReadPixels() function checked for
- EAGAIN, which caused problems on FreeBSD (STR #723)
- - The cupsGetDests() function did not use the current
- encryption setting (STR #653)
- - The scheduler did not properly parse name-based
- BrowseRelay directives in the cupsd.conf file (STR
- #711)
- - The IPP backend now supports the following options in
- the device URI: encryption, waitjob, and waitprinter
- (STR #699)
- - The parallel, serial, socket, and USB backends did not
- return a non-zero exit status when a job failed to
- print in the middle of sending it (STR #715)
- - Location directives in the cupsd.conf file were
- case-sensitive for printer and class names, so
- queue-specific access control was not reliable (STR
- #700)
- - cupsDoFileRequest() did not handle HTTP continue
- status messages in all cases, causing sporatic
- problems with IPP printers from some vendors (STR
- #716)
- - The rastertodymo driver now supports the Zebra ZPL
- language (STR #713)
- - The test suite no longer generates a printcap file,
- which caused problems when testing as the root user
- (STR #693)
- - The scheduler now updates the accepting state of an
- implicit class based upon the accepting state of its
- member printers (STR #697)
- - The pstops filter didn't properly skip leading PJL
- commands (STR #664)
- - The reinterpret_cast keyword was not highlighted when
- printing C/C++ source files in prettyprint mode (STR
- #694)
- - Fixed a segfault problem with some of the client
- programs (STR #668)
- - When using RunAsUser, the scheduler did not correctly
- set the ownership of the log files, preventing log
- file rotation (STR #686)
- - The image filters did not correctly load 1-bit PNG
- files (STR #687)
- - The pdftops filter did not show all annotation objects
- in a PDF file (STR #674)
- - The pdftops filter did not print the contents of
- textual form elements, making it impossible to print a
- filled-in form (STR #663)
- - Integrated the MacOS X/Darwin USB backend into the
- CUPS baseline (STR #661)
- - The USB backend incorrectly reported "media tray
- empty" (STR #660)
- - The scheduler did not use a case-insensitive
- comparison when checking for group membership, which
- caused problems with Win9x clients printing via SAMBA
- (STR #647)
- - The scheduler did not report the addresses associated
- with certain network errors, making troubleshooting
- difficult (STR #648, #649)
- - The cupstestppd program did not allow a default choice
- of "Unknown" as required by the PPD spec (STR #651)
- - The select() buffers are now allocated to be at least
- as large as sizeof(fd_set) (STR #639)
- - The LPD backend now supports overriding the print job
- username via the device URI (STR #631)
- - The scheduler did not handle an unknown MIME type when
- checking for a CGI script (STR #603)
- - Added a timeout optimization to the scheduler's main
- loop to allow CUPS to sleep more of the time (STR
- #629)
- - The USB backend now retries printing to devices of the
- form "usb://make/model" if any USB port shows up as
- "busy" (STR #617)
- - The httpGetHostByName() function did not range check
- IP address values (STR #608)
- - The httpUpdate() function could return HTTP_ERROR
- instead of the HTTP status if the server closed the
- connection before the client received the whole
- response (STR #611)
- - The LPD mini-daemon did not allow the administrator to
- force banner pages on (STR #605)
- - Added PAM support for Darwin/MacOS X (STR #550)
- - The web interface now provides a "Set As Default"
- button to set the default printer or class on a server
- (STR #577)
- - The HTTP authentication cache was broken (STR #517)
- - The cupstestppd utility now fails PPD files that have
- a DefaultOption keyword for a non-existance option
- name (STR #476)
- - Optimized the scanning of new PPD files on scheduler
- startup (STR #424)
- - The EPM list file did not include the bin, lib, or
- sbin directories (STR #598)
- - The web interface did not redirect administration
- tasks to the primary server for a class or printer
- (STR #491, #652)
- - The cups-lpd mini-daemon did not reject print jobs to
- queues that were rejecting new print jobs (STR #515)
- - Some calls to the ctype functions did not account for
- platforms that use a signed char type by default (STR
- #518)
- - The scheduler could use excess amounts of CPU if a CGI
- program was sending data faster than the client could
- take it (STR #595)
- - Updated the Ghostscript 8.x integration stuff (STR
- #484)
- - The lpd backend used a source port of 732 by default,
- which is outside of the range defined by RFC 1179;
- also added a new (default) "reserve=any" option for
- any priviledged port from 1 to 1023 (STR #474)
- - The scheduler did not check for a valid Listen/Port
- configuration (STR #499)
- - The cupsPrintFiles() function did not always set the
- last IPP error message (STR #538)
- - The pstops filter did not write the PostScript header
- line if the file began with a PJL escape sequence (STR
- #574)
- - The printer-is-accepting-jobs status of remote
- printers was not sent to clients via browsing or
- polling (STR #571)
- - Browse packets did not indicate whether a printer
- was accepting or rejecting jobs.
- - The web interface did not show the printer state
- history information (STR #592)
- - The rastertoepson filter would crash under certain
- cirsumstances (STR #583)
- - The USB backend did not handle serial numbers using
- the (incorrect) SN keyword and did not terminate the
- make and model name strings properly (STR #471, STR
- #588)
- - The USB backend did not build on Solaris x86 (STR
- #585)
- - The cupsDoAuthentication() function did not use the
- method name for Digest authentication (STR #584)
- - The scheduler could crash if a print job could not be
- printed and the PreserveJobHistory option was turned
- off (STR #535)
- - cups-lpd now logs the temporary filenames that could
- not be opened in order to make troubleshooting easier
- (STR #565)
- - cupsGetJobs() now returns -1 on error (STR #569)
- - Added localization for Belarusian (STR #575)
- - The LPD backend used the full length of the hostname
- when creating the data and control filenames, which
- causes problems with older systems that can't handle
- long filenames (STR #560)
- - The scheduler did not refresh the common printer data
- after a fast reload; this prevented banner and other
- information from being updated (STR #562)
- - The scheduler did not send common or history data to
- the client when processing a CUPS-Get-Default request
- (STR #559)
- - The httpFlush() function did not always flush the
- remaining response data in requests (STR #558)
- - The scheduler could complete a job before it collected
- the exit status from all filters and the backend (STR
- #448)
- - The PPD conformance tests did not catch group
- translation strings that exceeded the maximum allowed
- size (STR #454)
- - Updated the client code in the scheduler to close the
- client connection on errors rather than shutting down
- the receive end of the socket; this caused resource
- problems on some systems (STR #434)
- - cups-polld didn't compile on Tru64 5.1B (STR #436)
- - "lpc stat" crashed if the device URI was empty (STR
- #548)
- - The scheduler did not compile without zlib (STR #433)
- - std:floor() cast needed on IRIX 6.5 with SGI C++
- compiler (STR #497)
- - cupsRasterReadPixels() and cupsRasterWritePixels() did
- not handle EAGAIN and EINTR properly (STR #473)
- - RequiresPageRegion should not be consulted for Manual
- Feed (STR #514)
- - International characters were not substituted in
- banner files properly (STR #468)
- - Updated pdftops to Xpdf 2.03 code to fix printing bugs
- (STR #470)
- - The Digest authentication code did not include the
- (required) "uri" attribute in the Authorization
- response, preventing interoperation with Apache
- (STR #408)
- - The web interface could lockup when displaying certain
- URLs (STR #459)
- - The PostScript filters now convert underscores ("_")
- to spaces for custom classification names (STR #555)
-
-
-CHANGES IN CUPS V1.1.20
-
- - The pstops filter didn't properly handle collated,
- duplexed copies of documents with an odd number of
- pages on printers that did not do their own collated
- copies (STR #389)
- - Tru64 doesn't define a prototype for hstrerror() (STR
- #430)
- - Updated the pdftops filter to use the annotation flags
- instead of the subtype to determine whether to print
- an annotation (STR #425)
- - The French web interface localization did not use
- absolute paths for the navigation bar (STR #428)
- - The CUPS test suite did not undefine the PRINTER and
- LPDEST environment variables. This could lead to bogus
- test results (STR #380)
- - The cupsLangDefault() function now works if you don't
- have the base OS localization installed (STR #418)
- - The pdftops filter no longer needs to create temporary
- files with tmpnam (STR #406)
- - The HTTP code did not use a case-insensitive
- comparison when checking for the Basic authentication
- method (STR #407)
- - The httpEncode() function always added a trailing "="
- character, which is not required by the Base64
- encoding specification (STR #407)
- - The signal handlers did not need to call sigset();
- this caused a recursion problem on some versions of
- IRIX (STR #422)
- - Moved the scheduler termination code into the mainline
- to be consistent with the way other signals are
- handled (STR #423)
- - The cupsaddsmb program didn't export the new CUPS
- driver for Windows properly (STR #390)
- - The ppdOpen() functions did not issue an error when a
- translation string exceeded the maximum allowed by the
- Adobe PPD specification (STR #399)
- - The default landscape orientation was not the same as
- that defined in the PPD file (STR #397)
- - Updated the pstoraster patch files and CUPS driver to
- work with Ghostscript 8 (STR #402)
- - The hpgltops filter did not skip PJL commands (STR
- #379)
-
-
-CHANGES IN CUPS V1.1.20rc6
-
- - "lp -i jobid -H restart" would often return an error
- even though the job restarted successfully (STR #362)
- - The scheduler did not check for invalid allow/deny
- addresses such as "11.22.33.44/24". It now masks off
- the extra address bits and logs a warning message in
- the error_log file (STR #337)
- - The cupstestppd utility now checks for missing
- ImageableArea and PaperDimension attributes for each
- defined PageSize (STR #365)
- - The IPP code did not wait for a reply indefinitely on
- HTTP connections in "blocking" mode (STR #377)
- - The web interfaces did not rewrite the default printer
- URI properly (STR #299 and #369)
- - The LPD backend passed the C and L commands in the
- wrong order (STR #378)
- - The Dymo label printer driver did not set the label
- length properly (STR #373)
- - The scheduler did not support job IDs higher than
- 99999 (STR #371)
- - The Visual C++ project files did not work (STR #366)
- - The scheduler's cupsLangSeek() function did not reset
- the "EOF" flag, preventing compressed files from being
- typed properly in some cases (STR #368)
- - The cupsLangGet() cache was only used if the locale
- name provided an explicit character set name (STR
- #354)
- - The CUPS API convenience functions did not call
- cupsLangFree() when they were done with the
- localization data (STR #354)
- - The scheduler did not return the
- job-hold-until-supported or job-hold-until-default
- attributes (STR #356)
- - The cupsaddsmb program did not support the new CUPS
- driver for Windows (STR #357)
-
-
-CHANGES IN CUPS V1.1.20rc5
-
- - The scheduler did not initialize the browse socket
- file descriptor properly when only SLP browsing was
- enabled (STR #259)
- - The scheduler accessed the job attributes before they
- were set (STR #347, fix to STR #335)
- - The cupsCancelJob() function did not return 0 when the
- job could not be canceled (STR #340)
-
-
-CHANGES IN CUPS V1.1.20rc4
-
- - The scheduler did not move the incoming job attributes
- in the operation group to the job group (STR #335)
- - The cupsDoFileRequest() function did not check for an
- early HTTP response while sending the file (STR #314)
- - The web interfaces did not quote #, ?, or . in printer
- names, which caused some problems with the generated
- URLs (STR #320)
- - CUPS couldn't be completely compiled with the -dDEBUG
- option (STR #331)
-
-
-CHANGES IN CUPS V1.1.20rc3
-
- - More SLP changes (STR #259)
- - Revamped the child signal handling code to completely
- avoid deadlock issues on Solaris (STR #325)
- - The lpadmin command displayed an incorrect error
- message when the "-u" option was provided with no
- arguments (STR #313)
- - The web admin interface did not display an error
- message if the PPD file could not be loaded (STR #308)
- - The ppdEmit() functions did not use the correct
- orientation value position for custom page sizes (STR
- #292)
-
-
-CHANGES IN CUPS V1.1.20rc2
-
- - The serial backend set the IXANY option on the port
- for XON/XOFF flow control; this caused problems with
- printers that returned status info but were not ready
- for more print data (STR #287)
- - The scheduler didn't support scripted index files
- (index.php, index.pl, etc. - STR #290)
- - The scheduler did not correctly localize script files
- with "GET" variables (STR #268)
- - Changes in job classification are now logged (STR
- #289)
- - Fixed a few more SLP-related bugs (STR #259)
- - Updated the user/group configure checks for MacOS X
- 10.3 (STR #270)
- - Fixed an offset bug in the PDF filter (STR #284)
- - The cupsDoRequest() and cupsDoFileRequest() functions
- did not map several HTTP status codes to their IPP
- counterparts. This made detecting certain conditions
- very difficult (STR #277)
- - Config, spool, and status files are now owned by the
- scheduler user (usually root) with read permission for
- the filter group (STR #283)
- - The HP-GL/2 filter did not support the SI command,
- some values for the AD and SD commands, and did not
- rotate labels properly via the DI command (STR #282)
- - The fax support did not update/set the job-hold-until
- attribute when a fax job fails (STR #269)
- - The cupsLangGet() function didn't support locales of
- the form "ll.charset" (STR #271)
- - The scheduler did not use the charset when getting the
- language localization for a request; this caused extra
- disk IO for every request (STR #271)
- - The scheduler did not support requests with more than
- one language specified (STR #267)
-
-
-CHANGES IN CUPS V1.1.20rc1
-
- - The scheduler now waits up to 60 seconds before
- restarting to allow active jobs to complete printing
- and pending requests to be processed (STR #226)
- - The web interface did not work on systems where time_t
- is 64 bits (STR #262)
- - Added backend tweeks and content-length check from Red
- Hat (STR #253)
- - The USB backend now uses the 8255 constants instead of
- the standard constants when reporting printer status
- bits on Linux (STR #254)
- - Added new cupsDoAuthentication(), cupsGetFd(),
- cupsGetFile(), cupsPutFd(), and cupsPutFile() functions
- to the CUPS API (STR #112)
- - The PDF filter always scaled and offset pages; this
- caused problems under MacOS X, so now the "fitplot"
- option controls whether PDF files are scaled to fit
- within the printable area of the page (STR #250)
- - The LPD backend did not support the port number in a
- URI (STR #247)
- - Some filters didn't properly support boolean options
- (STR #249)
- - Landscape PDF files were not always offset by the
- correct amount when rotating (STR #243)
- - The scheduler could hang in a call to localtime() when
- logging messages from the signal handler (STR #242)
- - The PDF filter no longer prints form widgets; this
- duplicates the behavior of Acrobat Reader (STR #241)
- - cupsGetPPD() didn't handle a late termination of a
- HTTP connection with the server (STR #220)
- - ppdOpen() did not correctly check for "*PPD-Adobe-4."
- on the first line of a PPD file. This caused incorrect
- PASS results for some PPD files (STR #233)
- - cupsEncodeOptions() did not allow boolean options to
- use "yes" and "on" for true values (STR #227)
- - The pstops filter only sent the TBCP exit sequence if
- it was defined in the JCLEnd attribute in the PPD file
- (STR #224)
- - Support for more than 1024 files was broken on Solaris
- 9 (STR #217)
- - The setgroups() calls now pass in 1 group (the
- configured group) instead of 0 for compatibility with
- BSD and Darwin (STR #213)
- - The scheduler's built-in broadcast throttling was
- ineffective since incoming packets would cause the
- next group of outgoing packets to be sent immediately
- rather than waiting for the next time slot (STR #211)
- - Added a new ppdSetConformance() function to set the
- conformance requirements for PPD files. Currently only
- two levels are defined, PPD_CONFORM_RELAXED and
- PPD_CONFORM_STRICT, and the default is the relaxed
- level (STR #212)
- - The IPP backend did not correctly execute the
- pictwpstops filter on OSX (STR #210)
- - The LPD backend did not set the banner class when the
- "banner=yes" option was specified in the device URI
- (STR #209)
- - The imagetoraster filter did not support all of the
- page device attributes (STR #208)
- - The pdftops filter incorrectly auto-rotated pages when
- the user already had specified the proper orientation
- (STR #207)
- - Fixed AIX shared library support (STR #201)
- - Added support for live testing with Valgrind (STR
- #193)
- - The CGI programs now collect the list of needed
- attributes for the class, job, and printer template
- files (STR #192)
- - The scheduler now passes the first port that is bound
- to the local loopback or "any" addresses to the CGI
- programs rather than the port that the browser
- connected to (STR #103)
- - The cupstestppd program now checks for bad
- JobPatchFile attributes and incorrect versions of the
- Manufacturer attribute for HP printers (STR #155)
- - The filter makefile incorrectly installed
- libcupsimage.a in the filter directory (STR #180)
- - The scheduler did not verify that the job history
- files define the job-priority and
- job-originating-user-name attributes (STR #178)
- - The pstops filter didn't handle poorly-formed binary
- PostScript files that had CTRL-D's in them (STR #156)
- - The ppdOpen*() and cupsLangGet() functions did not
- make a copy of the old locale strings when using the
- POSIX locale when reading files, which apparently
- caused problems with some implementations of the
- standard C library. (STR #159)
- - The pdftops filter did not work properly with some
- embedded Type1C fonts (STR #177)
- - Updated the pdftops filter to be based upon Xpdf
- 2.02pl1 (STR #191)
- - The scheduler did not reset the group list when
- running CGI and filter processes (STR #185)
- - The scheduler no longer calls malloc and free from the
- signal handlers (STR #190)
- - The USB backend now uses the manufacturer and model
- strings if the description string is not available
- (STR #174)
- - The ppdOpen functions still supported the
- VariablePaperSize attribute, which was removed in v4.0
- of the PPD spec. This caused problems with PPD files
- that relocated the PageSize option to a non-standard
- group (STR #158)
- - The cups.list file referenced MAN1EXT, MAN3EXT, and
- MAN5EXT, but none of those were actually defined (STR
- #147)
- - Chunked requests could cause a Denial of Service if
- the connection is terminated before the first byte of
- chunk data is sent/received (STR #143)
- - Printers with special characters in their names were
- not accessible from the web interface (STR #120)
- - The lpstat command now shows the correct interface
- script or PPD file, if any, for a print queue (STR #89)
- - The lpstat command now shows the printer-state-message
- and printer-state-reasons attributes whenever they are
- not blank (STR #152)
- - The French and German option-conflict.tmpl template
- files did not get installed (STR #148)
- - The cups.list.in file did not work when compiling
- without shared libraries (STR #149)
- - The DSOFLAGS included the LDFLAGS, which causes
- problems on at least HP-UX (STR #150)
- - The fax printer support did not keep track of the fax
- capability bit (STR #144)
- - The appleLangDefault() function could leak a small
- amount of memory (STR #145)
- - The ppdOpen() functions now mirror all normal
- attributes to the attribute list; previously only
- certain unassigned attributes would be added (STR
- #139)
- - The ppdEmitJCL() function wrote JCL commands to stdout
- instead of the passed file pointer (STR #142)
- - The httpGets() function could, in certain states,
- block waiting for data (STR #132)
- - The cupsEmitJCL() function not outputs an empty @PJL
- command after the PJL language escape to work around
- bugs in certain PJL implementations (STR #131)
- - The cupsEmit*() functions didn't set the orientation
- value properly (STR #127)
- - The cups.spec file didn't list the rc2.d init
- directory or the cupstestppd file (STR #134)
-
-
-CHANGES IN CUPS V1.1.19
-
- - The GNU TLS code incorrectly used
- gnutls_check_pending() instead of
- gnutls_record_check_pending() (STR #128)
- - The ppdEmit() functions output "PageSize Custom"
- instead of "CustomPageSize True" in the DSC comments.
- Also, the custom page size code did not use the
- ParamCustomPageSize attributes (STR #127)
- - The cupstestppd command did not list the conflicting
- options (STR #123)
- - The lpq command did not ensure that there was
- whitespace between the fields in the job listing (STR
- #117)
- - The German web templates had errors (STR #119)
- - The configure script didn't specify the static
- libraries properly when configuring with the
- --disable-shared option (STR #104)
- - The cups.list file used file dependencies for package
- formats other than portable, RPM, and Debian (STR #98)
- - cupsLangGet() didn't use its language cache (STR #97)
- - "lpq -P" would segfault instead of showing a usage
- message (STR #94)
- - Fixed compiler warnings in pdftops filter (STR #96)
-
-
-CHANGES IN CUPS V1.1.19rc5
-
- - Jobs with banner pages that were printed to implicit
- classes would get double banner pages for each
- file/banner in the job (STR #68)
- - The mime.convs file was missing the filter definition
- for Windows BMP (image/x-bitmap) files (STR #85)
- - The scheduler allowed some READ-ONLY job attributes to
- be set, which could cause the scheduler to fail on the
- next restart (STR #82)
- - The lp and lpr commands did not report when the
- scheduler was not responding; instead, the user would
- incorrectly see a "no default destination" error (STR
- #70)
- - cupsLangGet() could fail on OSX due to a corrupt
- language preference (STR #78)
- - Added more checks for HTTP request timeouts.
- - The scheduler dropped the first non-alpha character
- after an open brace when doing attribute substitutions
- in banner pages (STR #77)
- - The scheduler child might send SIGUSR1 to the parent
- before the signal handler was installed; this didn't
- prevent the scheduler from starting but produced an
- annoying error message (STR #45)
-
-
-CHANGES IN CUPS V1.1.19rc4
-
- - The lp command did not accept "-" for printing from
- the standard input as required by POSIX 1003.1 (STR
- #59)
- - Added the job-originating-host-name information for
- the page_log file documentation in the SAM (STR #31)
- - The German web interface templates did not use the
- right paths for job operations (STR #54)
- - The scheduler would consume all available CPU if
- started with a pending job in the queue (STR #35)
- - The polling daemon allocated an extra localization
- buffer but did not free it, causing cups-polld to
- eventually use all available memory (STR #40)
-
-
-CHANGES IN CUPS V1.1.19rc3
-
- - The scheduler could get in an infinite loop cancelling
- jobs using "cancel -u user dest" (STR #48)
- - The "cancel -u user" command did nothing (it should
- cancel all jobs on all printers owned by the named
- user - STR #48)
- - The scheduler would write 0-length job control files
- (STR #46)
- - Updated the French man pages (translation provided by
- Gilles QUERRET)
- - The scheduler would delete all printers from
- printers.conf if a job was active when a HUP signal
- was handled (STR #47)
- - The cups-polld program would leak memory if it was
- unable to send browse packets to the loopback
- interface (STR #40)
- - The scheduler did not put the
- job-originating-host-name attribute in the job
- attributes group.
- - The text filter did not default to wrapping text as
- defined by the IPP implementation document.
- - Scan backends first, PPDs second (STR #37)
- - Updated the Netatalk documentation in the SAM (STR #38
- and #39)
- - The test suite sent text files to a non-PS print queue,
- which requires ESP Ghostscript (provided separately).
- Now send the JPEG test file (STR #33)
- - The test suite did not show the estimated disk space
- requirements (STR #33)
- - The test suite did not set the MaxLogSize directive to
- 0 to prevent log file rotation (STR #33)
- - The test suite still setup the old CUPS Ghostscript
- symlinks (STR #33)
- - The pstops filter did not report the correct number of
- copies for the page_log file when printing collated
- copies to a printer that doesn't support them in
- hardware (STR #32)
- - cupsLangGet() needs to set the CTYPE locale to "C"
- (POSIX) to avoid erroneous tolower/toupper values (fix
- suggested by Bjoern Jacke)
- - Fixed a typo in the cups.list.in file.
- - Updated all of the Western European locales to default
- to ISO-8859-15 (for Euro support, suggested by Bjoern
- Jacke)
- - Updated the German message catalog (update provided by
- Bjoern Jacke)
-
-
-CHANGES IN CUPS V1.1.19rc2
-
- - cupsLangGet() now sets the encoding field based on the
- trailing charset in the locale name, and doesn't look
- for a message catalog in a specific locale.charset
- directory. This fixes STR #26 and is more in line
- with the CUPS 1.2 implementation.
- - The configure script now aborts if the "ar" command or
- compilers cannot be found.
- - The static cupsimage library was not built by default.
- - The path for the "ln" command was hardcoded in
- Makedefs.in instead of being checked at configure time
- (STR #28).
- - Banner pages containing unescaped { characters would
- not work.
- - The printer-state-time collection attribute was
- encoded as an enumeration instead of an integer.
- - The printer-is-accepting-jobs collection attribute was
- was not added to the collection value.
- - The printer-state-sequence-number collection attribute
- was not added to the collection value.
- - Fixed typo and const mismatch in IPP backend.
- - Updated the man pages for the new configuration
- directives.
- - Updated the SAM for MacOS 10.2, the CUPS drivers for
- windows, the available LPD backend options, and the
- new configuration directives.
- - The imagetops filter didn't position images properly
- on the page (STR #18)
- - The configure script didn't add CPPFLAGS to the
- compiler options or LDFLAGS to the DSO options (STR
- #13)
- - The scheduler would try to write a debug log message
- when starting a job that contained a NULL string.
- Since not all versions of snprintf() support NULL
- string pointers this caused some problems (STR #20)
- - The testipp program now supports reading of IPP
- message files such as those used for the job history
- in /var/spool/cups.
-
-
-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.
-
-
-CHANGES IN CUPS V1.1.18
-
- - Fixed a bug in the Set-Job-Attributes code in the
- scheduler that would cause it to crash or continuously
- write a job control file.
- - SECURITY FIX: The scheduler now provides a FileDevice
- directive to control whether new printers can be added
- using device URIs of the form "file:/filename". The
- default is to not allow printers with these device
- URIs.
- - The scheduler did not compute the cost of filters
- properly, nor did it choose a multi-filter solution
- with a lower cost than a single filter solution.
- - Now install CUPS PPD file test utility (cupstestppd)
- to support basic conformance testing of PPD files.
- - The scheduler now logs an error message when it sees a
- non-conforming PPD file.
- - Upgraded pdftops filter to Xpdf 2.01 with fixes for
- TrueType fonts.
- - Added a MaxClientsPerHost configuration directive to
- provide limited protection against Denial of Service
- attacks.
- - SECURITY FIX: Potential underflow/overflow bug in web
- interface.
- - SECURITY FIX: Race condition in certificate creation.
- - SECURITY FIX: Bad URIs in browse packets could be used
- to exploint the web interface underflow/overflow bug.
- - SECURITY FIX: Some types of Denial of Service attacks
- were not handled properly, so once the attack was over
- the scheduler did not close the connections
- immediately on all platforms.
- - SECURITY FIXES: Added integer overflow/underflow
- checks for all image formats.
- - The pstops filter didn't reset the showpage operator
- back to its original at the end of a job; this
- prevented the concatenation of documents (used
- primarily for CUPS 1.2...)
- - The cupsGetPPD() function didn't always set the
- cupsLastError() value when an error occurred.
- - The IPP media, output-bin, and sides attributes took
- precedence over the corresponding PPD options, which
- caused inconsistent behavior under MacOS X with some
- PPD files.
- - The cupsaddsmb utility specified the wrong number of
- arguments to the adddriver command when adding the
- Win9x PostScript drivers.
- - The web interface did not always report the correct
- error message.
- - The scheduler did not clear the POSIX signal action
- structure when waiting for the child to send it a
- SIGUSR1 signal; this could cause the signal handler
- not to be called properly, preventing the parent
- process from returning.
-
-
-CHANGES IN CUPS V1.1.17
-
- - The "manual_copies" option did not work when the LPD
- backend had to retry a print job.
- - The image filters did not convert GIF images properly.
- - The RunAsUser option was incompatible with the new
- daemon-mode code in 1.1.16.
- - Fixed a problem with the Set-Job-Attributes and
- PostScript job ticket code in the scheduler - the
- "last" attribute pointer was never updated, which
- could cause the scheduler to crash when applying job
- ticket data.
- - Fixed a problem in the scheduler that caused it to
- continue processing HTTP requests on a connection
- after it was shutdown.
- - The scheduler now allows accounts authenticated via
- PAM to not have a corresponding UNIX account, but
- group membership still requires the account name to be
- listed in the UNIX group file(s)...
- - The scheduler used a fixed-size (16k) buffer for
- encoding job options for filters; it now dynamically
- allocates and expands the buffer as needed depending
- on the options that are sent in a job.
- - The pdftops filter didn't support all of the MacOS
- characters for MacRoman encoded fonts.
- - The cupsEncodeOptions() and cupsParseOptions()
- functions now conform to the grammer defined by the
- current draft of the PAPI specification. The main
- difference is that option=yes and option=no are no
- longer treated as boolean options.
- - The IPP backend didn't honor the encryption settings
- in /etc/cups/client.conf.
- - Fixed a potential bug in the HTTP code which was
- caused by servers sending the status line and
- newline(s) in separate packets.
- - User-defined classification strings are now printed
- verbatim - previously the classification box would be
- empty.
- - Re-added Spanish to the list of PPD languages that
- CUPS supports.
- - CUPS API library user and temp file updates for
- Windows.
- - The image filters did not properly handle grayscale
- printing of Sun Raster images.
- - The scheduler never reset the NumJobs variable before
- loading the job list (previously this only happened on
- a full start, so the problem was never apparent...)
- - The HTTP and IPP read/write code didn't handle EINTR
- (interrupted system call) errors.
- - When under high load, the scheduler could abort due to
- the wrong errno value after a select() call. This was
- caused by the child signal handler.
- - Added new load tests to the test target to verify that
- cupsd can handle hundreds of simultaneous jobs without
- error.
- - The Solaris USB backend now supports the new device
- URI syntax.
- - The ppdOpen*() functions now reset the numeric locale
- settings while loading a PPD file.
- - Fixed the libtool build rules.
- - The manpage make rules didn't use $(MAKE) and
- $(MFLAGS) for the language subdirectories.
- - Now set the LC_TIME locale category to get the
- properly localized time string.
- - Fixed a problem in the scheduler that would cause the
- web interface problems when adding, modifying, or
- configuring a printer or class.
- - The backends now ignore SIGPIPE so that failed job
- filters will not stop a print queue.
- - The lpstat command did not allow for destination lists
- ("lpstat -v printer1,printer2")
- - Fixed parsing of long filter status messages in the
- scheduler.
- - Added some startup performance enhancements to the
- scheduler so that the printer object information is
- regenerated fewer times and the MIME type database is
- not filled with lots of empty filters for raw/direct
- queues.
- - The LPD backend now sends the job title as the print
- filename.
- - Added support for variable sizes in the EPSON dot
- matrix printer drivers. This allows for pages as
- short as 1/2" (1 row of labels) and does not do an
- automatic form feed.
- - French translation updates.
- - The filters did not quote the page label string when
- embedding it in PostScript output.
- - The serial backend now enumerates serial ports under
- MacOS X.
- - The pdftops filter contained font rasterizer code that
- wasn't being used and that depended on X11. This code
- has been removed.
-
-
-CHANGES IN CUPS V1.1.16
-
- - The cancel and lprm commands now both display an error
- message and return a non-zero exit status if an
- attempt is made to cancel a job on a non-existent
- printer.
- - The lpoptions command incorrectly complained if a
- request to delete a non-existent printer was made.
- - If the client.conf file defines an alternate server
- name, the "configure printer" action in the web
- interface might not work.
- - The lpstat command now supports a "-W" option so that
- you can display completed jobs as well as
- not-completed (pending) jobs.
- - The lp and lpr commands did not return an error when
- one or more files in a set of files for printing could
- not be printed.
- - The lp, lpadmin, and lpstat commands now consistently
- return with a non-zero exit status when an error
- occurs.
- - The scheduler would not accept print jobs sent to a
- stopped remote printer.
- - The texttops filter incorrectly converted the page
- numbers in the prettyprint header to double-byte
- characters when printing a non-Unicode text file. This
- caused an extra space to appear between each digit in
- the page number.
- - The scheduler did not use a case-insensitive
- comparison when adding filters for a printer.
- - Upgraded the pdftops filter to Xpdf 1.01.
- - The scheduler no longer passes the page-border and
- number-up-layout attributes to filters when printing
- banner pages.
- - The LPD backend now uses a 30-second timeout when
- sending commands and control files, and a 30-second
- timeout when retrieving responses from an LPD server.
- If a timeout occurs, it retries indefinitely. This
- helps to make LPD printing over VPNs work more
- reliably.
- - The USB backend now supports device URIs based on the
- printer serial number and/or model number under Linux.
- This avoids the "wrong device filename" problem when
- using more than one USB printer.
- - Now just shutdown the receiving end of a client
- connection when sending an error that requires the
- server to disconnect from the client afterwards. This
- fixes a problem when doing remote administration with
- encryption enabled.
- - The scheduler did not send a printer-state-message
- attribute if the string was empty; it now always sends
- this attribute. This caused the printer message to be
- displayed for other printers in the web interface.
- - The LPD backend now supports a "manual_copies" option,
- e.g.: "lpd://server/queue?manual_copies=no", in order
- to handle copies for raw jobs to printers that don't
- implement the LPD protocol properly...
- - The "mirror" option was not being handled by the
- PostScript or image filters.
- - Updated the cupsaddsmb command to support the new CUPS
- driver for Windows NT/2k/XP.
- - Filter status lines longer than 1023 characters could
- cause the scheduler to get into an infinite loop.
- - The scheduler didn't reset the job state to pending
- when modifying an active printer.
- - Now limit the maximum number of recursion steps when
- searching for a filter for a job, in case a user
- defines a circular filter rule.
- - The PostScript filter would embed an invalid
- requirements comment in some cases.
- - Added support for embedded job tickets in PostScript
- files.
- - The PostScript filter now detects EPS files and should
- better handle printing EPS files.
- - The cancel command now ignores a trailing destination
- name when cancelling a specific job ID (Solaris
- compatibility).
- - The scheduler now rejects jobs with copies outside the
- range of 1 to MaxCopies, inclusive.
- - Added new MaxCopies directive to set the maximum
- number of copies that a user can request.
- - The scheduler didn't block signals while it processed
- others and when it forked processes.
- - The scheduler checked for new jobs to print when
- stopping a job. This caused jobs to restart before a
- shutdown.
- - Updated the CUPS startup script to better support
- different timezones and to support the RedHat/Mandrake
- init script functions, if available.
- - The scheduler did not properly handle backslashes in
- banner files; it incorrectly assumed that "\c" should
- always be replaced by "c", instead of only looking for
- "\{" and replacing it by "{".
- - The texttops filter didn't handle prettyprint=no.
- - The text and HP-GL/2 filters didn't check for other
- common duplex option names like cupsMarkOptions() did.
- - "lpoptions -x printer" no longer clears the "default
- printer" status of the printer.
- - cupsTempFd() now stops trying to create a temporary
- file after 1000 tries, and aborts on any error other
- than EEXIST. This should prevent lp/lpr hangs due to
- a bad or missing temporary directory.
- - The lpadmin command did not send the right URI to the
- scheduler when setting options on classes. This
- caused a client-error-bad-request error.
- - The CUPS API convenience functions would attempt to
- connect to the remote server name in a
- "printer@server" printer name instead of dealing with
- the default (usually local) server. Aside from
- causing user confusion, the remote server name might
- not be resolved properly, causing further problems.
- - "lp -q" would cause the "lp" command to segfault, as
- the program would try to print the option letter that
- caused the error using the wrong index into the
- command-line; bugfix from Debian.
- - Fixed a minor inconsistancy in the encoding of boolean
- attributes from printer options in
- cupsEncodeOptions().
- - Added a FilterNice directive which sets the priority
- of job filter processes that are run by the scheduler.
- - Added Solaris x86 USB printer support.
- - The USB backend now reports both the ulpt and unlpt
- devices under *BSD.
- - The "lpstat -o" command would truncate the
- "printer-jobid" string if it was longer than 21
- characters.
- - The PJL-based MIME type rules now look in the first
- 1024 bytes instead of just the first 512 bytes to find
- the language mode.
- - The image file types are now listed explicitly in the
- mime.convs file so that additional image file formats
- do not use the standard CUPS image filters by default.
- - Updated the Software Programmers Manual to include
- all of the CUPS API functions.
- - ppdOpen*() no longer sorts choices for an option.
- - The web interface now enforces constraints in PPD
- files when configuring a printer.
- - When stopping a printer, the scheduler didn't set the
- printer state before stopping the current job.
- - The cupsaddsmb utility now lists all data files for
- Win9x and WinMe clients when installing that Windows
- driver.
- - Jobs submitted to a class now bounce immediately to
- the next available printer rather than waiting until
- that printer is available.
- - Filters and backends now also get the CLASS
- environment variable set when a job is printed to a
- printer class instead of a normal printer.
- - Added French translations of the web interface, CUPS
- Overview, Software Administrators Manual, and Software
- Users Manual contributed by Marian REYT-LLABRES.
- - Added several "hint" messages for common configuration
- problems that are stored in the error_log file.
- - httpSeparate() now unquotes %xx characters in the
- username:password field of a URI.
- - When starting the scheduler in daemon mode, the parent
- process now waits for the child to signal it is ready
- to accept connections.
- - Added -F option to cupsd to run cupsd in the
- foreground but detach from the controlling terminal
- and current directory.
- - The scheduler did not reload jobs when receiving a HUP
- signal; this would cause problems since the pointers
- into the file type database would no longer be valid
- for existing jobs.
- - The scheduler did not save the network interface list
- update time, thus no caching of the network data was
- actually provided.
- - Updated the SuSE PAM configuration file.
- - The LPD backend now supports a "reserve" option and no
- longer reserves a priviledged port by default.
- - The cupsaddsmb command now continues past printers
- that do not have a PPD file to export.
- - The lpstat command didn't treat printer names as
- case-insensitive.
- - The lpstat command now reports the printer location
- attribute with "lpstat -l -p".
- - Fixed a bug in the vsnprintf() emulation function,
- which was used on old versions of HP-UX, IRIX, and
- Solaris.
- - The number-up option was incorrectly being used when
- printing banner pages.
- - Added support for Greek and Slovak PPD files.
- - CUPS now supports printer names containing any
- printable character, e.g. "123-abc", "foo-bar", etc.
- - The null filter was not supported in mime.convs due to
- a bug in the filter validation code.
- - Changes in the default printer and printer attributes
- were not always reflected in the generated printcap
- file.
- - Implicit classes did not inherit the location or
- description from member printers.
- - The httpGetHostByName() function did not handle
- hostnames that started with a number.
- - Updated the filters to use the %cupsRotation comment
- instead of %%Orientation to auto-rotate pages, since
- the use of %%Orientation is inconsistent.
- - Added the RootCertDuration directive to control how
- often the root authentication certificate is updated.
- - Increased the size of the IPP write buffer to 32k to
- allow for larger attribute values and to provide more
- efficient output of large numbers of attributes.
- - The polling daemon now retries the initial connection
- to the remote server; this fixes a problem when the
- remote server is unavailable when the scheduler starts
- up...
- - The scheduler didn't validate Digest users against the
- system group(s), so Digest and BasicDigest
- authentication didn't work for administration
- operations.
- - The scheduler now passes the SHLIB_PATH environment
- variable to child processes (HP-UX shared libraries)
- - The scheduler now maps accesses from the loopback
- interface to "localhost".
- - The cups-lpd mini-daemon sent a status code byte in
- response to queue state commands, but those commands
- only return textual data.
-
-
-CHANGES IN CUPS V1.1.15-1
-
- - The lpc and lprm sources didn't include the CUPS
- string function header, which is required on systems
- that don't have their own snprintf() function.
- - The French manpage Makefile tried to install the
- language subdirectories when it (obviously) didn't
- have to.
-
-
-CHANGES IN CUPS V1.1.15
-
- - Updated the CUPS license agreement for the new MacOS
- license exception.
- - The printer-info attribute now defaults to the printer
- name if no value has been set.
- - ppdOpen() and friends now add an "Auto" InputSlot
- option if none is provided to automatically select the
- correct tray.
- - Updated the ppdEmit() and ppdEmitFd() functions to
- (re)mark the correct PageSize or PageRegion option
- depending on the selected ManualFeed or InputSlot
- options.
- - ppdEmitFd() didn't handle custom page sizes.
- - Darwin uses <pam/pam_appl.h> instead of
- <security/pam_appl.h>.
- - The jobs.cgi web interface now handles all job
- operations, allowing the administrator to allow "job
- administrators" or operators to manage jobs (but not
- queues) on the server.
- - The cupsDoFileRequest() function now checks if the
- filename passed into the function is a directory, and
- returns the IPP_NOT_POSSIBLE error if so.
- - New SCSI printer backend.
- - Cleaned up handling of locales with trailing character
- set definitions.
- - Fixed handling of invalid PPD attributes inside
- OpenUI/CloseUI.
- - Fixed a problem with SSL and the job, printer, and
- admin CGIs on ports other than 443.
- - The scheduler didn't handle AuthClass properly.
- - Added French translation of man pages.
- - Updated the text filter to support the const_cast,
- dynamic_cast, and static_cast keywords in ISO C++.
- - Now use strlcat() and strlcpy() (or emulation
- functions) for easier string/buffer protection.
- - The auto-generated printcap/printers.conf files now
- have a small comment header explaining where the file
- comes from...
- - The PostScript filter now supports 6, 9, and 16-up
- output, as well as new page-border and
- number-up-layout options.
- - The lpoptions command didn't set options properly when
- using the default printer.
- - Added ConfigFilePerm and LogFilePerm directives.
- - Increased maximum size of MIME types to IPP_MAX_NAME
- to allow for longer printer names.
- - No longer create remote printers when loading job
- history data.
- - The printer-make-and-model attribute wasn't set when
- the PPD file didn't contain a NickName attribute.
- - Now handle PPD files with translation strings longer
- than 80 bytes - they are truncated if they go over...
- - The scheduler didn't handle signals until after it
- loaded the configuration files the first time; this
- caused problems on some installations that would
- restart the scheduler as the system booted into run
- level 3.
- - Now throttle broadcasts like we do for polling.
- - Fixed a bug in the reading of PPD files using CR's
- instead of CR LF's or LF's.
- - The scheduler would crash if cupsd.conf contained a
- BrowseProtocols line with no protocols listed.
- - The HTML job operation templates now link back to the
- destination printer or class.
- - The serial backend now detects USB serial devices.
- - The LPD mini-daemon (cups-lpd) now passes the
- job-originating-host-name attribute to the scheduler
- (cupsd).
- - Updated the IPP backend to reconnect after downgrading
- from IPP/1.1 to 1.0, and when sending requests to HP
- JetDirect interfaces that don't support HTTP
- Keep-Alive like they should.
- - Now pass NLSPATH and DYLD_LIBRARY_PATH environment
- variables, if defined, to CGI and job processes.
- - Removed the pstoraster filter (based on GNU
- Ghostscript 5.50) and now provide the raster "driver"
- and patch file necessary to use the current GNU
- Ghostscript 7.05 release.
- - Removed unnecessary fonts and updated the Courier and
- Symbol fonts to the latest versions to better support
- non-ISOLatin1 text.
- - The text filter now always embeds the Courier and
- Symbol fonts to ensure that they contain the full set
- of glyphs.
- - The lp and lpr commands now only override the SIGINT
- handler if it is not being ignored (patch from Robert
- Ambrose for some interactive software that catches
- SIGINT and will gracefully cancel the print...)
- - The PostScript image filter (imagetops) now supports
- printing CMYK images using the CMYK colorspace.
- - The image filters now support CMYK JPEG files, and
- correctly handles the inverted files from Photoshop
- (which seems to save RGBW data, not CMYK...)
- - Added a "check" target to the top-level makefile to
- conform with GNU standards (same as "test").
- - The IPP code didn't always map the POSIX locale "C" to
- the proper IPP language code.
- - The cupsaddsmb program was updated to use the
- setdriver command instead of addprinter.
- - Banner pages were not handled properly for implicit
- classes.
- - When tunneling to a remote system using SSH, the
- printer URIs for local printers on the remote system
- did not reflect the correct port number.
- - The Allow, Deny, BrowseAllow, BrowseDeny, and
- BrowseAddress directives now support the network
- interface names "@LOCAL" and "@IF(name)" for access
- control and browsing based on the current interface
- addresses instead of fixed names or IP addresses.
- - The texttops filter did not properly recognize the
- "nowrap" (wrap=false) option.
- - The InstallableOptions group name in a PPD file is now
- translated separately (CUPS_MSG_OPTIONS_INSTALLED) so
- that UIs can accurately detect the presence of this
- group.
- - The scheduler no longer keeps job history data for
- remote printers on the client (just on the server.)
- - The parallel and USB backends now retry if the backend
- detects that the printer is not connected to the
- system (rather than stopping the queue...)
- - The network backends now retry if the backend detects
- that the printer is not connected to the network or is
- unreachable (rather than stopping the queue...)
- - The cupsGetDests() function no longer lists options
- and instances for printers that no longer exist.
- - The scheduler now converts the document language to
- the correct LANG string.
- - The cupsaddsmb program now supports alternative CUPS
- and SAMBA server names.
- - The PostScript filter now supports the Orientation
- comment and rotates the page as needed automatically.
- - Revamped the makefiles slightly to use automatically
- generated dependencies.
- - Build fixes for OS X.
- - The TIFF reading code depended on the newest version
- of libtiff; now conditionally compile that portion of
- the loader.
- - The PPD code now decodes all JCL options in the
- JCLSetup group, not just those options that start with
- the prefix "JCL".
- - The backends now read print data using the read()
- system call to ensure that the current page is printed
- while the next page is being processed.
- - The pdftops filter did not support shading type 3
- (radial fill) for the "sh" operator.
- - The cups-polld program now throttles the local
- broadcasts of polled printers and classes so that the
- local system is not overwhelmed with hundreds of
- printers and classes all at once.
- - Updated the serial backend to support 230,400 baud for
- the Linux PPC port.
- - The cupsGetJobs() function wouldn't report completed
- jobs that did not have a document-format attribute
- value.
- - The cupsEncodeOptions() function now maintains a table
- of known boolean and numeric options, and encodes all
- other options as strings.
- - Now add a newline before the end-of-page code in the
- PostScript filter; this fixes a problem with files
- that don't end with a newline.
- - The image filters looked for the "orientation" option
- instead of the correctly named "orientation-requested"
- option.
- - The cupsEncodeOptions() function now handles mixed
- integers and ranges.
- - New translation guide for developers to provide native
- language support for CUPS.
-
-
-CHANGES IN CUPS V1.1.14
-
- - The ippRead() function did not verify that the
- attribute name length or string with language value
- was not larger than the read buffer.
- - The scheduler set the signal handlers before loading
- the configuration files the first time; this prevented
- the RunAsUser directive from blocking server reloads.
- - Added Swedish message catalog.
- - The parallel backend now recognizes the /dev/printers
- device directory under Linux 2.4.x.
- - MacOS X fixes.
- - The cupsaddsmb utility sent the server name after the
- user information when executing the rpcclient program.
- This caused problems with some versions of SAMBA
- 2.2.x.
- - The IPP backend did not pass the requesting user name
- when checking on the print job status. This prevented
- it from waiting for the job to complete when
- communicating with some IPP implementations that
- require it.
-
-
-CHANGES IN CUPS V1.1.13
-
- - The lpstat command did not report jobs submitted to
- regular printer classes.
- - The texttops filter didn't use sufficient precision
- when positioning text with some values of cpi and lpi.
- This could cause the alignment of text to stray.
- - cupsGetDests() didn't merge the options from the
- /etc/cups/lpoptions file with ~/.lpoptions - options
- in ~/.lpoptions overrode them completely.
- - Added support for KOI8-R and KOI8-U character sets,
- and added several Russian message catalogs.
- - The scheduler put the wrong timezone offset in the log
- files (e.g. +0500 instead of -0500 for EST...)
- - The scheduler did not ignore trailing whitespace in
- *.convs files.
- - The scheduler now forces all processes to exit (kill
- -9) when it is stopped. This prevents parallel and
- USB devices from running in the background after cupsd
- goes away.
- - The cupsParseOptions() function didn't skip trailing
- whitespace after quoted values.
- - More changes to support CUPS on OS/2.
- - Added Simplified Chinese message catalog.
- - Added PAM support for IRIX.
- - The cupsGetPPD() function didn't remove the @server
- portion of the printer name, and since it would
- connect immediately to the remote server instead of
- the local server, the printer would not be found.
- - Classification and page labels were not rotated to
- match the page orientation.
- - Now set the TCP "no delay" option on network
- connections to improve performance/response time.
- - Improved the IRIX printing tools support with patches
- from Andrea Suatoni.
- - Added a new PrintcapGUI directive to specify the GUI
- option panel program to use for the IRIX printing
- tools support.
- - The cupsGetDests() function did not check to see if a
- user-defined default printer (set via lpoptions) still
- existed.
- - The pstops filter no longer assumes that the default
- dictionary is writable when doing N-up processing.
- - The pstops filter now supports printing N-up with the
- page-set option.
- - The imagetoraster filter now supports direct printing
- of CMYK image data without conversion/correction.
- - The IPP backend now reports printer state/error
- conditions when possible (toner low, media empty,
- etc.)
- - The lpstat command now supports the (undocumented)
- IRIX -l option ("-lprintername") for a compact job
- listing for a printer.
- - The lpstat command now includes printer date/time
- information in the output (always Jan 01 00:00) to
- make third-party tools happy.
- - The text filter now supports non-integer cpi and lpi
- values.
- - The Margins field in the CUPS raster header was not
- initialized by the pstoraster filter.
- - Added --with-optim="flags" option to configure script.
- - Updated the Italian message translations.
- - Updated the cups.list file to install the correct
- files.
- - The pstoraster filter accessed the third element of a
- 2 element array.
- - The scheduler did not setup a status pipe for polling
- processes, so error messages went to whatever file
- descriptor 2 was pointing to when they were started.
- - The httpMD5Final() function didn't put a colon between
- the password and nonce strings.
- - The pstops filter did not default to Binary data for
- "%%BeginData:".
- - The pstops filter did not stop processing when a line
- containing a CTRL-D is seen.
- - The scheduler no longer replaces the JobSheets values
- from the printers.conf and classes.conf files with the
- classification level, if set. This way the original
- banner settings are preserved when classification
- levels are changed or turned off.
- - The serial backend didn't drain the output queue, nor
- did it restore the original settings.
- - Updated the default system group under MacOS X.
- - If no SystemGroup was defined in cupsd.conf, the
- system default group was not used.
- - The cups-lpd mini-daemon now supports LPD clients that
- send multiple control files.
- - httpConnectEncrypt() now always uses encryption for
- connections on port 443, since port 443 is reserved
- for the "https" scheme.
- - Group authentication via certificates did not work
- from the web interface for accounts other than
- "root".
- - The serial port backend did not clear the OPOST
- option, which could cause problems with some printers.
- - The cups-lpd mini-daemon didn't lookup the client IP
- address properly.
- - The parallel backend now identifies the polled and
- interrupt-driven devices under *BSD.
- - The scheduler allowed the "always" encryption mode
- inside a Location, which is not valid.
- - The CUPS startup script now checks for the timezone
- information under Linux.
- - Now also map the sides attribute to the JCLDuplex
- option (if present) in PPD files.
- - Updated pdftops to Xpdf 0.93a.
- - Added support for MD5 passwords under Slackware.
- - Added new AuthType BasicDigest that does Basic
- authentication using the MD5 password file managed by
- the lppasswd command.
- - The banner page attribute substitution code now
- retains {name} sequences in banner files when the
- named attribute is undefined. Use {?name} to
- conditionally substitute an IPP attribute.
- - The scheduler now ensures that the ServerRoot
- directory and configuration files are owned by and
- writable by the User and Group in cupsd.conf.
- - The USB backend now lists all USB printer devices
- regardless of whether a printer is connected or not.
- This allows new USB printers to be connected without
- restarting cupsd.
- - Added some more minor performance tweeks to the IPP
- protocol code to reduce copying and array indexing.
- - The cupsaddsmb utility now uses the -c option with
- smbclient and rpcclient to avoid the read length limit
- for commands on the standard input.
- - Added an include file to the CRD handling code in
- pstoraster so that it would compile properly on 64-bit
- pointer platforms...
-
-
-CHANGES IN CUPS V1.1.12
-
- - Added "Polish" to the list of known languages for PPD
- files.
- - Added missing directory definition to cups-config.
- - The CUPS-Move-Job operation did not set the
- destination type for the new destination.
- - The CUPS-Add-Printer operation did not support the
- allow=all or deny=none values to clear the per-user
- printer ACLs.
- - The SetPrinterAttrs() function did not handle invalid
- PPD files that were missing the required NickName
- attribute. It now looks for NickName, ModelName, and
- then substitutes the string "Bad PPD File" for the
- printer-make-and-model attribute.
-
-
-CHANGES IN CUPS V1.1.11
-
- - Added support for embedded TrueType fonts in PDF
- files.
- - Added support for PostScript functions in PDF
- files.
- - Added new "cupsaddsmb" utility for exporting
- CUPS printer drivers to SAMBA/Windows clients.
- - Added preliminary support for Darwin/MacOS X.
- - The CUPS-Add-Printer operation no longer allows
- arbitrary scheme names in device URIs to be used - it
- now restricts the available schemes to those found in
- the device list (lpinfo -m).
- - The ippRead() and ipp_read_file() functions could not
- handle more than IPP_MAX_VALUES (100) values in a
- 1setOf attribute. These functions have been updated
- to dynamically allocate more memory as needed, and the
- IPP_MAX_VALUES constant now represents the allocation
- increment. [this caused some versions of the
- GIMP-print drivers to fail since the number of media
- options exceeded 100...]
- - The scheduler could crash when BrowseShortNames
- was set to "No".
- - The scheduler did not prevent MaxClients from being
- set to 0, which could cause the scheduler to go in an
- infinite loop when accepting a request.
- - Made some performance optimizations in the ippRead()
- functions to make IPP request/response processing
- faster.
- - The accept/reject/enable/disable command did not
- support properly support the "-h" or default
- server name.
- - The scheduler did not save the quota configuration
- when the job-quota-period attribute was set to 0.
- - The LPDEST and PRINTER environment variables did not
- support printer instances.
- - The text filter now handles more types of boldface and
- underline formatting.
- - The cupsTempFd() function did not fail if the
- temporary directory did not exist; this would cause it
- to loop indefinitely instead of returning an error
- (-1).
- - Stopping (disabling) a printer class did not stop jobs
- from printing to printers in that class.
- - The cupsGetDests() function was sending the
- requested-attributes attribute as a name instead of a
- keyword; this caused a serious performance problem on
- slower systems since more information had to be
- transferred from server to client.
- - The web interfaces did not always quote < and & in
- things like the job title. This had the potential for
- browser-based security violations (on the browser's
- machine); bug report from SuSE.
- - The scheduler now treats unauthenticated usernames as
- case-insensitive when doing quota and allow/deny
- processing.
- - The lp command sent the "request ID is ..." message
- to stderr instead of stdout...
- - The PostScript filter (pstops) now handles EPS files,
- adding a showpage command to the files as needed.
- - The configure script checked for the <stdlib.h> header
- file before the JPEG libraries; since the JPEG headers
- can define HAVE_STDLIB_H, the configure check would
- cause the JPEG check to fail on some systems.
- - The scheduler now supports localized banner files,
- using the subdirectory approach, e.g. the "es"
- subdirectory under /usr/share/cups/banners is used for
- the Spanish banner files.
- - Updated the scheduler so it knows the correct
- language abbreviation to use for all supported
- PPD LanguageVersion values. The new code also
- supports country codes as well, so "English-GB"
- maps to the "en_GB" locale.
- - The cups-lpd mini-daemon did not support
- anonymous printing (no username specified).
- While the username is REQUIRED by RFC-1179,
- MacOS clients do not send the REQUIRED username
- information when printing via LPD.
- - Added many warning and informational messages
- to cups-lpd where they were missing.
- - Added Czech message file contributed by SuSE.
- - The cups-lpd mini-daemon now returns a non-zero
- status if an invalid destination or job ID is
- provided.
- - The scheduler did not honor the KeepAlive setting in
- cupsd.conf.
- - Increased the size of the file read/write buffers to
- 32k.
- - *BSD static library creation fixes.
- - Use mkstemps() instead of tmpnam() in pdftops whenever
- possible.
- - Added httpGetHostByName() function as a wrapper around
- gethostbyname() - some implementations of this
- function do not support IP addresses (e.g. MacOS X.)
- - Added casts to all printf's of file lengths, since
- there is currently no standard way of formatting long
- long values.
- - The client filename field was not cleared in all
- instances, resulting in old form data being submitted
- to CGIs.
- - The httpConnect*() functions now try all available
- addresses for a host when connecting for the first
- time.
- - The pstoraster filter would "lose" all drawing
- commands when the PageSize was set but the printer
- bitmap was not reallocated. This was most noticeable
- with the output from StarOffice 6 beta and would
- result in a blank page being output...
- - The IPP backend was sending a PAGE comment even when
- printing the output from a filter (it should only send
- page comments when printing files directly...)
- - The pdftops filter didn't properly map glyph names of
- embedded Asian TrueType fonts.
- - Changed the CUPS startup script to look for a program
- named "cupsd", not just any program with "cupsd" in
- the name (this caused the apcupsd UPS monitoring
- daemon to be stopped/restarted...)
- - The CUPS-Move-Job operation did not change the
- internal destination name for held jobs, so moved (but
- held) jobs would still show up as queued on the
- original destination.
- - The cups-polld program didn't send the
- requested-attributes attribute in the
- CUPS-Get-Printers and CUPS-Get-Classes requests, which
- made it use more CPU and bandwidth than required.
- - The scheduler and CUPS API incorrectly added a
- job-sheets-default attribute for remote printers. This
- caused banner pages to be omitted from client system
- prints.
-
-
-CHANGES IN CUPS V1.1.10-1
-
- - Minor fixes to the filter, systemv, and template
- makefiles to install files properly.
-
-
-CHANGES IN CUPS V1.1.10
-
- - Added a driver for DYMO label printers.
- - Added new ClassifyOverride directive to allow users
- to override the classification of individual jobs.
- - Added new BrowseProtocols directive to control which
- browse protocols are used (currently CUPS and SLP).
- - Added SLPv2 support (thanks to Matt Peterson for
- contributing the initial implementation for CUPS.)
- - Adding a raw printer on a remote CUPS server now
- correctly redirects PPD file requests to the remote
- server.
- - The serial backend now limits writes to 1/10th
- second worth of data to avoid buffer overflows
- with some types of flow control.
- - The scheduler did not properly process PUT requests,
- so configuration files could not be uploaded to the
- server.
- - The scheduler did not strip trailing whitespace on
- lines in the configuration files.
- - The httpWrite() function did not transition the PUT
- request to the HTTP_STATUS state to get the status
- from the server.
- - The scheduler did not properly handle trailing null
- ("-") filters when testing a driver that sent data
- to the file: pseudo-backend.
- - The IPP backend now only sends a document-format of
- "application/vnd.cups-raw" when printing to another
- CUPS server using a local printer driver or interface
- script. Previously the job's document format was
- used, which was incorrect.
- - The lpadmin command didn't use the ppd-name attribute
- with the -m option; this prevented the use of the
- "raw" model from the command-line.
- - The pstoraster filter output draft (1-bit) 6-color
- output in the wrong order; this resulted in yellow
- being printed instead of black on Stylus Photo
- printers.
- - The pdftops filter did not have the Japanese and
- Chinese text support compiled into it.
- - The IPP and AppSocket backends did not clear the
- "waiting for print job to complete" status message,
- which caused some confusion... :)
- - The serial backend now opens the port in "no delay"
- mode to avoid DCD detection problems with some OS's.
-
-
-CHANGES IN CUPS V1.1.9-1
-
- - The configure script did not substitute the
- correct user and group names.
- - The configure script did not use the full path
- to the install-sh script when it was used.
- - The pstoraster filter did not correctly support
- DuplexTumble mode for printers that used flip
- duplexing.
- - The cups.list.in file was missing from the
- distribution.
- - The New DeskJet series driver did not use the
- correct OrderDependency for the Duplex option.
- - Use read() instead of fread() to read piped
- print files in lpr/lp. This avoids a bug in the
- HP-UX 10.20 fread() function.
- - Updated the pstoraster filter to use the MIPS_FIXADE
- system call under IRIX to fix bus error problems on
- R12000 processors (Ghostscript is not 64-bit clean...)
- - Some Xerox PPD files (most notably the Phaser 790)
- have illegal whitespace in the option keyword in the
- OpenUI line. This caused the PageRegion option to not
- be recognized properly for the Phaser 790.
-
-
-CHANGES IN CUPS V1.1.9
-
- - Revamped the configure script to use a modular
- approach for the various tests.
- - Added --with-openssl-* options to properly reference
- the OpenSSL libraries in DSOs.
- - Added --with-cups-user and --with-cups-group
- options to specify the default user and group for
- CUPS.
- - Added AIX shared library support.
- - Added AIX device discovery for the serial and
- parallel ports.
- - Now use install program or script to install
- directories, files, and symlinks.
- - Updated pstops filter to use strict handling of EPS
- files embedded in a PostScript document. The %%EOF
- handling in 1.1.8 caused some dvips files not to
- print.
- - Fixed yet another memory allocation bug in pstoraster
- that would cause it to crash. This fix also ensures
- that all memory allocations are done on (at least) a
- 64-bit boundary.
- - Fixed Digest authentication - httpGetSubField() didn't
- skip the Digest keyword.
- - The scheduler did not properly handle Digest
- authentication with the new multiple-group support.
- - The scheduler did not allow usernames that were
- not in the UNIX password file to be used for Digest
- authentication from passwd.md5.
- - The scheduler could not scan PPD files that only used
- a carriage return (i.e. MacOS PPD files); the new code
- is also about 40% faster, so servers with thousands of
- PPD files should start much faster now.
- - The scheduler now stores the PPD file size and
- modification times in the ppds.dat file, so it can now
- incrementally update the PPD database from the model
- directory, resulting in significantly faster startup
- times.
- - The lpinfo command did not return a non-zero status
- code if an error occurred.
- - Fixed a bug in the scheduler's UpdateJob() function.
- Basically, all jobs shared the same status buffer, and
- the "buffer start" pointer could point to 1 byte
- before the beginning of the buffer. The new
- implementation uses a separate buffer for each job and
- eliminates the buffer start bug.
- - The IPP backend would send N copies of a document if
- the receiving device didn't support the copies
- attribute, even if the upstream driver already added
- the necessary commands to generate the copies. This
- was most noticeable with HP printers where N * N
- copies would come out instead of N.
- - The PostScript filter (pstops) did not properly handle
- duplex printing on inkjet printers that provide this
- option. Copies would be put on the front and back
- sides of the duplexed page, and the filter did not
- output an even number of pages.
- - The backends always caught SIGTERM after they
- connected to the printer. This prevented raw jobs
- from being cancelled early.
- - The cupsSetDests() function now removes any printers,
- instances, and options that are not defined by the
- user or server. This should prevent old system-wide
- options from being used in individual user accounts.
- - Updated the EPSON printer driver and added PPDs for
- the newer EPSON Stylus printers that only support the
- "ESC i" graphics command.
- - The lpadmin command didn't allow you to add remote
- printers to a local class.
- - The lpadmin command didn't allow you to set the
- options (quotas, etc.) for a class.
- - The scheduler did not load or save the
- job-sheets-default attribute for classes.
- - The scheduler did not automatically recreate remote
- printers that were part of a class.
- - It was possible for a printer class to list the same
- printer more than once.
- - The scheduler now makes a backup copy of classes.conf
- and printers.conf before writing the new file.
- - The lppasswd program incorrectly asked for a new
- password when deleting an existing MD5 password
- account.
- - The scheduler did not match "/printers/name.ppd"
- against a location of "/printers/name".
- - The client code did not always handle HTTP encryption
- upgrades properly.
- - The client code now caches the last Digest password so
- it can retry using a new resource path or nonce value,
- which are included in the MD5 sum sent to the server.
- This should eliminate unnecessary password prompts
- when using Digest authentication.
- - The lppasswd command didn't have a man page.
- - Updated the PJL detection rules to allow the universal
- escape to occur anywhere in the first 128 bytes of the
- file.
- - The cups-polld program would poll servers continuously
- with no delay if there was an error contacting the
- server.
- - The IPP backend would send an empty job-name or
- requesting-user-name attribute if the corresponding
- job attribute was an empty string. While this is
- allowed by the IPP specification, some HP JetDirect
- implementations return a client-error-bad-request
- error if an empty name attribute value is received.
- The new code only sends these attributes if they are
- not the empty string.
- - At least some versions of the HP JetDirect firmware
- do not correctly implement IPP. Added additional
- checks to the IPP backend to eliminate extra,
- unsupported attributes which should normally be
- ignored by a compliant IPP device.
- - The scheduler did not copy the complete list of
- supported file types into the
- document-format-supported attribute. This caused
- clients to not send the local file type (such as
- application/vnd.cups-raw for raw print files) and the
- corresponding bad output in some cases.
- - The scheduler did not fully copy attributes from a
- set-job-attributes request - string attributes were
- only referenced, which could cause cupsd to crash
- or behave irratically.
- - The lp command didn't send the right value for the
- job-hold-until attribute when "-H resume" was
- specified.
- - The IPP backend now returns as soon as a job is
- completed or reported as "pending-held".
- - Added new ImplicitAnyClasses and HideImplicitMembers
- directives to the cupsd.conf file to make implicit
- classes more usable/transparent to the user.
- - Clients can now (with the appropriate authentication)
- retrieve and update the server configuration files
- using HTTP GET and PUT requests.
- - The web interface didn't allow you to modify the
- location or description of the printer.
- - The pdftops filter now uses its own temporary file
- function to work with PDF files using LZW compression
- (which use the uncompress program or gunzip)
- - The SystemGroup directive now supports specification of
- multiple groups.
- - Added new Include directive to cupsd.conf, a la
- Apache.
- - Added new pseudo-driver/PPD called "raw" that can be
- used to create/convert a raw queue. This also allows
- raw queues to be created in the web interface.
- - The pdftops filter didn't handle image objects that
- used JPEG and Flate compression together.
- - The pstops filter counted pages wrong when using the
- N-up and even/odd printing options. This prevented
- the page-ranges option from working properly.
- - Added another fix to pstoraster for a bus error
- condition caused by a lack of parenthesis in the
- Ghostscript code.
- - Added new "natural-scaling" option which scales the
- natural size of the image (percent of natural image
- size instead of percent of page size.)
- - The lppasswd program is now setuid to the CUPS user
- instead of root.
- - The PPD functions did not allow for PPD files that
- defined the page sizes and margins before the page
- size options.
- - The mime.types file now checks for the PJL "LANGUAGE =
- Postscript" command for PostScript files.
- - The scheduler did not truncate file: output files.
- - The PPD file reading code did not handle options with
- raw quotes (") in the human-readable names.
- - The pdftops filter now remaps the space character when
- (bad) PDF files contain a .notdef glyph for the space
- character.
-
-
-CHANGES IN CUPS V1.1.8
-
- - Updated spec file to generate separate cups-pstoraster
- package for pstoraster.
- - The spec file wasn't setting LOGDIR in the install.
- - The scheduler might restart a stopped printer after
- stopping a print job. Thanks to Florent
- Guiliani for finding this bug!
- - The init script showed run level 0 for the Red Hat
- chkconfig program. This is incorrect because Red Hat
- doesn't use run level 0 for shutdown scripts.
- - The IPP backend did not handle the
- client-error-not-found error when checking the status
- of the job that was sent. This caused remote queues
- to stop on client machines when the server had job
- history disabled.
- - Added httpConnectEncrypt() function to avoid
- performance penalty for setting up encrypted
- connections initially.
- - Use httpConnectEncrypt() in all client apps and in the
- CUPS API to ensure consistent usage of encryption
- throughout.
- - Jobs weren't queued to remote classes (fix from
- Richard Begg.)
- - AIX changes from Richard Begg.
- - Fixed the pstops fix for GNOME output - no longer use
- the page numbers in the %%Page: comment since GNOME
- puts a filename instead (!?@!#?!). There is still an
- issue with N-up printing since GNOME defines its fonts
- in the first page instead of the document setup section
- (pages must be independent according to the DSC spec)
- People with GNOME printing problems should consult bug
- #54489...
- - The imagetops filter produced PAGE: messages when
- generating PostScript for a non-PostScript printer
- (only affects page-label and Classification
- options.)
- - The updated pdftops filter was looking for an options
- file called xpdf.conf instead of pdftops.conf.
-
-
-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, <Limit>, <LimitExcept>, 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!
-
-
-CHANGES IN CUPS V1.1.6-3
-
- - The configure script put the JPEG library before the
- TIFF library; this caused problems in some
- configurations since the TIFF library also supports
- JPEG compression of TIFF images.
- - Updated the configure script and makefiles to handle
- admin man pages with the "1m" extension (HP-UX, IRIX,
- Solaris, Tru64) and in odd directories (IRIX)
- - The updated cupsTempFile() function did not return
- the filename when called with a filename buffer of
- NULL (previously it used a static buffer.)
- - FreeBSD uses /dev/unlptN, but NetBSD and OpenBSD use
- /dev/ulptN.
- - DeletePrinter() didn't remove the printer from any
- classes it was a member of.
- - DeletePrinterFromClass() didn't preserve the
- implicit status of a class.
- - DeletePrinterFromClasses() didn't remove printers
- from implicit classes.
- - StartJob() didn't send the job-sheets, job-priority,
- and job-hold-until attributes to remote printers.
- - LoadAllJobs() was looking for job-sheets-completed
- instead of job-media-sheets-completed. This would
- prevent accumulation of page data after a restart
- of the scheduler.
- - The pstops and imagetops filters now generate copies
- using the appropriate method for a Level 1, 2, or 3
- printer since some Level 2/3 printers don't support
- the /#copies variable anymore.
- - The man page for cups-lpd did not mention the "-o"
- option.
- - The IPP backend didn't handle version-not-supported
- errors and revert to IPP/1.0 (previously it only checked
- for a bad-request error)
- - Caldera fix: lpc now reports unimplemented commands as
- unimplemented, not invalid.
- - Caldera fix: lpq didn't recognize BSD lpq "-a" option.
- - Caldera fix: lpr didn't recognize BSD lpr "-1", "-2",
- "-3", "-4", "-q", or "-U" options.
- - RedHat fixes: patches to GNU Ghostscript
- - SuSE fix: temp file creation patch to GNU Ghostscript
- (pstoraster).
- - SuSE fix: remove cgi-bin/abort.c and cgi-bin/email.c,
- which are not used.
- - SuSE fix: missing NULL check in cgi_initialize_post().
- - SuSE fix: potential buffer overflows in
- cgi_initialize_string().
- - SuSE fix: potential buffer overflows in
- ippSetCGIVars()
- - SuSE fix: more NULL checks in ppdOpen(); also make
- sure that all memory is freed on error to avoid memory
- leaks.
- - SuSE fix: Exit from child if setgid() or setuid()
- fails.
- - SuSE fix: Added setgroups() calls after setgid() and
- setuid() calls.
- - SuSE fix: potential buffer overflows in httpEncode64()
- calls.
- - SuSE fix: potential buffer overflows in httpSeparate()
- - SuSE fix: potential buffer overflows in ippWrite() for
- bad input.
- - SuSE fix: potential nul skip in ppd_decode() for
- missing hex digits.
-
-
-CHANGES IN CUPS V1.1.6-2
-
- - Added changes to support NetBSD startup scripts.
- - Added separate compiler options for pstoraster
- (Ghostscript) to avoid compiler-induced errors
- from Ghostscript's twisted code.
- - The mime.types file contained syntax errors.
- - Updated the *BSD USB device filenames to use
- the /dev/unlptN files so that the USB device
- is not reset prior to printing (causes print
- corruption on many printers)
- - Added new cupsTempFd() function to avoid serious
- security bug in glibc fopen() function. The glibc
- fopen() function unlinks a file before creating it,
- which opens up possible symlink attacks.
- - Now reject 0-length names in add-printer and add-class
- requests.
- - Fix for pstoraster when ZLIB is not available.
- - cupsGetPPD() didn't reconnect when a HTTP connection
- was lost.
- - SuSE fix: httpConnect() didn't check that the
- value from gethostbyname() was a valid IPv4 address.
- - SuSE fix: httpConnect() didn't allow file descriptor 0
- to be used for a socket.
- - SuSE fix: ippRead() didn't confirm that all values in
- a set were numeric or string types.
- - SuSE fix: lppasswd race condition fixes.
- - SuSE fix: directive names could overflow buffer when
- reading *.conf files.
- - SuSE fix: HEAD requests for PPD files did not use the
- same logic as GET requests.
- - SuSE fix: possible buffer overflow when adding
- /index.html to requested directory name.
- - SuSE fix: possible buffer overflow when converting
- IPP attributes to string options for filters.
- - SuSE fix: creating file: device output with mode 0666
- instead of mode 0600.
- - SuSE fix: creating job info files with mode 0640
- instead of 0600.
- - SuSE fix: don't rely on snprintf() for including
- system name in log filenames.
- - SuSE fix: add bounds checking when copying quoted
- and hex strings.
-
-
-CHANGES IN CUPS V1.1.6-1
-
- - Added configure check for getting the correct
- strftime() format string; %c is not Y2k safe,
- and %KC and NULL are not universally supported.
-
-
-CHANGES IN CUPS V1.1.6
-
- - Fixed another possible DoS attack in httpGets()
- - Added check for "LANGUAGE = PCL" and "LANGUAGE =
- POSTSCRIPT" in mime.types.
- - Resolution options were not being passed into the
- filter programs properly.
- - The default compiler options for GCC no longer include
- "-g3", which apparently is deprecated in newer
- versions of GCC.
- - CheckJobs() could cause cupsd to crash if a job is
- cancelled in StartJob().
- - The printers.conf and classes.conf files are now
- written with restricted permissions.
- - The round-robin algorithm used by FindAvailablePrinter()
- had problems; fixes contributed by Joel Fredrikson.
- - If LoadAllJobs() is unable to determine the file type
- of a print job, assume "application/vnd.cups-raw".
- - The web interface now provides a job_printer_name
- value for any corresponding job_printer_uri value.
- - The cups-lpd mini-daemon now logs the client address
- and hostname as well as all commands and errors in the
- syslog file.
- - The IPP backend now detects the supported file formats
- and only specifies the document format if it is
- supported. This makes IPP printing to network print
- servers and cards more reliable without affecting the
- capabilities of CUPS servers.
- - The time_at_xyz attributes are now converted to human-
- readable dates and times for the web interfaces.
- - The HP and EPSON sample drivers now correctly catch
- signals and eject the current page when a job is
- cancelled.
- - Fixed bug in CGI code - did not ignore control
- characters (e.g. newlines) in form data. This caused
- sporatic web interface problems.
- - The file type logging code in the scheduler referenced
- the optional document-format attribute; the new code
- uses the resolved MIME type instead.
- - The client.conf parsing code now removes trailing
- whitespace.
- - The MaxJobs directive was being treated as a boolean
- instead of an integer.
- - The scheduler would not timeout remote printers if
- BrowseInterval was set to 0.
- - The lpadmin command now supports setting of options
- and user-level access control.
- - Added "-E" option to all printing commands to force
- encryption.
- - The client code did not consume the response to the
- OPTIONS request when switching to secure mode.
- - The scheduler did not output a Content-Length field
- when responding to an OPTIONS request.
- - Added documentation on using cups-lpd with xinetd
- to the man page.
- - The socket backend now starts retries at 5 seconds and
- increases the interval to 30 seconds. This should
- provide faster printing when multiple jobs/files are
- queued for a printer.
- - The filters and backends no longer buffer output to
- stderr. This should provide much more accurate status
- reporting.
-
-
-CHANGES IN CUPS V1.1.5-2
-
- - Fixed configure check for OpenSSL to work with RSA
- code.
- - Added configure check for <sys/ioctl.h>, and use this
- check in backend/serial.c.
- - Updated configure script handling of data,
- configuration, and state directories to use datadir,
- sysconfdir, and localstatedir variables.
- - NetBSD uses different serial port filenames than
- FreeBSD and OpenBSD.
- - The pdftops filter didn't need some X-specific files.
- - The scheduler makefile doesn't do a chown anymore when
- installing (cupsd did this automatically on startup
- anyways)
-
-
-CHANGES IN CUPS V1.1.5-1
-
- - There was a typo in the top-level Makefile
- - The top-level Makefile did not install an init script
- for run level 5.
- - The configure script did not add the "crypto" library
- when checking for the OpenSSL library.
- - The OKIDATA PPD files were missing.
- - The config.h.in file defined the wrong version number.
- - The serial backend did not define "funky_hex" under *BSD.
- - Updated the Visual C++ project files and some of the
- CUPS API sources to compile under Windows again.
-
-
-CHANGES IN CUPS V1.1.5
-
- - Security updates - new default configuration does
- not broadcast printer information and only allows
- access from the local system.
- - EXPERIMENTAL encryption support - CUPS now optionally
- supports TLS/SSL encryption via the OpenSSL library.
- - Documentation updates.
- - Makefile/configure script updates.
- - The RPM spec file didn't work out-of-the-box under
- RedHat or Mandrake.
- - Minor code cleanup to remove extraneous compiler
- warnings.
- - cupsTempFile() was using %p for the temporary
- filename; this should have been %08x (just 8 digit
- hex)
- - Deleting a printer with active print jobs would still
- crash the server.
- - ippWrite() and ipp_write_file() didn't send the
- correct value length for name-with-language and
- text-with-language attributes.
- - Updated IPP code to support copied strings (that
- should not be freed); this provides slightly more
- efficient IPP server performance.
- - Updated PDF filter to Xpdf 0.91.
- - httpGets() could go into an infinite loop if a line
- longer than the input buffer size was sent by a
- client. This could be used in a Denial-of-Service
- attack.
- - The lpstat and CUPS API functions now request only the
- data required when getting the list of printer or
- class information. This should improve performance
- with large numbers of printers on slower machines.
- - The scheduler was always enforcing the FilterLimit,
- even if FilterLimit was set to 0.
- - Updated the Linux USB backend to support Mandrake's
- /dev/usb/usblp# filenames.
- - The PRINTER and LPDEST environment variables did not
- override the lpoptions default printer.
- - The PPD read functions incorrectly included trailing
- characters (usually whitespace) after quoted string
- attributes.
- - The multiple-document-handling attribute handling code
- did not check for the correct value for collated
- copies (separate-documents-uncollated-copies).
- - The EPSON driver did not work with OKIDATA printers in
- EPSON emulation mode (needed change-emulation command)
- - The HP-GL/2 filter did not scale the plot properly in
- scale mode 2.
- - Added PPD files for 9-pin and 24-pin OKIDATA printers.
- - The httpSeparate() function didn't handle passwords
- that started with a number.
- - ippDelete() could free the character set string
- multiple times in name-with-language and
- text-with-language attributes.
- - The scheduler would access freed memory right after
- freeing it (for debug messages); these parts of the
- code have been reordered to avoid this situation
- which was causing sporatic errors and crashes.
- - The ppdClose() function didn't free all of the strings
- in the ppd_file_t structure.
- - The LoadAllJobs() function in the scheduler did not
- close the spool directory.
- - Changed all sprintf's that use string formats to
- snprintf's, even if the destination buffer is
- larger than the source string(s); this protects
- against buffer overflows caused outside of CUPS...
- - Changed all strcpy's to strncpy's between local and
- global variables, even if the destination buffer is
- larger than the source string; this protects
- against buffer overflows caused outside of CUPS...
- - The CUPS certificate functions didn't use the
- CUPS_SERVERROOT environment variable when set.
- - The directory services code was copying instead of
- comparing the remote printer info, resulting in
- unnecessary updates of the printer attributes for
- remote printers.
- - Added new mime.types rules to allow automatic raw
- printing of PCL and ESC/P files; PJL headers are
- parsed to differentiate between PostScript and
- PCL job files. This should eliminate a lot of
- the reports of SAMBA printing problems due to
- the missing "-oraw" or "-l" options.
- - The mimeLoadType() function didn't handle the
- 3-argument contains() function.
- - The LoadPPDs() function in the scheduler didn't
- properly set the alloc_ppds variable or handle a PPD
- database containing 0 printers.
- - The scheduler FindAvailablePrinter() function didn't
- use the same queuing logic as the CheckJobs()
- function. This caused classes to stall if a remote
- printer was always busy.
- - Jobs are now assigned to printers in a class
- round-robin style. This should prevent the first
- server in the class from bearing the brunt of the
- jobs.
- - The scheduler's LoadAllJobs() function didn't always
- restore remote printers for queued jobs on startup.
- - The serial backend didn't support the higher baud
- rates with the old termios interface. It now supports
- 57600 and 115200 baud.
- - The serial backend now supports different types of
- flow control; previously it ignored the flow=XYZ
- option in the device URI.
- - The serial backend now supports DTR/DSR flow control,
- which is popular on dot-matrix printers (access with
- "flow=dtrdsr" in the device URI)
- - Added new job-originating-host-name attribute for
- jobs. The new attribute provides the hostname or
- IP address of the machine that submitted the job.
- - The set-job-attributes code no longer allows read-only
- job attributes to be changed.
- - Expanded the click area for the navigation bar in the
- web interface.
- - Updated the lp and cancel commands to support all of
- the Solaris print options (some are simply ignored
- since they do not map)
- - Updated the scheduler to limit the number of file
- descriptors to the maximum select() set size. This
- was causing problems on Solaris systems where the
- max FD count was increased beyond 1024.
- - The scheduler's LoadDevices() function was getting
- interrupted by the SIGCHLD signal handler; now ignore
- child signals while loading devices.
- - Added quota and allow/deny user support for printers
- and classes.
- - Removed black/CMY adjustment code from the PS and
- image file RIPs; it was interfering with some CUPS
- driver dithering code.
- - The lpc program stopped listing the queue statuses
- after the first active printer.
- - The cups-lpd program used an output format that the
- Solaris printing system did not understand.
- - Updated the lpq program to use the Solaris format
- except under Tru64 UNIX.
- - Some DEC PPD files incorrectly use "Off" for the null
- value in UI constraints. Added "Off" to the list of
- accepted null values.
- - Changed the *BSD define constants to __*BSD__ in all
- of the backends.
- - Added support for "lpstat printername", which is an
- undocumented feature in Solaris.
- - The HP-GL/2 filter now only sets the plot size if it
- is set in the plot file.
- - The lpmove command wasn't sending the requesting
- user name, causing it to always fail.
- - Updated the cupsTempFile() code to use GetTempPath()
- under Windows.
- - The cups-lpd mini-daemon didn't limit the number of
- data files accepted, didn't use cupsTempFile(),
- didn't handle control file job information in any
- order, and didn't free job options after printing
- a file.
- - The scheduler copy_banner() function did not
- explicitly set the owner and permissions of the banner
- files, which could prevent the banner pages from
- printing on some systems.
- - The lpstat program wasn't listing remote classes.
- - The scheduler did not verify that the printer-uri
- attribute was specified in all requests that required
- it.
-
-
-CHANGES IN CUPS v1.1.4
-
- - Makefile and configure script fixes.
- - **** Changed the default Printcap setting **** to
- /etc/printcap. There are just too many people asking
- why application XYZ doesn't see their printers!
- - The web admin interface now displays an error if it
- can't get the list of printer drivers from cupsd.
- - The IPP backend was putting the copies option before
- the other job options were set. This caused the IPP
- request to contain attribute groups in the wrong
- order, which prevented remote printing.
- - Added checks in scheduler to free memory used for
- IPP requests and language information when closing
- a client connection.
- - Fixed the duplex option in the HP LaserJet driver. It
- should now work with all LaserJet printers (and
- compatibles)
- - The add-printer web interface didn't initialize the
- "old info" data pointer, which caused random crashes
- on many OS's.
- - Fixed many page sizes defined in the Level 1
- compatibility file "gs_statd.ps" to match reality.
- - Fixed another bug in the setpagedevice "code" in
- Ghostscript. It should now accept all standard
- Adobe attributes on all platforms.
- - Fixed pstoraster so that it reallocates memory for
- color depth changes as well as size/resolution
- changes. This removes an ordering constraint on
- the color, page size, and resolution options in
- PPD files.
- - The IPP backend didn't use the job's character set
- when the destination printer supported it. This
- caused problems when printing text files to other
- CUPS servers.
- - Updated the logic used to determine when to rebuild
- the PPD file database. The scheduler now checks the
- dates and the number of PPD files (was just checking
- the dates.)
- - Updated the ippSetCGIVars() function (used by the
- web interfaces) to only filter valid string values.
- - The PostScript filter was scaling 2-up pages
- incorrectly. This caused the edges of some pages to
- be clipped.
-
-
-CHANGES IN CUPS v1.1.3
-
- - Makefile fixes.
- - RPM spec file changes.
- - Documentation updates.
- - Enabled pstoraster debug messages for everything
- (only logged when LogLevel set to "debug"...)
- - Changed the Input/OutputAttributes fix in
- pstoraster so that it works on all platforms.
- - The HP-GL/2 filter didn't set the right green
- color value in encoded polylines or text.
- - Updated the "fitplot" code to handle plot sizes
- specified as "PSwidth,length" and "PSlength,width".
- - Updated the Linux parallel and USB backends to open
- the device files prior to looking in /proc for
- autoprobe info. This makes sure that loadable device
- driver modules are in fact loaded...
- - Added new FilterLimit directive to limit the number
- of processing jobs/filters on a system.
- - set-job-attributes didn't change the job-state to
- held/pending when the job-hold-until attribute was
- specified.
- - set-job-attributes didn't save the new job attributes.
- - Now change the "requesting-user-name" attribute in
- requests from remote systems to "remroot" when an
- unauthenticated "root" user is sent. This can be
- changed using the new RemoteRoot directive in
- cupsd.conf.
- - The cancel-job, hold-job, release-job, and restart-job
- operations didn't log the authenticated username.
- - The cups-lpd mini-daemon now checks for a
- document-format option before forcing raw mode with
- filter mode 'l'.
- - The cups-lpd mini-daemon now supports "-o" options
- on the command-line (passed by inetd) to set global
- defaults for all print queues.
- - The pstops filter assumed that a file with a Trailer
- comment would also have an EOF comment.
- - Added new cupsSetPasswordCB(), cupsSetServer(),
- cupsSetUser(), and ippSetPort() functions to better
- support client applications (especially GUIs...)
- - The CUPS-add-class and CUPS-add-printer operations
- didn't reset the printer-name attribute on remote
- print queues that had to be renamed when a local
- printer was defined with the same name.
- - The lpoptions command now supports a "-r" option to
- remove options for a printer or instance.
- - The lpadmin and admin.cgi programs no longer allow
- class and printer names to begin with a number; this
- caused the command-line utilities to become confused.
- - The Linux USB backend now looks for both the parallel
- and usblp driver names in the device list.
- - Added a new FontPath directive to cupsd.conf, and also
- a "--with-fontpath" option for the configure script to
- specify alternate font paths for pstoraster.
- - The CUPS-move-job operation didn't update the
- job-printer-uri attribute.
- - The scheduler only looked up printers and classes by
- name in IPP requests, instead of using the full URI.
- This caused problems with KUPS and friends with
- remote printers.
- - The scheduler now handles better localization of
- hostnames (e.g. server is host.foo.com, remote is
- host.subfoo.foo.com, localized is not host.subfoo...)
- - The scheduler logging functions now use a common
- log file checking/rotation function (courtesy of
- Crutcher Dunnavant at Red Hat)
- - The scheduler could accept more client connections
- than it allocated for if more than one Port or Listen
- line was present in cupsd.conf.
- - Other minor scheduler performance tweeks.
- - The lpq and lprm commands didn't support the default
- printer set using lpoptions.
- - The lpoptions command now supports a "-l" option to
- list the printer-specific options and their current
- settings.
- - The web printer and class lists now show a link to the
- default printer or class at the top of the page.
- - The text filter now supports pretty printing of shell
- and perl scripts as well as C/C++ source files.
- - The top and bottom margins were reversed for landscape
- text printing.
- - The lpq and lprm commands didn't understand printer
- instances.
- - The scheduler only selected on the first 100 file
- descriptors instead of the maximum file descriptor
- limit.
- - The scheduler client, listener, and mainline functions
- now share code to disable and enable monitoring for
- new client connections.
- - The imagetoraster filter didn't support all of the
- required pagedevice parameters.
- - The serial backend now checks for 100 serial ports
- under Linux.
- - The scheduler used sscanf() to pull out the remote
- printer location, description, and make/model strings,
- but if any of these options was empty then sscanf()
- would stop processing.
- - Added "debug2" log level to provide a little less
- verbose debugging information at the "debug" level.
- - The scheduler would crash if you stopped a printer
- that was currently printing a job.
- - The scheduler incorrectly allowed jobs in the cancelled,
- aborted, or completed state to be cancelled.
- - The image filters did not load TIFF images properly
- for bottom-to-top and right-to-left orientations.
- - Added new cupsEncodeOptions() function to encode
- CUPS options as IPP job attributes.
- - The IPP backend, LPD mini-daemon, client commands,
- and CUPS API did not properly encode multiple
- option values separated by commas.
- - Added new scheduler malloc logging in debug mode
- (provides summary of total arena size, allocated,
- and free bytes once a minute)
- - The EPM-based distributions didn't install the
- correct symlinks for a few man pages.
- - Fixed a memory leak in the scheduler - wasn't
- freeing old filters when deleting or renaming
- printers.
- - The scheduler now queries the primary IP address
- for the name of the server and maps any incoming
- requests from that address to the server name.
- This fixes web admin mapping problems from
- server.domain.com to localhost.
- - The web printer modify interface now remembers
- the previous device and driver settings (except
- for serial ports.)
- - The job-k-octets attribute is now stored as part of
- the job attributes; this preserves the information
- after a job is completed when job file history is
- turned off.
- - Dropped option sub-group parsing code for the moment,
- since many Xerox PPD files abuse this feature in PPD
- files and don't follow the hierarchy rules.
- - Added new wrapper code around options so that duplex
- options for some HP printers don't prevent prints.
- - Added support for Digital UNIX/Tru64 UNIX/OSF/1 format
- for "lpstat -v" output.
- - Now show the URI for remote printers instead of
- /dev/null in "lpstat -v" output.
- - Creating classes and adding printers to a class with
- the lpadmin command didn't work.
- - The banner pages and test page should now format
- correctly in both portrait and landscape orientations.
- - Updated banner page substitution so that { can appear
- by itself without quoting.
-
-
-CHANGES IN CUPS v1.1.2
-
- - Makefile/configure fixes
- - RPM spec file and EPM list file fixes
- - The cupsTempFile() function now uses a different
- algorithm for generating temp files and "reserves"
- them to avoid possible security exploitation.
- - Now use /dev/random (if available) to seed the random
- number generator for certificates.
- - The /var/spool/cups and /var/spool/cups/tmp directories
- were incorrectly owned by root; they are now owned by
- the filter user, typically "lp".
- - The scheduler now resets the permissions on the spool
- and temp directories as needed to match the filter
- user.
- - Now expose ppdCollect() as an externally callable
- function.
- - The image filters now support filtering from the
- standard input.
- - The imagetoraster filter now collects all printer
- options and job patch files and applies them to the
- page header as needed.
- - Added format and banner options to LPD backend.
- - The send-document operation didn't start a job
- immediately when last-document was true.
- - The set-job-attributes operation didn't correctly
- replace the current job-hold-until value.
- - Removed the option wrapper code from ppdEmit() and
- friends since it caused problems with Ghostscript
- and many PS printers.
- - Was setting TZ environment variable twice for job
- filters.
- - Added syslog logging in cups-lpd to aide in
- debugging problems.
- - The HP-UX parallel port backend did not list the
- available parallel ports on some systems (printf
- calling problem...)
- - The lp and lpr commands overrode user options if
- -d/-P were specified after -o.
- - The scheduler would crash with a */* filter.
- - Added support for a "default" filter for unknown file
- types. The example provided in the mime.types and
- mime.convs file prints unknown files as if "-oraw" was
- specified for the job. This functionality is disabled
- by default.
- - The "compatibility" mode fix for older backends did not
- work for smbspool. Added a workaround for it.
- - The HP-GL/2 filter didn't perform the right pen scaling
- with some files and the "fitplot" option.
- - New Software Performance Specification document that
- describes the memory, disk, and CPU usage of all the
- CUPS software.
-
-
-CHANGES IN CUPS v1.1.1
-
- - The pstoraster Makefile still referenced one of the
- old PDF filter files.
- - The filter Makefile used INSTALL_DATA instead of
- INSTALL_LIB to install the CUPS image library.
- - The administration CGI didn't work properly with
- network devices.
- - The BrowseACL variable was not updated after the
- cupsd.conf file was loaded.
- - The lpd mini-daemon didn't support printer instances.
- - Now use a default umask of 077 for child processes.
- - Now put temp files in /var/spool/cups/tmp for child
- processes and the root user, unless TMPDIR or TempDir
- is defined otherwise.
- - cupsGetPPD() no longer uses easy-to-guess filenames.
- - The CUPS-Delete-Class and CUPS-Delete-Printer
- operations now save classes.conf file as needed.
- - The lppasswd command wouldn't add a user.
- - The ppdOpen() function could cause a segfault if a
- 0-length PPD file was read.
- - The image filters were not handling images with
- different X and Y resolutions properly.
- - The imagetoraster filter defaulted to RGB output
- instead of black output like pstoraster.
- - The pstops filter didn't handle binary data properly.
- - The pstops filter didn't handle copies properly for
- PS files lacking DSC comments.
- - The pstops filter now appends %%EOF to the end of
- documents if they don't have it.
- - The cupsGetPPD() function didn't work with remote
- printers lacking the @server in the name.
- - The configure script didn't work right when only
- --prefix was specified.
- - The ppdEmit() code now wraps all printer commands so
- that buggy PostScript printers will still print a file
- after receiving an option that isn't available.
- - Fixed the DeskJet margin bug, and disabled 600dpi
- color mode until it can be fixed.
- - The cupsAddDest() function didn't sort instances
- correctly in all cases.
- - The time-at-xyz attributes now expand to the date and
- time in banner files.
-
-
-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.
-
-
-CHANGES IN CUPS v1.1b5
-
- - Documentation updates.
- - The pstoraster filter didn't compile without the JPEG library.
- - The cupsd server didn't support the HTTP OPTIONS request
- method.
- - Dropped the "CLOSE" method supported by the cupsd server.
- (not defined in HTTP specification)
- - Makefile/configure script fixes.
- - Missing the job-restart template.
- - Added IPP test suite for testing.
- - Missing IPP documentation from binary distributions.
- - Fixed multiple-document handling code when last-document
- not specified.
- - Added more checks to IPP requests to prevent bad requests
- from getting through.
- - Not all of the Ghostscript error output was being sent to
- stderr.
- - The PostScript filter now added PJL commands to set the
- job name and display string, if supported.
- - The scheduler would crash if the browse socket could not
- be bound. Now disables browsing if port 631 (reserved for
- IPP) is being used by a misbehaving daemon.
- - The USB backend now looks for the older Linux 2.2.x USB
- printer device filenames as well as the newer ones.
- - The IPP backend now uses the UTF-8 charset exclusively,
- since apparently only CUPS handles more than US-ASCII and
- UTF-8...
- - Wasn't quoting ( in PostScript banners...
- - Send-document requests with no document-format attribute
- could cause cupsd to crash.
- - Old jobs in the spool directory might cause cupsd to
- crash.
- - CUPS now supports all of the recommended job-hold-until
- keywords as well as name values of the form "HH:MM" and
- "HH:MM:SS".
- - Added placeholder pointer for TLS encryption to the HTTP
- connection structure.
- - Fixed the "fast poll" bug reported by DISA - the
- status pipe wasn't being closed for multi-file jobs.
- - Revamped put_params code in pstoraster to fix bitmap
- allocation bug with FrameMaker output.
- - Ripped out filename, etc. code from pstoraster as it
- is a potential security hole.
- - Added support for RIP_CACHE environment variable in the
- new pstoraster.
- - Fixed USB device filenames for Linux; now support new
- pre-2.4 devices (/dev/usb/lp#) and 2.2 devices
- (/dev/usblp#)
- - Fixed accept-jobs crash with classes.
- - Didn't include dot-matrix EPSON drivers in previous
- release.
-
-
-CHANGES IN CUPS v1.1b4
-
- - Documentation updates.
- - Many makefile and configuration script fixes (should
- now compile better under *BSD.)
- - The MediaPosition attribute was being mishandled by
- GhostScript, causing the RIP to fail whenever a paper
- tray was selected.
- - The scheduler now logs the final line of log information
- from a filter, even if it doesn't end with a newline; this
- primarily affects GhostScript error output.
- - The scheduler was saving implicit classes, so after a few
- restarts you'll end up with AnyPrinter, AnyAnyPrinter, etc.
- - The JPEG autodetection didn't work with some JPEG files that
- came from digital cameras (JPEG but not JFIF); the new
- magic types should work with all images that the JPEG library
- can handle.
- - Fixed a bug in the new contains() MIME type rule that could
- cause cupsd to crash.
- - Switched to using strtol() in the MIME type code so that you
- can use hex, octal, or decimal constants as desired in the
- mime.types file.
- - Banner files are now treated as templates, allowing any type
- of file to be used as a banner.
- - Added a 30-second timeout to backend device reports so that a
- hung backend will not prevent the scheduler from starting.
- - Backends are once again terminated when jobs are stopped; the
- CUPS-supplied backends will stay alive until the downstream
- filters have had a chance to clear out old page data.
- - The charset lookup in the CUPS localization support was wrong
- (iso8859-x instead of iso-8859-x)
- - Changed the "cpNNNN" code page files to "windows-NNNN" to match
- the IANA registrations.
- - New PostScript banner pages.
- - Added Windows BMP and Alias PIX image file support to the image
- filter.
- - The PNG reading coded didn't free all of its buffers.
- - Added Digest authentication support to the client and server
- code.
- - Added Solaris options to System V commands.
- - Now support the output-bin job template attribute.
- - Now log the job-billing attribute in the page_log file, and
- keep track of the total number of pages in the
- job-media-sheets-completed attribute.
- - The penwidth option is now in micrometers to support more
- accurate width specification.
- - The image filters now support interlaced and transparent PNG
- files.
- - Didn't handle Keep-Alive for HTTP/1.0 clients.
- - The BrowsePoll support didn't handle when BrowseInterval
- was set to 0 (now uses 30 seconds if BrowseInterval is 0)
- - The DeskJet driver now supports 600 DPI color for printers
- that support it.
- - New lpinfo and lpmove commands.
- - The lpq command now supports the Digital UNIX output format.
- - The LPD mini-daemon now supports all required LPD operations.
- - Implemented timeouts for multi-file documents.
- - New cupsPrintFiles() function in the CUPS API library to
- print multiple files using create-job and send-document
- requests (1 job ID for multiple files)
- - The lp command now sends multiple files as a single job,
- matching the behavior of the System V command.
- - The "cancel -a" command now purges job history files.
-
-
-CHANGES IN CUPS v1.1b3
-
- - Documentation updates.
- - The startup script redirected stderr before stdout,
- which caused problems with some versions of Bourne
- shell and Bash.
- - Fixed a bug in the scheduler's PPD language reading
- code.
- - Fixed a bug in the scheduler's check for the
- manufacturer in the PPD.
- - The pstoraster filter didn't allow some input and
- output attributes to be set.
- - Added banner page support.
- - Added missing PAM configuration file.
- - Configuration script fixes for Linux and *BSD.
- - The log file code was using the wrong sign for the
- timezone offset.
- - The default printcap file is now empty (no printcap
- file is generated).
- - The scheduler did not start jobs destined for remote
- printers when they became available.
- - The scheduler now sends jobs to remote printers
- immediately. (when sending jobs to a class, the remote
- printer is only used when it becomes available)
- - The scheduler now supports printing of banner pages
- via the job-sheets attribute (banner files go in
- /usr/share/cups/banners)
- - The cupsd process now forks itself into the background
- (override with -f)
- - Added several *BSD enhancements.
- - Added UNSUPPORTED libtool option to configuration
- script to allow the use of libtool. Note that this is
- UNSUPPORTED by us, but added by request of the *BSD
- folks.
- - The parallel, serial, and usb backends now retry the
- opening of their ports. This allows multiple print
- queues to be associated with a single physical port,
- and will allow CUPS to support several types of
- parallel port auto-switches in the near future.
- - Set-Job-Attributes now supports adding, changing, and
- deleting job template attributes, and no longer allows
- job-printer-uri to be set (see CUPS-Move-Job)
- - Added CUPS-Move-Job operation to support moving of jobs.
- - The CGI template functionality now supports multiple
- languages (still only have templates for English)
- - The CUPS-Get-Printers and CUPS-Get-Classes operations
- now support filtering as defined in the IDD.
- - The Get-Jobs, CUPS-Get-Printers, and CUPS-Get-Classes
- operations no longer limit themselves to 1000 jobs,
- printers, or classes (believe it or not, this is
- needed for some sites)
- - The web interfaces now support language-specific
- templates.
- - The web admin interface now supports class management.
- - The web admin interface now shows a list of
- manufacturers before selecting the PPD/driver for a
- specific printer.
- - The web admin interface now supports configuration of
- the default printer options in the PPD file.
- - The web interface now uses printer/class
- authentication for the test page instead of admin
- authentication.
- - Updated the RPM spec file for the current release.
- - Updated language support for Windows code pages.
- - 8-bit character set files can now use multiple fonts
- (needed for Arabic, Greek, Hebrew, etc.)
- - Added basic right-to-left text support in the text
- filter.
- - The POSIX locale now uses ISO-8859-1 instead of
- US-ASCII.
- - Fixed PDF printing problems.
- - Fixed PostScript RIP page device dictionary elements
- that weren't getting passed in cups_get_params().
- - Added a new "contains" rule for the magic file typing.
- - The "printable" rule now accepts characters from 128 to 255
- (needed for Microsoft character sets)
- - Added support for ~/.cupsrc as well as /etc/cups/client.conf
- so that the default server can be configured on a per-user
- basis without environment variables.
- - Added LPD mini-daemon to support incoming LPD jobs.
-
-
-CHANGES IN CUPS v1.1b2
-
- - Documentation updates.
- - The lp command didn't always load the user-defined
- destinations, preventing it from seeing the default
- printer.
- - Many configure script and makefile fixes.
- - The Microsoft code page files were missing from the
- distribution.
- - Added a workaround for the HP IPP client (which is sending
- an invalid printer-uri in requests)
- - Fixed the encoding of text-with-language and name-with-language
- to match the IPP spec.
- - Added support for unknown value tags in the IPP routines
- (previously they would be ignored)
- - Integrated GNU GhostScript 5.50 into the pstoraster filter.
- - Client hostname resolution was broken on little-endian
- machines.
- - Now look at client.conf file for client's default server
- and printer.
- - The cupsServer() function did not close the client.conf file
- if it contained a ServerName directive.
- - Added BrowseAllow, BrowseDeny, BrowseOrder, BrowsePoll, and
- BrowseRelay directives.
- - BrowseInterval 0 disables advertising of local printers, but
- still receives information on remote printers.
- - New browse polling daemon (for polling servers on different
- networks)
- - New PPD cache file for faster startup times with large numbers
- of PPD files.
- - The Host: field was incorrectly required for HTTP/1.0 clients.
- - New set-job-attributes operation now supported.
- - The mime_load_types() and mime_load_convs() functions did not
- close their input files.
-
-
-CHANGES IN CUPS v1.1b1
-
- - NEW web-based administration interface.
- - NEW EPSON printer drivers.
- - NEW user-defined printers and options.
- - NEW persistent jobs and job history
- - NEW IPP/1.1 support
- - NEW template-based web interfaces.
- - NEW CUPS-get-devices and CUPS-get-ppds operations.
- - NEW support for create-job and send-file operations.
- - NEW certificate-based authentication for local
- administration.
- - NEW USB backend.
- - The lpr command now produces human-readable error messages.
- - The lpq command now produces BSD standard format output
- instead of OSF/1 output. This should resolve the SAMBA
- print queue problems that have been reported.
- - The IPP backend did not always detect when the "raw" option
- was being used.
- - The "lpstat -p" command would stop after the first active
- printer.
- - The "lpstat -v" command would stop before the first remote
- printer.
diff --git a/CHANGES-1.2.txt b/CHANGES-1.2.txt
deleted file mode 100644
index 7b0b1f2de..000000000
--- a/CHANGES-1.2.txt
+++ /dev/null
@@ -1,1261 +0,0 @@
-CHANGES-1.2.txt
----------------
-
-CHANGES IN CUPS V1.2.12
-
- - The PHP cups_print_file() function crashed if the options
- array contained non-string option values (STR #2430)
- - The image/tiff file matching rule incorrectly identified
- some text files as TIFF files (STR #2431)
- - The filter(7) man page incorrectly documented the
- "PAGE: total #-pages" message (STR #2427)
- - PCL text files were mis-identified as HP-GL/2 and
- caused the HP-GL/2 filter to hang (STR #2423)
- - When printing to a queue with user ACLs, the scheduler
- incorrectly returned a quota error instead of a "not
- allowed to print" error (STR #2409)
- - cupsaddsmb could get in a loop if no printer drivers
- were installed (STR #2407)
- - cupsRasterReadHeader() did not byte-swap the header
- properly when compiled with certain versions of GCC.
- - The IPP backend did not send the document-format
- attribute for filtered jobs (STR #2411)
- - Some PPD files could cause a crash in ppdOpen2 (STR
- #2408)
- - The web admin interface incorrectly handled the "share
- printers" and "show remote printers" settings (STR
- #2393)
- - The scheduler's log messages about AuthClass and
- AuthGroupName advised using a replacement directive but
- had the wrong syntax (STR #2400)
- - Updated the PostScript/PJL and HP-GL/2 MIME rules to
- look in the first 4k of the file, not just the first 1k
- (STR #2386)
- - Updated the Italian localization (STR #2382)
-
-
-CHANGES IN CUPS V1.2.11
-
- - Fixed the "relaying from" log message (STR #2376)
- - Updated the launchd support on Mac OS X to better
- support reconfiguration.
- - "make distclean" didn't remove all generated files
- (STR #2366)
- - Fixed a bug in the advertisement of classes (STR
- #2373)
- - The IPP backend now stays running until the job is
- actually printed by the remote server; previously
- it would stop monitoring the job if it was held or
- temporarily stopped (STR #2352)
- - PDF files were not always printed using the correct
- orientation (STR #2348)
- - The scheduler could crash if you specified a bad file:
- URI for a printer (STR #2351)
- - The Renew-Subscription operation now returns the
- notify-lease-duration value that was used (STR #2346)
- - The IPP backend sent job options to IPP printers,
- however some printers tried to override the options
- embedded in the PS/PCL stream with those job options
- (STR #2349)
- - ppdLocalize() now also tries a country-specific
- localization for when localizing to a generic locale
- name.
- - The cupstestppd program now allows for partial
- localizations to reduce the size of universal PPD
- files.
- - Chinese PPD files were incorrectly tagged with the
- "cn" locale (should have been "zh")
- - The backends now manage the printer-state-reasons
- attribute more accurately (STR #2345)
- - Java, PHP, Perl, and Python scripts did not work
- properly (STR #2342)
- - The scheduler would take forever to start if the
- maximum number of file descriptors was set to
- "unlimited" (STR #2329)
- - The page-ranges option was incorrectly applied to the
- banner pages (STR #2336)
- - Fixed some GCC compile warnings (STR #2340)
- - The DBUS notification code was broken for older
- versions of DBUS (STR #2327)
- - The IPv6 code did not compile on HP-UX 11.23 (STR
- #2331)
- - PPD constraints did not work properly with custom
- options.
- - Regular PPD options with the name "CustomFoo" did
- not work.
- - The USB backend did not work on NetBSD (STR #2324)
- - The printer-state-reasons attribute was incorrectly
- cleared after a job completed (STR #2323)
- - The scheduler did not set the printer operation policy
- on startup, only on soft reload (STR #2319)
- - The AP_FIRSTPAGE_InputSlot option did not clear any
- ManualFeed setting that was made, which caused problems
- with some PPD files (STR #2318)
- - cupsDoFileRequest() and cupsDoRequest() did not abort
- when getting an error in the response (STR #2315)
- - The scheduler did not schedule jobs properly to remote
- or nested classes (STR #2317)
- - Updated the mime.types and mime.convs headers to warn
- that the files are overwritten when CUPS is installed.
- Local changes should go in local.types or local.convs,
- respectively (STR #2310)
- - The scheduler could get in an infinite loop if a
- printer in an implicit class disappeared (STR #2311)
- - The pstops filter did not handle %%EndFeature comments
- properly (STR #2306)
- - Fixed a problem with the Polish web page printer icons
- (STR #2305)
- - ppdLocalize() now also localizes the cupsICCProfile
- attributes.
- - The scheduler still had a reference to the incorrect
- "notify-recipient" attribute (STR #2307)
- - The "make check" and "make test" subscription tests did
- not set the locale (STR #2307)
- - The "make check" and "make test" subscription tests
- incorrectly used the notify-recipient attribute instead
- of notify-recipient-uri (STR #2307)
- - cupsRasterInterpretPPD() incorrectly limited the
- cupsBorderlessScalingFactor when specified in the
- job options.
-
-
-CHANGES IN CUPS V1.2.10
-
- - ppdLocalize() now supports localizing for Japanese
- using the "jp" locale name used by the ppdmerge
- program from the CUPS DDK 1.1.0 (STR #2301)
- - _cupsAdminSetServerSettings() did not support changing
- of top-level directives as designed.
- - The init script path check was broken.
- - CUPS incorrectly used the attribute "notify-recipient"
- instead of "notify-recicpient-uri" in several places
- (STR #2297)
- - Fixed a configure script bug on MirBSD (STR #2294)
- - The pdftops filter did not limit the amount of recursion
- of page sets (STR #2293)
- - Custom page sizes with fractional point sizes did not
- work (STR #2296)
- - The lpoptions command would crash when adding or removing
- options on a system with no printers (STR #2295)
-
-
-CHANGES IN CUPS V1.2.9
-
- - The scheduler did not use the default job-sheets
- (banners) for implicit classes (STR #2284)
- - The scheduler could crash when listing complete jobs
- that had been unloaded from memory (STR #2288)
- - The French localization was doubled up (STR #2287)
- - Build system fixes for several platforms (STR #2260,
- STR #2275)
- - The scheduler's openssl certificate generation code was
- broken on some platforms (STR #2282)
- - The scheduler's log rotation check for devices was
- broken (STR #2278)
- - The LPD mini-daemon did not handle the document-format
- option correctly (STR #2266)
- - The pdftops filter ignored the "match" size option in the
- pdftops.conf file (STR #2285)
- - cupstestppd now validates UTF-8 text strings in
- globalized PPD files (STR #2283)
- - The outputorder=reverse option did not work with all
- printers (STR #2279)
- - Classes containing other classes did not always work
- (STR #2255)
- - Printer location and description information was lost
- if the corresponding string contained the "#" character
- (STR #2254)
- - cupsRemoveOption() did not work properly (STR #2264)
- - The USB backend did not work with some USB to parallel
- cables on Mac OS X.
- - The test page did not print the rulers properly on
- large media sizes (STR #2252)
- - The text filter could crash when pretty printing certain
- types of files (STR #2158)
-
-
-CHANGES IN CUPS V1.2.8
-
- - Documentation fixes (STR #2141, STR #2157)
- - The HTTP upgrade redirection used by the scheduler did
- not work with Internet Explorer (STR #2235)
- - Members of a class with Unicode names did not appear
- correctly in the web interface (STR #2154)
- - Changing the "Save debugging information" setting in
- the web interface no longer affects the other server
- settings (STR #1993)
- - The scheduler did not choose SSL certificates correctly
- on Mac OS X (STR #2225)
- - The scheduler could get in an infinite loop when
- printing to a remote class (STR #2228)
- - The jobs web page did not have separating space after
- the number of pages column (STR #2230)
- - Added French localization (STR #2221)
- - Updated Spanish localization (STR #2223)
- - Updated Japanese localization (STR #2216)
- - cupsBorderlessScalingFacter was limited to a range of
- 0.9 to 1.1, but some printers need larger values (STR
- #2222)
- - Landscape printing of PDF files did not always work
- (STR #2149)
- - Fixed slow USB printing on Minolta printers (STR #2104,
- STR #2219)
- - The ZPL label printer driver could produce stretched
- output (PR #6448)
- - The IPP backend now clears the printer-state-message
- when there are no outstanding errors or warnings (STR
- #2126)
- - The CUPS Java scripting support did not work with
- recent versions of Java due to the use of Sun's private
- Base64 class (STR #2152)
- - The scheduler did not pass HTTP GET form variables to
- custom CGI programs (STR #2173)
- - The lpoptions command now displays the reason why a PPD
- file cannot be found (STR #2184)
- - The scheduler did not accept "none" as a browse
- protocol name (STR #2200)
- - The scheduler still loaded the remote printer cache,
- even when browsing was disabled (STR #2198)
- - The SNMP backend now shows OfficeJet printers with the
- "HP" manufacturer prefix (STR #2151)
- - Web interface HTML cleanup (STR #2153)
- - The parallel backend consumed 100% CPU on FreeBSD due
- to an apparently common parallel port driver bug (STR
- #2161)
- - ippReadIO() incorrectly returned IPP_IDLE when the
- initial IPP message header could not be read (STR
- #2179)
- - cupsRasterInterpretPPD() did not support custom options
- (STR #1960)
- - Collated output produced by the PostScript filter could
- lose some options (STR #2137)
- - job-hold-until with time values for the next day would
- be held for 60 days (STR #2144)
- - Some types of Sun raster files did not print correctly
- (STR #2107)
- - Raw PBM files did not print correctly (STR #2106)
- - The SNMP backend no longer uses IPP with HP printers,
- as some recent firmware versions appear to not work
- (STR #2055)
- - cupsMarkOptions() did not handle the
- multiple-document-handling option (STR #2135)
- - lpstat did not show the local job ID of active printers
- (STR #2125)
- - The backends incorrectly used STATUS:
- media-tray-empty-error messages for out-of-paper
- conditions (STR #2123, STR #2124)
- - cupsGetPPD2() returned the wrong error when the PPD
- file did not exist (STR #2122)
- - cupsDoAuthentication() did not translate the password
- prompt (STR #2121)
- - httpGetLength2() did not handle error messages without
- content correctly (STR #2133)
- - Added support for 32/64-bit libraries on HP-UX Itanium
- systems (STR #2115)
- - Fixed a configure script problem with the 32/64-bit
- library support (STR #2114)
- - The PostScript filter did not properly output document
- setup commands for reversed output (STR #2111)
- - The scheduler did not parse IPv6 netmasks properly (STR
- #2117)
-
-
-CHANGES IN CUPS V1.2.7
-
- - Documentation updates (STR #2089)
- - Added an Italian translation (STR #2105)
- - The PostScript filter now rotates the bounding box
- values as needed (STR #2079)
- - The scheduler no longer loads the remote printer cache
- when browsing is disabled (STR #2084)
- - The scheduler no longer writes a new launchd
- configuration file if it doesn't have to (STR #2083)
- - Updated the USB and PAP backends for Mac OS X (STR
- #2086)
- - The scheduler now picks up on changes to IPv6 and DNS
- configuration on Mac OS X (STR #2085)
- - The lpstat program could still hang (STR #2098)
- - Fixed an inefficiency in the SNMP IPP detection code
- (STR #2100)
- - The SSL negotiation code did not implement short
- timeouts (STR #2091)
-
-
-CHANGES IN CUPS V1.2.6
-
- - The web interface was not localized on Mac OS X (STR
- #2075)
- - "lpc status" did not show the number of queued jobs for
- disabled queues (STR #2069)
- - The lpstat program could hang (STR #2073)
- - The serial backend did not support the new USB serial
- filenames on Linux (STR #2061)
- - The parallel backend did not support bidirectional I/O
- properly (STR #2056)
- - The network backends now log the numeric address that
- is being used (STR #2046)
- - Fixed a compile error when using libpaper.
- - Fixed a compile error when compiling on Solaris with
- threading enabled (STR #2049, STR #2050)
- - Missing printer-state-changed event for
- printer-state-message updates (STR #2047)
-
-
-CHANGES IN CUPS V1.2.5
-
- - Documentation updates (STR #2038)
- - The SNMP backend no longer uses IPP for Epson printers
- (STR #2028)
- - Updated the configure script for Tru64 UNIX 5.1 (STR
- #2033)
- - Tru64 5.1B's getaddrinfo() and getnameinfo() functions
- leak file descriptors (STR #2034)
- - cupsAddDest() didn't add the parent destination's
- options and attributes.
- - ppdConflicts() did not handle custom option
- constraints.
- - Raw printing of gzip'd files did not work (STR #2009)
- - The scheduler no longer preserves default option
- choices when the new PPD no longer provides the old
- default choice (STR #1929)
- - The Linux SCSI backend is now only built if the SCSI
- development headers are installed.
- - USB printing to Minolta printers did not work (STR
- #2019)
- - Windows clients could not monitor the queue status (STR
- #2006)
- - The scheduler didn't log the operation name in the
- access_log file for Create-Job and Print-Job requests.
- - The PostScript filter now separates collated copies
- with any required JCL commands so that JCL-based
- finishing options act on the individual copies and not
- all of the copies as a single document.
- - The PostScript filter now disables duplex printing when
- printing a 1-page document.
- - cups-lpd didn't pass the correct
- job-originating-host-name value (STR #2023)
- - Fixed some speling errors in the German message catalog
- (STR #2012)
- - cupstestppd did not catch PPD files with bad
- UIConstraints values (STR #2016)
- - The USB backend did not work with the current udev-
- created printers if the first printer was disconnected
- (STR #2017)
- - Mirrored and rotated printing did not work with some
- documents (STR #2004)
- - 2-sided printing with banners did not work properly on
- some printers (STR #2018)
- - Updated the raw type rule to handle PJL within the
- first 4k of a print job (STR #1969)
- - Added an Estonian translation (STR #1957)
- - Clarified the documentation for the cupsd.conf @LOCAL
- and @IF(name) allow/deny functionality (STR #1992)
- - The PostScript filters did not escape the Title and For
- comments in the print job header (STR #1988)
- - The scheduler would use 100% CPU if browsing was
- disabled and the cupsd.conf file contained BrowsePoll
- lines (STR #1994)
- - The cupsDirRead() function did not work properly on
- non-POSIX-compliant systems (STR #2001)
- - The cupsFile functions didn't handle read/write errors
- properly (STR #1996)
- - The DBUS support now works with older versions of the
- DBUS library.
-
-
-CHANGES IN CUPS V1.2.4
-
- - The --with-printcap configure option did not work (STR
- #1984)
- - The character set reported by cupsLangGet() did not
- always reflect the default character set of a given
- locale (STR #1983)
- - Older Lexmark and Tektronix printers did not work with
- IPP (STR #1980)
- - Failsafe printing did not work (PR #6328)
- - Some web interface redirects did not work (STR #1978)
- - The web interface change settings button could
- introduce a "Port 0" line in cupsd.conf if there was no
- loopback connection available (STR #1979)
- - The web interface change settings and edit
- configuration file buttons would truncate the
- cupsd.conf file (STR #1976)
- - The German web interface used the wrong printer icon
- images (STR #1973)
- - The "All Documents" link in the on-line help was
- missing a trailing slash (STR #1971)
- - The Polish web interface translation used the wrong
- URLs for the job history (STR #1963)
- - The "reprint job" button did not work (STR #1956)
- - The scheduler did not always report printer or job
- events properly (STR #1955)
- - The scheduler always stopped the queue on error,
- regardless of the exit code, if the error policy was
- set to "stop-printer" (STR #1959)
- - ppdEmitJCL() included UTF-8 characters in the JCL job
- name, which caused problems on some printers (STR
- #1959)
- - Fixed a buffering problem that cause high CPU usage
- (STR #1968)
- - The command-line applications did not convert
- command-line strings to UTF-8 as needed (STR #1958)
- - cupsDirRead() incorrectly aborted when reading a
- symbolic link that pointed to a file/directory that did
- not exist (STR #1953)
- - The cupsInterpretRasterPPD() function did not handle
- custom page sizes properly.
-
-
-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.
diff --git a/CHANGES-1.3.txt b/CHANGES-1.3.txt
deleted file mode 100644
index 9af534f9b..000000000
--- a/CHANGES-1.3.txt
+++ /dev/null
@@ -1,856 +0,0 @@
-CHANGES-1.3.txt
----------------
-
-CHANGES IN CUPS V1.3.11
-
- - The scheduler did not prevent nested classes (STR #3211)
- - The scheduler did not reprint processing jobs that were moved to
- another destination (STR #3222)
- - The scheduler did not reset the current job file when stopping a
- printer (STR #3226)
- - The scheduler did not handle POSTs to custom CGIs properly (STR #3221)
- - The pdftops filter did not print landscape PDF pages properly
- (STR #2881)
- - The scheduler did not handle partial header lines properly from CGI
- programs (STR #3194)
- - The web interface could hang on OpenBSD (STR #3176, STR #3196)
- - The scheduler and cupsfilter utility did not handle rules starting
- with a negation operator properly (STR #3160)
- - The scheduler and cupsfilter utility would crash with certain MIME
- .types rules (STR #3159)
- - httpSetField wasn't bracketing IPv6 numeric addresses for the Host:
- field (STR #3164)
- - The ServerName, if specified, was not treated as a valid alias for the
- local system (STR #3167)
- - "make epm" did not work (STR #3166)
- - "lpstat -h server" showed non-shared printers (STR #3147)
- - "make check" did not work on Linux (STR #3161)
-
-
-CHANGES IN CUPS V1.3.10
-
- - Documentation fixes (STR #2994, STR #2995, STR #3008, STR #3056,
- STR #3057)
- - SECURITY: The scheduler now protects against DNS rebinding attacks
- (STR #3118)
- - SECURITY: Fixed TIFF integer overflow in image filters (STR #3031)
- - The scheduler did not support the job-hold-until attribute with the
- Restart-Job operation (STR #3130)
- - SECURITY: The PNG image reading code did not validate the
- image size properly, leading to a potential buffer overflow
- (STR #2974)
- - The rastertohp driver did not set the 1-sided printing mode when
- needed (STR #3131)
- - Now use a wrapper program instead of our fork of the Xpdf code to
- support printing of PDF files. The new wrapper supports using Xpdf,
- poppler, or Ghostscript to convert PDF files to PostScript (STR #3129)
- - Long job names caused problems with some PJL printers (STR #3125)
- - The lpq command did not work when showing all destinations (STR #3117)
- - The scheduler used a codeset name of UTF8 which is not supported on
- Solaris (STR #3113)
- - cupsGetJobs() did not work with a NULL destination (STR #3107)
- - Fixed a localization problem for option choices (incorrectly) named
- "Custom" (STR #3106)
- - The fallback OpenSSL random number seeding would not work (STR #3079)
- - The scheduler might miss a child signal, causing high CPU usage.
- - The scheduler did not enforce quotas after the job history was
- unloaded (STR #3078)
- - The job-k-limit, job-page-limit, and job-quota-period attributes
- could not be set using the lpadmin command (STR #3077)
- - httpSeparateURI() did not error out on URIs with a missing port
- number after a colon.
- - Fixed a Valgrind-detected initialization error when creating a
- missing directory on startup.
- - The scheduler did not always read all of the HTTP headers from a
- CGI script/program.
- - The scheduler did not always set the "air" property in Bonjour/DNS-SD
- registrations.
- - The scheduler incorrectly compared Mac OS X UUIDs for access
- control, preventing access in certain configurations.
- - The IPP backend incorrectly reset the required authentication
- to Kerberos when authentication failed.
- - The scheduler no longer looks up the local hostname by default;
- turn on hostname lookups to restore the previous behavior.
- - The scheduler did not always load MIME type rules correctly
- (STR #3059)
- - The test page did not format correctly on A4 paper (STR #3060)
- - The web interface sometimes incorrectly redirected users to
- 127.0.0.1 (STR #3022)
- - cupsPrintFile*() did not send the document filename for single
- file submissions (STR #3055)
- - The scheduler did not update the member-names attribute when
- removing the last printer from a class.
- - The scheduler did not report PPD Products with parenthesis
- in them properly (STR #3046)
- - The wrong italic fonts were listed in the UTF-8 charset file
- for the text filter.
- - The backends did not return an OK status for the
- CUPS_SC_CMD_GET_BIDI side-channel command (STR #3029)
- - The scheduler did not purge jobs that were missing a
- time-at-creation attribute, indicating a bad job control file
- (STR #3030)
- - The "-o job-hold-until=week-end" option did not work properly
- (STR #3025)
- - The Solaris USB printer device does not support select or poll
- (STR #3028)
- - The scheduler would crash if you exceeded the MaxSubscriptions
- limit.
- - The lp "-H immediate" option did not specify that the job
- should not be held (STR #3013)
- - The scheduler did not support the "Connection: close"
- HTTP header (STR #3010)
- - The mailto notifier didn't terminate messages properly
- (STR #3011)
- - Backends could spin trying to read back-channel data
- (STR #3001)
- - The HP-GL/2 filter was using the wrong default colors
- (STR #2966)
- - The scheduler incorrectly allowed Get-Jobs operations without a
- printer-uri (STR #2996)
- - The compression option was not being encoded properly
- (STR #2997)
- - Added a missing character map for JIS-X0213/ShiftJIS.
- - The scheduler now rejects ATTR: messages with empty values.
- - The scheduler could consume all CPU handling closed connections
- (STR #2988)
- - Fixed some configure script bugs with rc/xinetd directories
- (STR #2970)
- - The Epson sample driver PPDs contained errors (STR #2979)
-
-
-CHANGES IN CUPS V1.3.9
-
- - SECURITY: The HP-GL/2 filter did not range check pen numbers
- (STR #2911)
- - SECURITY: The SGI image file reader did not range check
- 16-bit run lengths (STR #2918)
- - SECURITY: The text filter did not range check cpi, lpi, or
- column values (STR #2919)
- - Documentation updates (STR #2904, STR #2944)
- - The French web admin page was never updated (STR #2963)
- - The IPP backend did not retry print jobs when the printer
- reported itself as busy or unavailable (STR #2951)
- - The "Set Allowed Users" web interface did not handle trailing
- whitespace correctly (STR #2956)
- - The PostScript filter did not work with Adobe applications
- using custom page sizes (STR #2968)
- - The Mac OS X USB backend did not work with some printers
- that reported a bad 1284 device ID.
- - The scheduler incorrectly resolved the client connection
- address when HostNameLookups was set to Off (STR #2946)
- - The IPP backend incorrectly stopped the local queue if
- the remote server reported the "paused" state.
- - The cupsGetDests() function did not catch all types of
- request errors.
- - The scheduler did not always log "job queued" messages
- (STR #2943)
- - The scheduler did not support destination filtering using
- the printer-location attribute properly (STR #2945)
- - The scheduler did not send the server-started,
- server-restarted, or server-stopped events (STR #2927)
- - The scheduler no longer enforces configuration file
- permissions on symlinked files (STR #2937)
- - CUPS now reinitializes the DNS resolver on failures
- (STR #2920)
- - The CUPS desktop menu item was broken (STR #2924)
- - The PPD parser was too strict about missing keyword
- values in "relaxed" mode.
- - The PostScript filter incorrectly mirrored landscape
- documents.
- - The scheduler did not correctly update the
- auth-info-required value(s) if the AuthType was Default.
- - The scheduler required Kerberos authentication for
- all operations on remote Kerberized printers instead
- of just for the operations that needed it.
- - The socket backend could wait indefinitely for back-
- channel data with some devices.
- - PJL panel messages were not reset correctly on older
- printers (STR #2909)
- - cupsfilter used the wrong default path (STR #2908)
- - Fixed address matching for "BrowseAddress @IF(name)"
- (STR #2910)
- - Fixed compiles on AIX.
- - Firefox 3 did not work with the CUPS web interface in SSL
- mode (STR #2892)
- - Custom options with multiple parameters were not emitted
- correctly.
- - Refined the cupstestppd utility.
- - ppdEmit*() did not support custom JCL options (STR #2889)
- - The cupstestppd utility incorrectly reported missing
- "en" base translations (STR #2887)
-
-
-CHANGES IN CUPS V1.3.8
-
- - Documentation updates (STR #2785, STR #2861, STR #2862)
- - The scheduler did not add the ending job sheet when the
- job was released.
- - The IPP backend did not relay marker-* attributes.
- - The CUPS GNOME/KDE menu item was not localized for
- Chinese (STR #2880)
- - The CUPS GNOME/KDE menu item was not localized for
- Japanese (STR #2876)
- - The cupstestppd utility reported mixed line endings for
- Mac OS and Windows PPD files (STR #2874)
- - The pdftops filter did not print landscape orientation PDF
- pages correctly on all printers (STR #2850)
- - The scheduler did not handle expiring of implicit classes
- or their members properly, leading to a configuration where
- one of the members would have a short name (STR #2766)
- - The scheduler and cupstestppd utilities did not support
- cupsFilter and cupsPreFilter programs with spaces in their
- names (STR #2866)
- - Removed unused variables and assignments found by the
- LLVM "clang" tool.
- - Added NULL checks recommended by the LLVM "clang" tool.
- - The scheduler would crash if you started a printer that
- pointed to a backend that did not exist (STR #2865)
- - The ppdLocalize functions incorrectly mapped all generic
- locales to country-specific locales.
- - The cups-driverd program did not support Simplified Chinese
- or Traditional Chinese language version strings (STR #2851)
- - Added an Indonesian translation (STR #2792)
- - Fixed a timing issue in the backends that could cause data
- corruption with the CUPS_SC_CMD_DRAIN_OUTPUT side-channel
- command (STR #2858)
- - The scheduler did not support "HostNameLookups" with all of
- the boolean names (STR #2861)
- - Fixed a compile problem with glibc 2.8 (STR #2860)
- - The scheduler incorrectly filtered out queues with ACLs and
- authentication.
- - The PostScript filter did not support %%IncludeFeature lines
- in the page setup section of each page (STR #2831)
- - The scheduler did not generate printer-state events when the
- default printer was changed (STR #2764)
- - cupstestppd incorrectly reported a warning about the PPD format
- version in some locales (STR #2854)
- - cupsGetPPD() and friends incorrectly returned a PPD file for
- a class with no printers.
- - The member-uris values for local printers in a class returned
- by the scheduler did not reflect the connected hostname or
- port.
- - The CUPS PHP extension was not thread-safe (STR #2828)
- - The scheduler incorrectly added the document-format-default
- attribute to the list of "common" printer attributes, which
- over time would slow down the printing system (STR #2755,
- STR #2836)
- - The cups-deviced and cups-driverd helper programs did not set
- the CFProcessPath environment variable on Mac OS X (STR #2837)
- - "lpstat -p" could report the wrong job as printing (STR #2845)
- - The scheduler would crash when some cupsd.conf directives
- were missing values (STR #2849)
- - The web interface "move jobs" operation redirected users to
- the wrong URL (STR #2815)
- - The Polish web interface translation contained errors
- (STR #2815)
- - The scheduler did not report PostScript printer PPDs with
- filters as PostScript devices.
- - The scheduler did not set the job document-format attribute
- for jobs submitted using Create-Job and Send-Document.
- - cupsFileTell() did not work for log files opened in append
- mode (STR #2810)
- - The scheduler did not set QUERY_STRING all of the time
- for CGI scripts (STR #2781, STR #2816)
- - The scheduler now returns an error for bad job-sheets
- values (STR #2775)
- - Authenticated remote printing did not work over domain
- sockets (STR #2750)
- - The scheduler incorrectly logged errors for print filters
- when a job was canceled (STR #2806, #2808)
- - The scheduler no longer allows multiple RSS subscriptions
- with the same URI (STR #2789)
- - The scheduler now supports Kerberized printing with
- multiple server names (STR #2783)
- - "Satisfy any" did not work in IPP policies (STR #2782)
- - The CUPS imaging library would crash with very large
- images - more than 16Mx16M pixels (STR #2805)
- - The PNG image loading code would crash with large images
- (STR #2790)
- - The scheduler did not limit the total number of filters.
- - The scheduler now ensures that the RSS directory has
- the correct permissions.
- - The RSS notifier did not quote the feed URL in the RSS
- file it created (STR #2801)
- - The web interface allowed the creation and cancellation
- of RSS subscriptions without a username (STR #2774)
- - Increased the default MaxCopies value on Mac OS X to
- 9999 to match the limit imposed by the print dialog.
- - The scheduler did not reject requests with an empty
- Content-Length field (STR #2787)
- - The scheduler did not log the current date and time and
- did not escape special characters in request URIs when
- logging bad requests to the access_log file (STR #2788)
-
-
-CHANGES IN CUPS V1.3.7
-
- - CVE-2008-0047: cgiCompileSearch buffer overflow (STR #2729)
- - CVE-2008-1373: CUPS GIF image filter overflow (STR #2765)
- - Updated the "make check" tests to do a more thorough
- automated test.
- - cups-driverd complained about missing directories (STR
- #2777)
- - cupsaddsmb would leave the Samba username and password on
- disk if no Windows drivers were installed (STR #2779)
- - The Linux USB backend used 100% CPU when a printer was
- disconnected (STR #2769)
- - The sample raster drivers did not properly handle SIGTERM
- (STR #2770)
- - The scheduler sent notify_post() messages too often on
- Mac OS X.
- - Kerberos access to the web interface did not work
- (STR #2748)
- - The scheduler did not support "AuthType Default" in IPP
- policies (STR #2749)
- - The scheduler did not support the "HideImplicitMembers"
- directive as documented (STR #2760)
- - "make check" didn't return a non-zero exit code on
- error (STR #2758)
- - The scheduler incorrectly logged AUTH_foo environment
- variables in debug mode (STR #2751)
- - The image filters inverted PBM files (STR #2746)
- - cupsctl would crash if the scheduler was not running
- (STR #2741)
- - The scheduler could crash when printing using a port
- monitor (STR #2742)
- - The scheduler would crash if PAM was broken (STR #2734)
- - The image filters did not work with some CMYK JPEG files
- produced by Adobe applications (STR #2727)
- - The Mac OS X USB backend did not work with printers that
- did not report a make or model.
- - The job-sheets option was not encoded properly (STR #2715)
- - The scheduler incorrectly complained about missing LSB
- PPD directories.
-
-
-CHANGES IN CUPS V1.3.6
-
- - Documentation updates (STR #2646, STR #2647, STR #2649)
- - Fixed a problem with the web interface "Use Kerberos
- Authentication" check box (STR #2703)
- - The scheduler unconditionally overwrote the printer-state-
- message with "process-name failed" when a filter or backend
- failed, preventing a useful error message from being shown
- to the user.
- - Policies on CUPS-Move-Job didn't work as expected (STR
- #2699)
- - The configure script only supported D-BUS on Linux
- (STR #2702)
- - The scheduler did not support </LimitExcept> (STR #2701)
- - The scheduler did not reset the job-hold-until attribute
- after a job's hold time was reached.
- - The scheduler did not support printer supply attributes
- (STR #1307)
- - The Kerberos credentials provided by some Windows KDCs
- were still too large - now use a dynamic buffer to
- support credentials up to 64k in size (STR #2695)
- - Printing a test page from the web interface incorrectly
- defaulted to the "guest" user (STR #2688)
- - The cupsEncodeOptions2() function did not parse multiple-
- value attribute values properly (STR #2690)
- - The scheduler incorrectly sent printer-stopped events for
- status updates from the print filters (STR #2680)
- - The IPP backend could crash when handling printer errors
- (STR #2667)
- - Multi-file jobs did not print to remote CUPS servers
- (STR #2673)
- - The scheduler did not provide the Apple language ID to
- job filters.
- - Kerberos authentication did not work with the web
- interface (STR #2606, STR #2669)
- - The requesing-user-name-allowed and -denied functionality
- did not work for Kerberos-authenticated usernames (STR
- #2670)
- - CUPS didn't compile on HP-UX 11i (STR #2679)
- - cupsEncodeOptions2() did not handle option values like
- "What's up, doc?" properly.
- - Added lots of memory allocation checks (Fortify)
- - The scheduler would crash if it was unable to add a job
- file (Fortify)
- - ppdOpen*() did not check all memory allocations (Coverity)
- - ippReadIO() did not check all memory allocations (Coverity)
- - The PostScript filter did not detect read errors (Coverity)
- - The scheduler did not check for a missing job-sheets-completed
- attribute when sending an event notification (Coverity)
- - "Set Printer Options" might not work with raw queues (Coverity)
- - cupsRasterInterpretPPD() could crash on certain PostScript
- errors (Coverity)
- - The USB backend did not check for back-channel support
- properly on all systems (Coverity)
- - Fixed memory leaks in the GIF and PNM image loading code
- (Coverity)
- - Removed some dead code in the CUPS API and scheduler (Coverity)
- - Fixed two overflow bugs in the HP-GL/2 filter (Coverity)
- - Fixed another ASN1 string parsing bug (STR #2665)
- - The RSS notifier directory was not installed with the
- correct permissions.
- - The standard CUPS backends could use 100% CPU while waiting
- for print data (STR #2664)
- - Filename-based MIME rules did not work (STR #2659)
- - The cups-polld program did not exit if the scheduler crashed
- (STR #2640)
- - The scheduler would crash if you tried to set the port-monitor
- on a raw queue (STR #2639)
- - The scheduler could crash if a polled remote printer was
- converted to a class (STR #2656)
- - The web interface and cupsctl did not correctly reflect
- the "allow printing from the Internet" state (STR #2650)
- - The scheduler incorrectly treated MIME types as case-
- sensitive (STR #2657)
- - The Java support classes did not send UTF-8 strings to
- the scheduler (STR #2651)
- - The CGI code did not handle interrupted POST requests
- properly (STR #2652)
- - The PostScript filter incorrectly handled number-up when
- the number of pages was evenly divisible by the number-up
- value.
- - The PDF filter incorrectly filtered pages when page-ranges
- and number-up were both specified (STR #2643)
- - The IPP backend did not handle printing of pictwps files
- to a non-Mac CUPS server properly.
- - The scheduler did not detect network interface changes
- on operating systems other than Mac OS X (STR #2631)
- - The scheduler now logs the UNIX error message when it
- is unable to create a request file such as a print job.
- - Added support for --enable-pie on Mac OS X.
-
-
-CHANGES IN CUPS V1.3.5
-
- - The SNMP backend did not check for negative string
- lengths (STR #2589)
- - The scheduler incorrectly removed auth-info attributes,
- potentially leading to a loss of all options for a job.
- - The scheduler stopped sending CUPS browse packets on a
- restart when using fixed addresses (STR #2618)
- - Fixed PDF filter security issues (CVE-2007-4352
- CVE-2007-5392 CVE-2007-5393)
- - Changing settings would always change the DefaultAuthType
- and Allow lines (STR #2580)
- - The scheduler would crash when submitting an undefined
- format file from Samba with LogLevel debug2 (STR #2600)
- - The scheduler did not use poll() when epoll() was not
- supported by the running kernel (STR #2582)
- - Fixed a compile problem with Heimdal Kerberos (STR #2592)
- - The USB backend now retries connections to a printer
- indefinitely rather than stopping the queue.
- - Printers with untranslated JCL options were not exported
- to Samba correctly (STR #2570)
- - The USB backend did not work with some Minolta USB
- printers (STR #2604)
- - The strcasecmp() emulation code did not compile (STR
- #2612)
- - The scheduler would crash if a job was sent to an empty
- class (STR #2605)
- - The lpc command did not work in non-UTF-8 locales (STR
- #2595)
- - Subscriptions for printer-stopped events also received
- other state changes (STR #2572)
- - cupstestppd incorrectly reported translation errors for
- the "en" locale.
- - ppdOpen() did not handle custom options properly when the
- Custom attribute appeared before the OpenUI for that
- option.
- - The scheduler could crash when deleting a printer or
- listing old jobs.
- - The Mac OS X USB backend did not allow for requeuing of
- jobs submitted to a class.
- - lpmove didn't accept a job ID by itself.
- - The scheduler incorrectly removed job history information
- for remote print jobs.
- - The scheduler incorrectly sent the
- "com.apple.printerListChanged" message for printer state
- changes.
- - The PostScript filter drew the page borders (when enabled)
- outside the imageable area.
- - The LPD and IPP backends did not default to the correct
- port numbers when using alternate scheme names.
- - The scheduler incorrectly deleted hardwired remote
- printers on system sleep.
- - The scheduler would abort if a bad browse protocol name
- was listed in the cupsd.conf file.
- - The online cupsd.conf help file incorrectly showed
- "dns-sd" instead of "dnssd" for Bonjour sharing.
- - The scheduler could crash changing the port-monitor value.
- - The scheduler generated CoreFoundation errors when run as
- a background process.
- - When printing with number-up > 1, it was possible to get
- an extra blank page.
-
-
-CHANGES IN CUPS V1.3.4
-
- - Documentation updates (STR #2560, STR #2563, STR #2569)
- - CUPS now maps the "nb" locale to "no" on all platforms
- (STR #2575)
- - CUPS did not work with a Windows 2003 R2 KDC (STR #2568)
- - ippReadIO() could read past the end of a buffer (STR
- #2561)
- - The scheduler would crash on shutdown if it was unable
- to create a Kerberos context.
- - Multiple AuthTypes in cupsd.conf did not work (STR
- #2545)
- - The snmp.conf file referenced the wrong man page (STR
- #2564)
- - The cupsaddsmb program didn't handle domain sockets
- properly (STR #2556)
- - The scheduler now validates device URIs when adding
- printers.
- - Updated httpSeparateURI() to support hostnames with
- the backslash character.
- - Updated the Japanese localization (STR #2546)
- - The parallel backend now gets the current IEEE-1284
- device ID string on Linux (STR #2553)
- - The IPP backend now checks the job status at
- variable intervals (from 1 to 10 seconds) instead
- of every 10 seconds for faster remote printing
- (STR #2548)
- - "lpr -p" and "lpr -l" did not work (STR #2544)
- - Compilation failed when a previous version of CUPS
- was installed and was included in the SSL include
- path (STR #2538)
- - The scheduler did not reject requests with charsets
- other than US-ASCII or UTF-8, and the CUPS API
- incorrectly passed the locale charset to the scheduler
- instead of UTF-8 (STR #2537)
- - cups-deviced did not filter out duplicate devices.
- - The AppleTalk backend incorrectly added a scheme
- listing when AppleTalk was disabled or no printers
- were found.
- - The PostScript filter generated N^2 copies when the
- printer supported collated copies and user requested
- reverse-order output.
- - The scheduler did not reprint all of the files in a
- job that was held.
- - The scheduler did not update the printcap file after
- removing stale remote queues.
- - The cupsd.conf man page incorrectly referenced
- "AuthType Kerberos" instead of "AuthType Negotiate".
-
-
-CHANGES IN CUPS V1.3.3
-
- - The scheduler did not use the attributes-natural-language
- attribute when passing the LANG environment variable to
- cups-deviced or cups-driverd.
- - The scheduler did not use the printer-op-policy when
- modifying classes or printers (STR #2525)
- - The auth-info-required attribute was not always updated
- for remote queues that required authentication.
- - The German web interface localization contained errors
- (STR #2523)
- - The Swedish localization contained errors (STR #2522)
-
-
-CHANGES IN CUPS V1.3.2
-
- - The 1.3.1 release was incorrectly created from the
- 1.4.x source tree (STR #2519)
- - Added support for 32/64-bit libraries on HP-UX
- (STR #2520)
- - The scheduler incorrectly used portrait as the default
- orientation (STR #2513)
- - The scheduler no longer writes the printcap file for
- every remote printer update (STR #2512)
- - Remote raw printing with multiple copies did not work
- (STR #2518)
- - Updated the configure script to require at least autoconf
- 2.60 (STR #2515)
- - Some gzip'd PPD files were not read in their entirety
- (STR #2510)
-
-
-CHANGES IN CUPS V1.3.1
-
- - Documentation updates.
- - The USB backend on Mac OS X could hang if the driver and
- printer did not match.
- - Delegated Kerberos credentials were not working.
- - "make distclean" incorrectly removed the edit-config.tmpl
- files (STR #2508)
- - Fix compile problem on HP-UX (STR #2501)
- - The cupstestppd utility now tests for resolutions greater
- than 99999 DPI to detect a missing "x" between the X and Y
- resolutions.
- - Fixed many problems in the various translations and added
- a new "checkpo" utility to validate them.
- - The cupstestppd utility now tests the custom page size code
- for CUPS raster drivers.
- - cupsLangDefault() did not attempt to return a language that
- was supported by the calling application.
- - If a remote printer stopped while a job was being sent, the
- local queue would also get stopped and the job re-queued,
- resulting in duplicate prints in some cases.
- - A few Apple-specific job options needed to be omitted when
- printing a banner page.
- - The new peer credential support did not compile on FreeBSD
- (STR #2495)
- - Direct links to help files did not set the current section
- so the table-of-contents was not shown.
- - The configure script did not support --localedir=foo (STR #2488)
- - The backends were not displaying their localized messages.
- - CUPS-Authenticate-Job did not require Kerberos authentication
- on queues protected by Kerberos.
- - The Zebra ZPL driver did not work with Brady label printers
- (STR #2487)
- - Norwegian wasn't localized on Mac OS X.
- - getnameinfo() returns an error on some systems when DNS is
- not available, leading to numerous problems (STR #2486)
- - The cupsfilter command did not work properly on Mac OS X.
- - The scheduler makefile contained a typo (STR #2483)
- - The TBCP and BCP port monitors did not handle the trailing
- CTRL-D in some PostScript output properly.
- - Fixed the localization instructions and German template for
- the "Find New Printers" button (STR #2478)
- - The web interface did not work with the Chinese localization
- (STR #2477)
- - The web interface home page did not work for languages that
- were only partially localized (STR #2472)
- - Updated the Spanish web interface localization (STR #2473)
- - ppdLocalize() did not work for country-specific localizations.
-
-
-CHANGES IN CUPS V1.3.0
-
- - The scheduler did not handle out-of-file conditions
- gracefully when accepting new connections, leading to
- heavy CPU usage.
- - The scheduler did not detect ServerBin misconfigurations
- (STR #2470)
- - "AuthType Default" did not work as expected when the
- "DefaultAuthType foo" line appeared after it in the
- cupsd.conf file.
- - The on-line help did not describe many common printing
- options (STR #1846)
- - The IPP backend did not return the "auth required" status
- when printing to a Kerberos-protected queue.
- - The scheduler was not looking in the correct directories
- for LSB PPD files (STR #2464)
- - Changed references to ESP Ghostscript to GPL Ghostscript
- (STR #2463)
- - The PostScript filter did not cleanly terminate when
- the job was canceled or stopped.
- - Fixed generation of Kerberos credentials for remote
- printing. Note that this requires a recent version of
- MIT Kerberos with a working krb5_cc_new_unique()
- function or Heimdal Kerberos.
- - Added Portuguese and updated Italian message catalogs.
-
-
-CHANGES IN CUPS V1.3rc2
-
- - Added more range checking to the pdftops filter.
- - The scheduler would crash if a remote IPP queue was stopped
- (STR #2460)
- - The scheduler did not allow "DefaultAuthType None".
-
-
-CHANGES IN CUPS V1.3rc1
-
- - Updated the German localization (STR #2443)
- - cupsAdminGetServerSettings() did not handle </Foo> properly.
- - When lprm and cancel are run with no job ID, they now will
- cancel the first stopped job if no pending or processing
- jobs are left in the queue.
- - The scheduler now logs successful print jobs, filter
- failures, and the job file types at the default log
- level (STR #2458)
- - The scheduler now logs the usernames it is using for
- authorization at LogLevel debug instead of debug2 (STR #2448)
- - Added Intellitech Intellibar and Zebra CPCL PPDs to the list
- of installed PPDs.
- - Added 6" and 8" wide label sizes for the Zebra ZPL Label
- Printer driver (STR #2442)
- - The cupsaddsmb program and web interface now support
- exporting of 64-bit Windows drivers, when available
- (STR #2439)
- - Moving a job that was printing did not stop the job on the
- original printer (STR #2262)
- - The cups-lpd mini-daemon did not work on Mac OS X server.
- - Added httpGetAuthString() and httpSetAuthString() APIs to get
- and set the current (cached) authorization string to use for
- HTTP requests.
- - Updated the default cupsd.conf policy to list the
- "administrative" operations separately from the "printer
- control" operations so that it is easier to define a
- group of users that are "printer operators".
- - The web interface now pulls the default cupsd.conf file
- from cupsd.conf.default in the CUPS config directory.
- - Added a help file for using Kerberos with CUPS.
- - The scheduler now strips the "@KDC" portion of Kerberos
- usernames since those usernames typically do not appear in
- the group membership lists used by CUPS.
- - cupsMarkOptions() could (incorrectly) leave multiple option
- choices marked.
- - Backends could (incorrectly) run as root during discovery
- (STR #2454)
- - Avahi is now supported for DNS-SD (Bonjour) printer sharing
- (STR #2455)
- - The default cupsd.conf file had typos and old operation names
- (STR #2450)
- - The scheduler now erases authentication cache files using the
- 7-pass US DoD algorithm.
- - Delegated Kerberos credentials (proxy authentication) did not
- work.
- - The filter makefile did not optimize the libcupsimage.2.dylib
- with a sectorder file.
- - The IPP backend incorrectly wrote an empty printer message
- when processing the "none" state reason.
- - The USB backend could deadlock on Mac OS X while performing
- a side-channel command.
- - The scheduler did not prevent remote queues from being
- shared/published.
- - The scheduler did not remove the temporary request file on
- authentication errors.
- - ppdLocalizeIPPReason() did not handle "scheme:" schemes or
- "file" URLs.
- - ppdLocalizeIPPReason() was not exported on Mac OS X.
-
-
-CHANGES IN CUPS V1.3b1
-
- - Copyright updates - CUPS is now owned by Apple Inc.
- - Documentation updates (STR #1775, STR #2027, STR #2130,
- STR #2131, STR #2263, STR #2356, STR #2397)
- - Added new cupsfilter utility (STR #1734)
- - Added new job-printer-state-message and
- job-printer-state-reasons attributes to jobs (STR #2418)
- - Added LDAP+SSL support (STR #1967)
- - CUPS now supports authentication via peer credentials
- over domain sockets (STR #2242, STR #2277)
- - The CUPS sample driver PPDs are now generated by the PPD
- compiler and include all of the localized languages by
- default (STR #2164)
- - You can now specify "AuthType Default" in the cupsd.conf
- file to use the default authentication defined by the
- DefaultAuthType directive.
- - The SNMP backend no longer adds a default Address line
- when none is specified in the snmp.conf file; this allows
- the backend to be easily disabled as needed (STR #2434)
- - Added a new cupsctl command for doing basic changes to
- the cupsd.conf file (STR #1777)
- - Added a new ppdLocalizeIPPReason() function to get the
- localized text/URI for a given IPP reason keyword for a
- driver.
- - Removed the deskjet2.ppd driver, as it only worked with
- a very small subset of HP DeskJet printers and was
- confusing to users. The rastertohp driver still
- supports the deskjet2.ppd options for existing queues.
- - The scheduler did not add a trailing banner page if a
- client did not specify the last document in a job (STR
- #1711)
- - The scheduler did not report Bonjour shared printers as
- remote printers (STR #2384)
- - Added new -R and -W options to the cupstestppd program
- for greater control over the testing of PPDs.
- - Added a new cupsGetServerPPD() function for getting
- an available PPD from the server (STR #2334)
- - Added a new cupsDoIORequest() function for reading
- and writing files via IPP requests (STR #2334)
- - Added a new CUPS_GET_PPD operation for getting an
- available PPD file on the server (STR #2334)
- - CUPS_GET_PPDS now reports multiple ppd-product values
- based on the PPD ModelName and Product strings (STR
- #2334, STR #2383)
- - CUPS_GET_PPDS now reports the PSVersion attributes
- from a PPD file in the ppd-psversion attribute
- (STR #2334)
- - CUPS_GET_PPDS now reports the cupsModelNumber attribute
- from a PPD file in the ppd-model-number attribute (STR
- #2383)
- - CUPS_GET_PPDS now reports a driver type string in the
- ppd-type attribute based on the cupsFax and cupsFilter
- attributes in a PPD file (STR #2383)
- - Added a new printer attribute called "cups-version"
- which reports the version of CUPS that is running
- (STR #2240)
- - backendRunLoop() now aborts immediately on SIGTERM
- if no data has been written yet (STR #2103)
- - Due to poor IPP support from the vendors, the SNMP
- backend no longer tries IPP connections; instead,
- it now uses a lookup file with fallback to port 9100
- (socket://address) and 515 (lpd://address) printing
- (STR #2035, STR #2354)
- - The scheduler now recreates the CUPS log directory as
- needed (STR #2353)
- - cupsLangDefault() now maps new-style Apple locale names
- to the traditional ll_CC form (STR #2357)
- - Add new cupsArrayNew2() API to support hashed lookups
- of array elements (STR #2358)
- - ppdConflicts() optimizations (STR #2358)
- - The cupstestppd program now tests for existing filters,
- icons, profiles, and dialog extensions (STR #2326)
- - The web interface no longer lists new printers on the
- main administration page. Instead, a new "List Available
- Printers" button is provided that shows a separate page
- with the list of printers.
- - The web interface now supports setting the banner and
- policy options on raw printers and classes (STR #2238)
- - The socket backend now reads any pending back-channel
- data before shutting down the socket (STR #2325)
- - Added a new ErrorPolicy directive in the cupsd.conf
- file (STR #1871)
- - Printers that use JCL options are now exported to Samba
- correctly (STR #1985)
- - The IPP backend now relays printer-state-message values
- from the server to the client (STR #2109)
- - Added support for the PWG printer-alert and
- printer-alert-description attributes (STR #2088)
- - Added support for LPD "stream" mode (STR #2036)
- - The scheduler now reports the PostScript product string
- from PPD files in CUPS-Get-PPDs responses (STR #1900)
- - Raw printing with queues pointing to the file pseudo-
- device and multiple files and/or banners now works (STR
- #1933)
- - Added new public cupsAdminGetServerSettings() and
- cupsAdminSetServerSettings() APIs.
- - Added new "makebuttons" script in the "tools" directory
- for creating web interface buttons (STR #2231)
- - Added support for DNS-SD (aka "Bonjour") printer sharing
- (STR #1171)
- - Job operations (cancel, hold, release, etc.) from the
- web interface now return back to the original page (STR
- #2239)
- - The classes or printers list is now shown after a
- successful deletion from the web interface (STR #1999)
- - The default configuration now allows browse packets from
- any address (STR #2008)
- - The web interface now provides an "allow printing from the
- Internet" check box (STR #1897)
- - The notify-events-default and
- notify-lease-duration-default attributes can now be set
- (STR #1671)
- - Server-side default options are now sent to clients when
- the "printer-defaults" attribute group is requested (STR
- #1923)
- - Added support for Linux "relro" linker option (STR #1614)
- - CUPS now validates the number-up option value (STR #1329)
- - The on-line help now provides better search capabilities
- (STR #1701)
- - The web interface "Add This Printer" button now allows you
- to change the printer name, description, and location
- (STR #1646)
- - Added support for Mac OS X authorization services
- (STR #2206)
- - Added support for driver-specific pre-filters (STR #2108)
- - Added a new side-channel API for drivers and backends
- for basic device control and information queries (STR
- #1898)
- - The scheduler now uses poll(), epoll(), or /dev/kqueue
- instead of select() when possible (STR #1261)
- - Added new cupsArrayGetIndex() and cupsArrayGetInsert()
- functions to get the current index and insertion
- positions of an array.
- - Added a new --with-max-copies configure option (STR
- #2090)
- - Added new cupsRemoveDest() and cupsSetDefaultDest()
- functions.
- - Added support for cupsPJLCharset attribute in PPD files
- which specifies the character set that is used in PJL
- strings (STR #1969)
- - Moved the definition of the (private) _http_s structure
- to http-private.h; code that directly accesses the
- http_t members will no longer compile!
- - Added support for setting the document-format-default
- attribute on a per-printer basis.
- - Added support for IntelliBar label printers.
diff --git a/CHANGES-1.4.txt b/CHANGES-1.4.txt
deleted file mode 100644
index 09326b288..000000000
--- a/CHANGES-1.4.txt
+++ /dev/null
@@ -1,843 +0,0 @@
-CHANGES-1.4.txt
----------------
-
-CHANGES IN CUPS V1.4.8
-
- - The scheduler would delete job data files when restarted (STR #3880)
- - The network backends could crash if a printer returned a value of 0
- for the maximum capacity for a supply (STR #3875)
-
-
-CHANGES IN CUPS V1.4.7
-
- - Documentation changes (STR #3710, STR #3720, STR #3745, STR #3750,
- STR #3757, STR #3758, STR #3782, STR #3826, STR #3829, STR #3837)
- - Web interface fixes (STR #3412, STR #3345, STR #3455, STR #3707,
- STR #3755, STR #3769, STR #3783)
- - Configure script fixes (STR #3659, STR #3691)
- - Compilation fixes (STR #3718, STR #3771, STR #3774)
- - The imageto* filters could crash with bad GIF files (STR #3867)
- - The scheduler might leave old job data files in the spool directory
- (STR #3795)
- - CUPS did not work with locales using the ASCII character set
- (STR #3832)
- - httpAddrString() did not return a URI-style IPv6 numeric address
- (STR #3814)
- - Fixed an issue when reading compressed CUPS raster streams (STR #3812)
- - Fixed an issue with PostScript printer auto-configuration (STR #3443)
- - Fixed some compatibility issues with the libusb-based USB backend
- (STR #3799)
- - The network backends no longer try to collect SNMP supply and status
- information for raw queues (STR #3809)
- - The DBUS notifier did not report job state changes (STR #3805)
- - The scheduler did not always report that the "normal" print-quality
- value was supported (STR #3803)
- - The gziptoany filter did not report the correct error if it was unable
- to write the uncompressed document to the next filter or backend in
- the chain (STR #3797)
- - The Epson and Oki 9-pin drivers had a bad resolution option
- (STR #3798)
- - The scheduler did not always register the correct default ICC profile
- on Mac OS X.
- - The scheduler did not use the job owner when authorizing access for
- the CUPS-Get-Document operation, preventing non-admins from accessing
- their own jobs.
- - CUPS did not work with some printers that incorrectly implemented the
- HTTP/1.1 standard (STR #3778, STR #3791)
- - The scheduler did not retry fax jobs properly.
- - The scheduler now recognizes an empty cupsCommands PPD keyword as
- meaning that CUPS commands are not supported for a printer (STR #3773)
- - Fixed a crash bug in the scheduler when the application/octet-stream
- MIME type was not defined (STR #3690)
- - Polled printers were advertised more slowly than necessary (STR #3574)
- - cupsResolveConflicts() did not handle resolving multiple UIConstraints
- issues (STR #3705)
- - The SetEnv and PassEnv directives had no effect (STR #3664)
- - The libusb-based USB backend printed slowly to the LaserJet 1300 and
- other printers (STR #3405)
- - "lp" and "lpr" failed to print with Kerberos enabled (STR #3768)
- - The cupsctl program now displays an error if you try to directly set
- the Port or Listen directives (STR #3749)
- - PPD files with "*JobPatchFile: bla" no longer fail to load in relaxed
- conformance mode (STR #3747)
- - The scheduler generated a bad notify-text string for printer state
- change notifications (STR #3739)
- - The scheduler incorrectly updated printers.conf when it really needed
- to update classes.conf or remote.cache (STR #3726)
- - Hardwired remote printers with options did not work (STR #3717)
- - Accessing the CUPS web interface using a CNAME-based hostname would
- sometimes fail due to redirection to the actual hostname (STR #3701)
- - Subscription events had a misspelled attribute (STR #3693)
- - "make check" failed if LC_MESSAGES was set (STR #3765)
- - Fixed the configure script to always look for the pkg-config script
- (STR #3761)
- - The scheduler now only looks up interface hostnames if HostNameLookups
- are enabled (STR #3737)
- - Fixed a compilation problem on DragonFly BSD (STR #3738)
- - The default PageLogFormat value had the username and job ID swapped
- from CUPS 1.3.x (STR #3727)
- - The scheduler could crash if a browsed printer times out while a job
- is printing (STR #3754)
- - The scheduler incorrectly mapped custom page sizes to standard sizes
- (STR #3764)
- - cupsfilter and pstops did not map IPP attributes to PPD options due to
- a change in cupsMarkOptions (STR #3756)
- - The scheduler did not always show the most recent status message from
- the print filters (STR #3731)
- - The PostScript filter did not apply the mirror and number-up options
- properly, leading to offset and clipped output (STR #3732)
- - The network backends always reported "low toner" or "out of toner"
- states, even for inkjet printers (STR #3733)
-
-
-CHANGES IN CUPS V1.4.6
-
- - Fixed a "make check" issue on Solaris (STR #3729)
- - Regression: The pstops filter did not support landscape printing of
- PostScript files (STR #3722)
- - The scheduler killed retried (fax) jobs after restarting them
- (STR #3697)
- - The cupsAdminSetServerSettings() function disabled sharing when
- debug logging was enabled (STR #3712)
-
-
-CHANGES IN CUPS V1.4.5
-
- - Documentation fixes (STR #3542, STR #3650)
- - Localization fixes (STR #3635, STR #3636, STR #3647, STR #3666)
- - Security: Fixed a memory corruption bug reported in CVE-2010-2941
- (STR #3648)
- - The CUPS API incorrectly mapped the HTTP_UNAUTHORIZED status to the
- IPP_NOT_AUTHORIZED status code, when IPP_NOT_AUTHENTICATED would be
- the correct mapping (STR #3684)
- - The scheduler would restart jobs while shutting down (STR #3679)
- - Fixed a PPD loader bug that could cause a crash in cupsd (STR #3680)
- - Improved the mapping of non-standard PPD and PWG names (STR #3671)
- - The scheduler did not initialize Kerberos in all cases (STR #3662)
- - cupsAdminSetServerSettings duplicated Listen and Order lines
- (STR #3645)
- - Added DeviceN colorspace support to the CUPS Raster format (STR #3419)
- - ppdMarkDefaults() did not clear the marked field of the previous
- choices (STR #3642)
- - The serial backend would not allow a raw job to be canceled
- (STR #3649)
- - The socket backend could go into an infinite loop with certain
- printers (STR #3622)
- - Setting the PRINTER or LPDEST environment variables to "name/instance"
- did not work (STR #3485)
- - The scheduler did not handle the JobRetryLimit setting properly
- (STR #3466)
- - The lpstat command always showed a remote job ID of 0 for shared
- printers (STR #3627)
- - Increased the write timeout for the libusb-based USB backend to 5
- minutes (STR #3595)
- - The libusb-base USB backend did not check whether the printer has a
- serial number (STR #3590)
- - The lpadmin command did not support setting of custom option values
- (STR #3631)
- - The lpadmin command did not support setting of the location or
- description of a class (STR #3613)
- - The cupsaddsmb command did not give up after too many failed attempts
- (STR #3615)
- - The CUPS library no longer uses certain problematic ctype macros that
- change based on the locale's character set.
- - PJL value substitution of more than 9 values was broken (STR #3621)
- - Custom options with missing string values caused ppdEmit* to segfault
- (STR #3620)
- - Fixed an issue with the Italian version of the web interface
- (STR #3624)
- - Fixed the Solaris SMF configuration file for cups-lpd (STR #3611)
- - The scheduler did not set the notify-subscribed-event attribute when
- delivering printer-added or printer-modified events (STR #3608)
- - The mailto notifier could get into an infinite loop (STR #3609)
- - Date/time information was not shown in banner pages.
- - Relational operators were broken in #if/#elif/#else/#endif expressions
- for the PPD compiler.
- - Moving a job via the web interface failed without asking for
- authentication (STR #3559)
- - The scheduler now clears the printer-state-reasons when the driver is
- changed (STR #3570)
- - The web interface did not allow a user to change the driver
- (STR #3537, STR #3601)
- - The scheduler was not setting the PATH_INFO environment variable when
- needed (STR #3600)
- - The scheduler incorrectly set the CUPSD_AUTH_TYPE environment
- variable instead of AUTH_TYPE (STR #3599)
- - Fixed a buffer overrun in the PPD compiler (STR #3594)
- - Fixed some additional IPP job template attribute mapping issues in the
- scheduler.
-
-
-CHANGES IN CUPS V1.4.4
-
- - Documentation updates (STR #3453, STR #3527, STR #3528, STR #3529)
- - Security: The fix for CVE-2009-3553 was incomplete (STR #3490)
- - Security: The texttops filter did not check the results of allocations
- (STR #3516)
- - Security: The web admin interface could disclose the contents of
- memory (STR #3577)
- - Security: CUPS could overwrite files as root in directories owned or
- writable by non-root users (STR #3510)
- - The cups-config utility did not return the correct linker options on
- AIX (STR #3587)
- - Fixed some IPP conformance issues with the scheduler's
- ippget-event-life, operations-supported, output-bin, and sides
- attributes (STR #3554)
- - The OpenSSL interfaces have been made thread-safe and the GNU TLS
- interface is explicitly forbidden when threading is enabled
- (STR #3461)
- - Fixed an IPP conformance issue with the scheduler's Send-Document
- implementation (STR #3514)
- - Added additional validation checks for the 1284 device ID (STR #3534)
- - Fixed a problem with the RPM spec file (STR #3544)
- - The lpstat command did not limit the job list to the specified
- printers (STR #3541)
- - The cupsfilter command did not set the RIP_MAX_CACHE environment
- variable (STR #3531)
- - Fixed support for media-col and page size variants (STR #3394)
- - The PostScript filter did not support all media selection options for
- the first page (STR #3525)
- - The scheduler did not always remove job control files (STR #3425)
- - The scheduler could crash on restart if classes were defined
- (STR #3524)
- - The scheduler no longer looks up network interface hostnames by
- default on Mac OS X (STR #3523)
- - ippWriteIO did not write collection (member) attributes properly in
- all cases (STR #3521)
- - The "cupsctl --remote-any" and corresponding web interface check box
- (allow printing from the Internet) did not work reliably (STR #3520)
- - The lpq and lpr commands would sometimes choose different default
- printers (STR #3503)
- - cupsDo*Request did not flush error text, leading to multiple issues
- (STR #3325, STR #3519)
- - cupsDoAuthentication did not cancel password authentication after 3
- failures (STR #3518)
- - Fixed several LDAP browsing bugs (STR #3392)
- - The Dymo driver did not support copies (STR #3457)
- - The scheduler did not update the classes.conf file when deleting a
- printer belonging to a class (STR #3505)
- - The lppasswd command did not use localized password prompts
- (STR #3492)
- - The socket backend no longer waits for back-channel data on platforms
- other than Mac OS X (STR #3495)
- - The scheduler didn't send events when a printer started accepting or
- rejecting jobs (STR #3480)
- - The web interface now includes additional CSRF protection (STR #3498)
-
-
-CHANGES IN CUPS V1.4.3
-
- - SECURITY: The scheduler could try responding on a closed client
- connection, leading to a crash (STR #3200)
- - SECURITY: The lppasswd program allowed the localization files to be
- overridden when running in setuid mode (STR #3482)
- - Localization updates (STR #3352, STR #3409, STR #3422, STR #3452,
- STR #3473, STR #3502)
- - Documentation updates (STR #3451, STR #3504)
- - The IPP backend now sets the printer-state-message to "Ready to
- print." at the end of a successful job (STR #3460)
- - The PPD compiler did not correctly add the manufacturer to the output
- filename when using the "-m" option (STR #3469)
- - The IPP backend did not handle authentication properly for the Get-
- Printer-Attributes operation (STR 3458)
- - Getting SNMP values larger than 127 bytes did not work.
- - IPP conformance: Get-Jobs has a default value for requested-attributes
- (STR #3383)
- - cupsPrintFiles() did not report all errors (STR #3449)
- - cupsAddDest() could read freed memory (STR #3448)
- - The DBUS notifier did not build (STR #3447)
- - The scheduler would crash when an active printer was deleted.
- - The snmp backend did not work with some printers (STR #3413)
- - The web interface did not show the conflicting values when setting
- options (STR #3440)
- - Setting options in the web interface did not always work (STR #3439)
- - The scheduler did not use the Get-Job-Attributes policy for a printer
- (STR #3431)
- - The scheduler added two job-name attributes to each job object
- (STR #3428)
- - CSS files would not print (STR #3442)
- - The scheduler did not clean out completed jobs when PreserveJobHistory
- was turned off (STR #3425)
- - The web interface did not show completed jobs for a printer
- (STR #3436)
- - Authenticated printing did not always work when printing directly to
- a remote server (STR #3435)
- - The USB backend did not work on Solaris (STR #3423)
- - cupstestppd didn't catch problems with JobPatchFile definitions
- (STR #3421)
- - The socket backend could crash if a SNMP string had a negative length.
- - Fixed some termination issues with the USB backend on Mac OS X.
- - The side-channel APIs did not handle interrupts properly.
- - The network backends incorrectly cleared the media-empty-warning
- state.
- - The web interface did not allow users to successfully add serial
- printers (STR #3391)
- - cupsTempFd() did not work in some situations (STR #3382)
- - Some C API headers were missing C++ wrapper logic.
- - The PPD compiler did not localize single-language PPD options properly
- (STR #3386)
- - Modifying a printer from the web interface sometimes caused the wrong
- driver to be selected (STR #3418)
- - The scheduler did not handle out-of-memory conditions properly when
- loading a job (STR #3407)
- - When adding printers from the web interface, the dynamic updates of
- the device list made it hard to pick a device (STR #3406)
- - Fixed a typo in the web interface admin page template (STR 3403)
- - The web interface did not preserve the "printer is shared" state when
- modifying a printer (STR #3390)
- - The PPD compiler incorrectly inserted translations of empty strings
- (STR #3411)
- - The scheduler did not reset the SIGPIPE handler of child processes
- (STR #3399)
- - cupsGetNamedDest() incorrectly returned the default printer if the
- named printer did not exist (STR #3397)
- - Fixed a GNU TLS error handling bug (STR #3381)
-
-
-CHANGES IN CUPS V1.4.2
-
- - SECURITY: The CUPS web interface was vulnerable to several XSS and
- HTTP header/body attacks via attribute injection (STR #3367,
- STR #3401)
- - Fixed localization errors (STR #3359, STR #3372, STR #3380, STR #3387)
- - The documentation for classes.conf and printers.conf did not provide
- the correct instructions for manual changes (STR #3351)
- - The scheduler did not always rebuild printer cache files when the
- driver was changed (STR #3356)
- - The documentation makefile failed to install localizations when using
- newer versions of Bash (STR #3360)
- - The configure script did not use the --with-xinetd value for the
- default LPD configuration path (STR #3347)
- - The configure script incorrectly required glib for DBUS support
- (STR #3346)
- - The cupstestppd program incorrectly reported filters with bad
- permisssions as missing (STR #3363)
- - The cups.desktop file used the wrong locale names (STR #3358)
- - cupsSideChannelRead() did not return an error for short reads.
- - The installed PAM configuration file did not use the correct options
- with the pam_unix2 module (STR #3313)
- - The scheduler did not preserve default options that contained special
- characters (STR #3340)
- - The scheduler did not remove old pre-filters when updating a printer
- driver (STR #3342)
- - The HP/GL-2 filter did not check for early end-of-file (STR #3319)
- - The USB backend did not compile on some platforms (STR #3332)
- - cupsSideChannelSNMPWalk() could go into an infinite loop with broken
- SNMP implementations.
-
-
-CHANGES IN CUPS V1.4.1
-
- - Documention fixes (STR #3296)
- - SNMP supply levels and states were wrong for some printers.
- - The IPP backend did not update the auth-info-required value.
- - The libusb-based USB backend would hang at the end of the job
- (STR #3315, STR #3318)
- - DNS-SD registrations for raw queues had an empty "ty" key (STR #3299)
- - The JPEG and BMP MIME type rules were broken (STR #3284)
- - cupsGetNamedDest returned the default printer when the named
- destination did not exist (STR #3285)
- - The JobKillDelay was not triggered for canceled jobs (STR #3292)
- - The PPD compiler could get in an infinite loop (STR #3293)
- - The configure check for dns-sd.h was broken (STR #3297)
- - The "Query Printer for Default Options" page did not go away if the
- query job was held (STR #3302)
- - Boolean options did not show up as selected in the web interface
- (STR #3303)
- - The scheduler did not cache or report driver information files
- correctly, leading to a variety of issues (STR #3283, STR #3297,
- STR #3305)
- - cupsDoIORequest() did not abort on permanent errors (STR #3311)
- - Modifying a class in the web interface did not work (STR #3312)
- - BrowseLocalProtocols could be cleared when changing the sharing
- setting (STR #3287)
- - The scheduler could return an empty supported document format
- (STR #3308)
- - The PPD compiler generated invalid PPD files when the locale used
- something other than "." for the decimal point (STR #3300)
- - The IPP backend did not handle some non-comforming IPP printer
- implementations (STR #3262)
- - The scheduler leaked three file descriptors to each job filter
- (STR #3263)
- - The scheduler now uses a default CUPS-Get-Devices timeout of 15
- seconds (STR #3307)
-
-
-CHANGES IN CUPS V1.4.0
-
- - Localization updates (STR #3223, STR #3246, STR #3248, STR #3250)
- - Documentation updates (STR #3225, STR #3230, STR #3242, STR #3260)
- - The --with-pdftops configure option did not accept a full path to the
- filter (STR #3278)
- - The banner filter did not position the back side image correctly
- (STR #3277)
- - The dnssd backend could crash (STR #3272)
- - The 1284 device ID sometimes contained trailing garbage (STR #3266)
- - The USB backend returned different URIs for some printers than in
- CUPS 1.3 (STR #3259)
- - The scheduler did not do local job-hold-until processing for remote
- queues (STR #3258)
- - The scheduler did not try all possible SSL certificates on Mac OS X.
- - The scheduler did not always remove a file descriptor when using the
- kqueue interface (STR #3256)
- - The scheduler did not protect against bad job control files in all
- cases (STR #3253)
- - The scheduler did not encode "+" in model names (STR #3254)
- - The web interface didn't show the default options (STR #3244)
- - The IPP and LPD backends needed print data before they would do an
- SNMP query.
- - Fixed a GNU TLS compatibility issue (STR #3231)
- - Fixed a HTML error in the add and modify printer web interface
- templates (STR #3229)
- - The scheduler did not minimize the number of printer state events that
- were generated by filter STATE: messages, which could lead to poor
- performance.
- - The USB backend on Mac OS X did not cleanly cancel a job.
- - The network backends now set the connecting-to-device printer-state-
- reasons value when looking up the address and copying the print data
- for consistency.
- - The scheduler now supports the com.apple.print.recoverable-warning
- reason on all platforms.
-
-
-CHANGES IN CUPS V1.4rc1
-
- - The PPD compiler documentation was missing information on localization
- (STR #3212)
- - The IPP backend now reconnects after every request when talking to
- printers that claim IPP support but only use HTTP/1.0.
- - The PPD compiler crashed when both "Resolution" and "Group foo Option
- Resolution" were specified in the .drv file.
- - The PPD compiler's #if/#elif/#else/#endif did not work for undefined
- variables (STR #3210)
- - Static libraries could not be installed by a non-root user on systems
- needing a ranlib program (STR #3209)
- - The scheduler incorrectly always tried to copy Kerberos credentials
- for print jobs.
- - Updated the Spanish localization (STR #3204)
- - The scheduler crashed when getting the default paper size from
- libpaper (STR #3205, STR #3206)
- - The PPD compiler now defines six variables: CUPS_VERSION,
- CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, CUPS_VERSION_PATCH,
- PLATFORM_NAME, and PLATFORM_ARCH (STR #3203)
- - Fixed a whitespace skipping bug in cupsRasterInterpretPPD.
- - The scheduler did not return HTTP 403 (Forbidden) for authenticated
- users that were not authorized to do IPP operations (STR #3193)
- - The scheduler did not report more than 8 Product strings from a PPD
- file. Some PPD files have as many as 24.
- - ppdOpen*() could crash if a keyword had no value string (something
- that cupstestppd looks for...)
- - cupsLangDefault() did not return the correct language on Mac OS X.
- - The Mac OS X USB backend did not handle aborted or stalled pipe
- conditions properly, which prevented drivers from ejecting partial
- pages when a job was canceled or held.
-
-
-CHANGES IN CUPS V1.4b3
-
- - Documentation fixes (STR #3044, STR #3057, STR #3153, STR #3158,
- STR #3173)
- - Added complete localizations for German, Japanese, Polish, and
- Russian and partial localizations for Chinese, Danish, Finnish,
- French, Italian, Korean, Norwegian, Portuguese, and Swedish
- (STR #3096, STR #3098, STR #3109, STR #3111, STR #3141)
- - Updated the configure check for -fstack-protector (STR #3198)
- - The network backends now correctly convert SNMP supply descriptions to
- UTF-8 encoding as needed.
- - The scheduler could crash when deleting an attribute (STR #3197)
- - The cups-driverd program did not detect symlink loops (STR #3185)
- - The EPSON 24-pin series driver should now feed the correct amount
- (STR #2624)
- - The scheduler now automatically logs the last N debug messages for
- failed print jobs.
- - You can now modify a raw print queue (STR #3133)
- - Fixed a number of ppdi issues and added a unit test to validate that
- ppdc + ppdi can generate and import the same data (STR #3152)
- - Moving jobs in the web interface now shows an error if you only have
- one printer or class added (STR #3094)
- - Since classes have never truly supported the printer-error-policy
- stuff added in CUPS 1.2, update the code to reflect the current
- reality and support only the retry-current-job policy for now
- (STR #3171)
- - Revised the password callback support (STR #2953)
- - ppdEmit*() did not choose between PageSize and PageRegion properly.
- - Make some fairly substantial changes to the Kerberos support code so
- that CUPS can work in multi-realm environments and does not require
- delegatable credentials. Shared printing still requires delegation,
- however "delegation by policy" can be enabled in the KDC to make this
- all work.
- - "AccessLogLevel actions" did not hide client-error-not-found errors.
- - AP_FIRST_InputSlot did not work with number-up.
- - cupsBackChannelRead() and cupsBackChannelWrite() could fail due to a
- lack of kernel buffers.
- - The IPP and LPD backends did not respond to side-channel requests
- while copying print data to a temporary file.
- - cupsWriteRequestData() flushed the output buffer unnecessarily,
- causing reduced performance in some situations.
- - If a CGI process died before sending its MIME headers, the request
- would hang on the client.
- - The printer/class/job search feature on the web interface did not
- work (STR #3132)
- - The scheduler did not write the printers out for classes.
- - CUPS-Get-PPDs did not work properly when filtering by language,
- product, or psversion (STR #3136)
- - The scheduler now kills job filters when it takes more than 30 seconds
- (configurable) to cancel or hold the job.
- - The cupstestppd program did not validate the capitalization of
- filenames in the PPD file.
- - The cupstestppd program did not validate the PageSize and PageRegion
- values.
- - The cups-deviced helper program could miss reporting some backend
- devices (STR #3108)
- - The cupsSideChannelSNMP* functions did not work.
- - The scheduler could consume 100% CPU when jobs were canceled.
- - Clicking on "Select Another Make/Manufacturer" in the web interface
- incorrectly added the printer (STR #3095)
- - The scheduler no longer uses programs with insecure file
- permissions.
- - httpAssembleURI*() did not escape backslashes in hostnames.
- - The dnssd backend did not unquote "full names" before creating the
- device URI.
- - The scheduler now supports JobRetryInterval values less than 10
- seconds.
- - Updated the Spanish localization (STR #3090)
- - The scheduler did not redo Bonjour/DNS-SD registrations when updating
- them failed.
- - The "authenticated" policy incorrectly required authentication for
- status operations.
- - ppdOpen*() incorrectly loaded PPDs with multiple JobPatchFile
- keywords.
- - The network backends no longer report the SNMP "offline" or
- maintenance status bits since they are inconsistently implemented and
- often unreliable.
- - The scheduler no longer logs child processes killed via SIGKILL as
- "crashed".
- - The printer link shown on the "job moved" template was bad (STR #3085)
- - Updated the HTML templates to use the final HTML 4 DOCTYPE (STR #3086)
- - The scheduler did not track the "paused" reason properly if a
- printer had other reasons associated with it.
- - cupsSendRequest() did not clear old local certificate auth data.
- - The PPD compiler did not search for localization files properly
- (STR #3084)
- - cupsGetNamedDest() did not use the fallback default like
- cupsGetDests*() (STR #3082)
- - The scheduler now provides a LogTimeFormat directive to enable
- microseconds in the date and time that are logged.
- - The scheduler now provides a MultipleOperationTimeout directive to
- control the timeout for multi-file print jobs.
- - The configure script incorrectly allowed Avahi to be used for DNS-SD
- printer discovery (STR #3065)
- - The web interface and scheduler did not support URIs up to 1024 bytes
- in length (STR #3072)
- - Fixed pdftops issues with page sizes (STR #3063)
- - Fixed pdftops issues with Ghostscript (STR #3062)
- - The scheduler incorrectly registered default profiles for PostScript
- printers with no specified colorspace.
- - The scheduler incorrectly created an empty org.cups.printers.plist
- file on Mac OS X.
- - cupsGetPPD3() did not look for local PPDs in the right directory.
- - SNMP lookups via side-channel did not work for NULL-VALUE and
- and OCTET-STRING OIDs containing nul characters.
- - The libusb-based USB backend did not work.
- - The scheduler did not set the printer-commands attribute correctly
- for some PPDs.
- - The ppdi utility did not work.
- - The web interface no longer uses multi-part output with old or broken
- web browsers (STR #3049)
- - CUPS now conforms to the draft IPP/2.0 and IPP/2.1 specification.
- - Added a new cupsGetConflicts() API to get a list of conflicting
- options.
- - The PPD compiler didn't localize options or choices that did not
- have associated translation text (STR #3045)
- - Updated the Spanish localization (STR #3043)
- - Fixed build problems (STR #3040, STR #3047)
- - cupsResolveConflicts() did not resolve using the default option
- choice in some cases due to the mirror UIConstraints that are
- present in most PPD files.
- - The scheduler did not honor MIME type priorities.
- - The commandtops filter incorrectly used the JCLBegin code to end
- its jobs.
- - The default BrowseLocalProtocols value was not set properly.
- - Since the commandtops filter does not actually support ReportLevels
- all on its own, don't list that printer command by default for PS
- printers.
- - The scheduler did not give filters a chance to log errors or update
- printer attributes when a job was canceled.
- - The scheduler did not clear the "connecting-to-device" reason keyword
- when a job finished.
-
-
-CHANGES IN CUPS V1.4b2
-
- - Documentation updates (STR #2983, STR #2998, STR #3021)
- - The cupstestppd utility now validates the FileVersion and
- FormatVersion values in PPD files.
- - The default cupsd.conf file did not reflect the
- --with-local-protocols value set at compile-time (STR #3037)
- - The cupsGetPPD* APIs now create symlinks to local PPD files
- rather than copying them whenever possible.
- - Various performance optimizations in the string pool, dests, and
- options implementations.
- - The cupsGetDests* APIs now return the marker and printer-commands
- attributes.
- - Side-channel SNMP lookups would not work when cupsSNMPSupplies
- was set to False in the PPD file.
- - Localized the device descriptions for the SCSI, serial,
- and network backends (STR #3014)
- - Added a Spanish localization (STR #3015)
- - Added support for marker-low-levels and marker-high-levels
- attributes.
- - The scheduler could hang writing a long log line.
- - The cupsGetDevices() function now has an "include_schemes"
- parameter.
- - The lpinfo command now supports --include-schemes and
- --exclude-schemes options.
- - The CUPS-Get-PPDs operation now supports the include-schemes
- and exclude-schemes attributes.
- - The CUPS-Get-Devices operation now supports the include-schemes
- attribute.
- - The print filters now support a replacement for the fitplot
- option called "fit-to-page".
- - The LPD backend no longer tries to collect page accounting
- information since the LPD protocol does not allow us to
- prevent race conditions.
- - The scheduler did not save the last marker-change-time value.
- - Fixed a problem with printing to some IPP printers, including
- CUPS 1.1.x.
- - Fixed a redirection problem with the printer web page (STR #3012)
- - Fixed a PPD compiler problem with the loading of message
- catalogs (STR #2990)
- - Fixed a PPD compiler problem with the loading of .strings files
- (STR #2989)
- - The cupsfilter utility did not set the CONTENT_TYPE environment
- variable when running filters.
- - The scheduler now waits to allow system sleep until the jobs
- have all stopped.
- - The IPP, LPD, and socket backends used different "connecting"
- progress messages.
-
-
-CHANGES IN CUPS V1.4b1
-
- - Documentation updates (STR #2567)
- - The PPD compiler now allows local message catalogs to
- override the standard CUPS translations (STR #2642)
- - The ppdmerge command did not merge custom option strings
- (STR #2863)
- - The scheduler now supports the Hold-New-Jobs and
- Release-Held-New-Jobs operations; these are exposed via the
- cupsdisable and cupsenable commands (STR #2332)
- - The lpstat command is now much faster when displaying the
- status of a single printer (STR #2843)
- - The scheduler now caches information from PPD files to provide
- significantly faster startup time with large numbers of PPDs
- (STR #1293)
- - CUPS-Get-Driver now provides much better driver matching based
- on the IEEE-1284 device ID and make/model strings (STR #2707)
- - Now support the cupsSNMPSupplies keyword to control whether
- the network backends query the SNMP Printer MIB for supply
- levels.
- - Now support and use a new banner file format for better text
- support and easier customization (STR #2490)
- - The scheduler now sets the PRINTER_INFO and PRINTER_LOCATION
- environment variables from the corresponding IPP attributes.
- - The ippRead*() and ippWrite*() functions no longer use a
- stack-based buffer (STR #2388)
- - The CUPS-Add-Modify-Printer operation now allows you to set
- the printer-state-reasons attribute.
- - The "set printer options" page now supports auto-configuration
- of printer options (STR #1440)
- - The web interface now provides an advanced server settings
- form.
- - The web interface's "modify printer" pages now make it
- easier to change just one setting (STR #1919)
- - The scheduler now supports a plist PrintcapFormat.
- - The scheduler now supports multiple addresses in Allow and
- Deny lines, just like Apache (STR #2947)
- - Added CUPS_JOBTYPE environment variable for job filters so
- they know whether they are printing a banner or document
- file (STR #2799)
- - Added support for printer filtering by the cupsfilter
- command (STR #2562)
- - Added a SSLOptions directive to allow Windows clients to
- talk to CUPS in FIPS mode (STR #2827)
- - Renamed the accept and reject commands to cupsaccept and
- cupsreject; the old names are still available (STR #2936)
- - The locale/translate utility needed an update to work with
- Google (STR #2882)
- - The lpstat command now supports a -H option to display the
- default server (STR #2833)
- - The scheduler now supports a FatalErrors directive to control
- which errors should cause the scheduler to exit (STR #2536)
- - The scheduler now uses the php-cgi program if it is available
- (STR #2923)
- - The scheduler now supports a DefaultPaperSize directive
- (STR #2848)
- - The scheduler now passes the job-originating-host-name
- value to filters in the options argument (STR #2558)
- - CUPS now supports job tickets in PDF files (STR #2903)
- - Added a DBUS notifier (STR #2529)
- - The LPD mini-daemon now passes the document name when queuing
- print jobs (STR #2482)
- - The IPP backend did not relay com.apple.print.recoverable-message
- values.
- - The scheduler now supports a job-media-progress attribute to
- track the progress of individual pages.
- - The sample HP driver now supports A5 (STR #2798)
- - The CUPS web interface menu item now uses the xdg-open
- command, when available (STR #2724)
- - The cups-lpd program now supports the -h option (STR #2794)
- - The scheduler now sets the PAM_TTY parameter and the
- PAM_ESTABLISH_CRED credential flag (STR #2745)
- - The scheduler now logs unsuccessful requests to the error_log
- file as errors (STR #2616)
- - Added support for a "retry-current-job" error policy that
- retries the current job immediately when the backend encounters
- an error (STR #2555)
- - The scheduler now returns a "forbidden" error when a user
- correctly authenticates but does not have permission to
- continue further (STR #2101)
- - The scheduler now loads both the server and CA certificates
- (if present) from the ServerCertificate file (STR #2146)
- - New RSS subscriptions now create their feed files immediately
- (STR #2853)
- - Added support for a device-location attribute which provides
- the physical location of a printer device.
- - Added a cupsBackendReport() API which handles quoting of the
- device data by a backend.
- - Added support for custom options in the web interface
- (STR #1729)
- - Added support for Mozilla LDAP, reconnection to LDAP servers,
- and improved LDAP performance (STR #1962)
- - Added Solaris SMF support (STR #1477)
- - Added optional support for using TCP wrappers to limit access
- to CUPS (STR #263)
- - Added ppdPageSizeLimits API.
- - Added support for new cupsMediaQualifier2, cupsMediaQualifier3,
- cupsMinSize, and cupsMaxSize attributes.
- - Added cupsResolveConflicts and ppdInstallableConflict APIs.
- - Added support for new cupsUIConstraints and cupsUIResolver
- attributes for better option conflict detection and
- resolution.
- - Increased the maximum size of 1284 device ID strings to
- 256 bytes (STR #2877)
- - Added an AccessLogLevel directive to cupsd.conf to control
- what is logged to the access_log file.
- - The default LogLevel is now "warn" instead of "info" to reduce
- the amount of logging that is done to disk by default.
- - The PPD compiler did not include OID query keywords in PPD
- files (STR #2871)
- - The cups-driverd helper program now directly supports driver
- information files.
- - The USB backend now uses libusb when available (STR #1575)
- - Added ppdLocalizeAttr function to get the localized version
- of an attribute.
- - MIME types now support a priority() attribute (STR #2719)
- - The standard MIME types are now installed in
- DataDir/mime (STR #2719)
- - The lpoptions command now describes custom options and
- the necessary parameters (STR #2660)
- - The ppdmerge program did not support Simplified Chinese
- or Traditional Chinese language version strings (STR #2851)
- - The PPD compiler now supports localizable attributes
- (STR #2738)
- - The ppdpo utility now includes cupsIPPReasons values in
- the message catalogs it generates (STR #2754)
- - The PPD compiler now supports conditional directives
- (STR #2636)
- - The ppdc utility now supports a "-t" option to test PPD
- files (STR #2739)
- - The ppdc utility now supports a "-m" option to use the
- ModelName value as the output filename.
- - The ppdc utility now supports a FileName directive to
- set an alternate output filename (STR #2740)
- - The side-channel API now supports SNMP queries for the
- standard network backends.
- - Added a PageLogFormat directive to the cupsd.conf file to
- control the format of lines in the page_log file.
- - Filters can now send PPD: messages to stderr to set PPD
- keywords like DefaultPageSize while a job is printing.
- - Added a mdns backend for discovery and printing to printers
- that advertise themselves via DNS-SD (Bonjour)
- - The ipp, lpd, and socket backends now support DNS-SD service
- name resolution.
- - The scheduler now uses a single shared file descriptor for
- all DNS-SD registrations (STR #2674)
- - The ipp, lpd, and socket backends now support SNMP-based
- page accounting and supply level monitoring (STR #1655)
- - Added support for cupsPJLDisplay attribute to control what
- PJL commands are used to display the job information.
- - Driver information files can now be installed in
- /Library/Printers/PPDs.drv on Mac OS X.
- - The CUPS image library now supports reading images larger
- than 2GB.
- - The scheduler now delays writing config and state files to
- reduce disk activity (STR #2684)
- - The CUPS-Get-Devices operation now supports the
- exclude-schemes and timeout attributes to control which
- backends are polled and for how long.
- - The cups-deviced helper application now runs backends in
- parallel to get the list of devices faster.
- - Added --enable-pap configure option.
- - The default cupsd.conf file now includes an "authenticated"
- policy which requires authentication for remote print jobs.
- - Added support for Czech and Hungarian in PPD files
- (STR #2735, STR #2736)
- - The PPD compiler tools now support Mac OS X .strings files
- for localization (STR #2737)
- - ppdOpen*() now default the colorspace member to PPD_CS_N
- when no DefaultColorSpace attribute is present in the PPD
- file.
- - The build system has been updated to support separate
- installation of data, program, header, and library files.
- - All support libraries are now built as shared libraries
- by default.
- - The scheduler now manages ICC color profiles on Mac OS X.
- - The network backends (ipp, lpd, socket) now support
- SNMP-based supply and page count monitoring (STR #1655)
- - The lppasswd program is no longer installed setuid to
- root to make the default installation more secure.
- - Added a new ppdLocalizeMarkerName() function to get
- the localized version of a marker-names value.
- - The scheduler now provides the printer-dns-sd-name
- attribute for printers shared via DNS-SD/Bonjour.
- - The pdftops filter now executes the Xpdf or poppler
- pdftops utility to convert PDF files (STR #1471)
- - Bonjour printer registrations now advertise as local or
- global based on the current access policies for the
- printer.
- - cupsGetDests*() and cupsSetDests*() now track the last
- used printer preference on Mac OS X.
- - Added a new streaming request API (STR #2261)
- - Added a new cupsGetNamedDest() function to the CUPS
- library for faster printing with lp and lpr (STR #2638)
- - The scheduler now sets the PAM RHOST value on systems
- that support it (STR #2637)
- - The scheduler now sandboxes child processes when
- possible.
- - The Cancel-Job operation now supports a purge-job
- attriibute to purge a specified job.
- - ppdEmit* and ppdCollect* now use the NonUIOrderDependency
- attributes for custom option selections.
- - The web interface now enables/disables the printer
- sharing (formerly publishing) controls based on the
- server-is-sharing-printers state (STR #2233)
- - The scheduler now tracks printer sharing via the
- server-is-sharing-printers attribute, and manages LPD
- and SMB sharing as well (STR #2233)
- - The web interface now allows you to go back to the make/
- manufacturer page if there is no matching printer driver
- on the model page (STR #2436)
- - The printer list now shows the default media, banner, and
- duplex options as well as the color and duplex capabilities
- of printers (STR #1175)
- - The web interface look-n-feel has been updated (STR #2492)
- - The scheduler now supports a CUPS-Get-Document operation
- that returns the specified print job document (STR #118)
- - The cupsfilter utility now supports a "-J jobid" option
- to filter the document from the specified job.
- - The scheduler (cupsd) now supports a new option (-t) to
- do a syntax check of the cupsd.conf file (STR #2003)
- - Added new cupsGetPPD3() API to allow applications to
- cache PPDs safely (STR #1473)
- - Added generic PostScript and PCL printer driver PPDs.
diff --git a/CHANGES-1.5.txt b/CHANGES-1.5.txt
deleted file mode 100644
index 39edb4250..000000000
--- a/CHANGES-1.5.txt
+++ /dev/null
@@ -1,312 +0,0 @@
-CHANGES-1.5.txt
----------------
-
-CHANGES IN CUPS V1.5.4
-
- - Documentation updates (STR #4112, STR #4130, STR #4134)
- - Fixes for libusb-based USB backend (STR #4128)
- - The lpq command did not show the owner or title of jobs unless passed
- a username on the command-line (STR #4135)
- - Localized empty strings contained the message catalog metadata
- (STR #4119)
- - Fixed a crash in the libusb-based USB backend (STR #4099)
- - The cups-lpd mini-daemon no longer handled jobs with multiple copies
- (STR #4118)
- - Multiple libusb backend fixes (STR #4098, STR #4100)
- - The IPP backend no longer tries to get the job status for printers
- that do not implement the required operation (STR #4083)
- - Sending a document in an unsupported format to an IPP printer now
- automatically cancels the job (STR #4093)
- - Fix some error reporting issues when printing from /dev/null and
- other unusual situations (STR #4015)
- - The scheduler now sets the CUPS_MAX_MESSAGE environment variable for
- filters (STR #4074)
- - Fixed a build issue when using older versions of autoconf (STR #4084)
- - The IPP backend now treats the client-error-not-possible status code
- as a job history issue, allowing IPP printing to Windows to work
- (STR #4047)
- - The IPP backend incorrectly included the document-format and
- compression attributes in Create-Job requests (STR #4086)
- - The libusb-based USB backend did not work on non-Linux platforms
- (STR #4088)
-
-
-CHANGES IN CUPS V1.5.3
-
- - httpReconnect() did not reset the read/write buffers (STR #4065)
- - Compiling without threading support failed (STR #4060)
- - Fixed compile problem with old versions of OpenSSL (STR #4036)
- - The network backends did not check SNMP supply levels regularly
- (STR #4040)
- - The online help always included the "help on help" text (STR #4042)
- - Fixed a SSL handshake issue on OS X (STR #4045)
- - The scheduler could crash if a PPD file contained an invalid paper
- size (STR #4049)
- - The CUPS polling daemon did not reinitialize its connection to the
- remote server on errors in all cases (STR #4031)
- - PostScript auto-configuration was slow and unreliable with some
- printers (STR #4028)
- - Missing localizations caused empty output (STR #4033)
- - The cups-driverd program could temporarily "forget" a PPD file if it
- was updated in place.
- - The dnssd backend now prefers IPPS over IPP.
- - The USB backend now uses and requires LIBUSB 1.0 or later (STR #3477)
- - The LIBUSB-based USB backend now supports the back-channel (STR #2890)
- - Changed how timeouts are implemented in the LPD backend (STR #4013)
- - Added more supported color names for SNMP supplies (STR #3981)
- - The default InputSlot setting was never used (STR #3957)
- - POSIX ACLs are now set properly on certificate files (STR #3970)
- - Supplies with commas in their names were not reported correctly
- (STR #4020)
- - The cupsGetPPD3() function created a temporary file when one was not
- needed (STR #4018)
- - The scheduler now ensures that job notifications contain a value for
- the notify-printer-uri attribute (STR #4014)
- - The lp and lpr commands did not cancel jobs queued from stdin on an
- error (STR #4015)
- - Fixed the IPP backend's handling of HTTP/1.0 compatibility (STR #3988)
- - The IPP backend did not always setup username/password authentication
- for printers (STR #3985)
- - The IPP backend no longer re-queues print jobs that are too large for
- the printer/server (STR #3977)
- - The RPM spec file did not work (STR #4021, STR #4057)
- - Encryption did not work when the server name ended with "."
- (STR #4011)
- - The multi-purpose tray is now mapped to the IPP "by-pass-tray"
- (STR #4009)
- - The correct media size was not always passed to IPP printers
- (STR #4001)
- - Finishing options were not passed to IPP printers (STR #3995)
- - Fixed iCloud-based Back to My Mac printing (STR #3996)
-
-
-CHANGES IN CUPS V1.5.2
-
- - Reposted what should have been CUPS 1.5.1.
-
-
-CHANGES IN CUPS V1.5.1
-
- - Documentation updates (STR #3885, STR #3886, STR #3946, STR #3969)
- - Localization updates (STR #3840, STR #3989, STR #3997)
- - Build fixes (STR #3956, STR #3999)
- - The SNMP backend did not validate the device URIs reported by printers
- (STR #4004)
- - cupsBackendReport() did not handle newlines in 1284 Device IDs
- (STR #4005)
- - USB backend fixes for libusb (STR #3965, STR #3978)
- - The DBUS notifier did not validate string parameters (STR #3984)
- - Group quota ACLs did not work with Kerberos (STR #3972)
- - The IPP backend did not retry when a printer responded with
- client-error-not-possible (STR #3963)
- - PostScript PPDs with filters used the wrong command filter (STR #3973)
- - The scheduler incorrectly used free() on a POSIX ACL value, which
- could cause a crash (STR #3970)
- - PPD files using the MacStandard encoding did not work.
- - The web interface did not work on some platforms (STR #3902)
- - The lpstat command would crash when then "-u" option was used by a
- non-administrator (STR #3953)
- - Japanese supply level reporting did not always work.
- - The DBUS notifier could crash (STR #3947)
- - Relaxed some of the page size checks in cupstestppd.
- - The ipptool program now reports attributes that are repeated within
- the same attribute group.
- - Updated the PWG raster support to match the current draft
- specification.
- - Fixed some IPP conformance issues in the scheduler.
- - Added ipptool support for repeating requests.
- - Added IPP/2.2 conformance tests and greatly improved the IPP/1.1,
- IPP/2.0, and IPP/2.1 conformance testing.
- - IPP messages containing mixed integer/rangeOfInteger values did not
- work (STR #3942)
- - The ipptool program now provides additional diagnostics for badly-
- formatted responses (STR #3857)
- - When possible, the IPP backend now stops sending job data early on a
- cancel.
- - cupsSendRequest and cupsWriteRequestData did not properly read all
- HTTP headers, preventing authentication and encryption upgrades from
- working in all cases.
- - The client.conf Server directive is no longer supported on Mac OS X
- 10.7 and later.
- - The IPP backend sent the wrong margins in media-col.
- - The scheduler did not save or restore large Kerberos credentials for
- jobs.
- - The dnssd backend did not properly browse for secure IPP printers.
- - httpAssembleURI* did not properly escape all special characters in the
- username/password field.
- - The scheduler now logs config file errors to stderr (STR #3936)
- - The configure script incorrectly used bundle-based localizations on
- Linux (STR #3938)
- - The cups-driverd helper program did not cache .drv files properly,
- sometimes leading to a crash (STR #3921)
- - CUPS did not build on stock Mac OS X installations.
- - Encryption was broken with OpenSSL.
- - ipptool's XML output used date/time values with timezone offsets,
- which are not supported by Mac OS X's NSDate class.
- - Several programs did not support the cupsFilter2 keyword in PPD files.
- - The IPP backend incorrectly reported spool-area-full states.
- - cupsMarkOptions() did not protect against a bad PPD that was missing
- one or more standard Duplex options.
- - The PostScript filter did not mirror N-up output properly.
- - The ipptool program did not validate UTF-8 strings in XML output.
- - Fixed supply level reporting for some printers.
- - The scheduler no longer automatically logs debug messages for jobs
- that were held or canceled.
- - The cupsSendRequest function did not flush remaining response data
- from a previous request, leading to apparent chunking issues.
- - The scheduler did not report the correct version in the Server: header
- (STR #3903)
- - The scheduler did not support 1284 device IDs reported by driver
- interface programs longer than 127 characters (STR #3871)
- - The image filters did not support loading images larger than the
- RIPCache setting (STR #3901)
- - "PAGE: total NNN" messages did not get logged properly (STR #3887)
- - Updated the PWG Raster support to conform to the current draft of the
- PWG Raster Format specification.
- - The PWG Raster filter did not always write the correct number of
- padding lines on the bottom of the page (STR #3904)
- - When reporting a denial-of-service attack from the domain socket, the
- address reported does not always contain the correct path (STR #3888)
- - Badly formed GIF files could cause the image filters to crash
- (STR #3914)
- - Jobs canceled at the printer were retried by the IPP backend.
- - "cupsfilter -u" deleted the input file instead of the PPD file.
- - The scheduler did not compute the cost of PPD filters defined using
- the cupsFilter2 keyword properly.
- - The scheduler did not correctly support the maxsize() attribute for
- PPD filters.
-
-
-CHANGES IN CUPS V1.5.0
-
- - Documentation updates.
- - Localization update (STR #3865)
- - Needed to limit TLS to v1.0 on some versions of Mac OS X.
- - The snmp backend did not work with some printers.
-
-
-CHANGES IN CUPS V1.5rc1
-
- - Compile fixes (STR #3849, STR #3850)
- - The scheduler didn't check for empty values for several configuration
- directives (STR #3861)
- - ipptool didn't generate valid XML when a test was skipped.
- - Added additional error checking to the 1284 device ID code (STR #3858)
- - Fixed some compatibility issues migrating from the old usblp backend
- to the libusb backend (STR #3860)
- - Fixed the wake-from-sleep printing behavior on Mac OS X.
- - The scheduler incorrectly allowed jobs to be held from a terminating
- state.
- - The cups-driverd program could crash when a PPD was renamed.
- - The dnssd backend took too long to discover printers on large or busy
- networks with the new default timeout used by lpinfo and the web
- interface. This resulted in "lost" printers.
-
-
-CHANGES IN CUPS V1.5b2
-
- - Documentation updates.
- - Localization updates (STR #3845)
- - Compiler warning cleanup.
- - Fixed PIE support for Linux (STR #3846)
- - Made httpSetTimeout API public and use it in the IPP backend to avoid
- timeout errors.
- - The scheduler incorrectly set the "authenticated" printer-type bit for
- remote queues using authentication.
-
-
-CHANGES IN CUPS V1.5b1
-
- - The CUPS library now supports per-connection HTTP timeouts and
- callbacks.
- - The CUPS library now supports (limited) SSL/TLS X.509 certificate
- validation and revocation (STR #1616)
- - Updated the PostScript filter to support IncludeFeature in more
- circumstances (STR #3417)
- - The schedule did not correctly parse some IPv6 addresses and masks in
- the cupsd.conf file (STR #3533)
- - Fixed a case-insensitive string comparison issue for locales that do
- not treat "I" and "i" as equivalent (STR #3800)
- - The scheduler reported an incorrect job-printer-uri value when sharing
- was not enabled (STR #3639)
- - The scheduler now allows the ServerAlias directive to contain multiple
- hostnames separated by spaces or commas (STR #3813)
- - The scheduler now sets the process group for child processes and
- manages the group (STR #2829)
- - Fixed some minor issues discovered by a Coverity scan (STR #3838)
- - The scheduler now more carefully creates and removes configuration,
- cache, and state files (STR #3715)
- - The lpadmin command now allows default option values to be deleted
- (STR #2959)
- - The lpadmin command now allows the cupsIPPSupplies and
- cupsSNMPSupplies keywords to be set in a PPD file (STR #3825)
- - Moving a held job no longer releases it (STR #3839)
- - Restored support for GNU TLS and OpenSSL with threading enabled
- (STR #3605)
- - Fixed a confusing error message from cups-polld (STR #3806)
- - Increased the default RIPCache value to 128MB (STR #3535)
- - MIME errors are now routed to the error_log file (STR #2410)
- - Updated PDF filter to support new Ghostscript ps2write device
- (STR #3766)
- - Updated PDF filter to support new Poppler option to preserve page
- sizes in PDF files when the user has not selected a particular media
- size (STR #3689)
- - Added new PWG Raster filter for IPP Everywhere printer support.
- - Added job-uuid, printer-uuid, and subscription-uuid attributes.
- - Added support for the cupsSingleFile PPD keyword.
- - Dropped support for the printer-state-history attribute (STR #3654)
- - Added support for a new cupsIPPSupplies keyword in PPD files to allow
- drivers to disable IPP supply level reporting.
- - Added support for a new cupsFilter2 keyword in PPD files to allow for
- the propagation of the actual MIME media type produced by a filter.
- - The scheduler did not always get the correct Kerberos username when
- authenticating (STR #3670)
- - Added new cupsRasterOpenIO function and CUPS_RASTER_WRITE_PWG to the
- CUPS imaging library to support printing to IPP Everywhere raster
- printers.
- - The scheduler now provides default values for the pages-per-minute and
- pages-per-minute-color attributes for PPD files that lack a
- Throughput keyword.
- - Email notifications did not work on Mac OS X.
- - The cupstestppd program now shows an error for files missing a
- CloseGroup keyword (STR #3668)
- - Name resolution errors no longer cause queues to stop (STR #3719,
- STR #3753)
- - Added a new cups-exec helper program that applies security profiles
- to filters, port monitors, backends, CGI programs, and mini-daemons.
- - The web interface can now be disabled using the WebInterface directive
- in cupsd.conf (STR #2625)
- - The scheduler now provides privacy controls for jobs and subscriptions
- (STR #2969)
- - Added new cupsArrayNew3 API which offers memory management of array
- elements.
- - Added several new color spaces to the CUPS raster format (STR #3419)
- - The Validate-Job operation now uses the same policy as Print-Job by
- default.
- - CUPS now uses iconv to implement all of its character encoding
- support (STR #3097)
- - The scheduler now implements the Cancel-Jobs, Cancel-My-Jobs, and
- Close-Job operations along with the job-ids operation attribute from
- PWG 5100.11.
- - The main CUPS header (<cups/cups.h>) no longer includes the PPD header
- (<cups/ppd.h>).
- - The scheduler and CUPS API now support the print-quality job template
- attribute.
- - The scheduler no longer supports the old Mac OS X Server quota
- plugin.
- - The scheduler now allows writing to /Users/Shared from print filters
- on Mac OS X.
- - CUPS no longer supports the old ~/.cupsrc or ~/.lpoptions files from
- CUPS 1.1.x. The ~/.cups/client.conf and ~/.cups/lpoptions files that
- were introduced in CUPS 1.2 must now be used.
- - The ipptest tool is now a first-class user program and has several
- improvements along with new documentation (STR #3484)
- - The cupstestppd tool now warns about non-unique filenames and
- provides a way to ignore all filename warnings.
- - Dropped support for the recoverable: and recovered: message prefixes.
- - The scheduler now requires that filters and backends have group write
- permissions disabled.
- - The PPD compiler now checks for overlapping filenames when writing
- PPD files.
- - The HP-GL/2 filter is no longer included with CUPS (STR #3322)
- - The SCSI backend is no longer included with CUPS (STR #3500)
diff --git a/CHANGES-1.6.txt b/CHANGES-1.6.txt
deleted file mode 100644
index 23e142297..000000000
--- a/CHANGES-1.6.txt
+++ /dev/null
@@ -1,244 +0,0 @@
-CHANGES-1.6.txt
----------------
-
-CHANGES IN CUPS V1.6.4
-
- - Removed some duplicate size definitions for some ISO sizes that were
- causing problems (<rdar://problem/14722721>)
- - The IPP backend did not add the "last-document" attribute
- (<rdar://problem/114660379>)
- - Added a SyncOnClose directive to cups-files.conf to force cupsd to
- call fsync before closing any configuration/state files it writes
- (<rdar://problem/14523043>)
- - Added USB quirk rule for Lexmark E238 (<rdar://problem/14493054>)
- - Closed server connections were still not always detected
- (<rdar://problem/14484313>)
- - The libusb-based USB backend now loads its list of quirks from files
- in /usr/share/cups/usb instead of using a hardcoded table
- (<rdar://problem/14442769>)
- - The scheduler did not properly register ICC color profiles with
- colord (<rdar://problem/14455625>)
-
-
-CHANGES IN CUPS V1.6.3
-
- - The configure script now prefers Clang over GCC.
- - Fixed a compile problem on AIX (STR #4307)
- - The default IPP version did not always get set before creating a new
- IPP request message (<rdar://problem/14401718>)
- - The lp, lpq, lpr, and lpstat now display an error message advising the
- use of the /version=1.1 ServerName option (<rdar://problem/14290628>)
- - Added documentation about the /version=1.1 option to ServerName in
- client.conf (<rdar://problem/14216262>)
- - httpStatus(HTTP_ERROR) did not return a useful error message
- (<rdar://problem/14217326>)
- - The lp, lpq, lpr, and lpstat commands incorrectly ignored the default
- printer set in the lpoptions file (<rdar://problem/14216472>)
- - Fixed a URI encoding issue for hostnames containing the ` (backquote)
- character (<rdar://problem/14243133>)
- - Added support for RFC 6874's IPv6 link local address format in URIs
- (<rdar://problem/13979453>)
- - The USB backend could crash on libusb-based systems if USB was
- disabled in the BIOS (<rdar://problem/13875729>)
- - Fixed a rounding error in the PWG media size mapping code
- (<rdar://problem/13493241>)
- - Fixed several ipptool test files that used old STATUS names.
- - Kerberos credentials could get truncated when printing to a shared
- printer.
- - Printing using "ipps" URIs was not encrypted.
- - Insecure ICC profiles prevented installation of user profiles for a
- printer on OS X.
- - Added more USB quirks for the libusb-based backend (STR #4311,
- <rdar://problem/13736470>)
- - The Russian web interface templates were broken (STR #4310)
- - The scheduler no longer tries to do Kerberos authentication over the
- loopback interface.
- - The IPP backend could fail to pause a job for authentication
- (STR #4298)
- - Fixed a regression on the handling of auth keys on OS X if the
- cups-files.conf was not present or did not contain a SystemAuthKey
- value.
- - The scheduler incorrectly did a reverse lookup of the server address
- when HostNameLookups was turned off (STR #4302)
- - The scheduler incorrectly computed the final content type value when
- null filters were present.
-
-
-CHANGES IN CUPS V1.6.2
-
- - Documentation fixes (STR #4229, STR #4239, STR #4234, STR #4248,
- STR #4259)
- - Security: All file, directory, user, and group settings are now stored
- in a separate cups-files.conf configuration file that cannot be set
- through the CUPS web interface or APIs (STR #4223)
- - Added a Czech localization (STR #4201)
- - Added a French localization (STR #4247)
- - Added a Russian localization (STR #4228, STR #4285)
- - Updated the Catalan localization (STR #4202)
- - Local certificate authentication did not guard against an empty
- certification file (STR #4293)
- - The scheduler did not reject device URIs with spaces.
- - Added USB quirk rule for Epson Stylus Photo 750 (STR #4286)
- - The IPP backend could crash if the printer disconnects early
- (STR #4284)
- - cupsGetPPD did not work with statically-configured CUPS shared
- queues (STR #4178)
- - The scheduler did not support long MIME media types (STR #4270)
- - The cupsfilter command did not set the CHARSET environment variable
- for the text filters (STR #4273)
- - The lp command did not show errors for unknown "--foo" (STR #4261)
- - Bad IPP responses could crash ipptool (STR #4262)
- - Updated USB quirk rules for Canon and Xerox printers (STR #4217,
- STR #4263)
- - Added USB blacklisting for printers that require a custom backend
- (STR #4218)
- - The PPD compiler did not correctly JCL options (STR #4115, STR #4203)
- - The ipptool program now supports DEFINE-MATCH and DEFINE-NO-MATCH
- predicates for STATUS directives.
- - Fixed a problem with local Kerberos authentication (STR #4140)
- - Coverity scan: fixed some minor issues (STR #4242)
- - The scheduler did not remove color profiles after deleting a printer
- (STR #4232, STR #4276)
- - The CUPS library did not always detect a timed out connection to the
- server which could cause temporary loss of printing from applications
- (STR #4187)
- - The ipptool program now supports variable substitution in OPERATION
- and DELAY directives (STR #4175)
- - The IPP backend now stops queues when the server configuration
- prevents successful job submission (STR #4125)
- - The XML output of ipptool contained empty dictionaries (STR #4136)
- - The scheduler did not delete job control backup files (STR #4244)
- - cupsGetPPD3 could return a local PPD instead of the correct remote
- PPD.
- - The scheduler incorrectly advertised auth-info-required for local
- queues needing local authentication (STR #4205)
- - CUPS 1.6 clients using the ServerName directive in client.conf did not
- work with CUPS 1.3.x or older servers (STR #4231, STR #4291)
- - The SNMP backend now tries to work around broken printers that use a
- newline to separate key/value pairs.
- - The IPP backend did not send a cancel request to printers when a job
- was canceled and the printer did not support Create-Job.
- - Fixed EPM packaging files (STR #4199)
- - OpenBSD build fix (STR #4195, STR #4196, STR #4197)
- - The scheduler could crash when using Avahi (STR #4183, STR #4192,
- STR #4200, STR #4213)
- - The IPP backend could get stuck in an endless loop on certain network
- errors (STR #4194)
- - 32-bit builds failed on Debian (STR #4133)
- - The scheduler no longer accepts or sends job description attributes.
- - The IPP backend now works around some conformance issues for broken
- printers (STR #4190)
- - cupsBackendReport() now filters out all control characters from the
- reported 1284 device IDs (STR #4124)
- - The scheduler no longer allows job-name values that are not valid
- network Unicode strings (STR #4072)
- - The web interface did not preserve the order of classes, jobs, or
- printers (STR #4170)
- - The network backends now support disabling of SNMP supply level
- queries via the "snmp" URI option (STR #4106)
- - The IPP backend did not specify the compression used (STR #4181)
- - ipptool did not support octetString values.
- - The scheduler did not recognize dnssd: or ipps: URIs as Bonjour shared
- queues (STR #4158)
- - Applications could not get the PPD file for statically-configured
- Bonjour-shared print queues (STR #4159)
- - The cupsd.conf file included obsolete browsing directives (STR #4157)
- - Fixed a USB backend compatibility issue on systems using libusb
- (STR #4155, STR #4191)
- - Some Bonjour features were not available on systems with Avahi
- (STR #4156)
- - CUPS now includes the port number in the Host: header for HTTP
- requests.
- - Fixed REPEAT-MATCH for STATUS and EXPECT - was incorrectly erroring
- out.
-
-
-CHANGES IN CUPS V1.6.1
-
- - Documentation fix (STR #4149)
- - RPM packaging fixes (STR #4129, #4145)
- - The Japanese and English web interface headers were swapped
- (STR #4148)
-
-
-CHANGES IN CUPS V1.6.0
-
- - Document changes (STR #4131)
- - Added new Catalan (STR #4107) and Spanish (STR #4137) localizations.
-
-
-CHANGES IN CUPS V1.6rc1
-
- - Added a new Japanese localization (STR #4122)
- - The SNMP backend no longer exits if it is unable to obtain an IPv6
- socket (STR #4109)
- - The LPD backend incorrectly used "localhost" in the control file
- instead of the current hostname.
-
-
-CHANGES IN CUPS V1.6b1
-
- - Documentation updates (STR #3927, STR #3980, STR #4010, STR #4068)
- - The scheduler now consolidates all PPD updates from filters at the
- end of the job (STR #4075)
- - CUPS now supports color management using colord (STR #3808)
- - CUPS now supports Bonjour using Avahi (STR #3066)
- - The PreserveJobFiles and PreserveJobHistory directives now support
- specification of a time interval (STR #3143)
- - PPD files can now be archived in (gzip'd) tar files to further reduce
- the disk space used by PPD files (STR #3772)
- - The network backends now deal with printers that report their levels
- in percent but do not specify a maximum capacity of 100 (STR #3551)
- - The network backends now report full/almost-full waste bins in
- printers along with end-of-life for cleaning pads (STR #4017)
- - Added a configure option to set the permissions of the installed
- cupsd (STR #3459)
- - Added a new WITH-ALL-VALUES directive to ipptool EXPECT predicates
- (STR #3949)
- - CUPS now supports a User directive in client.conf and the CUPS_USER
- environment variable for overriding the default username (STR #3114)
- - Now set the PJL USERNAME variable as needed (STR #3100)
- - Added support for usernames and passwords longer than 32 characters
- (STR #2856)
- - Added a new MaxHoldTime directive to automatically cancel jobs that
- have been held indefinitely after a specific number of seconds
- (STR #2291)
- - The LPD backend now uses the originating host name when it is not the
- local system (STR #2053)
- - CUPS now prefers the suffix "dpcm" when reporting resolution in dots-
- per-centimeter (STR #4006)
- - The configure script and build system no longer support building of
- separate 32-bit and 64-bit libraries.
- - The "brightness", "columns", "fitplot", "gamma", "hue",
- "natural-scaling", "penwidth", "position", "ppi", "saturation", and
- "scaling" options are not longer supported (STR #4010)
- - The "page-bottom", "page-left", "page-right", "page-top",
- "prettyprint", and "wrap" options have been deprecated (STR #4010)
- - The scheduler now reports the standard "number-of-documents" attribute
- instead of the CUPS-specific "document-count" attribute in
- job objects.
- - Added new destination connection and enumeration functions (STR #3924)
- - Added new option, localization, and job submission functions that do
- not depend on PPD files (STR #3925)
- - Added a new MaxJobTime directive for cupsd that specifies the maximum
- amount of time allowed for a job to complete before it is canceled.
- - The default password callback now supports passwords up to 127
- characters.
- - The scheduler now supports a DefaultAuthType of "auto" to
- automatically choose between Basic (username/password) and Negotiate
- (Kerberos) authentication.
- - cupsSideChannelSNMPGet/Walk now support OIDs and values up to 64k in
- length.
- - CUPS no longer supports automatic remote printers or implicit classes
- via the CUPS, LDAP, or SLP protocols (STR #3922, STR #3923)
- - The PPD APIs are now deprecated and will be removed in a future
- version of CUPS (STR #3927)
- - The default IPP version for requests is now 2.0 (STR #3929)
- - The IPP APIs no longer expose the ipp_t or ipp_attribute_t structures
- and instead provide accessor functions (STR #3928)
- - The scheduler will no longer run programs with group write permission.
- - The PHP module has been removed (STR #3932)
- - The bannertops, commandtoescpx, commandtopclx, imagetops,
- imagetoraster, pdftops, rastertoescpx, rastertopclx, and texttops
- filters have been removed (STR #3930)
- - The serial and parallel backends have been removed (STR 3935)
diff --git a/CHANGES-1.7.txt b/CHANGES-1.7.txt
deleted file mode 100644
index d3438ff18..000000000
--- a/CHANGES-1.7.txt
+++ /dev/null
@@ -1,250 +0,0 @@
-CHANGES-1.7.txt
----------------
-
-CHANGES IN CUPS V1.7.5
-
- - Security: Addressed some more situations where symlinked files would
- be served by the web interface (STR #4455)
- - The LPD backend did not work with some versions of glibc (STR #4452)
- - CGI scripts did not work (STR #4454)
- - The cupsd.conf man page did not list the ErrorPolicy directive
- (STR #4457)
- - Updated the Brazilian Portuguese translation (STR #4456)
-
-
-CHANGES IN CUPS V1.7.4
-
- - Security: The web interface incorrectly served symlinked files and
- files that were not world-readable, potentially leading to a
- disclosure of information (STR #4450)
- - The CUPS headers incorrectly needed libdispatch for blocks support
- (STR #4397)
- - CUPS did not compile when Avahi or mDNSResponder was not present
- (STR #4402, STR #4424)
- - The "snmp" option did not work with the network backends (STR #4422)
- - The User directive in client.conf did not override the USER
- environment variable (STR #4426)
- - The web interface now properly shows a "Go" button for all text-based
- browsers (STR #4425)
- - The MaxJobTime directive now properly supports time values (STR #4434)
- - The RPM spec file did not work due to the new Brazilian Portuguese
- localization (STR #4436)
- - Fixed an "IPP read error" issue (STR #4440)
- - Fixed the --disable-libusb configure option (STR #4439)
- - Fixed the debug output from the DNS-SD backend when using Avahi
- (STR #4444)
- - Fixed a bug in the CUPS_SC_GET_DEVICE_ID handling by the network
- backends (STR #4447)
- - Added USB quirk rule for Lexmark E230 (STR #4448)
-
-
-CHANGES IN CUPS V1.7.3
-
- - Added Brazilian Portuguese translation (STR #4409)
- - Fixed mapping of OutputBin values such as "Tray1"
- (<rdar://problem/16685606>)
- - Several ippGet* functions incorrectly returned -1 instead of 0 on
- error.
- - The cupsGetResponse function did not work properly with
- CUPS_HTTP_DEFAULT (<rdar://problem/16762593>)
- - The IPP backend did not abort a job when the printer did not validate
- the supplied options (<rdar://problem/16836752>)
- - Fixed an authentication race condition in cupsSendRequest (STR #4403)
- - The scheduler did not add the "job-hold-until-specified" reason when
- holding a job using the lp command (STR #4405)
- - The configure script incorrectly added libgcrypt as a GNU TLS
- dependency (STR #4399)
- - cupsGetDestMediaCount did not work for CUPS_MEDIA_FLAGS DEFAULT
- (STR #4414)
- - Auto-typing of PWG Raster files did not work (STR #4417)
- - IPP queues using hardcoded credentials would ask for credentials
- (STR #4371)
- - Dates in non-UTF-8 locales did not display correctly (STR #4388)
- - The RPM spec file now looks for libusb-devel 1.0 or later.
- - Fixed the "create-printer-subscription.test" file for IPPTOOL
- (STR #4420)
-
-
-CHANGES IN CUPS V1.7.2
-
- - Security: The scheduler now blocks URLs containing embedded HTML
- (STR #4356)
- - Documentation fixes (STR #3259, STR #4346, STR #4355)
- - Fixed the Japanese localization (STR #4385)
- - Added a German localization (STR #4363)
- - The cupsfilter command incorrectly read the cupsd.conf file; it now
- reads the cups-files.conf file instead.
- - Fixed OS X builds with Xcode 5.x (<rdar://problem/15914959>)
- - Fixed SSL support on Windows (STR #4358)
- - Fixed documentation and naming of Create-Job/Printer-Subscriptions
- operations (STR #4389)
- - Phone numbers in fax jobs were not properly filtered for IPP FaxOut
- (<rdar://problem/16351701>)
- - Updated Linux "relro" support (STR #4349)
- - Fixed a memory leak in the label printer driver (STR #4393)
- - cupsEnumDests did not set the "is_default" field (STR #4332)
- - cupsDoIORequest could miss the server status, causing failed lpadmin
- and other administrative commands (STR #4386)
- - cupsEnumDests didn't always call the callback function (STR #4380)
- - "lp -i job-id -H hold" did not work (STR #nnn)
- - CUPS didn't compile on older platforms (STR #4338)
- - Several libcups files did not have the Apple license exception
- notice (STR #4361)
- - Fixed a D-BUS threading issue that caused the scheduler to crash
- (STR #4347)
- - The scheduler now automatically reconnects to Avahi as needed
- (STR #4370, STR #4373)
- - The scheduler did not handle GET requests for the log files properly
- (STR #3265)
- - The dnssd backend did not always report all discovered printers using
- Avahi (STR #4365)
- - The Zebra printer driver did not properly handle negative "label top"
- values (STR #4354)
- - The scheduler did not always update the MakeModel value in
- printers.conf after updating the driver (STR #4264)
- - The LPD mini daemon did not support print jobs larger than 2GB
- (STR #4351)
- - Fixed a bug in the status reading code when sending a compressed data
- stream to an IPP printer/server (<rdar://problem/16019623>)
- - The IPP backend might not include all job attributes in Validate-Job
- operations (<rdar://problem/16025435>)
- - Fixed some clang-reported issues (<rdar://problem/15936066>)
-
-
-CHANGES IN CUPS V1.7.1
-
- - Security: the lppasswd program incorrectly used settings from
- ~/.cups/client.conf (STR #4319)
- - Auto debug logging was broken in 1.7.0 (<rdar://problem/15331639>)
- - Some gzip'd PPD files could not be used (<rdar://problem/15386424>)
- - Cleaned up some job logging in the scheduler
- (<rdar://problem/15332672>)
- - ATTR messages could cause string pool memory corruption in the
- scheduler (<rdar://problem/15382819>)
- - The RPM spec file did not list the build requirements; this was on
- purpose, but now we are listing the Red Hat package names
- (<rdar://problem/15375760>, STR #4322)
- - Printing to a raw queue could result in corrupt output due to
- opportunistic compression (<rdar://problem/15008524>)
- - The GNU TLS support code triggered many compiler warnings due to the
- use of old GNU TLS compatibility type names
- (<rdar://problem/15392966>)
- - The "make check" test suite did not work on Linux without the
- cups-filters package installed (<rdar://problem/14292998>)
- - Japanese PPDs using with the Shift-JIS encoding did not work
- (<rdar://problem/15427759>)
- - "tel:" URIs incorrectly had slashes (<rdar://problem/15418463>)
- - The libusb-based USB backend incorrectly used write timeouts
- (<rdar://problem/15564888>)
- - Shared printers could become inaccessible after a few days on OS X
- (<rdar://problem/15426838>)
- - The IPP backend did not wait for a busy printer to become available
- before attempting to print (<rdar://problem/15465667>)
- - CUPS did not support "auto-monochrome" or "process-monochrome" for the
- "print-color-mode" option (<rdar://problem/15482520>)
- - Using "@IF(name)" in an Allow or Deny rule did not work (STR #4328)
- - lpq and lpstat did not list jobs in the correct order when priorities
- were specified (STR #4326)
- - The D-BUS notifier did not remove its lockfile (STR #4314)
- - CUPS incorrectly used the USER environment variable when the name did
- not match the user ID (STR #4327)
-
-
-CHANGES IN CUPS V1.7.0
-
- - Updated the Japanese localization.
- - The lpadmin command did not send the PPD name from the "-m" option
- (<rdar://problem/15264697>)
- - Network backends now use the prtMarkerSuppliesClass property to
- determine the direction of supply level values
- (<rdar://problem/14302628>)
- - The scheduler did not remove backup PPD files when a printer was
- deleted (<rdar://problem/15065555>)
- - The scheduler incorrectly responded to HEAD requests when the web
- interface was disabled (<rdar://problem/15090332>)
- - The scheduler did not respond using the hostname specified by the
- client (<rdar://problem/14583574>)
- - Fax queues did not work when shared via Bonjour
- (<rdar://problem/14498310>)
- - Error messages from the scheduler were not localized using the
- language specified in the client's IPP request
- (<rdar://problem/14128011>)
- - Added an Italian localization (<rdar://problem/14481578>)
- - Fixed a couple memory leaks in ippfind that were reported by Clang.
- - Fixed a compile issue on 64-bit Linux with Clang - need to use the
- -pie option instead of -Wl,-pie now (<rdar://problem/14480938>)
- - The ippfind utility reported the wrong port numbers when compiled
- against Avahi (<rdar://problem/14508324>)
- - httpGetFd, httpGetFile, httpPutFd, and httpPutFile did not
- automatically reconnect if the server closed the connecion after the
- previous response.
- - Fixed a compile error in libcups (<rdar://problem/14467141>)
- - The scheduler incorrectly did not pass a FINAL_CONTENT_TYPE
- environment variable to the filters or backend
- (<rdar://problem/14355011>)
- - The cups-exec helper program could fail randomly on OS X due to
- sandbox violations when closing excess file descriptors
- (<rdar://problem/14421943>)
- - The scheduler incorrectly did not use the kqueue interface on OS X.
-
-
-CHANGES IN CUPS V1.7rc1
-
- - Printer xxx-default values were not reported by Get-Printer-Attributes
- or lpoptions (<rdar://problem/14401795>)
- - Fixed deprecation warnings for many functions on OS X so they are tied
- to the deployment version when building (<rdar://problem/14210079>)
- - Fixed a build issue on ARM-based Linux systems - unable to validate
- va_list arguments.
- - Added a new ippfind tool for finding IPP printers and other Bonjour
- services (<rdar://problem/13876199>)
- - Fixed some issues with conversion of PWG media size names to
- hundredths of millimeters (<rdar://problem/14065748>)
- - The IPP backend could crash on OS X when printing to a Kerberized
- printer (<rdar://problem/14040186>)
- - The ipptool program now automatically extends timeouts when the
- output buffer is filled (<rdar://problem/14016099>)
- - The ipptool program now supports the --help and --version options.
- - The ipptool program did not continue past include file errors by
- default (<rdar://problem/13875803>)
- - The ipptool program now supports FILE-ID and TEST-ID directives and
- includes their values in its XML output (<rdar://problem/13876038>)
- - The ipptool program now supports WITH-HOSTNAME, WITH-RESOURCE, and
- WITH-SCHEME expect predicates to compare the corresponding URI
- components (<rdar://problem/13876091>)
-
-
-CHANGES IN CUPS V1.7b1
-
- - The configure script now supports a --with-rundir option to change
- the transient run-time state directory from the default to other
- locations like /run/cups (STR #4306)
- - The scheduler now supports PPD lookups for classes (STR #4296)
- - The cupsfilter program did not set the FINAL_CONTENT_TYPE
- environment variable for filters.
- - Added a new "-x" option to the cancel command (STR #4103)
- - Made the PWG media handling APIs public (STR #4267)
- - Implemented ready media support for the cupsGetDestMediaXxx APIs
- (STR #4289)
- - Added new cupsFindDestDefault, cupsFindDestReady, and
- cupsFindDestSupported APIs (STR #4289)
- - Added new cupsGetDestMediaByIndex, cupsGetDestMediaCount, and
- cupsGetDestMediaDefault APIs (STR #4289)
- - Added new ippGet/SetOctetString APIs for getting and setting an
- octetString value (STR #4289)
- - Added new ippCreateRequestedArray API for generating a array of
- attributes from the requested-attributes attribute.
- - The ipptool utility now supports compression, conditional tests based
- on the presence of files, and new DEFINE predicates for STATUS.
- - Added new IPP APIs for checking values (STR #4167)
- - Added new IPP APis for adding and setting formatted strings.
- - Added new HTTP APIs to support basic server functionality via libcups.
- - The dnssd backend now generates a 1284 device ID as needed (STR #3702)
- - CUPS now supports compressing and decompressing streamed data
- (STR #4168)
- - CUPS now supports higher-level PIN printing, external accounting
- systems, and "print here" printing environments (STR #4169)
- - IRIX is no longer a supported operating system (STR #4092)
- - The PPD compiler now supports JCL options properly (STR #4115)
- - The web interface now checks whether the web browser has cookies
- enabled and displays a suitable error message (STR #4141)
diff --git a/CHANGES-2.0.txt b/CHANGES-2.0.txt
deleted file mode 100644
index dc46f035f..000000000
--- a/CHANGES-2.0.txt
+++ /dev/null
@@ -1,215 +0,0 @@
-CHANGES-2.0.txt
----------------
-
-CHANGES IN CUPS V2.0.4
-
- - Fixed a bug in cupsRasterWritePixels (STR #4650)
- - Fixed redirection in the web interface (STR #4538)
- - The IPP backend did not respond to side-channel requests (STR #4645)
- - The scheduler did not start all pending jobs at once (STR #4646)
- - The web search incorrectly searched time-at-xxx values (STR #4652)
- - Fixed an RPM spec file issue (STR #4657)
- - The scheduler incorrectly started jobs while canceling multiple jobs
- (STR #4648)
- - Fixed processing of server overrides without port numbers (STR #4675)
- - Documentation changes (STR #4651, STR #4674)
-
-
-CHANGES IN CUPS V2.0.3
-
- - Security: Fixed CERT VU #810572 exploiting the dynamic linker
- (STR #4609)
- - Security: The scheduler could hang with malformed gzip data
- (STR #4602)
- - Restored missing generic printer icon file (STR #4587)
- - Fixed logging of configuration errors to show up as errors (STR #4582)
- - Fixed potential buffer overflows in raster code and filters
- (STR #4598, STR #4599, STR #4600, STR #4601)
- - Fixed a gzip processing bug (#4602)
- - Fixed <Limit> inside <Location> (STR #4575)
- - Fixed lpadmin when both -m and -o are used (STR #4578)
- - The web interface always showed support for 2-sided printing
- (STR #4595)
- - cupsRasterReadHeader did not fully validate the raster header
- (STR #4596)
- - The rastertopwg filter did not check for truncated input (STR #4597)
- - The cups-lpd mini-daemon did not check for request parameters
- (STR #4603)
- - The scheduler could get caught in a busy loop (STR #4605)
- - The sample Epson driver could crash (STR #4616)
- - The IPP backend now correctly monitors jobs
- (<rdar://problem/20495955>)
- - The ppdhtml and ppdpo utilities crashed when the -D option was used
- before a driver information file (STR #4627)
- - ippfind incorrectly substituted "=port" for service_port.
- - The IPP/1.1 test file did not handle the initial print job
- completing early (STR #4576)
- - Fixed a memory leak in cupsConnectDest (STR #4634)
- - PWG Raster Format output contained invalid ImageBox values
- (<rdar://problem/21144309>)
- - Added Russian translation (STR #4577)
- - Added German translation (STR #4635)
-
-
-CHANGES IN CUPS V2.0.2
-
- - Security: cupsRasterReadPixels buffer overflow with invalid page
- header and compressed raster data (STR #4551)
- - Command-line programs were not localized on Mac OS X
- (<rdar://problem/14546232>)
- - The scheduler incorrectly cleared the MakeModel string in the
- printers.conf file after a restart (<rdar://problem/16827518>)
- - CUPS did not compile with older versions of GNU TLS (STR #4527)
- - CUPS did not compile without Avahi or mDNSResponder (STR #4523)
- - ippLength() did not return the correct length for IPP_TAG_CONST
- string values.
- - The scheduler incorrectly aborted jobs after a job was restarted
- (<rdar://problem/19129387>)
- - The cups-files.conf file contained the old ServerCertificate/Key
- directives instead of ServerKeychain.
- - Fixed builds when no SSL/TLS library is available, or when explicitly
- disabled (STR #4531)
- - Fixed an OpenBSD charset transcoding issue.
- - Fixed USB printing on OpenBSD (STR #4525)
- - The --without-xinetd configure option did not work (STR #4542)
- - Backends needing to load OS X kernel extensions did not work
- (<rdar://problem/19015679>)
- - Mapping of PPD keywords to IPP keywords did not work if the PPD
- keyword was already an IPP keyword (<rdar://problem/19121005>)
- - cupsGetPPD* sent bad requests (STR #4567)
- - ippserver used the wrong temporary directory on Windows (STR #4547)
- - ippserver did not handle Bonjour registrations properly (STR #4548)
- - The scheduler could crash during shutdown if Avahi was shutdown
- first (STR #4550)
- - Added a USB quirk rule for Intermec printers (STR #4553)
- - The scheduler did not always log which configuration file had the
- error (STR #4559)
- - The ippfind and ipptool programs now correctly match hostnames with
- trailing dots (STR #4563)
- - The ipptool timeout option did not work (STR #4515)
- - Fixed several issues with client.conf, CUPS_SERVER, and the "-h"
- option of most commands (STR #4528)
- - Another change for OpenBSD (STR #4526)
- - Added Japanese localization (STR #4524)
- - Documentation changes (STR #4569)
-
-
-CHANGES IN CUPS V2.0.1
-
- - Security: SSLv3 is now disabled by default to protect against the
- POODLE attack (STR #4476)
- - Printer sharing did not work when systemd was being used (STR #4497)
- - cupsGetPPD* would return a symlink to the PPD in /etc/cups/ppd even if
- it was not readable by the user (STR #4500)
- - The web interface now protects against frame "click-jacking" attacks
- (STR #4492)
- - Fixed a crash in ippAttributeString (<rdar://problem/17903871>)
- - Fixed a crash in the scheduler on Linux/*BSD if colord was not running
- (STR #4496)
- - Fixed a random crash in the scheduler when not using systemd
- (STR #4484)
- - Added systemd support for cups-lpd (STR #4493)
- - The scheduler did not honor the FatalErrors directive for mis-
- configured Group and SystemGroup values (STR #4495)
- - The network backends no longer report waste-receptacle conditions when
- using SNMP (STR #4499)
- - The IPP backend did not work with some configurations of Windows
- (STR #4503)
- - RPMs did not build (STR #4490)
- - Added a USB quirk rule for the Brother HL-1250 (STR #4519)
- - Fixed compiles on unsupported platforms (STR #4510)
- - "cancel -a" did not cancel all jobs on all destinations (STR #4513)
- - The web interface did not work on OpenBSD (STR #4496)
-
-
-CHANGES IN CUPS V2.0.0
-
- - The scheduler did not preserve listener sockets from launchd or
- systemd after a restart (<rdar://problem/18112848>)
- - Added some USB quirk rules for the libusb-based USB backend
- (STR #4482)
- - Spanish localization update (STR #4487)
- - Updated documentation for 2.0.0 release.
-
-
-CHANGES IN CUPS V2.0rc1
-
- - Documentation updates (STR #4464)
- - The scheduler now monitors the AC power status on OS X, allowing for
- "sleep printing" when sharing printers (<rdar://problem/17325852>)
- - The scheduler incorrectly called launch_activate_socket multiple times
- on OS X (<rdar://problem/17523218>)
- - The ippserver test program now passes the IPP Everywhere self-
- certification tests (STR #4101)
- - Relaxed the new OS X filter sandbox slightly (STR #4471,
- <rdar://problem/17483959>)
- - Dropped the old Epson Stylus Color/Photo sample drivers since they
- don't work with any current printers and there are free alternatives
- that produce much better output (<rdar://problem/18036889>)
- - Log and configuration files that are not world-readable are again
- accessible via the web interface (STR #4461)
- - PPD files are now created using the permissions specified by the
- ConfigFilePerm directive.
- - Fixed RPM build issues (STR #4459)
- - Fixed the spinner image and restart page when reconfiguring the
- scheduler through the web interface (STR #4475)
-
-
-CHANGES IN CUPS V2.0b1
-
- - Added a "--list-filters" option to the cupsfilter command (STR #4325)
- - Added systemd support (STR #3917)
- - Added support for re-sending a job as a raster file if a higher-level
- format such as PDF fails (<rdar://problem/15583721>)
- - Added support for regular expression matching in the MIME type rules
- (<rdar://problem/11131245>)
- - Added support for TLS certificate validation and policy enforcement
- (STR #1616)
- - Added support for simultaneous XML and test output from ipptool.
- - Added support for PAUSE directive in ipptool test files.
- - Added support for auto-typing of TIFF files by ipptool (STR #4418)
- - The scheduler now returns completed jobs in the correct newest-to-
- oldest order (STR #4396)
- - The configure script now supports target-specific tools for pkg-config
- and others (STR #4423)
- - The ipptool program now supports EXPECT statements for collection
- member attributes (<rdar://problem/15355218>)
- - The ipptool program now supports collection attributes with multiple
- values (<rdar://problem/15355124>)
- - The sample drivers now include all of the installed localizations by
- default (<rdar://problem/14756625>)
- - Adopted Linux man page conventions and updated all man pages
- (STR #4372, STR #4329)
- - The scheduler now supports the "first-index" operation attribute for
- the Get-Jobs operation (STR #2913)
- - Changed the default AccessLogLevel and PageLogFormat to disable the
- access_log and page_log files by default (<rdar://problem/16495000>)
- - cupsRasterInterpretPPD now supports the Orientation header in order to
- support long-edge feed raster printers (<rdar://problem/15837926>)
- - The scheduler now allows run-as-root backends to have group read and
- execute permissions (STR #2935)
- - The ippFindAttribute and ippFindNextAttribute functions now support
- hierarchical searches (STR #4395)
- - Dropped OpenSSL support in favor of GNU TLS.
- - Dropped "dark wake" support on OS X, which was preventing portables
- from going to sleep when there was a stuck job. We now use a variation
- of the CUPS 1.4 sleep support to do a cleaner sleep
- (<rdar://problem/14323704>)
- - Dropped support for AIX, HP-UX, and OSF/1 (aka Digital UNIX)
- - Dropped lppasswd and support for Digest authentication in in the
- scheduler (STR #4321)
- - The cupsGetClasses, cupsGetPrinters, and cupsTempFile functions are no
- longer supported.
- - The scheduler now caches more job history data and limits the number
- of completed jobs returned by Get-Jobs as needed in order to prevent a
- denial-of-service on busy servers (STR #2913)
- - The filter/backend sandbox on OS X now defaults to a more strict
- whitelist (<rdar://problem/15939788>)
- - Increased the default idle exit timeout to 60 seconds on OS X
- (<rdar://problem/16041820>)
- - Printer classes were not accessible on OS X
- (<rdar://problem/16385643>)
- - The scheduler now uses </DefaultPrinter> to close the default printer
- definition in printers.conf (STR #4153)
- - Canceling all jobs in the web interface now just cancels the jobs
- (STR #1914)
diff --git a/CHANGES-2.1.txt b/CHANGES-2.1.txt
deleted file mode 100644
index 7a6b54845..000000000
--- a/CHANGES-2.1.txt
+++ /dev/null
@@ -1,150 +0,0 @@
-CHANGES-2.1.txt
----------------
-
-CHANGES IN CUPS V2.1.4
-
- - Fixed reporting of 1284 Device IDs (Issue #3835, PR #3836)
- - Fixed printing of multiple files to raw queues (Issue #4782)
- - The scheduler did not implement the Hold-New-Jobs opertion correctly
- (Issue #4767)
- - The ipptool program truncated values at 8k (Issue #4786)
- - The ipptool program did not correctly report uriScheme values in plist
- output (Issue #4785)
- - The cups-lpd mini-daemon incorrectly included the document-name
- attribute when creating a job. It should only be included when
- sending a job (Issue #4790)
- - USB quirk updates (Issue #4778, Issue #4789)
- - Documentation update (Issue #4772)
-
-
-CHANGES IN CUPS V2.1.3
-
- - The default password function did not work on some platforms
- (Issue #4750)
- - The scheduler should not exit under memory pressure
- (<rdar://problem/23255001>)
- - The EPL2 and ZPL sample drivers did not properly support the CutMedia
- option.
- - Pending subscriptions would prevent the scheduler from idle exiting
- (Issue #4754)
- - Fixed some issues in ipptool for skipped tests
- (<rdar://problem/24137160>)
- - The "lp -H resume" command did not reset the "job-state-reasons"
- attribute value (Issue #4752)
- - cupsEncodeOptions2 incorrectly handled escaped values
- (<rdar://problem/19736672>)
- - The scheduler did not allow access to resource files (icons, etc.)
- when the web interface was disabled (Issue #4755)
- - Localization fix (Issue #4756)
-
-
-CHANGES IN CUPS V2.1.2
-
- - Re-release of CUPS 2.1.1 as CUPS 2.1.2 due to error in tagging of the
- 2.1.1 release (pulled content from the 2.2.x tree instead)
-
-
-CHANGES IN CUPS V2.1.1
-
- - Security hardening fixes (<rdar://problem/23131948>,
- <rdar://problem/23132108>, <rdar://problem/23132353>,
- <rdar://problem/23132803>, <rdar://problem/23133230>,
- <rdar://problem/23133393>, <rdar://problem/23133466>,
- <rdar://problem/23133833>, <rdar://problem/23133998>,
- <rdar://problem/23134228>, <rdar://problem/23134299>,
- <rdar://problem/23134356>, <rdar://problem/23134415>,
- <rdar://problem/23134506>, <rdar://problem/23135066>,
- <rdar://problem/23135122>, <rdar://problem/23135207>,
- <rdar://problem/23144290>, <rdar://problem/23144358>,
- <rdar://problem/23144461>)
- - The cupsGetPPD* functions did not work with IPP printers (Issue #4725)
- - Some older HP LaserJet printers need a delayed close when printing
- using the libusb-based USB backend (Issue #4549)
- - The libusb-based USB backend did not unload the kernel usblp module
- if it was preventing the backend from accessing the printer
- (Issue #4707)
- - Current Primera printers were incorrectly reported as Fargo printers
- (Issue #4708)
- - The IPP backend did not always handle jobs getting canceled at the
- printer (<rdar://problem/22716820>)
- - Scheduler logging change (Issue #4728)
- - Added USB quirk for Canon MP530 (Issue #4730)
- - The scheduler did not deliver job notifications for jobs submitted to
- classes (Issue #4733)
- - Changing the printer-is-shared value for a remote queue did not
- produce an error (Issue #4738)
- - The IPP backend incorrectly included the job-password attribute in
- Validate-Job requests (<rdar://problem/23531939>)
- - Updated localizations (Issue #4709)
-
-
-CHANGES IN CUPS V2.1.0
-
- - Fixed more scheduler crash bugs in the new logging code (Issue #4687,
- Issue #4690)
- - The scheduler did not use the ConfigFilePerm setting when copying PPD
- files or interface scripts attached to a request (Issue #4703)
- - Now support new Chinese locale IDs and their correct fallback locales
- (<rdar://problem/22086642>, <rdar://problem/22130168>)
- - "make check" incorrectly reported an expectation of 18 warning
- messages when 8 were expected (Issue #4684)
- - The new PDF file type rule did not work (Issue #4692)
- - The scheduler did not update the jobs.cache file when job files were
- expired (Issue #4706)
- - Fixed some configure script issues (Issue #4694, Issue #4695, Issue #4698)
- - Documentation updates (Issue #4691, Issue #4693)
-
-
-CHANGES IN CUPS V2.1rc1
-
- - Added support for 3D printers (basic types only, no built-in filters)
- based on PWG white paper.
- - Fixed bugs in the new journald support (Issue #4655, Issue #4658,
- Issue #4661)
- - Fixed domain socket support on Linux (Issue #4679)
- - Fixed signal handlers in the dnssd and usb backends (Issue #4671)
- - <Limit All> in <Policy> sections now applies to all operations when
- used by itself (Issue #4659)
- - Configure script changes for systemd support (Issue #4669)
- - Updated autoconf sources to use newer form of AC_INIT (Issue #4664)
-
-
-CHANGES IN CUPS V2.1b1
-
- - Improved speed of ppdMarkDefaults for complex/large PPDs
- (<rdar://problem/15146999>)
- - The IPP backend now stops sending print data if the printer indicates
- the job has been aborted or canceled (<rdar://problem/17837631>)
- - The IPP backend now sends the job-pages-per-set attribute when
- printing multiple copy jobs with finishings
- (<rdar://problem/16792757>)
- - The IPP backend now updates the cupsMandatory values when the printer
- configuration changes (<rdar://problem/18126570>)
- - No longer install banner files since third-party banner filters now
- supply their own (Issue #4518)
- - Added support for EXPECT-ALL directive in ipptool test files
- (Issue #4469)
- - Added support for WITH-VALUE-FROM predicate in ipptool test files
- (Issue #4470)
- - The scheduler no longer listens on the loopback interface unless the
- web interface or printer sharing are enabled
- (<rdar://problem/9136448>)
- - Added a PPD generator for IPP Everywhere printers (Issue #4258)
- - Now install "default" versions of more configuration files
- (<rdar://problem/19024491>)
- - The cupstestppd program did not handle "maxsize(nnn)" entries in
- cupsFilter/cupsFilter2 values (<rdar://problem/18974858>)
- - The scheduler now checks the return value of rename() calls
- (Issue #4589)
- - The scheduler now validates ErrorPolicy values in config files
- (Issue #4591)
- - Long cookies caused the web interface to stop working (Issue #4619)
- - Added SSLOptions values to allow Diffie-Hellman key exchange and
- disable TLS/1.0 support.
- - Updated the scheduler to support more IPP Everywhere attributes
- (Issue #4630)
- - The scheduler now supports advanced ASL and journald logging when
- "syslog" output is configured (Issue #4474)
- - The scheduler now supports logging to stderr when running in the
- foreground (Issue #4505)
-
diff --git a/CHANGES.md b/CHANGES.md
index 9e83177d2..6a1a2bd79 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,265 +1,7 @@
-CHANGES - 2.2.6 - 2017-11-01
+CHANGES - 2.3b1 - 2017-11-01
============================
-Changes in CUPS v2.2.6
+Changes in CUPS v2.3b1
----------------------
-- DBUS notifications could crash the scheduler (Issue #5143)
-- Added USB quirks rules for Canon MP540 and Samsung ML-2160 (Issue #5148)
-- Fixed TLS cipher suite selection with GNU TLS (Issue #5145, Issue #5150)
-- Localization updates (Issue #5152)
-
-
-Changes in CUPS v2.2.5
-----------------------
-
-- The scheduler's `-t` option did not force all errors to the standard error
- file, making debugging of configuration problems hard (Issue #5041)
-- Fixed a typo in the CUPS Programming Manual (Issue #5042)
-- Fixed RPM packaging issue (Issue #5043, Issue #5044)
-- The `cupsGetDests` function incorrectly returned an empty list of printers if
- there was no default printer (Issue #5046)
-- The `cupsGetDests` function waited too long for network printers (Issue #5049)
-- Libtool support was completely broken with current libtool versions that use
- an incompatible command-line syntax (Issue #5050)
-- Fixed a build issue with `--enable-mallinfo` (Issue #5051)
-- The ippserver test program contained a deadlock issue (Issue #5054)
-- The `cupsLocalizeDest*` functions did not provide base localizations for
- all registered IPP attributes and values (Issue #5056)
-- The --enable-libtool configure option requires a path to the libtool program,
- but doesn't document or check for it (Issue #5062)
-- Fixed the `SSLOptions DenyCBC` option when using GNU TLS (Issue #5065)
-- Fixed the `ServerTokens None` option (Issue #5065)
-- Fixed the default `ServerAlias` value from `ServerName` (Issue #5072)
-- Fixed the adminurl field in the TXT record for fully-qualified `ServerName`
- values (Issue #5074)
-- The scheduler now creates a PID file when not running on demand with a modern
- service launcher (Issue #5080)
-- The web interface did not support newer language identifiers used by Microsoft
- web browsers (Issue #5803)
-- Updated the cups-files.conf and cupsd.conf file documentation for missing
- directives (Issue #5084)
-- Fixed an Avahi-related crash bug in the scheduler (Issue #5085, Issue #5086)
-- Fixed the interactions between the "print-quality" and "cupsPrintQuality"
- options (Issue #5090)
-- The IPP Everywhere PPD generator now sorts the supported resolutions before
- choosing them for draft, normal, and best quality modes (Issue #5091)
-- Fixed the localization unit test on Linux (Issue #5097)
-- The CUPS library did not reuse domain sockets (Issue #5098)
-- Fixed the "make check" target for some environments (Issue #5099)
-- The scheduler woke up once per second to remove old temporary queues
- (Issue #5100)
-- Added USB quirk rule for Kyocera printer (Issue #5102, Issue #5103)
-- Re-documented the limits of `file:///...` device URIs and moved the FileDevice
- directive in `cups-files.conf` to the list of deprecated configuration
- directives (Issue #5117)
-- Added USB quirk rule for HP LaserJet 1160 printer (Issue #5121)
-- Fixed the script interpreter detection in the configure script (Issue #5122)
-- The network backends now retry on more error conditions (Issue #5123)
-- Added a French translation of the web interface (Issue #5134)
-- `cupsGetDests2` was not using the supplied HTTP connection (Issue #5135)
-- `httpAddrConnect` leaked sockets in certain circumstances, causing some
- printers to hang (rdar://31965686)
-- Fixed an issue with Chinese localizations on macOS (rdar://32419311)
-- The IPP backend now always sends the "finishings" attribute for printers that
- support it because otherwise the client cannot override printer defaults
- (rdar://33169732)
-- The `cupsGetNamedDest` function did not use the local default printer
- (rdar://33228500)
-- The IPP backend incorrectly sent the "job-pages-per-set" attribute to PDF
- printers (rdar://33250434)
-- Fixed the `cups.strings` file that is used on macOS (rdar://33287650)
-- CUPS now sends the `Date` HTTP header in IPP requests (rdar://33302034)
-- The `ippCopyAttribute` function did not copy out-of-band values correctly
- (rdar://33688003)
-- Fixed the localization fallback code on macOS (rdar://33583699)
-- The scheduler did not run with a high enough priority, causing problems on
- busy systems (rdar://33789342)
-- Added support for Japanese Kaku 1 envelope size (rdar://34774110)
-- The `ipptool` program's `-P` option did not work correctly.
-- The `ipptool` program did not compare URI scheme or hostname components
- correctly for the WITH-ALL-HOSTNAMES, WITH-ALL-SCHEMES, WITH-HOSTNAME, or
- WITH-SCHEME predicates.
-
-
-Changes in CUPS v2.2.4
-----------------------
-
-- The scheduler did not remove old job files (Issue #4987)
-- cupsEnumDests did not return early when all printers had been discovered
- (Issue #4989)
-- The CUPS build system now supports cross-compilation (Issue #4897)
-- Added a new CUPS Programming Manual to replace the aging API documentation.
-- Added the `cupsAddIntegerOption` and `cupsGetIntegerOption` functions
- (Issue #4992)
-- The `cupsGetDests` and `cupsCreateJob` functions now support Bonjour printers
- (Issue #4993)
-- Added a USB quirk rule for Lexmark E260dn printers (Issue #4994)
-- Fixed a potential buffer overflow in the `cupstestppd` utility (Issue #4996)
-- IPP Everywhere improvements (Issue #4998)
-- Fixed the "cancel all jobs" function in the web interface for several
- languages (Issue #4999)
-- Fixed issues with local queues (Issue #5003, Issue #5008, Issue #5009)
-- The `lpstat` command now supports a `-e` option to enumerate local printers
- (either previously added or on the network) that can be accessed
- (Issue #5005)
-- The `lp` and `lpr` commands now support printing to network printers that
- haven't yet been added (Issue #5006)
-- Fixed a typo in the mime.types file.
-- Fixed a bug in the Spanish web interface template (Issue #5016)
-- The `cupsEnumDests*` and `cupsGetDest*` functions now report the value of the
- "printer-is-temporary" Printer Status attribute (Issue #5028)
-- Added Chinese localization (Issue #5029)
-- The `cupsCheckDestSupported` function did not support `NULL` values
- (Issue #5031)
-- Fixed some issues in the RPM spec file (Issue #5032)
-- The `cupsConnectDest` function now supports the `CUPS_DEST_FLAGS_DEVICE` flag
- for explicitly connecting to the device (printer) associated with the
- destination.
-- The `SSLOptions` directive in "client.conf" and "cupsd.conf" now supports
- `DenyCBC` and `DenyTLS1.0` options (Issue #5037)
-
-
-Changes in CUPS v2.2.3
-----------------------
-
-- The IPP backend could get into an infinite loop for certain errors, causing a
- hung queue (<rdar://problem/28008717>)
-- The scheduler could pause responding to client requests in order to save state
- changes to disk (<rdar://problem/28690656>)
-- Added support for PPD finishing keywords (Issue #4960, Issue #4961,
- Issue #4962)
-- The IPP backend did not send a media-col attribute for just the source or type
- (Issue #4963)
-- IPP Everywhere print queues did not always support all print qualities
- supported by the printer (Issue #4953)
-- IPP Everywhere print queues did not always support all media types supported
- by the printer (Issue #4953)
-- The IPP Everywhere PPD generator did not return useful error messages
- (Issue #4954)
-- The IPP Everywhere finishings support did not work correctly with common UI or
- command-line options (Issue #4976)
-- Fixed an error handling issue for the network backends (Issue #4979)
-- The default cupsd.conf file did not work on systems compiled without Kerberos
- support (Issue #4947)
-- The "reprint job" option was not available for some canceled jobs
- (Issue #4915)
-- Updated the job listing in the web interface (Issue #4978)
-- Fixed some localization issues on macOS (<rdar://problem/27245567>)
-
-
-Changes in CUPS v2.2.2
-----------------------
-
-- Fixed some issues with the Zebra ZPL printer driver (Issue #4898)
-- Fixed some issues with IPP Everywhere printer support (Issue #4893,
- Issue #4909, Issue #4916, Issue #4921, Issue #4923, Issue #4932, Issue #4933,
- Issue #4938)
-- The rastertopwg filter could crash with certain input (Issue #4942)
-- Optimized connection usage in the IPP backend (<rdar://problem/29547323>)
-- The scheduler did not detect when an encrypted connection was closed by the
- client on Linux (Issue #4901)
-- The cups-lpd program did not catch all legacy usage of ISO-8859-1
- (Issue #4899)
-- Fixed builds on systems without a working poll() implementation (Issue #4905)
-- Added a USB quirk rule for the Kyocera Ecosys P6026cdn (Issue #4900)
-- The scheduler no longer creates log files on startup
- (<rdar://problem/28332470>)
-- The ippContainsString function now uses case-insensitive comparisons for
- mimeMediaType, name, and text values in conformance with RFC 2911.
-- The network backends now log the addresses that were found for a printer
- (<rdar://problem/29268474>)
-- Let's Encrypt certificates did not work when the hostname contained uppercase
- letters (Issue #4919)
-- Fixed reporting of printed pages in the web interface (Issue #4924)
-- Updated systemd config files (Issue #4935)
-- Updated documentation (PR #4896)
-- Updated localizations (PR #4894, PR #4895, PR #4904, PR #4908, Issue #4946)
-- Updated packaging files (Issue #4940)
-
-
-Changes in CUPS v2.2.1
-----------------------
-
-- Added "CreateSelfSignedCerts" directive for cups-files.conf to control whether
- the scheduler automatically creates its own self-signed X.509 certificates for
- TLS connections (Issue #4876)
-- http*Connect did not handle partial failures (Issue #4870)
-- Addressed some build warnings on Linux (Issue #4881)
-- cupsHashData did not use the correct hashing algorithm
- (<rdar://problem/28209220>)
-- Updated man pages (PR #4885)
-- Updated localizations (PR #4877, PR #4886)
-
-
-Changes in CUPS v2.2.0
-----------------------
-
-- Normalized the TLS certificate validation code and added additional error
- messages to aid troubleshooting.
-- The httpConnect functions did not work on Linux when cupsd was not running
- (Issue #4870)
-- The --no-remote-any option of cupsctl had no effect (Issue #4866)
-- http*Connect did not return early when all addresses failed (Issue #4870)
-
-
-Changes in CUPS v2.2rc1
------------------------
-
-- Updated the list of supported IPP Everywhere media types.
-- The IPP backend did not validate TLS credentials properly.
-- The printer-state-message attribute was not cleared after a print job with no
- errors (Issue #4851)
-- The CUPS-Add-Modify-Class and CUPS-Add-Modify-Printer operations did not
- always return an error for failed adds (Issue #4854)
-- PPD files with names longer than 127 bytes did not work (Issue #4860)
-- Updated localizations (Issue #4846, PR #4858)
-
-
-Changes in CUPS v2.2b2
-----------------------
-
-- Added Upstart support (PR #4825)
-- CUPS now supports Let's Encrypt certificates on Linux.
-
-
-Changes in CUPS v2.2b1
-----------------------
-
-- All CUPS commands now support POSIX options (Issue #4813)
-- The scheduler now restarts faster (Issue #4760)
-- Improved performance of web interface with large numbers of jobs (Issue #3819)
-- Encrypted printing can now be limited to only trusted printers and servers
- (<rdar://problem/25711658>)
-- The scheduler now advertises PWG Raster attributes for IPP Everywhere clients
- (Issue #4428)
-- The scheduler now logs informational messages for jobs at LogLevel "info"
- (Issue #4815)
-- The scheduler now uses the getgrouplist function when available (Issue #4611)
-- The IPP backend no longer enables compression by default except for certain
- raster formats that generally benefit from it (<rdar://problem/25166952>)
-- The scheduler did not handle out-of-disk situations gracefully (Issue #4742)
-- The LPD mini-daemon now detects invalid UTF-8 sequences in job, document, and
- user names (Issue #4748)
-- The IPP backend now continues on to the next job when the remote server/
- printer puts the job on hold (<rdar://problem/24858548>)
-- The scheduler did not cancel multi-document jobs immediately
- (<rdar://problem/24854834>)
-- The scheduler did not return non-shared printers to local clients unless they
- connected to the domain socket (<rdar://problem/24566996>)
-- The scheduler now reads the spool directory if one or more job cache entries
- point to deleted jobs (<rdar://problem/24048846>)
-- Added support for disc media sizes (<rdar://problem/20219536>)
-- The httpAddrConnect and httpConnect* APIs now try connecting to multiple
- addresses in parallel (<rdar://problem/20643153>)
-- The cupsd domain socket is no longer world-accessible on macOS
- (<rdar://problem/7542560>)
-- Interface scripts are no longer supported for security reasons
- (<rdar://problem/23135640>)
-- Added a new cupsHashData API and support for hashed job passwords
- (<rdar://problem/20221502>)
-- Localization fixes (<rdar://problem/25292403>, <rdar://problem/25461517>,
- Issue #4041, Issue #4796)
-- Documentation changes (Issue #4624, Issue #4781)
-- Packaging fixes (PR #4832)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c2426277a..2ea63ee96 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,4 +1,5 @@
-# Contributing to CUPS
+Contributing to CUPS
+====================
CUPS is developed by Apple Inc. and distributed as open source software under a
combination of GNU GPL2 and GNU LGPL2 licenses with exceptions to allow
@@ -15,7 +16,8 @@ should be provided as-is or in an archive. Github pull requests can also be
used to submit changes.
-## HOW TO CONTACT THE DEVELOPERS
+How To Contact The Developers
+-----------------------------
The CUPS mailing lists are the primary means of asking questions and informally
discussing issues and feature requests with the CUPS developers and other
@@ -24,7 +26,8 @@ CUPS usage questions and new software announcements while the "cups-devel"
mailing list provides a forum for CUPS developers and monitoring new bugs.
-## INTERFACES
+Interfaces
+----------
CUPS interfaces, including the C APIs and command-line arguments, environment
variables, configuration files, and output format, are stable across patch
@@ -47,7 +50,8 @@ published C API to access data stored in a file to avoid compatibility problems
in the future.
-## BUILD SYSTEM
+Build System
+------------
The CUPS build system uses GNU autoconf to tailor the library to the local
operating system. Project files for the current release of Microsoft Visual
@@ -62,7 +66,8 @@ specific extensions, and GNU libtool is not portable or reliable enough for
CUPS.
-## VERSION NUMBERING
+Version Numbering
+-----------------
CUPS uses a three-part version number separated by periods to represent the
major, minor, and patch release numbers. Major release numbers indicate large
@@ -113,14 +118,15 @@ minor version numbers followed by the release candidate number:
2.2rc1
-## CODING GUIDELINES
+Coding Guidelines
+-----------------
Contributed source code must follow the guidelines below. While the examples
are for C and C++ source files, source code for other languages should conform
to the same guidelines as allowed by the language.
-### SOURCE FILES
+### Source Files
All source files names must be 16 characters or less in length to ensure
compatibility with older UNIX filesystems. Source files containing functions
@@ -154,7 +160,7 @@ the following additional comment appears after the contact information:
* This file is subject to the Apple OS-Developed Software exception.
-### HEADER FILES
+### Header Files
All public header files must include the "versioning.h" header file, or a header
that does so. Function declarations are then "decorated" with the correct
@@ -170,7 +176,7 @@ Typically a private API header file will include the corresponding public API
header file.
-### COMMENTS
+### Comments
All source code utilizes block comments within functions to describe the
operations being performed by a group of statements; avoid putting a comment
@@ -201,7 +207,7 @@ comments ("// comment"):
} while (i == (sizeof(array) / sizeof(array[0])));
-### INDENTATION
+### Indentation
All code blocks enclosed by brackets begin with the opening brace on a new
line. The code then follows starting on a new line after the brace and is
@@ -239,20 +245,20 @@ spaces after each "case" and "default" case:
}
-### SPACING
+### Spacing
A space follows each reserved word such as "if", "while", etc. Spaces are not
inserted between a function name and the arguments in parenthesis.
-### RETURN VALUES
+### Return Values
Parenthesis surround values returned from a function:
return (CUPS_STATE_IDLE);
-### FUNCTIONS
+### Functions
Functions with a global scope have a lowercase prefix followed by capitalized
words, e.g., "cupsDoThis", "cupsDoThat", "cupsDoSomethingElse", etc. Private
@@ -294,7 +300,7 @@ text in the function description comment:
function name with an underscore)
-### VARIABLES
+### Variables
Variables with a global scope are capitalized, e.g., "ThisVariable",
"ThatVariable", "ThisStateVariable", etc. Globals in CUPS libraries are either
@@ -314,7 +320,7 @@ comment block describing the variable:
static int that_variable; /* The current state of that */
-### TYPES
+### Types
All type names are lowercase with underscores between words and "\_t" appended
to the end of the name, e.g., "cups\_this\_type\_t", "cups\_that\_type\_t", etc.
@@ -327,7 +333,7 @@ Each type has a comment block immediately after the typedef:
typedef int cups_this_type_t; /* This type is for CUPS foobar options. */
-### STRUCTURES
+### Structures
All structure names are lowercase with underscores between words and "\_s"
appended to the end of the name, e.g., "cups\_this\_s", "cups\_that\_s", etc.
@@ -345,7 +351,7 @@ is documented similar to the variable naming policy above:
};
-### CONSTANTS
+### Constants
All constant names are uppercase with underscores between words, e.g.,
"CUPS\_THIS\_CONSTANT", "CUPS\_THAT\_CONSTANT", etc. Constants begin with an
@@ -365,14 +371,14 @@ Comment blocks immediately follow each constant:
} cups_tray_t;
-## MAKEFILE GUIDELINES
+## Makefile Guidelines
The following is a guide to the makefile-based build system used by CUPS.
These standards have been developed over the years to allow CUPS to be built on
as many systems and environments as possible.
-### GENERAL ORGANIZATION
+### General Organization
The CUPS source code is organized functionally into a top-level makefile,
include file, and subdirectories each with their own makefile and dependencies
@@ -380,7 +386,7 @@ files. The ".in" files are template files for the autoconf software and are
used to generate a static version of the corresponding file.
-### MAKEFILE DOCUMENTATION
+### Makefile Documentation
Each makefile starts with the standard CUPS header containing the description
of the file, and CUPS copyright and license notice:
@@ -388,7 +394,7 @@ of the file, and CUPS copyright and license notice:
#
# Makefile for ...
#
- # Copyright 2016 by Apple Inc.
+ # Copyright 2017 by Apple Inc.
#
# These coded instructions, statements, and computer programs are the
# property of Apple Inc. and are protected by Federal copyright
@@ -398,7 +404,7 @@ of the file, and CUPS copyright and license notice:
#
-### PORTABLE MAKEFILE CONSTRUCTION
+### Portable Makefile Construction
CUPS uses a common subset of make program syntax to ensure that the software
can be compiled "out of the box" on as many systems as possible. The following
@@ -469,91 +475,91 @@ is a list of assumptions we follow when constructing makefiles:
- Shell; we assume a POSIX-compatible shell is present on the build system.
-### STANDARD VARIABLES
+### Standard Variables
The following variables are defined in the "Makedefs" file generated by the
autoconf software:
-- ALL_CFLAGS; the combined C compiler options,
-- ALL_CXXFLAGS; the combined C++ compiler options,
-- AMANDIR; the administrative man page installation directory (section 8/1m
+- `ALL_CFLAGS`; the combined C compiler options,
+- `ALL_CXXFLAGS`; the combined C++ compiler options,
+- `AMANDIR`; the administrative man page installation directory (section 8/1m
depending on the platform),
-- AR; the library archiver command,
-- ARFLAGS; options for the library archiver command,
-- AWK; the local awk command,
-- BINDIR; the binary installation directory,
-- BUILDROOT; optional installation prefix (defaults to DSTROOT),
-- CC; the C compiler command,
-- CFLAGS; options for the C compiler command,
-- CHMOD; the chmod command,
-- CXX; the C++ compiler command,
-- CXXFLAGS; options for the C++ compiler command,
-- DATADIR; the data file installation directory,
-- DSO; the C shared library building command,
-- DSOXX; the C++ shared library building command,
-- DSOFLAGS; options for the shared library building command,
-- INCLUDEDIR; the public header file installation directory,
-- INSTALL; the install command,
-- INSTALL_BIN; the program installation command,
-- INSTALL_COMPDATA; the compressed data file installation command,
-- INSTALL_CONFIG; the configuration file installation command,
-- INSTALL_DATA; the data file installation command,
-- INSTALL_DIR; the directory installation command,
-- INSTALL_LIB; the library installation command,
-- INSTALL_MAN; the documentation installation command,
-- INSTALL_SCRIPT; the shell script installation command,
-- LD; the linker command,
-- LDFLAGS; options for the linker,
-- LIBDIR; the library installation directory,
-- LIBS; libraries for all programs,
-- LN; the ln command,
-- MAN1EXT; extension for man pages in section 1,
-- MAN3EXT; extension for man pages in section 3,
-- MAN5EXT; extension for man pages in section 5,
-- MAN7EXT; extension for man pages in section 7,
-- MAN8DIR; subdirectory for man pages in section 8,
-- MAN8EXT; extension for man pages in section 8,
-- MANDIR; the man page installation directory,
-- OPTIM; common compiler optimization options,
-- PRIVATEINCLUDE; the private header file installation directory,
-- RM; the rm command,
-- SHELL; the sh (POSIX shell) command,
-- STRIP; the strip command,
-- srcdir; the source directory.
-
-
-### STANDARD TARGETS
+- `AR`; the library archiver command,
+- `ARFLAGS`; options for the library archiver command,
+- `AWK`; the local awk command,
+- `BINDIR`; the binary installation directory,
+- `BUILDROOT`; optional installation prefix (defaults to DSTROOT),
+- `CC`; the C compiler command,
+- `CFLAGS`; options for the C compiler command,
+- `CHMOD`; the chmod command,
+- `CXX`; the C++ compiler command,
+- `CXXFLAGS`; options for the C++ compiler command,
+- `DATADIR`; the data file installation directory,
+- `DSO`; the C shared library building command,
+- `DSOXX`; the C++ shared library building command,
+- `DSOFLAGS`; options for the shared library building command,
+- `INCLUDEDIR`; the public header file installation directory,
+- `INSTALL`; the install command,
+- `INSTALL_BIN`; the program installation command,
+- `INSTALL_COMPDATA`; the compressed data file installation command,
+- `INSTALL_CONFIG`; the configuration file installation command,
+- `INSTALL_DATA`; the data file installation command,
+- `INSTALL_DIR`; the directory installation command,
+- `INSTALL_LIB`; the library installation command,
+- `INSTALL_MAN`; the documentation installation command,
+- `INSTALL_SCRIPT`; the shell script installation command,
+- `LD`; the linker command,
+- `LDFLAGS`; options for the linker,
+- `LIBDIR`; the library installation directory,
+- `LIBS`; libraries for all programs,
+- `LN`; the ln command,
+- `MAN1EXT`; extension for man pages in section 1,
+- `MAN3EXT`; extension for man pages in section 3,
+- `MAN5EXT`; extension for man pages in section 5,
+- `MAN7EXT`; extension for man pages in section 7,
+- `MAN8DIR`; subdirectory for man pages in section 8,
+- `MAN8EXT`; extension for man pages in section 8,
+- `MANDIR`; the man page installation directory,
+- `OPTIM`; common compiler optimization options,
+- `PRIVATEINCLUDE`; the private header file installation directory,
+- `RM`; the rm command,
+- `SHELL`; the sh (POSIX shell) command,
+- `STRIP`; the strip command,
+- `srcdir`; the source directory.
+
+
+### Standard Targets
The following standard targets are defined in each makefile:
-- all; creates all target programs, libraries, and documentation files,
-- clean; removes all target programs libraries, documentation files, and object
+- `all`; creates all target programs, libraries, and documentation files,
+- `clean`; removes all target programs libraries, documentation files, and object
files,
-- depend; generates automatic dependencies for any C or C++ source files (also
+- `depend`; generates automatic dependencies for any C or C++ source files (also
see "DEPENDENCIES"),
-- distclean; removes autoconf-generated files in addition to those removed by
+- `distclean`; removes autoconf-generated files in addition to those removed by
the "clean" target,
-- install; installs all distribution files in their corresponding locations
+- `install`; installs all distribution files in their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT"),
-- install-data; installs all data files in their corresponding locations (also
+- `install-data`; installs all data files in their corresponding locations (also
see "INSTALL/UNINSTALL SUPPORT"),
-- install-exec; installs all executable files in their corresponding locations
+- `install-exec`; installs all executable files in their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT"),
-- install-headers; installs all include files in their corresponding locations
+- `install-headers`; installs all include files in their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT"),
-- install-libs; installs all library files in their corresponding locations
+- `install-libs`; installs all library files in their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT"), and
-- uninstall; removes all distribution files from their corresponding locations
+- `uninstall`; removes all distribution files from their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT").
-### OBJECT FILES
+### Object Files
Object files (the result of compiling a C or C++ source file) have the
extension ".o".
-### PROGRAMS
+### Programs
Program files are the result of linking object files and libraries together to
form an executable file. A typical program target looks like:
@@ -562,7 +568,7 @@ form an executable file. A typical program target looks like:
TAB echo Linking $@...
TAB $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
-### STATIC LIBRARIES
+### Static Libraries
Static libraries have a prefix of "lib" and the extension ".a". A typical
static library target looks like:
@@ -573,7 +579,7 @@ static library target looks like:
TAB $(AR) $(ARFLAGS) $@ $(OBJECTS)
TAB $(RANLIB) $@
-### SHARED LIBRARIES
+### Shared Libraries
Shared libraries have a prefix of "lib" and the extension ".dylib" or ".so"
depending on the operating system. A typical shared library is composed of
@@ -598,7 +604,7 @@ several targets that look like:
TAB $(LN) libname.$(DSOVERSION).dylib libname.$(DSOMAJOR).dylib
TAB $(LN) libname.$(DSOVERSION).dylib libname.dylib
-### DEPENDENCIES
+### Dependencies
Static dependencies are expressed in each makefile following the target, for
example:
@@ -617,19 +623,18 @@ We regenerate the automatic dependencies on an macOS system and express any
non-macOS dependencies statically in the makefile.
-### INSTALL/UNINSTALL SUPPORT
+### Install/Uninstall Support
All makefiles contains install and uninstall rules which install or remove the
corresponding software. These rules must use the $(BUILDROOT) variable as a
prefix to any installation directory so that CUPS can be installed in a
temporary location for packaging by programs like rpmbuild.
-The $(INSTALL\_BIN), $(INSTALL\_COMPDATA), $(INSTALL\_CONFIG), $(INSTALL\_DATA),
-$(INSTALL\_DIR), $(INSTALL\_LIB), $(INSTALL\_MAN), and $(INSTALL\_SCRIPT) variables
+The `INSTALL_BIN`, `INSTALL_COMPDATA`, `INSTALL_CONFIG`, `INSTALL_DATA`,
+`INSTALL_DIR`, `INSTALL_LIB`, `INSTALL_MAN`, and `INSTALL_SCRIPT` variables
must be used when installing files so that the proper ownership and permissions
are set on the installed files.
-The $(RANLIB) command must be run on any static libraries after installation
+The `$(RANLIB)` command must be run on any static libraries after installation
since the symbol table is invalidated when the library is copied on some
platforms.
-
diff --git a/INSTALL.md b/INSTALL.md
index 2c1c64181..4cf755b8c 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,4 +1,4 @@
-INSTALL - CUPS v2.2.6 - 2017-11-01
+INSTALL - CUPS v2.3b1 - 2017-11-01
==================================
This file describes how to compile and install CUPS from source code. For more
diff --git a/README.md b/README.md
index 17ac7e7db..290bd0ca3 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-README - CUPS v2.2.6 - 2017-11-01
+README - CUPS v2.3b1 - 2017-11-01
=================================
Looking for compile instructions? Read the file `INSTALL.md` instead...
diff --git a/configure b/configure
index c8b573f2e..a18e090b5 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,13 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for CUPS 2.2.6.
+# Generated by GNU Autoconf 2.68 for CUPS 2.3b1.
#
# Report bugs to <https://github.com/apple/cups/issues>.
#
#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -134,31 +136,6 @@ export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -192,8 +169,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
+test x\$exitcode = x0 || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -238,25 +214,21 @@ IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
@@ -359,14 +331,6 @@ $as_echo X"$as_dir" |
} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -488,10 +452,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -526,16 +486,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
+ # In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -547,8 +507,28 @@ else
as_mkdir_p=false
fi
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -580,8 +560,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='CUPS'
PACKAGE_TARNAME='cups'
-PACKAGE_VERSION='2.2.6'
-PACKAGE_STRING='CUPS 2.2.6'
+PACKAGE_VERSION='2.3b1'
+PACKAGE_STRING='CUPS 2.3b1'
PACKAGE_BUGREPORT='https://github.com/apple/cups/issues'
PACKAGE_URL='https://www.cups.org/'
@@ -1397,6 +1377,8 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
+ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1482,7 +1464,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures CUPS 2.2.6 to adapt to many kinds of systems.
+\`configure' configures CUPS 2.3b1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1547,7 +1529,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of CUPS 2.2.6:";;
+ short | recursive ) echo "Configuration of CUPS 2.3b1:";;
esac
cat <<\_ACEOF
@@ -1728,10 +1710,10 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-CUPS configure 2.2.6
-generated by GNU Autoconf 2.69
+CUPS configure 2.3b1
+generated by GNU Autoconf 2.68
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1882,7 +1864,7 @@ $as_echo "$ac_try_echo"; } >&5
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
+ $as_test_x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -2192,8 +2174,8 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by CUPS $as_me 2.2.6, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+It was created by CUPS $as_me 2.3b1, which was
+generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2667,7 +2649,7 @@ fi
ac_config_headers="$ac_config_headers config.h"
-CUPS_VERSION="2.2.6"
+CUPS_VERSION="2.3b1"
CUPS_REVISION=""
CUPS_BUILD="cups-$CUPS_VERSION"
@@ -2713,7 +2695,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2761,7 +2743,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2805,7 +2787,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3249,7 +3231,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-struct stat;
+#include <sys/types.h>
+#include <sys/stat.h>
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3499,7 +3482,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3543,7 +3526,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3745,7 +3728,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3785,7 +3768,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3838,7 +3821,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3878,7 +3861,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3918,7 +3901,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3958,7 +3941,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_LD="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3998,7 +3981,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4038,7 +4021,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4078,7 +4061,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4118,7 +4101,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4158,7 +4141,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_RMDIR="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4198,7 +4181,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4238,7 +4221,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_XDGOPEN="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4314,7 +4297,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4357,7 +4340,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4767,7 +4750,7 @@ do
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -4833,7 +4816,7 @@ do
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -7851,7 +7834,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_KRB5CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7894,7 +7877,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_ac_pt_KRB5CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8446,7 +8429,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_LIBGNUTLSCONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8489,7 +8472,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_ac_pt_LIBGNUTLSCONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -9048,8 +9031,6 @@ _ACEOF
esac
rm -rf conftest*
fi
-
-
fi
@@ -10091,7 +10072,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_JAVA="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10156,7 +10137,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10221,7 +10202,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_PHPCGI="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10262,7 +10243,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_PHP="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10332,7 +10313,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -10802,16 +10783,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
+ # In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -10871,16 +10852,28 @@ else
as_mkdir_p=false
fi
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -10901,8 +10894,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by CUPS $as_me 2.2.6, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+This file was extended by CUPS $as_me 2.3b1, which was
+generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -10964,11 +10957,11 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-CUPS config.status 2.2.6
-configured by $0, generated by GNU Autoconf 2.69,
+CUPS config.status 2.3b1
+configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -11057,7 +11050,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
diff --git a/configure.ac b/configure.ac
index ac78c48ad..352c869a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@ dnl We need at least autoconf 2.60...
AC_PREREQ(2.60)
dnl Package name and version...
-AC_INIT([CUPS], [2.2.6], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
+AC_INIT([CUPS], [2.3b1], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
sinclude(config-scripts/cups-opsys.m4)
sinclude(config-scripts/cups-common.m4)
diff --git a/cups/cups.h b/cups/cups.h
index 8f5c818f5..a4eae86d9 100644
--- a/cups/cups.h
+++ b/cups/cups.h
@@ -47,10 +47,10 @@ extern "C" {
* Constants...
*/
-# define CUPS_VERSION 2.0206
+# define CUPS_VERSION 2.0300
# define CUPS_VERSION_MAJOR 2
-# define CUPS_VERSION_MINOR 2
-# define CUPS_VERSION_PATCH 6
+# define CUPS_VERSION_MINOR 3
+# define CUPS_VERSION_PATCH 0
# define CUPS_BC_FD 3
/* Back-channel file descriptor for
diff --git a/vcnet/config.h b/vcnet/config.h
index 96ec5fafa..563168690 100644
--- a/vcnet/config.h
+++ b/vcnet/config.h
@@ -94,8 +94,8 @@ typedef unsigned long useconds_t;
* Version of software...
*/
-#define CUPS_SVERSION "CUPS v2.2.6"
-#define CUPS_MINIMAL "CUPS/2.2.6"
+#define CUPS_SVERSION "CUPS v2.3.0"
+#define CUPS_MINIMAL "CUPS/2.3.0"
/*
diff --git a/xcode/config.h b/xcode/config.h
index 76d521c2c..760d723a8 100644
--- a/xcode/config.h
+++ b/xcode/config.h
@@ -22,8 +22,8 @@
* Version of software...
*/
-#define CUPS_SVERSION "CUPS v2.2.6"
-#define CUPS_MINIMAL "CUPS/2.2.6"
+#define CUPS_SVERSION "CUPS v2.3.0"
+#define CUPS_MINIMAL "CUPS/2.3.0"
/*