]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Start CUPS 2.3.x development.
authorMichael R Sweet <michaelrsweet@gmail.com>
Wed, 1 Nov 2017 15:23:38 +0000 (11:23 -0400)
committerMichael R Sweet <michaelrsweet@gmail.com>
Wed, 1 Nov 2017 15:23:38 +0000 (11:23 -0400)
19 files changed:
CHANGES-1.0.txt [deleted file]
CHANGES-1.1.txt [deleted file]
CHANGES-1.2.txt [deleted file]
CHANGES-1.3.txt [deleted file]
CHANGES-1.4.txt [deleted file]
CHANGES-1.5.txt [deleted file]
CHANGES-1.6.txt [deleted file]
CHANGES-1.7.txt [deleted file]
CHANGES-2.0.txt [deleted file]
CHANGES-2.1.txt [deleted file]
CHANGES.md
CONTRIBUTING.md
INSTALL.md
README.md
configure
configure.ac
cups/cups.h
vcnet/config.h
xcode/config.h

diff --git a/CHANGES-1.0.txt b/CHANGES-1.0.txt
deleted file mode 100644 (file)
index 296d89f..0000000
+++ /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 (file)
index c641e79..0000000
+++ /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 (file)
index 7b0b1f2..0000000
+++ /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 (file)
index 9af534f..0000000
+++ /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 (file)
index 09326b2..0000000
+++ /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 (file)
index 39edb42..0000000
+++ /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 (file)
index 23e1422..0000000
+++ /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 (file)
index d3438ff..0000000
+++ /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 (file)
index dc46f03..0000000
+++ /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 (file)
index 7a6b548..0000000
+++ /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)
-
index 9e83177d246f6499c894beaf87d0b48f47e772d0..6a1a2bd79a078cabd80c6f2e0996de0cef38604d 100644 (file)
@@ -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)
index c2426277a12f192ab65c1599805aed92a949fee1..2ea63ee96c539ac6b8802fd2b0b60f6efc4334de 100644 (file)
@@ -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.
-
index 2c1c64181a5b6b261a2a678e8d4c415593a9de3a..4cf755b8c8c1f98bcd567624485927cbe316b999 100644 (file)
@@ -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
index 17ac7e7db376b65aef3998e1adc2acbff9a66de8..290bd0ca340d6486e5952f22e1a83e9cf0a1ac9d 100644 (file)
--- 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...
index c8b573f2eed5ab9f194608cc7eb2be72269e53e1..a18e090b596d1c4ab3b3313fd1d713b68beb56e6 100755 (executable)
--- 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'
index ac78c48ad6d1ecf8a83b4c5a65e9ded16119d31e..352c869a6ba22fbbc19a6b4a5f193deee5b1d802 100644 (file)
@@ -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)
index 8f5c818f563aa3a0f621db16b92c235b47ed839f..a4eae86d9e2792cb3c0e33dddb103433d4cf6eab 100644 (file)
@@ -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
index 96ec5fafa7ecfd0f489381e8af52af0f6ec25a6f..563168690e700977674b43635f9a894f26d7ba7a 100644 (file)
@@ -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"
 
 
 /*
index 76d521c2caff8a33b92541ac4ee36661da95c85c..760d723a832dd31e5d74b099a323ea85db78be9b 100644 (file)
@@ -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"
 
 
 /*