dwww Home | Show directory contents | Find package

NEWS - OpenPrinting CUPS Filters v1.28.15 - 2022-04-11
------------------------------------------------------

CHANGES IN V1.28.15

        - pdftops: In pdftops identify old LaserJets more precisely
          for working around PostScript interpreter bugs, older
          printers need Poppler, newer models need Ghostscript
          (Ubuntu bug #1967816).

CHANGES IN V1.28.14

        - pdftopdf: Correct the output when suppressing auto-rotation
          (option "nopdfAutoRotate"). Depending on the situation pages
          got cropped in the wrong orientation or de-centered.
        - pdftopdf: Correct the output when the
          "orientation-requested" or the "landscape" option is
          supplied. Output could be de-centered (Issue #456),
          portrait-oriented pages be wrongly cropped and division of
          the output page into cells for N-up done in the wrong
          orientation.
        - rastertopdf: In PCLm output mode the filter failed to
          generate PCLm if the printer has no
          "pclm-source-resolution-default" IPP attribute.

CHANGES IN V1.28.13

        - pdftopdf: Fix N-up printing when paper is taken
          long-edge-first by the printer.
        - pdftopdf: Fix cropping ("print-scaling=none" and
          "print-scaling=fill") when paper is taken long-edge-first by
          the printer (Issue #454).
        - pdftops: Use Poppler for all Apple LaserWriter models (Issue
          #452).

CHANGES IN V1.28.12

        - imagetoraster, imagetopdf: Fixed comparison of the image
          size with the page size for print-scaling=auto. The image
          size in pixels was compared with the page size in PostScript
          points (1/72 inch).
        - imagetoraster, imagetopdf: Fixed the "print-scaling=none"
          (crop-to-fit) mode, also use crop-to-fit always when
          requested, do not fall back to fit-to-page when the image
          size differs significantly from the page size (Issue #362).
        - libcupsfilters: Changed the default PPI resolution for
          images as input files from 128 to 200 (Pull request #446).
        - implicitclass: Do not check availability of "gs" and
          "pdftops" executables, instead, check by the presence of
          "gstoraster" and "pdftoraster" filters whether we have
          configured cups-filters for Ghostscript and/or Poppler use.
        - libcupsfilters: In the PPD generator for the driverless
          utility and cups-browsed add "*cupsFilter2: ..." lines for
          all supported driverless data formats (PDF, Apple/PWG
          Raster, PCLm), and add lines for legacy data formats (PCL,
          PostScript) only if no driverless formats available.
        - libcupsfilters: Always use encryption for ipps. RFC7472
          requires that 'ipps' must be used over HTTPS, but the
          driverless utility does not enforce encryption (Pull request
          #433).
        - serial: Add a 10-msec sleep and at the end add a tcdrain().
          For some unknown reason, every printing file need sleep a
          little time to make sure the serial printer receive data is
          right (Pull request #431).
        - libcupsfilters: Fix resolver functions for DNS-SD-based
          URIs, to make resolve_uri() also work when DEVICE_URI env
          variable is set and to make ippfind_based_uri_converter()
          not re-direct stdin.
        - pdftopdf: Set default for print-scaling to avoid "should
          never happem" log messages and undefined behavior.
        - pdftopdf: Fix orientation-requested = 0. Consider
          this as "automatic selection and not as error.
        - pdftopdf: Fixed all combinations of print-scaling and
          number-up for printers with asymmetric margins (top !=
          bottom or left != right) and for input files containing
          pages with different sizes and/or orientations. Fixes
          backported from 2.x branch.
        - pdftopdf: Add 2% tolerance for input size larger than output
          page when "print-scaling=auto" or "print-scaling=auto-fit"
          is used and too large input pages should be scaled, fitting
          documents not. This prevents a random-looking behavior if
          input and output page size seem to be equal, but in reality
          there are slight differences between size dimensions.

CHANGES IN V1.28.11

        - libcupsfilters: Let PPD generator take default ColorModel
          from printer (CUPS issue #277).
        - Braille: In vectortopdf check inkscape version to call
          inkscape with the correct command line (Issue #315, Pull
          request #443).
        - Build system: Make missing DejaVuSans.ttf non-fatal in
          ./configure as the font is only needed for test programs,
          not for actual use of cups-filters (Issue #411).
        - libcupsfilters: In imagetoraster() fixed crash with SGray
          (Issue #435).
        - cups-browsed: Naming of local queues is matched to CUPS'
          current naming of temporary queues (no leading or trailing
          underscores), to avoid duplicates in print dialogs which
          support CUPS' temporary queues.
        - libcupsfilters: Make cupsRasterParseIPPOptions() work correctly
          with PPDs (Issue #436).
        - libcupsfilters: Let colord_get_profile_for_device_id() not
          return empty file name, to avoid error messages in CUPS
          error_log.
        - foomatic-rip: Debug message was wrongly sent to stdout and
          not to log (Issue #422).

CHANGES IN V1.28.10

        - Sample PPDs: Add borderless page size definitions to Generic
          PDF Printer, HP Color LaserJet CM3530 MFP PDF, and Ricoh PDF
          Printer PPD files.
        - Sample PPDs: From the PDF PPD files removed the unneeded
          "*cupsFilters2: ..." line. For CUPS it does not make any
          difference.
        - libcupsfilters: Fixed pdftopdf filter to correctly support
          page ranges without upper limit, like "10-" (Pull request
          #399).
        - libcupsfilters: Use wildcard tag (IPP_TAG_ZERO) search for
          "media-type" and "media-type-supported" in the PPD
          generator (Pull request #398).
        - implicitclass, parallel: Added missing newlines at error
          messages.
        - libfontembed: Removed unneeded fontembed/main.c and ttfread
          executable. Eliminates the dependency on DejaVuSans.ttf
          (Issue #386).
        - gstoraster: Refactor the filter a little to clarify handling
          of page counts and set job-impressions for TotalPageCount in
          PWG-Raster header (Pull request #394).
        - cups-browsed: Make NotifLeaseDuration configurable and renew
          after half the lease duration not 60 sec before end. The
          early renewal improves reliability on busy systems a
          lot. For easier development and debugging short durations
          from 300 sec on can get selected (Pull request #378).

CHANGES IN V1.28.9

        - libcupsfilters: Silenced compiler warnings
        - libcupsfilters: Removed duplicate code in the
          apply_filters() function.
        - driverless: If there are no driverless IPP printers
          available let "driverless" terminate with exit code 0 and
          not 1, to follow CUPS' standard of backends in discovery
          mode terminating with 0 if there are no appropriate printers
          found (Issue #375).
        - gstoraster, foomatic-rip: Fixed Ghostscript command line for
          counting pages as it took too long on PDFs from evince when
          printing DjVu files (Issue #354, Pull request #371, Ubuntu
          bug #1920730).
        - cups-browsed: Renamed ldap_connect() due to conflict in
          new openldap (Issue #367, Pull request #370).
        - pdftoraster: Free color data after processing of each page
          (Pull request #363).
        - cups-browsed: Always save "...-default" option entries
          from printers.conf, regardless of presence or absense
          of PPD file (Pull request #359).
        - cups-browsed: Start after network-online.target (Pull
          request #360).
        - texttopdf: Set default margins when no PPD file is used
          (Pull request #356).

CHANGES IN V1.28.8

        - libcupsfilters: Made check whether the driverless PPD to
          generate should be a fax out PPD more reliable (Issue #343).
        - foomatic-rip: Options in the 5th command line argument of
          the CUPS filter command line are separated only by white
          space and not by comma, also make sure that an option "none"
          is not considered a custom page size (Issue #348).
        - implicitclass: Raise timeout for cups-browsed's answer from
          20s to 60s (Pull request #346).
        - libcupsfilters: In the PPD generator really give priority to
          Apple Raster against PDF (Issue #331).

CHANGES IN V1.28.7

        - driverless: Removed the support quality check from Pull
          request #235 as it takes significant time for each printer
          being listed, making cups-driverd (`lpinfo -m`) timing out
          when there are many printers (OpenPrinting CUPS issue #65).
        - libcupsfilters: In the PPD generator give priority to Apple
          Raster against PDF (Issue #331).
        - libcupsfilters: Added NULL check when removing ".Borderless"
          suffixes from page size names (Issue #314, Pull request
          #328).
        - libcupsfilters: In the cupsRasterParseIPPOptions() map the
          color spaces the same way as in the PPD generator (Issue
          #326, Pull request #327).     
        - libcupsfilters: Fixed addition of grayscale mode in
          generated PPD files, to avoid duplicate entries
          (OpenPrinting CUPS issue #59).

CHANGES IN V1.28.6

        - libcupsfilters: In generated PPDs add a grayscale mode if
          there are only color printing modes (from OpenPrinting
          CUPS).
        - libcupsfilters: In generated PPDs add an "OutputBin" option
          also if it has only one choice (OpenPrinting CUPS pull
          request #18).
        - libcupsfilters: Generated PPDs could have an "Unknown"
          default InputSlot (OpenPrinting CUPS issue #44).
        - cups-browsed: Removed unneeded IPP attribute additions
          preventing the created local queues from preserving a
          location or description the user assigns to them (Issue
          #323).
        - cups-browsed: Removed all calls of the resolve_uri() function
          of libcupsfilters, as these are not actually needed and in case
          the supplied DNS-SD-based URI is not resolvable, the function
          gets stuck for ~5 seconds.
        - cups-browsed: Fixed several memory leaks, mainly from the
          code to merge printer IPP attributes for clusters (Pull
          request #322).
        - cups-browsed: Silenced compiler warning.
        - foomatic-rip: Fix infinite loop and input from file on raw
          printing (Pull request #318).
        - foomatic-rip: Remove temporary file created during pdf-to-ps
          conversion (Pull request #313).

CHANGES IN V1.28.5

        - cups-browsed: UUID from IPP response was used after its
          pointer was freed by ippDelete() (Pull request #311).

CHANGES IN V1.28.4

        - driverless: Avoid duplicate PPD list entries from the same
          device via UUID
        - driverless: Reduce ippfind calls by "driverless" and
          "driverless-fax"called by CUPS. Let "driverless list" list
          both print and fax PPDs and "driverless-fax list" do
          nothing.
        - driverless: Avoid duplicate listings in printer discovery,
          by "driverless-fax" not listing any URI as "driverless"
          lists them all already.
        - driverless: Vastly improve performance by doing only one
          ippfind call instead of two (IPP, IPPS) as ippfind accepts
          more than one reg type on the command line.
        - Sample PPDs: Corrected manufacturer name in
          Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd.

CHANGES IN V1.28.3

        - libcupsfilters, cups-browsed: Fixed inconsistency between
          resolvers for DNS-SD-based URIs, resolve_uri() and
          ippfind_based_uri_converter(). Now both return a freeable
          string.
        - libcupsfilters: Fix uninitialized buffer and parsing ippfind
          output in ippfind_based_uri_converter() function (Issue
          #308, Pull request #309).

CHANGES IN V1.28.2

        - driverless: Free allocated memory, use MAX_OUTPUT_LEN (Pull
          request #304).
        - driverless: Make the two ippfind tasks(for IPP
          and IPPS) run in parallel (Pull request #302, #305, #306).
        - braille: Support new liblouis tables not containing a
          display name (Pull request #303)
        - Build system: Let ./configure not error out when there is
          more than one DejaVuSans.ttf test font candidate (Issue
          #300).
        - cups-browsed: Crash when a remote printer set as default
          gets removed, due to missing variable in printf() call
          (Issue #299).
        - libcupsfilters: Removed all signal handling and global
          variables from get_printer_attributes() and
          ippfind_based_uri_converter().  This is overkill for these
          quick operations and causes problems when shutting down
          cups-browsed (Issue #298).

CHANGES IN V1.28.1

        - COPYING: Fixed several typos
        - libcupsfilters: Fixed typo in log message of
          get_printer_attributes functions.
        - cups-browsed: Fixed typos in configuration file and man page
        - libcupsfilters: Let the PPD generator not suffix page size
          names with ".Borderless" if all page sizes would get this
          suffix, for example for printers which generally print
          borderless.
        - libcupsfilters: Added "faxPrefix" option for generated IPP
          Fax Out PPDs, so that this option also appears in print
          dialogs.
        - driverless: List addresses for local services correctly when
          using "--std-ipp-uris" (with "localhost" hostname).
        - driverless: Make calls of the ippfind utility somewhat faster,
          setting the timeout of ippfind to automatic.
        - libcupsfilters: Resolve DNS-SD-based URIs for local services
          correctly (using hostname "localhost").
        - libcupsfilters: In get_printer_attributes() functions do not
          try to convert URIs which are not DNS-SD-based (Issue #294).
        - libcupsfilters: In get_printer_attributes() functions also
          support URIs with "dnssd://..." scheme.
        - libcupsfilters: Moved signal handling back into main
          function of the get_printer_attributes() variants, it got
          moved out accidentally.
        - driverless: For generating a PPD, independent whether via
          "driverless URI" or "driverless cat URI", always allow CUPS
          driver URIs (prefixed with "driverless: " or
          "driverless-fax:") and pure IPP URIs.
        - driverless: Accept clean IPP URIs also for 'driverless cat
          ...' (Issue #295, Pull request #296).
        - driverless-fax: Do not use fixed path for call of driverless
          itself (Pull request #293).

CHANGES IN V1.28.0

        - driverless, driverless-fax, libcupsfilters: Added IPP Fax
          Out support. Now printer setup tools list an additional fax
          "driver".  A fax queue is created by selecting this
          driver. Jobs have to be sent with "-o phone=12345" to supply
          the destination phone number (Pull request #280).
        - libfontembed: Silenced warning with gcc 10.x (Pull request
          #287).
        - cups-browsed: Added ./configure options
          --enable-saving-created-queues and
          --with-remote-cups-local-queue-naming (Pull request: #253,
          #285).
        - cups-browsed: Fixed several memory leaks, mainly from the
          code to merge printer IPP attributes for clusters (Pull
          request #281, #283).
        - driverless: Added "--std-ipp-uris" command line option to
          show listed URIs in standard hostname-based form (not the
          CUPS DNS-SD-service-name-based form. Only for manual call of
          the utility, for debugging purposes (Pull request #277).
        - libfontembed: Removed assert() calls which cause crashes
          when unsupported emoji fonts are installed (Issue #254, Pull
          request #276).
        - driverless: Added support for IPPS (use "ipps://..." URIs if
          possible, Issue #251, Pull request #270, #273).
        - gstoraster, gstopdf: When converting PostScript to PDF use
          the "pdfwrite" output device with "-dPDFSETTINGS=/default"
          instead of with "-dPDFSETTINGS=/printer". This reproduces
          bitmaps in the PostScript file with their original image
          quality (Issue #272).
        - cups-browsed: Limit log file size and add backup file for
          previous log entries. Introduced the configuration option
          DebugLogFileSize in cups-browsed.conf to set the actual
          limit in kilobytes or 0 to get the old behavior of an
          unlimited size for the log file (Issue #260, Pull request
          #267).
        - gstoraster, gstopdf: Do not apply margins when output format
          is PDF, as then we convert an incoming PostScript file to
          PDF (pre-pdftopdf) and do not prepare the pages for the
          printer (post-pdftopdf, Issue #250).
        - cups-browsed: Do not write any log messages directly to
          stderr, there were some concerning timeouts on queue
          creation (Issue #260).
        - Build system: Fix cross-compilation without DejaVu test font
          in configure.ac (Issue #262, Pull request #263).
        - libcupsfilters: Respect the fact that PPD keywords
          are case-sensitive when adding "*cupsManualCopies: True" in
          PPD file (Issue #242).
        - libcupsfilters: Older versions of libcups (< 2.3.1)
          had the enum name for fold-accordion finishings mistyped.
          Added a workaround.
        - cups-browsed: Remove left-over local queues from the
          previous session more quickly when CUPS legacy browsing is
          turned on.
        - cups-browsed: Left-over local queues from the previous
          session for which the corresponding remote printer did not
          appear again did not get removed as they were considered
          externally overwritten.
        - gstoraster, gstopdf: Add option "-dDoNumCopies" to
          Ghostscript command line if we are outputting PDF (called
          via gstopdf wrapper) and the number of copies supplied to
          CUPS is 1 (4th command line argument). In this case we
          convert incoming PostScript to PDF and need to respect
          embedded PostScript commands to implement the number of
          copies (Issue #255, CUPS Issue #5796, OpenSUSE bug
          #1173345).
        - imagetoraster: Potential null dereference fix (when no valid
          PPD is supplied, Pull request #256).
        - cups-browsed: Call cupsGetNamedDest() only if
          "OnlyUnsupportedByCUPS No"
        - Sample PPDs: Corrected ColorModel default for Generic PWG
          Raster PPD to Color (Pull request #247).
        - cups-browsed: Mark the temp queue as cups-browsed-generated
          during setting printer-is-shared (Pull request #246).
        - cups-browsed: Remove mentions of README and AUTHORS files in
          the man page (Pull request #244).
        - pclmtoraster: Added new filter to extract Raster data from
          raster-only PDF files, here for the special case of PCLm
          files (Pull request #243, #257).
        - Sample PPDs: In Generic-PDF_Printer-PDF.ppd add option to
          switch between color and grayscale printing (Pull request
          #237).

CHANGES IN V1.27.5

        - cups-browsed: Do not remove the created local queues on
          shutdown, to avoid their re-creation on restart, so that
          desktops get no cluttered with notifications of new queues
          being created. One can return to the old behavior via
          "KeepGeneratedQueuesOnShutdown No" in cups-browsed.conf
          (Ubuntu bug #1869981, #1878241).
        - cups-browsed: Do not accept DNS-SD broadcasts of IPPS type
          of "remote" CUPS queues of another CUPS instance on the
          local machine. This way we get a local queue pointing to
          such a printer only in unencrypted version (IPP). For some
          reason printing from one CUPS server to another on the same
          machine works only unencrypted.
        - foomatic-rip: Map two-sided-short-edge to DuplexTumble (Pull
          request #236)
        - Build system: In configure.ac use AS_IF instead of
          AC_CHECK_FILE for font check (Issue #239, Pull request #240)
        - cups-browsed: Cleaned up code for determining to which CUPS
          server (host/port/domain socket) to connect, so that
          connection via DomainSocket cups-browsed.conf directive,
          CUPS_SERVER and IPP_PORT environment variables and all
          defaults and methods of libcups, including CUPS' client.conf
          work.
        - gstoraster, rastertopdf: Do not pass NULL to fprintf() (Pull
          request #230).
        - libcupsfilters: Silence compiler warning (Pull request #229).

CHANGES IN V1.27.4

        - libcupsfilters, cups-browsed: Fix memory issues in
          ppdgenerator and cups-browsed (Pull request #226).
        - pdftops: Mention cups-filters README, CUPS README in debug
          log (Pull request #225).
        - pdftopdf, gstoraster, foomatic-rip: Use "-dSAFER"
          Ghostscript option, instead of the deprecated
          "-dPARANOIDSAFER" (Pull request #224).
        - Build System: Replace '==' in configure.ac test with '=', as
          the former is a bashism (Pull request #222).

CHANGES IN V1.27.3

        - cups-browsed: Allow sharing local queues pointing to remote
          CUPS queues and re-sharing printers discovered via
          BrowsePoll by default, using
          AllowResharingRemoteCUPSPrinters and
          NewBrowsePollQueuesShared directives in cups-browsed.conf
          (Issue #101, Pull request #218).
        - driverless: Correctly unlink temporary file when generating
          PPD file (Pull request #220).
        - cups-browsed: Fixed memory leaks (Pull request #219).
        - foomatic-rip: PDF page count side-loads the PDF file to
          count the pages in, so it cannot be run in -dSAFER mode. Run
          even in -dNOSAFER mode to override the -dSAFER default of
          newer Ghostscript versions. This should not cause a security
          problem as we do not take an input file which could do
          arbitrary side-loads but we run hard-coded PostScript
          commands instead (Issue #216).
        - libfontembed: Add checks to the test programs to not
          segfault if the test font file is not found (Pull request
          #214).
        - Build System: Let ./configure fail if the supplied test font
          file path (or the default) does not exist (Pull request
          #214), also use the "find" command to find the test font
          file DejaVuSans.ttf under /usr/share/fonts, as every
          distribution has it somewhere else.

CHANGES IN V1.27.2

        - foomatic-rip: In some PostScript input files it was possible
          that option settings did not get inserted or lines inserted
          on the wron place (Issue #208, Pull request #210).
        - foomatic-rip: For the PDF page count call Ghostscript in
          sandbox mode and fix pointer arithmetics (Pull request
          #212).
        - foomatic-rip: Zero-page-job handling changes made the last
          page of PostScript files not printed, also turning one-page
          jobs into zero-page jobs (Issue #200, Issue #206, Issue
          #208, Pull request #209, Pull request #210, Pull request
          #211).
        - cups-browsed: check_printer_with_option() function:
          Initialize the value, add further checks, freeing memory and
          stop allocating magic numbers (Pull request #204).
        - cups-browsed: Additional checks against crashes in the
          is_local_hostname() function (Ubuntu bug #1863716)

CHANGES IN V1.27.1

        - libcupsfilters: Let the PPD generator not put any dashes
          into the PPD option and choice names when translating them
          from IPP attribute names, to avoid that on the
          back-translation by CUPS no double-dashes are
          generated. This broke paper tray selections with tray names
          like "tray-1", "tray-2", ... (Issue #192, Issue #201, Debian
          bug #949315).
        - foomatic-rip: Fixed segfault when PRINTER environment
          variable is not supplied.
        - pdftopdf, pdftops, gstoraster, gstopdf, gstopxl,
          rastertoescpx, rastertopclx, foomatic-rip: Handle zero-page
          jobs (Issue #117, Pull request #196, Pull request #197, Pull
          request #198, Pull request #200).
        - texttopdf: Added support for CJK (double-width) fonts (Issue
          #135, Pull request #199).
        - cups-browsed: Switched default for "CreateIPPPrinterQueues"
          from "local-only" to "All". The configure script options
          "--enable-auto-setup-local-only" and
          "--enable-auto-setup-driverless-only" can be used to change
          this default (Debian bug #921252).
        - rastertoescpx: Fixed wrong freeing of a buffer.
        - pdftops: Added options "crop-to-fit" and "fill" to the
          pdftopdf options which the pstops called by pdftops should
          not apply a second time.
        - pdftops: Added missing "-sstdout=%stderr" to Ghostscript
          command line, to assure that all messages are redirected to
          stderr and do not mix up with the output data.

CHANGES IN V1.27.0

        - cups-browsed: Eliminate the use of the local CUPS daemon's
          (the CUPS we are attached to) port number completely, so
          that for attaching to an arbitrary local CUPS daemon
          listening on an arbitrary port (or even not listening on
          localhost at all) it is enough to tell cups-browsed the
          domain socket the CUPS daemon is listening on.
        - cups-browsed, libcupsfilters: Identify DNS-SD-reported
          printers as of the local CUPS daemon via UUID and not via
          the port on which the local CUPS is listening, as we do not
          always have this port available.
        - cups-browsed: Leave the port for legacy CUPS browsing and
          broadcasting on 631, do not use a possible alternative port
          of the CUPS we are attached to. The legacy CUPS servers we
          communicate with are always remote ones.
        - libcupsfilters: in the PPD generator prioritize
          print-color-mode-supported against
          pwg-raster-document-type-supported (Issue #186, Pull request
          #188)
        - rastertopdf, rastertops, texttopdf, pdftoraster,
          mupdftoraster: Handle zero-page jobs, corrections on
          zero-page job handling (Issue #117)
        - cups-browsed: When restarting after a crash make sure that
          local queue names have same upper/lower case as before.
        - cups-browsed: Small code improvements to reduce crash
          probability.

CHANGES IN V1.26.2

        - cups-browsed: Added crash guards to avoid crashes in case
          the dummy printer entry for a deleted master entry is used.
        - cups-browsed: Set the port of the local CUPS daemon to be
          used according to the IPP_PORT environment variable.
        - cups-browsed: Eliminated the use of the cupsGetPPD2()
          function of libcups completely, also the remaining calls
          in the record_printer_options() and update_cups_queues()
          functions, the former causing incomplete recording of
          option settings and the latter use of CUPS-generated
          PPDs not working when CUPS is running on a non-standard
          port.
        - cups-browsed: Eliminated the use of the cupsGetPPD2()
          function of libcups in queue_overwritten(). The function
          actually loads the queue's PPD file if the queue is on a
          local CUPS on port 631. Due to a bug the function fails if
          an alternative port is used. This lets queue_overwritten()
          always assume that the PPD got removed and therefore the
          queue got overwritten. So queues got released from
          cups-browsed if it was printed on them or if they were
          supposed to be removed on shutdown.
        - foomatic-rip: Fixed compilation with -fno-common. Starting
          from the upcoming GCC 10, the default of the -fcommon option
          will change to -fno-common. This causes compilation errors
          in foomatic-rip due to missing "external" declarations.
          (Pull request #184).

CHANGES IN V1.26.1

        - build system: Install the "implicitclass" backend with
          "-rwx------" permissions, so that CUPS executes it as root,
          as the "ipp" CUPS backend also has to be executed as root
          (Issue #183).
        - build system: Fixed setting permissions when installing the
          "cups-brf" backend.
        - libcupsfilters: When using the
          "media-{bottom,left,right,top}-margin-supported" IPP
          attributes (needed if we have no "media-col-database"), use
          the minimum and not the maximum margins, this allows
          accessing more of the printer's capabilities, especially for
          legacy printers which do not provide sufficient information
          (Issue #22).

CHANGES IN V1.26.0

        - cups-browsed: When generating local queues for printers for
          which the local CUPS daemon would provide temporary queues
          use the PPDs generated by libcupsfilters and not the ones
          generated by CUPS. The PPD generation of libcupsfilters also
          works with IPP-1.x-only printers, printers which do not
          support to query "media-col-database" and printers which
          support driverless printing only via PCLm. This can be
          changed via the "UseCUPSGeneratedPPDs" directive in
          cups-browsed.conf (Issue #22).
        - libcupsfilters: Re-structured the get_printer_attributes()
          function to remove the recursive calls for the fallbacks, to
          check required attributes in the response only if requested,
          and to fully integrate the method of getting a suitable
          response for a full printer capability list also if the
          printer is only IPP 1.1 or does not support the
          "media-col-database" attribute (Issue #22, Issue #163).
        - libcupsfilters, cups-browsed, driverless: Moved the funtions
          get_printer_attributes() and resolve_uri() from cups-browsed
          into libcupsfilters, to share them with the driverless
          utility (Issue #22).
        - implicitclass: Fixed wrong stdout redirection from the
          filters to the IPP backend and hard-coded path for "ipp"
          backend call (Possible fix for Issue #163, Issue #181).
        - cups-browsed, driverless: Use DNS-SD-service-name-based URIs
          instead of host-name-based ones, as CUPS also does. In
          cups-browsed one can switch back to the conventional
          host-name-based URIs via the new "DNSSDBasedDeviceURIs"
          configuration option.  Note that cups-browsed always uses
          conventional URIs for printers discovered via legacy CUPS
          browsing or LDAP.
        - cups-browsed: When removing a CUPS queue, do not consider an
          error (and retry) if the queue does not actually exist. Also
          ignore errors when checking whether there are still
          jobs. This way when a new queue gets created and the
          generation of the PPD file fails the attempt to remove this
          non-existing queueu when removing the printer entry does not
          cause any problem.
        - cups-browsed: Improved the fallback mechanism of the
          get_printer_attributes() function. Instead of considering
          the request failed by the content of the response only when
          not more than the two language atrributes come out, we check
          through a list of required attributes whether they are all
          there.  In addition, we actually fail when all callbacks
          have failed (Issue #22).
        - cups-browsed: Introduced new configuration options
          "UpdateCUPSQueuesMaxPerCall" and
          "PauseBetweenCUPSQueueUpdates" to limit the amount of local
          CUPS queues created, modified, or removed in a single event
          callback. Before, when there were thousands of printers in
          the network, cups-browsed got blocked for other tasks, like
          assigning a destination printer for a cluster print job
          (Issue #163).

CHANGES IN V1.25.13

        - implicitclass: When passing on the job via the "ipp" CUPS
          backend, set argv[0] to the destination printer URI (Pull
          request #173).
        - cups-browsed: Added another fallback to the
          get-printer-attributes IPP request: Now after failing the
          standard request ("all", "media-col-database") with both IPP
          2.0 and IPP 1.1, try simply "all", without
          "media-col-database" (Pull request #173).
        - cups-browsed: Do not set printer-is-shared for remote CUPS
          queue when making a temporary queue permanent (Pull request
          #180).
        - cups-browsed: Fix leaks of ipp_t struct and load balancing
          on the servers (Pull request #179).
        - cups-browsed, implicitclass: Prioritize Apple Raster against
          PWG Raster when selecting the PDL for the destination
          printer for a job sent to a cluster, also cleaned up the PDL
          selector code and added PostScript support.
        - libcupsfilters: Updated the PPD generator adding all changes
          of the PPD generator of CUPS: Support for "job-account-id",
          "job-accounting-user-id", "job-password", finishing options
          "trim-..." added, finishing options and
          "finishing-col-database" support synced with CUPS.
        - libcupsfilters: In the PPD generator get the mode for
          handling the back sides of the sheets when printing duplex
          preferrably from the "urf-supported" attribute.
        - libcupsfilters: Fixed bug that the PPD generator did not
          output the "*CloseUI: *ColorModel" line when it did not
          determine a default setting for "ColorModel".
        - cups-browsed: Added some missing memory allocations leading
          to a segfault (Issue #175).

CHANGES IN V1.25.12

        - libcupsfilters: Use the text names "Draft", "Normal", and
          "High" instead of 3, 4, and 5 as choice names for the
          "cupsPrintQuality" option as CUPS does (Issue #171).
        - libcupsfilters: If a printer supports both Apple Raster and
          PWG Raster let the generated PPD use Apple Raster as there
          are several printers which report PWG Raster support but do
          not actually print PWG Raster (Pull reguest #168, Issue
          #171, CUPS issue #5238).
        - cups-browsed: Fix unset location check to use DNS-SD field
          (Pull request #172).
        - libcupsfilters, beh, implicitclass, foomatic-rip,
          imagetopdf, mupdftoraster, pdftops, sys5ippprinter,
          cups-browsed, driverless: Silenced all compiler warnings to
          make the build process of cups-filters completely free of
          warnings.
        - pdftops: Fixed crash when using filter without PPD file.
        - pdftops: If printing grayscale jobs with Ghostscript as PDF
          renderer, add "-sProcessColorModel=DeviceGray" to
          Ghostscript command line.
        - pdftops: Do not use the ugly "pdftops -level1 ..."
          workaround to get grayscale PostScript output from
          Poppler. It leads to huge output files with Poppler's
          "pdftops" utility and does not work at all with
          "pdftocairo".  Poppler itself does not support PostScript
          output converted to grayscale. Issue a warning with the hint
          to use Ghostscript or MuPDF as PDF renderer (Issue #169).
        - libcupsfilters: In the cupsRasterParseIPPOptions()
          accept also "Mono", "Monochrome", and "Gray" as color
          space names.

CHANGES IN V1.25.11

        - cups-browsed: Really accept entries without printer name
          reported on a job status request (Issue #163).
        - cups-browsed: Strip IPP attribute values reported by the
          printer on a get-printer-attributes request from white
          space (Pull request #166).

CHANGES IN V1.25.10

        - libcupsfilters: Added NULL checks when handling page size
          names as some of the page sizes in CUPS' PWG media list have
          a NULL PPD name (Ubuntu bug #1847488).

CHANGES IN V1.25.9

        - cups-browsed: Fix leaks in get_printer_attributes() function.
        - cups-browsed: Avoid infinite recursion on IPP 1.1 fallback.

CHANGES IN V1.25.8

        - cups-browsed: On a job status request accept also entries
          without the printer name being reported (Issue #163).
        - cups-browsed: Fall back to IPP 1.1 if a
          get-printer-attributes IPP request with IPP 2.x fails (Issue
          #124, Issue #163).
        - gstoraster: Use ".setfilladjust2" instead of the
          undocumented ".setfilladjust" PostScript command for
          Center-of-Pixel method to fill paths (Issue #164).

CHANGES IN V1.25.7

        - implicitclass, libcupsfilters: Fixes to solve an assertion
          error and printing to an Apple Raster printer (Issue #162,
          Ubuntu bug #1845286, Ubuntu bug #1845548).
        - cups-browsed: Do not try to resolve the network interface
          name on Avahi messages which are not interface-related (like
          "All for now"or "Cache exhausted", Issue #163).
        - Build system: The helper script ln-srf to build on systems
          with old ln was not included in the release tarballs (Issue
          #161).
        - pdftoraster: Fixed some bugs in output bitmap generation (
          writePageImage() function): Segfault on output of
          up-side-down pages (back side when printing duplex on some
          printers), margin offsets not taken into account on
          monochrome jobs, CUPS_CSPACE_W color space not recognized as
          monochrome (Ubuntu bug #1845286).

CHANGES IN V1.25.6

        - implicitclass: Make sure the destination printer gets always
          set and do not pass on the cups-browsed-dest-printer when
          sending the job to the final destination (Issue #152, Pull
          request #159).
        - Build system: Support old ln versions without the -r option
          (Pull request #154, #157).
        - texttotext: Link with libiconv if needed (Pull request
          #155, #158).
        - foomatic-rip: Fix argument representation for raw queue
          debug mesaage (Pull request #153).

CHANGES IN V1.25.5

        - bannertopdf: Added missing "#include <cstring>" to pdf.cxx
          so that bannertopdf correctly builds with QPDF 9.0.0 (Issue
          #134, Issue #151, Gentoo bug #693498).
        - rastertopdf: Let the getIPPColorProfileName() function not
          return a pointer to a local variable (clang warning, Issue
          #150).
        - cups-browsed: If a locally generated queue (usually with
          "implicitclass://..." URI) left over from a previous
          (crashed) session is picked up on startup, do not set the
          URI as the remote printer's URI and do not cause a fatal
          error on a failed get-printer-attributes IPP request (Issue
          #148, Debian bug #939316).
        - pdftopdf: Do not preserve encryption, since the output
          already goes into the printer (Issue #146, Pull request
          #147).

CHANGES IN V1.25.4

        - imagetoraster: Do not call imagetops and pstoraster for
          classifications and page labels as these filters are not
          included any more with cups-filters.  Classifications and
          page labels are currently not supported for direct image
          printing, only for PDF or PostScript input (which goes
          through pdftopdf).
        - imagetoraster, imagetopdf: Fixed auto-rotation of images to
          fit output page best (Issue #145).
        - pdftoraster: If the PPD contains several equally-sized page
          size entries which match the size of the input page and one
          is the size selected by the user via the "PageSize" or
          "media" option (or the default selection in the PPD) then
          prefer this one instead of simply the first matching one.
        - pdftoraster: If the input page size cannot be matched with
          one of the PPD's page sizes it is considered a custom size,
          fill the page size name field of the CUPS Raster header with
          "Custom.XXXxYYY" then.
        - pdftoraster: Match the input page size with a page size in
          the PPD only if the differences of the dimensions are less
          than 1%, also match the input page size against the
          imageable area of the PPD's page sizes if no match with the
          full page size is found (Issue #138).

CHANGES IN V1.25.3

        - Sample PPDs: In HP-Color_LaserJet_CM3530_MFP-PDF.ppd renamed
          "custom" choice of the option "stapleoption" to "customsize"
          as from CUPS 2.2.12 on "custom" is not accepted any more as a
          choice name in a PPD file.
        - cups-browsed: Fixed check whether the remote printer understands
          PWG Raster (Issue #141).

CHANGES IN V1.25.2

        - foomatic-rip: Fixed segmentation fault when running
          foomatic-rip by hand and the PRINTER environment variable is
          not set (Pull request #139).
        - cups-browsed: Added note to cups-browsed.conf and man page
          about IP-based URIs depending on the network interface used.
        - cups-browsed: For each DNS-SD-discovered printer register
          each DNS-SD discovery instance with network interface,
          family, and IPP type. When DNS-SD messages of instances
          disappearing show up, only unregister this instance and
          remove the printer only if no instance is left. This
          prevents a local queue of a still available printer being
          removed when Wi-Fi (= one interface) is turned off (Issue
          #136).
        - cups-browsed: If a remote printer is served from the local
          machine, prefer the "localhost"/loopback interface URI.
        - cups-browsed: If a remote printer is discovered more than
          once, use the new instance only if it has no downgrades and
          at least one upgrade compared to the old one. Features
          currently compared are IPP/IPPS, loopback interface or not,
          and discovery via CUPS legacy/LDAP/DNS-SD.
        - cups-browsed: If an Avahi-discovered entry comes through the
          "lo" interface, always use the host name "localhost". Use
          IP addresses instead of host names only if explicitly
          requested.
        - cups-browsed: Consider remote printer entries also as from
          the same printer if one has the local machine's network name
          and the other "localhost" as host name (Issue #136).

CHANGES IN V1.25.1

        - imagetopdf: Fixed crash when no PPD file was supplied (Pull
          request #133).
        - pdftoraster: Fixed offset issues leading to segmentation
          faults (Issue #131, Pull request #132).
        - pdftoraster: Added anti-aliasing for better raster image
          quality (Pull request #129).
        - pdftoraster: Added graceful handling of zero-page input
          (Issue #117, Pull request #127).

CHANGES IN V1.25.0

        - pdftoijs, pdftoopvp: Removed these deprecated filters
          completely as there is no demand for them any more. They
          also used unstable, undocumented APIs of Poppler.
        - pdftoraster: Changed from using unstable, undocumented APIs
          of Poppler to stable, documented ones, to improve
          maintainability of this filter, and with it of the
          cups-filters package. Thanks to Tanmay Anand for
          contributing this as his Google Summer of Code 2019 project.
        - libcupsfilters: Added support for color spaces CMY and RGBW
          when using filters without PPD file (mainly for development
          and debugging, option "print-color-mode" with values
          "cmy-XX" and "rgbw-XX" with XX being the number of bits per
          color).

CHANGES IN V1.24.0

        - cups-browsed: Integration of Deepak Patankar's Google Summer
          of Code 2018 project with the main goal of clustering
          different printers and automatically selecting the
          destination printers by job content and option/attribute
          settings. All changes of this release are done by Deepak as
          parts of his project.
        - cups-browsed, implicitclass: Support for mixed clusters of
          remote CUPS queues and IPP network printers. For this PPD
          files of remote CUPS queues are generated by cups-browsed
          based on IPP queries, as for native IPP printers, the number
          of jobs for load balancing is polled in a way that it works
          also with native IPP printers, the implicitclass backend
          sends jobs directky to the printer instead of re-queueing
          them via CUPS.
        - cups-browsed: Merge IPP attributes of several printers to
          combined attributes for the cluster to generate the
          cluster's PPD file, including PPD constraints for option
          combinations not fulfillable by any of the member printers,
          and finding reasonable, non-conflicting default settings,
        - cups-browsed: Selection algorithm for the destination
          printer for a job sent to the cluster. Based on the job
          settings requested such as page size, media type, print
          quality, ... the best most suitable printer in the cluster
          for the job will be selected.
        - cups-browsed, implicitclass: Filter jobs to clusters already
          locally. Due to the fact that a cluster's member printers
          are not exclusively non-raw CUPS queues with the complete
          filtering framework on the remote server, but also native
          IPP printers, we need to support generic driverless printers
          as destination. So we cannot pass on the input data
          unfiltered but need to filter locally. We let the cluster's
          PPD file emulate a PDF printer, letting the local CUPS queue
          of the cluster run pdftopdf and any pre-filters to turn the
          input into PDF and we let the implicitclass backend turn PDF
          into a format understood by the destination printer,
          supporting the 4 formats of driverless IPP printing: PDF,
          PWG Raster, Apple Raster, PCLm.

CHANGES IN V1.23.0

        - pdftops, mupdftoraster: Let pdftops call mutool directly and
          so that it directly outputs PostScript, eliminating the need
          to call the mupdftoraster and rastertops filters.
        - mupdftoraster: Reduced the use of temporary files from 3 to
          just one.
        - imagetopdf, imagetoraster, pdftopdf: Add support for
          print-scaling option (Issue #108, Pull request #118).

CHANGES IN V1.22.6

        - rastertops: Fixed PageSize settings in the PostScript output
          (Must be in points not in pixels).
        - pdftops, mupdftoraster: Produce actual grayscale/monochrome
          PostScript (and not only instructions to print grayscale/
          monochrome) for jobs to be printed in grayscale/monochrome
          (Issue #96, Pull request #115).
        - mupdftoraster: Fixed filter not producing output at all.
        - Build system: ENABLE_DRIVERLESS got only defined with CUPS
          1.6 and newer, not with older CUPS versions (Issue #111).
        - pdftopdf, imagetopdf, imagetoraster: Silenced compiler
          warnings.
        - cups-browsed, driverless: Replaced httpConnect() calls by
          httpConnect2() calls as the former CUPS library function is
          deprecated.
        - Build system: Compile everything using the CUPS libraries
          with '-D_PPD_DEPRECATED=""' for the time being until the
          deprecated PPD API calls get replaced, to stop the flooding
          with PPD API deprecation warnings making more important
          warnings being overlooked.
        - cups-browsed: When removing a local queue on shutdown or
          when DNS-SD reports the printer as disappeared check whether
          the local queue got overwritten by an external process as
          sometimes the shutdown or disappearing event comes too close
          for cups-browsed receiving a printer-modified notification
          from CUPS before (Ubuntu bug #1731417).

CHANGES IN V1.22.5

        - foomatic-rip: Changed Ghostscript call to count pages in a
          PDF file to use "runpdfbegin" and not the undocumented
          Ghostscript internal "pdfdict", so that it works with
          Ghostscript 9.27 and later (Debian bug #926576, Arch Linux
          bug #62251).

CHANGES IN V1.22.4

        - cups-browsed: Fix broken trailing space removal on
          "NickName" (Pull request #103).
        - pdftops: Emit PostScript Level 2 instead of Level 3 for
          Brother PostScript printers as at least some of them
          report to support level 3 but ontly work with Level 2
          (Ubuntu bug #1306849, comment #42).
        - bannertopdf: When multiplying the page for N-up or Duplex
          printing one page too much was generated (Issue #102).

CHANGES IN V1.22.3

        - libcupsfilters: Added error checks for processing GIF, to
          avoid crashes or hangs on broken GIF files (Issues #81, #82,
          Pull request #100).
        - cups-browsed: Added hint to the man page and configuration
          file that with "DebugLogging stderr" the logging output goes
          to journal or syslog if cups-browsed is running as system
          service (Issue #28).

CHANGES IN V1.22.2

        - cups-browsed: Let distribution of jobs sent to queues with
          "implicitclass" backend (usually clusters) be done by a
          "job-state" CUPS notification and not by
          "printer-state-changed" any more. The "job-state"
          notification already contains the job ID. Before we had to
          poll the job ID from CUPS via IPP which was sometimes
          unreliable (Issue #97).
        - imagetopdf, imagetoraster, pdftopdf, libcupsfilters: Added
          new page scaling options: "fill" scales the input page
          (typically a photo) so that the output page (typically with
          different aspect ratio) gets completely filled, aloowing for
          some content of the input page getting lost. "crop-to-fit"
          allows for easy printing of documents on slightly different
          output page sizes (A4 <-> Letter) maintaining the size and
          centering and cropping into the destination page. Thanks to
          Dheeraj Yadav (dhirajyadav135 at gmail dot com) for the
          patch (Pull request #92).
        - cups-browsed: Do not do IPP request for printer-is-shared
          option for remote cups queues with CUPS 2.2.x and newer
          (Pull request #91).
        - cups-browsed: Fix crash bug when reading "Cluster"
          directive from configuration file (Issue #94).
        - driverless: Updated man page as now also Mopria and
          Wi-Fi Direct printers are supported. Mentioned also
          ippusbxd.

CHANGES IN V1.22.1

        - braille: Use sort command with LC_ALL=C for reproducibility
          of the genrated files, needed for distribution packaging.
        - cups-browsed, driverless: When polling the printer's
          capabilities via get-printer-attributes IPP request for
          driverless printing, use the attributes "all" and
          "media-col-database". Without "all" some printers do not
          report "urf-supported" and without "media-col-database" not
          all paper size and marging info gets reported (Issue #22,
          Pull request #86, CUPS issue #5484).
        - braille: Document how to rework output before
          embossing. Thanks to Samuel Thibault for this patch (Pull
          request #90).

CHANGES IN V1.22.0

        - pdftopdf: Use QPDF for flattening interactive PDF forms
          (Issues #2, #23, #36, Pull request #88).
        - pdftopdf: Fixed bug of closing temporary file prematurely
          when external PDF form flattening utilities fail (Thanks to
          Tobias Hoffmann for finding this, see pull request #88).
        - pdftoopvp: More fixes for building with Poppler 0.72
          (Pull request #83, Issue #75).
        - pdftoraster, pdftoijs, pdftoopvp: Removed support for
          Poppler 0.18 (Pull request #83).
        - cups-browsed: Fixed crash in applying the BrowseFilter
          cups-browsed.conf directives (Debian bug #916765).

CHANGES IN V1.21.6

        - cups-browsed: To find out whether a DNS-SD-discovered
          printer is from the local machine, use not only the flags in
          the Avahi lookup result but also check the host name.
        - cups-browsed: When a local CUPS queue pointing to a remote
          CUPS printer was removed and re-created to make it a
          permanent queue, on_printer_deleted() was triggered by
          cupsd's notification to re-create a lost queue. Now
          on_printer_deleted() checks whether the queue is really gone
          and only re-creates then (Issue #80).
        - cups-browsed: When updating the CUPS queues, also removed
          and unregistered queues and not only created queues got
          checked for HTTP timeouts, which caused crashes on shutdown
          (Issue #79, Debian bug #916149).
        - pdftops: Use the PS interpreter of Poppler for all Apple
          LaserWriter 16/600, 4/600, 12/640, 12/600, 12/660 as they
          all seem to not work with Ghostscript's PS output (Issue
          #76).
        - cups-browsed: On shutdown queues got removed even if they
          still had jobs (Debian bug #908147).

CHANGES IN V1.21.5

        - cups-browsed: We cannot reliably determine whether a CUPS
          queue is temporary, so we apply the procedure to make a
          temporary queue permanent to any unshared queue (Debian bugs
          #910882, #905850, #908604).
        - pdftoraster, pdftopdf, pdftoijs, pdftoopvp: Do not use the
          Poppler-specific "GBool", "gFalse", "gTrue" any more, as
          Poppler has switched to standard "bool", "false", "true" in
          version 0.71.0 (Issue #69).

CHANGES IN V1.21.4

        - cups-browsed: Limit the number of retries for
          creating a print queue when it comes to HTTP
          timeouts. Number of retries given by HttpMaxRetries
          directive in cups-browsed.conf. Thanks to Zdenek Dohnal for
          the patch (Pull request #73, Red Hat bug #1648697).
        - cups-browsed: Read out current time right before setting the
          timeouts. Thanks to Zdenek Dohnal for the patch (Pull
          request #71, Red Hat bug #1648697).
        - libcupsfilters: In the PPD generator for driverless IPP
          printing let "*cupsManualCopies: true" lines get added to
          the PPD if printing is done in a raster format as then
          pdftopdf needs to generate the copies.
        - pdftoraster, pdftoopvp, pdftoijs: Fix build with Poppler >=
          0.70 (Issue #69, Pull request #70).
        - pdftopdf: Fixed printing multiple copies on driverless IPP
          printers. When printing collated copies the multiple copies
          got applied twice, resulting in n*n instead of n copies
          (CUPS issue #5433).
        - pdftoraster, pdftoopvp, pdftoijs: Poppler removed memCheck
          and gMemReport functions, remove appropriate calls (Issue
          #62, Pull request #66).

CHANGES IN V1.21.3

        - foomatic-rip: Reset stdin after replacing the underlying file
          descriptor (Issue #58).

CHANGES IN V1.21.2

        - cups-browsed: Fixed freeing of literal string caused by
          Coverity Scan issue fix (Debian bug #907399).

CHANGES IN V1.21.1

        - foomatic-rip: Fixed segmentation fault caused by wrong
          Coverity Scan issue fix (Issue #57, Debian bug #907026).
        - Build system: Require QPDF 8.1.0 or later as it is needed by
          bannertopdf (Issue #56).

CHANGES IN V1.21.0

        - libcupsfilters, cups-browsed, driverless, foomatic-rip,
          parallel: Silenced warnings from newest gcc.
        - libcupsfilters: When generating a PPD for driverless
          printing on a remote IPP printer, make pdftopdf not being
          run by the local queue if the remote queue is a CUPS queue
          to avoid running pdftopdf twice (CUPS Issue #5361).
        - libcupsfilters, cups-browsed, driverless, bannertopdf,
          foomatic-rip, pdftops, pdftoraster, rastertops,
          rastertoescpx, sys5ippprinter, beh: Fixed Coverity Scan
          issues. Thanks to Zdenek Dohnal (zdohnal at redhat dot com)
          for the tests and the patches.
        - bannertopdf: Switched over from using Poppler to using QPDF
          for generating the PDF pages. With Poppler unstable APIs
          were used which were subject to change. Thanks to Sahil
          Arora for this project in the Google Summer of Code 2018
          (Pull request #25).
        - cups-browsed: Manually defined clusters ("Cluster" directive
          in cups-browsed.conf) caused cups-browsed to crash.

CHANGES IN V1.20.4

        - README: Added link to Issue Tracker on GitHub.
        - gstoraster: Removed unneeded "if"s. Thanks to Laurent
          Martelli (martellilaurent at gmail dot com) for the patch
          (Ghostscript bug #692705).
        - cups-browsed: When checking whether there is already a local
          print queue with the same URI as the one of the discovered
          printer, consider also as equal URI if the URIs only differ
          by use of IPP or IPPS and/or use of HTTPS port 443 instead
          of IPP port 631.
        - cups-browsed: Also upgrade from ipp: to ipps: when the ipps:
          URI is on HTTPS port 443 instead of IPP port 631. This is
          common on IPP network printers.
        - pdftopdf: Removed support for hardware-implemented reversing
          of page order in PostScript printers. It was once not
          correctly implemented in cups-filters and second, such
          printers are extremely rare, and on Gutenprint PPDs with
          pseudo OutputOrder option hardware reversing was even
          wrongly assumed (Issue #47).
        - pdftopdf: Accept option "output-order=normal/reverse" for
          reversing page order (Issue #47) and also "page-delivery=
          same-order/reverse-order" (CUPS Issue #5340).
        - libcupsfilters: Let the PPD generator add "*PageStackOrder
          ..."  lines to the choices of the "OutputBin" option, to
          mark which output bins need the pages printed in reverse
          order (Issue #47).
        - libcupsfilters: Let the PPD generator correctly create a
          "*DefaultOutputOrder: ..."  entry, depending on whether the
          paper is put out face-up or face-down in the default output
          bin (Issue #47).
        - libcupsfilters: Fixed human-readable name of the OutputBin
          option in the PPD generator.
        - pdftoopvp: Silence compiler warning (Issue #42).
        - cups-browsed: If the user modifies/overwrites a print queue
          created by cups-browsed, it will now not only be
          automatically released from the control of cups-browsed, but
          we also create a replacement for our generated local queue
          under a new name.
        - cups-browsed: Make URIS for using the implicitclass backend
          correctly working also with queue names containing an '@'
          character.
        - braille: Strengthen error checking (Pull request #41).
        - braille: Index: Replace bogus characters with space (Pull
          request #41).
        - braille: Add print and braille page number options (Pull
          request #41).
        - braille: Index: Use standard duplex cups option (Pull
          request #41).
        - cups-browsed: Moved auto-generation of PPD file for IPP
          network printers from create_remote_printer_entry()
          function to update_cups_queues(). This allows re-creating
          accidentally removed or overwritten local queues without
          losing the PPD file.
        - braille: Add option to pick hyphenation rule according to
          current locale and make it the default for second
          translation table. Thanks to Samuel Thibault for this patch
          (Pull request #38 and #39).
        - braille: Remove generated defs on "make clean". Thanks to
          Samuel Thibault for this patch (Pull request #38).
        - braille: Turn non-breakable spaces to spaces. Thanks to
          Samuel Thibault for this patch (Pull request #38 and #39).
        - braille: Fix character encoding when extracting text. When
          extracing text from a zip file or a pdf, the resulting text
          is always utf-8 independently of the original locale, so we
          need to force that. Thanks to Samuel Thibault for this patch
          (Pull request #38).
        - braille: Warn when no text translation was selected in case
          the user didn't notice. Thanks to Samuel Thibault for this
          patch (Pull request #37).
        - braille: Fix spurious spacing after last Form-Feed (Pull
          request #45).

CHANGES IN V1.20.3

        - braille: Do not remove read permission on cups-brf. Thanks
          to Samuel Thibault for this patch (Pull request #32).
        - braille: Get braille table descriptions from liblouis
          metadata. Thanks to Samuel Thibault for this patch (Pull
          request #31).
        - braille: Select liblouis tables based on metadata before
          using file names. Thanks to Samuel Thibault for this patch
          (Pull request #30).
        - cups-browsed: The new method of identifying remote CUPS
          queues via the "printer-type" TXT record field does not work
          for printers discovered by legacy CUPS broadcast (CUPS 1.5.x
          or older). Now consider also printers without TXT record
          (not discovered via DNS-SD) as remote CUPS queues (Issue
          #34).
        - gstoraster: Improved detection whether input is PostScript
          or PDF by skipping over possible headers. Thanks to Rod
          Schmidt (schmidtrod at q dot com) for the patch.

CHANGES IN V1.20.2

        - cups-browsed: If the user modifies/overwrites a print queue
          created by cups-browsed, it will now automatically released
          from the control of cups-browsed, so the modified queue does
          not get removed by cups-browsed on shutdown.  (Ubuntu bug
          #1731417).
        - cups-browsed: The configuration setting
          "CreateIPPPrinterQueues LocalOnly" suppressed also the
          automatic generation of local queues for remote CUPS
          printers whereas this option is only intended for physical
          IPP printers.
        - cups-browsed: Identify remote CUPS queues by the
          "printer-type" TXT record entry and not by the
          "ipp(s)://<host>/printers/<name>" URIs, there are also IPP
          network printers with such URIs (HP LaserJet Professional
          M1212nf MFP in Ubuntu bug #1731417).
        - .gitignore: Added filter/braille/filters/brftopagedbrf
        - cups-browsed, foomatic-rip: Fixed several typos. Thanks to
          Didier Raboud for the patches.

CHANGES IN V1.20.1

        - libcupsfilters: Silenced warning when using CUPS < 2.x by
          eliminating the use of a recently introduced CUPS library
          function (Bugzilla bug #1421).
        - braille: Fix some missing options on indexv4. Thanks to
          Samuel Thibault for this patch (Pull request #21).
        - braille: Fix disabling margins on indexv4 in graphic
          mode. Thanks to Samuel Thibault for this patch (Pull request
          #20).
        - braille: Fix installation of brftopagedbrf. Thanks to Samuel
          Thibault for this patch (Pull request #18, Issue #17).
        - cups-browsed: Fixed crash when CUPS reports a print queue
          without "device-uri" attribute when cups-browsed polls a
          list of local CUPS queues (Issue #16).

CHANGES IN V1.20.0

        - libcupsfilters: Let the PPD generator prefer the English
          translation file from CUPS for the human-readable strings in
          the PPD files.
        - libcupsfilters: The PPD generator lists all page sizes with
          human-readable names now, including proprietary names of the
          printer.
        - cups-browsed, driverless: Fixed get-printer-attributes call
          on driverless printers for generating the PPD, explicitly
          requesting the media-col-database attribute as otherwise
          borderless page sizes do not appear.
        - libcupsfilters: Fixed loading option/choice strings lists
          from driverless printers for PPD file generation. Especially
          proprietary media types appear correctly now.
        - libcupsfilters: Completed color space support in the PPD
          generator: Added DeviceGray/RGB/CMYK, default to 8 bit for
          SRGB and to 16 bit for AdobeRGB, avoid duplicate listings of
          the same color space.

CHANGES IN V1.19.0

        - libcupsfilters: Let the PPD generator add the options "Print
          Optimization", "Print Rendering Intent" and "Print Scaling"
          if appropriate IPP attributes are found.
        - libcupsfilters: Let the PPD generator read out the maximum
          of info about color spaces and this way not only reliably
          the correct choices are added to the ColorModel option but
          also the maximum supported bit depth (8 or 16 bit) is used.
        - libcupsfilters: Overtaken new features from CUPS' PPD
          generator: Presets, Finishing Templates, and extraction of
          media sizes from "media-col-database"
        - libcupsfilters: Improvements on header of generated PPDs:
          use cups-filters version number, "drvless.ppd" PCFileName,
          APSupplies and cupsChargeInfoURI from CUPS.
        - libcupsfilters: Let the PPD generator use the IPP string
          tables in the translation files of CUPS 2.3.x or newer
          (English strings only). Let all options in the PPD have
          human-readable option and choice names. In case of CUPS
          2.2.x or older (or if the CUPS translation are missing) we
          fall back to internal tables.
        - cups-browsed: Improved debug output when checking IPP
          attributes of IPP printers.
        - .gitignore: Ignore also core files.
        - cups-browsed: Support use of PPD files generated by CUPS for
          IPP Printers. Works only if the the local queue created by
          cups-browsed replaces a temporary queue from CUPS.
          Configurable via "UseCUPSGeneratedPPDs" directive in
          cups-browsed.conf.

CHANGES IN V1.18.0

        - braille: Add support for page-ranges option. Thanks to
          Samuel Thibault for this patch (Pull request #12).
        - braille: Fix supporting docx and LO file names with
          spaces. Thanks to Samuel Thibault for this patch (Pull
          request #11).
        - .gitignore: Updated and cleaned up.
        - Build system: Make sure that "make dist" always includes all
          files of the repository, plus the files generated by
          ./autogen.sh, independent of the system configuration and
          the used ./configure options.
        - pdftoijs, pdftoopvp: Build pdftoijs and pdftoopvp only on
          demand (via "--enable-ijs" and "--enable-opvp" on the
          ./configure command line). There are actually no known
          printer drivers using these filters. If no one complains
          about the missing filters they will get completely removed.
        - Build system: Set default path for pdftops to
          /usr/bin/pdftops also for cross-compiling (Bug #1417).
        - cups-browsed: Set "printer-location" as an attribute and not
          as an option when creating/updating a CUPS queue (Bug
          #1413).
        - braille: Fix handling non-printable characters in BRF
          files. Thanks to Samuel Thibault for this patch.
        - braille: Fix printing backslashes in BRF files. Thanks to
          Samuel Thibault for this patch.
        - braille: use application/vnd.cups-brf instead of
          text/vnd.cups-brf. Thanks to Samuel Thibault for this patch.
        - braille: Make sure liblouis emits pure BRF output. Thanks to
          Samuel Thibault for this patch.
        - braille: Spaces at the head of lines were not getting
          embossed, because bash would eat them in the read
          command. IFS allows to avoid the issue. Thanks to Samuel
          Thibault for this patch.
        - gstoraster: Emit proper error message if Ghostscript is
          missing.  Thanks to Peter De Wachter (pdewacht at gmail dot
          com) for the patch (Bug #1415).
        - braille: Old bash does not like quotes, like in '$(("123" +
          0))'. Removed unneeded quotes. Thanks to Samuel Thibault for
          this patch.
        - braille: Index V5 embossers are compatible with the V4
          protocol so we do not need driver changes, we just need to
          advertise the support. Thanks to Samuel Thibault for this
          patch.

CHANGES IN V1.17.9

        - cups-browsed: Applying option defaults from the
          DefaultOptions directive in cups-browsed.conf got
          lost. Re-introduced it (Bug #1414).
        - cups-browsed: Get printer-location field from remote
          printers.  Thanks to Marek Kasik for the patch (Bug #1413).

CHANGES IN V1.17.8

        - foomatic-rip: Change execution of renderer thread to fail
          whenever any of its individual sub-comands fails. Thanks to
          LUUM (luum at chromium dot org) for the patch (Bug #1412).
        - foomatic-rip: Parent process now ignores SIGPIPE calls from
          upstream/downstream CUPS filters, per
          https://www.cups.org/doc/api-filter.html, while correctly
          noting child process failures and exiting
          accordingly. Thanks to LUUM (luum at chromium dot org) for
          the patch (Bug #1412).
        - Build system: Fixed typo which broke the
          "--enable-gs-ps2write" ./configure command line option (Bug
          #1410).

CHANGES IN V1.17.7

        - braille: Add a mirror option for graphical output. Thanks to
          Samuel Thibault for this patch.
        - braille: Rename the internal cups name of the Resize option
          to the standard well-known and well-documented fitplot
          option. Thanks to Samuel Thibault for this patch.
        - braille: Add support for margins in graphical mode,
          defaulting them to 15 points (a bit more than 5mm). Thanks
          to Samuel Thibault for this patch.
        - braille: Updated French translation. Thanks to Samuel
          Thibault for this patch.
        - braille: Add a PPD which generates UBRL output, i.e. Braille
          expressed in Unicode. This is not useful for actual
          embossers, but very convenient to check output to be
          embossed without wasting paper. Thanks to Samuel Thibault
          for this patch.
        - braille: Add virtual BRF backend for generating
          ready-to-emboss BRF files with CUPS, similarly to the
          cups-pdf backend. Thanks to Samuel Thibault for this patch.
        - braille: Some tools seem to emit true/false instead of
          True/False, so let us cope with it. Thanks to Samuel
          Thibault for this patch.
        - braille: "make uninstall" did not remove all the
          links. Thanks to Samuel Thibault for this patch.
        - braille: Add support for embossing MusicXML files, through
          the FreeDots transcriptor. Thanks to Samuel Thibault for
          this patch.
        - braille: Add proper support for hardware margins on braille
          embossers. Thanks to Samuel Thibault for this patch.
        - braille: Fix the disabling of the text margins in Index
          graphics mode. Thanks to Samuel Thibault for this patch.
        - braille: Support for direct, structured embossing of XML and
          XML-based file formats (like odt, docx, ...). Thanks to
          Samuel Thibault for this patch.

CHANGES IN V1.17.6

        - braille: Embossers can only emboss integer numbers of 2x4
          cells. Thanks to Samuel Thibault for this patch.
        - braille: In Index graphical mode we need to disable the text
          margins, since they come in earlier on the way to
          there. Thanks to Samuel Thibault for this patch.
        - braille: Also, we should always add a 1.6mm margin for
          taking into account the width of dots. Thanks to Samuel
          Thibault for this patch.

CHANGES IN V1.17.5

        - libcupsfilters: In the PPD generator for driverless printing
          renamed the "print-quality" option back to
          "cupsPrintQuality" as the support for this option got fixed
          in CUPS (CUPS issue #5090).
        - braille: Improvements on the braille support for bitmap
          images: Moves the graphical dot distance option to the image
          conversion group, add an option to avoid image resize, and
          make the rotation option easier by proposing to just fit
          paper instead of fitting portrait or landscape. Thanks to
          Samuel Thibault for this patch.
        - braille: Support for embossing vector images as braille.
          Thanks to Samuel Thibault for this patch.
        - braille: Fix liblouis1.defs installation. Thanks to Samuel
          Thibault for this fix.

CHANGES IN V1.17.4

        - pdftopdf: If the input PDF file contains an interactive
          form, flatten it to static PDF so that further manipulation,
          like scaling, number-up, ... do not let the filled for
          content getting lost. This is implemented by using the
          pdftocairo utility of Poppler and if this fails Ghostscript
          (9.22 or later recommended). This will probably replaced by
          a QPDF-based solution later. Thanks to Tobias Hoffmann for
          the QPDF-based detection of PDF forms (Bug #1315, Ubuntu bug
          #1564249).

CHANGES IN V1.17.3

        - bannertopdf: Make it working also with Poppler 0.58.0 and
          newer (Bug #1408).
        - gstoraster, pdftops, foomatic-rip: Added "-dShowAcroForm" to
          all Ghostscript command lines where the input data format
          can be PDF.  With this and the fix of Ghostscript bug
          #698461 most filled PDF forms should be rendered correctly
          by Ghostscript now.
        - libcupsfilters: Do not check maximum resolutions of
          raster-based PDLs, as implementation was incorrect and
          reliability of PDLs is more important than maximum
          resolution.

CHANGES IN V1.17.2

        - rastertopdf: Fixed outstanding bug in PCLm with JPEG (DCT)
          compression. Now PCLm support is completely working.

CHANGES IN V1.17.1

        - libcupsfilters: Added direct PNG printing to the PPD
          generator, the one of CUPS has it, too.
        - libcupsfilters: In the PPD file generator renamed the option
          "cupsPrintQuality" into the IPP name "print-quality" as CUPS
          does not update the "print-quality=4" entry in the filter
          command line based on the setting of "cupsPrintQuality"
          (CUPS issue #5090).
        - libcupsfilters: Completely redone the way how to determine
          the resolutions to use for the default resolution and print
          quality option in the PPDs generated for IPP
          printers. Resolution lists from IPP attributes are now read
          into sorted, duplicate-free lists with wrong resolutions
          removed or fixed. Resolutions actually used are the common
          ones between the supported PDLs, PDls with inferior maximum
          resolution or with broken resolution list are skipped
          (Debian bug #868360, Ubuntu bug #1712019, CUPS issue #5088,
          CUPS issue #5091).
        - rastertopdf: Prefer RLE compression instead of Flate as
          there are HP printers where Flate is buggy.
        - Build system: Fixed help mesage for "--enable-driverless"
          configure option (Bug #1405).

CHANGES IN V1.17.0

        - rastertopdf, rastertopclm, driverless, cups-browsed,
          libcupsfilters: Added support for the PCLm output format for
          driverless printing on printers using Wi-Fi Direct and other
          driverless printing standards.
          printers. This is the Google Summer of Code 2017 project of
          Sahil Arora (sahilarora dot 535 at gmail dot com). Thank you
          very much for your great work!  The PCLm support requires
          QPDF 7.0.0 or later.

CHANGES IN V1.16.4

        - Build system: Switched over to C11 standard with GNU
          extensions (-std=gnu11).
        - Build system: Removed -pedantic flag as it is only needed
          for compatibility with commercial compilers like the ones of
          Windows (and we use GNU extensions anyway).
        - libfontembed, texttopdf: reverted removal of anonymous
          union.

CHANGES IN V1.16.3

        - libfontembed: Reverted unneeded soname change.

CHANGES IN V1.16.2

        - README: Minimum CUPS requirement of cups-filters is CUPS
          1.4.x.  It does not build with earlier CUPS versions (Bug
          #993).
        - driverless, foomatic-rip: Create relative symbolic links.
        - All C/C++ files: Silenced all compiler warnings, at least
          the ones appearing when building on Ubuntu Linux 17.10 with
          GCC 7.1.0.
        - README: Updated the introduction section to reflect the
          current functionality of cups-filters, and the build
          requirements for the Poppler-based filters (C++11: Bug
          #1404, Build configuration of Poppler: Bug #1257). Thanks to
          Roland Hieber (r dot hieber at pengutronix dot de) to find
          out about this.
        - pdftoopvp, bannertopdf, pdftoraster: Build with C++11
          standard as some features of this standard are needed by
          these filters (or by Poppler). Thanks to Roland Hieber (r
          dot hieber at pengutronix dot de) for the patch (Bug #1404).

CHANGES IN V1.16.1

        - cups-browsed: Make timeouts for HTTP access to the local
          CUPS daemon and remote IPP printers configurable. Thanks to
          Cedric Dufour (cedric dot dufour at idiap dot ch) for the
          patch (Bug #1387, Debian bug #852436).
        - texttopdf: Allow bold and underline formatting to be used
          together when using "prettyprint". Thanks to Michael Moran
          (vampm at comcast dot net) for the patch.
        - texttopdf: Allow to alter margins, and chars/lines per Inch
          when using "prettyprint". Thanks to Michael Moran (vampm at
          comcast dot net) for the patch.
        - texttopdf: When "prettyprint" is used, do not drop out of
          C/shell comment mode too early. Thanks to Michael Moran
          (vampm at comcast dot net) for the patch.
        - cups-browsed: Additional NULL checks for description and
          location.
        - cups-browsed: Fixed crash which happens when using
          BrowsePoll (Debian bug #723835).

CHANGES IN V1.16.0

        - cups-browsed: Let elements in arrays get stacked up in the
          order they are added, before, they were in the order how
          they are positioned in memory. This especially led to a
          random order of printer cluster definitions and of
          command-line-supplied configuration options.
        - cups-browsed: On shutdown not all locally created queues got
          deleted.
        - cups-browsed: Added support for manual definition of
          load-balancing printer clusters via the "Cluster" directive
          in cups-browsed.conf.

CHANGES IN V1.15.0

        - cups-browsed: Removed the function to compare printer entries
          for sorting the printer entry list. This led to corruption
          of the list and so to crashes.
        - cups-browsed: Fixed crashes when many printers (especially
          all printers of a load-balanced cluster) are removed at once.
        - cups-browsed: Log the full list of handled remote printers
          whenever one is added or removed.
        - cups-browsed: Renamed the handle_cups_queues() function to
          update_cups_queues() to better reflect what it is doing.
        - cups-browsed: When clustering remote CUPS printers together
          do not call them duplicates but slaves asigned to a master.
        - cups-browsed: Log the error if the network interface name of
          a DNS-SD event could not be determined.
        - cups-browsed: Simplified printer entry removal procedure.
        - cups-browsed: Log memeber printer list of a printer cluster
          (implicit class) when a member printer is added or removed.
        - cups-browsed: Removed superfluous (and not correctly
          working) duplicate counter from the remote printer entry
          data structure.
        - cups-browsed: Add "AutoClustering" directive to
          cups-browsed.conf to turn on and off automatically
          clustering equally named local print queues which point to
          remote CUPS printers. When automatic clustering is turned
          off, queue name clashes are prevented by adding "@<server
          name>" to local queue names based on the remote queue name
          or on make and model.
        - cups-browsed: Skip callback functions and the CUPS queue
          creation/update/removal loop when cups-browsed is terminated
          by a SIGTERM signal. This avoids hanging on shutdown. Thanks
          to Edgar Fuss (ef at math dot uni-bonn dot de, Bug #1402).
        - libcupsfilters: Added some fallbacks for incorrect
          resolution IPP attributes on IPP network printers (Debian
          bug #868360).
        - pdftoopvp: Added missing "#include <math.h>" needed for
          cross-compiling for arm-v7a-linux-gnueabi (Bug #1232).
        - cups-browsed: Prevent the creation of two remote printer
          entries for two IPP network printers or an IPP network
          printer and a remote CUPS printer with the same local queue
          name. This could easily happen with make/model-based naming.
        - cups-browsed: Added the possibility to optionally not
          create local queues for remote printers for which CUPS
          (from 2.2.x on) auto-creates queues by itself (DNS-SD
          advertised driverless printers).
        - cups-browsed: Removed repeated code for clean-up when
          generate_local_queue() function fails.
        - cups-browsed: Take care of CUPS' temporary queues. Do not
          consider them when checking whether a queue with the same
          name as the one we are creating already exists and make
          temporary queues permanent (or remove them) before
          overwriting them with our local queue.
        - cups-browsed: Make the naming scheme for locally created
          print queue configurable, especially allow for naming based
          on the DNS-SD service name (now default) as this is the same
          scheme as CUPS uses for its temporary queues. This way we
          prevent CUPS creating temporary queues when cups-browsed is
          already creating a queue.
        - cups-browsed: Do not add "APRemoteQueueID" keyword to the
          local queue's PPD file if the queue is for an IPP network
          printer.
        - cups-browsed: Skip multiple browse entries for the same
          printer with interface alias addresses.  Thanks to Edgar
          Fuss (ef at math dot uni-bonn dot de, Bug #1399).
        - cups-browsed: Improved support for Description (Info) and
          Location fields of remote CUPS queues. Thanks to Edgar Fuss
          (ef at math dot uni-bonn dot de, Bug #1398).
        - cups-browsed: Renamed variable names for better code
          readability.  Thanks to Edgar Fuss (ef at math dot uni-bonn
          dot de, Bug #1398).
        - cups-browsed: Additional NULL checks in the
          create_local_queue() function. Thanks to Edgar Fuss (ef at
          math dot uni-bonn dot de, Bug #1398).

CHANGES IN V1.14.1

        - cups-browsed: Do correct removal of printer entry handling
          duplicates correctly also when a legacy CUPS-broadcasted
          printer disappears or a printer remaining from the last
          session does not appear again.
        - cups-browsed: Use getline() instead of fgets() to read saved
          option settings. This is less crash-prone (Ubuntu bug
          #1658833).
        - cups-browsed: Improved error logging when saving option
          settings.
        - cups-browsed: Added NULL checks for generate_local_queue()
          and create_local_queue() functions.
        - cups-browsed: When accessing local CUPS queues use always
          the correct port of the CUPS daemon we are attached to.
        - cups-browsed: Check whether a connection to the local CUPS
          daemon actually happened before using it (Ubuntu bug
          #1644049).
        - cups-browsed: Set unused fields of printer record to NULL
          when tranfering data from the record of a duplicate printer
          to the record of a disappeared one.
        - cups-browsed: Simplify removal of all queues on shutdown or
          stop of Avahi.
        - cups-browsed: When creating a record for a discovered
          printer set it all zero before filling it in, to assure
          that no field is in an undefined state.
        - cups-browsed: All functions which are called via Glib
          functions or otherwise event-triggered log now in which
          thread they are running. This way one can see whether
          problems can be caused by concurrent access to global
          resources.
        - cups-browsed: Do not check whether the DNS-SD event is from
          the local machine in the browse_callback() function. We
          cannot check the port here.
        - cups-browsed: Added more NULL checks to Avahi callback
          functions.
        - cups-browsed: Added NULL check to avoid crashes in the Avahi
          resolver callback (Ubuntu bug #1696967).
        - libcupsfilters: Let PPD generator do case-insensitive
          comparisons for PWG Raster color spaces, as some printers
          (Epson) do not use the standard-conforming all-lowercase
          form for them (CUPS Issue #4998).

CHANGES IN V1.14.0

        - cups-browsed: When a printer is discovered via DNS-SD on the
          "lo" (loopback) interface the printer is not reliably
          accessible through the reported host name (which is the
          network host name of the local machine). Until this problem
          is fixed in Avahi, we create queues for such printers with a
          URI based on the IP address. This is a workaround until
          Avahi fully supports the "lo" interface.
        - cups-browsed: Added new setting "LocalOnly" for the
          CreateIPPPrinterQueues in cups-browsed.conf. With this new
          setting (which is the default from now on) only for local
          printers made available as IPP printers (like IPP-over-USB
          printers with ippusbxd) queues are auto-created. With this
          we can follow the common standard of distributions where USB
          printers are automatically set up and network printers not.
        - cups-browsed: Fixes and improvements in comments and debug
          messages: 1. Bonjour -> DNS-SD; 2. When a remote CUPS class
          is discovered, tell that it is a class; 3. Show network
          interface and IPv4/IPv6 when a DNS-Sd service appears or
          disappears.
        - cups-browsed: Added ./configure script option
          "--enable-auto-setup-driverless" to let cups-browsed
          automatically set up IPP network printers by default.

CHANGES IN V1.13.5

        - foomatic-rip: When called via the utility cupsfilter from
          CUPS, foomatic-rip was not able to read the PPD file with
          the file name supplied as environment variable PPD (Bug
          #1388).
        - driverless: Improved error message output.
        - libcupsfilters: Fixed error handling of the PPD file
          generator for driverless printing, so that callers get
          decent error messages.
        - libcupsfilters: Do not generate a PPD file where the only
          output data format is JPEG, as JPEG does not support
          multi-page documents.
        - libcupsfilters: Let PPD generator skip broken page size
          records and add warnings for debugging to the PPD.
        - libcupsfilters: Updated PPD generator to match with the
          current GIT state of the one of CUPS.
        - braille: Automatically select a table according to the
          current locale.
        - braille: Update for liblouis table list.
        - braille: Added support for text margins.
        - cups-browsed: When creating a local queue for a remote CUPS
          printer, add the line '*APRemoteQueueID: ""' to the PPD file
          so that CUPS sets the CUPS_PRINTER_REMOTE bit for the
          printer type of the local queue (Bug #1386).

CHANGES IN V1.13.4

        - libcupsfilters: Let PPD generator for driverless printing
          not error out when there is no urf-supported or
          pwg-raster-document-resolution-supported IPP attribute,
          simply accept the default resolution also from the
          printer-resolution-default attribute or set a default value
          of 300 dpi to get a working PPD file.
        - cups-browsed: Do not use deprecated names for IPP status
          constants
        - cups-browsed: Corrected determination whether an IPP status
          is an error, to avoid "Unable to create/modify CUPS queue
          (Success)" and infinite repetition of a succeeded operation
          (Debian bug #852436).

CHANGES IN V1.13.3

        - libcupsfilters: When auto-generating PPD files added support
          for passing through JPEG input to printers which understand
          JPEG. This is also done in CUPS-generated PPDs (Debian bug
          #851499).
        - libcupsfilters: Added the "output-bin" option support from
          CUPS' PPD generator to our PPD generator (CUPS Issue #4938).
        - cups-browsed: Make support for printers with IPv6 IP address
          work. Both link-local and regular addresses work.

CHANGES IN V1.13.2

        - cupsfilters.drv: Corrected cupsFilter entry for the "Generic
          IPP Everywhere Printer".
        - driverless: Fixes on the man page (Debian bug #849075).
        - driverless: Do not error-exit (non-zero status) when run by
          CUPS as backend or PPD generator when no driverless printer
          is found or Avahi not running. When run from thr command
          line, exit status is the same as of ippfind.
        - imagetoraster: Removed (incomplete) PWG Raster support. For
          PWG Raster output we let the rastertopwg filter from CUPS do
          the finalization (mainly adding white pixels at the borders
          to get a full-page bitmap).
        - imagetoraster: Fixed several bugs in the calculation of the
          page geometry (Debian bug #849380).
        - libcupsfilters: If the IPP-polled printer has the
          "sides-supported" attribute, determine the need of a
          "Duplex" option solely whether the attribute has a
          "two-sided-long-edge" choice and ignore the "duplex"
          parameter of the ppdCreateFromIPP() function call. This lets
          the more precise information coming from the IPP query
          always be preferred against information from the Bonjour
          record.
        - driverless: When listing printers let the device ID contain
          "AppleRaster" (for Apple Raster printers) and "PWGRaster"
          (for IPP Everywhere printers) in the "CMD" field.
        - driverless: Added "-T 3" to the ippfind command line. This
          makes ippfind search the Bonjour broadcasts for up to 3
          seconds when searching for IPP printers, raising the
          reliability in finding all of them (Debian bug #848712).

CHANGES IN V1.13.1

        - cups-browsed: Avoid erroring out when restarting after a
          crash (with generated queues not deleted due to the crash)
          and the configuration option
          CreateRemoteCUPSPrinterQueues=No being set.
        - cups-browsed: If CUPS is stopped while cups-browsed is
          running and there are queue for IPP network printers (not
          remote CUPS queues) on restart of CUPS the still existing
          local CUPS queue is not correctly re-connected with
          cups-browsed and therefore gets removed after a
          timeout. This should be fixed after a clean-up of
          re-connecting with remaining queues from a previous session
          (Debian bug #848223).
        - cups-browsed: Generated queues did not get removed on
          shutdown (Debian bug #848167).
        - libcupsfilters: Let PPD generator for driverless printing
          suppress page sizes which the printer reports more than
          once (CUPS Issue #4933).
        - driverless, libcupsfilters: Make "driverless list" output
          and output of driverless as CUPS backend in discovery mode
          add the word "driverless" to its output, to make it easier
          to set up driverless printers with printer setup tools.
          Made the NickName of the generated PPDs also match with the
          "driverless list" output.

CHANGES IN V1.13.0

        - cups-browsed: Use the httpGetAddr() only with CUPS 2.0.x or
          newer, as older CUPS versions do not provide it (Bug #1381).
        - cups-browsed: Minor corrections in the handling of the data
          records of the discovered printers.
        - rastertopdf, urftopdf: As with libcupsimage from CUPS 2.2.2
          on rastertopdf also understands Apple Raster and much better
          than urftopdf does, use rastertopdf for Apple Raster
          (image/urf) input files then. Also allow for manually
          choosing by the ./configure command line.
        - driverless: Added a CUPS backend mode to the driverless
          utility. Running as a CUPS backend in discovery mode it
          lists the IPP URIs of the suitable printers in printer setup
          tools and in "lpinfo -v", as conneting via IPP is required
          for driverless printing.

CHANGES IN V1.12.0

        - cups-browsed: Added new "CreateRemoteCUPSPrinterQueues"
          directive to cups-browsed.conf, which allows to decide
          whether to auto-create local print queues for shared CUPS
          queues on remote machines. This way one can also set up
          servers which only create queues for IPP network printers.
        - driverless: Added new /usr/lib/cups/driver/driverless
          utility to make CUPS auto-generate PPD files for printers
          designed for driverless use (IPP Everywhere, Apple Raster)
          when they are set up with a printer setup tool. This gives
          transparency to set up these printers with legacy printer
          setup tools. This utility is also linked to /ustr/bin to
          manually generate PPDs via command line.
        - libcupsfilters, cups-browsed: Moved the PPD generator for
          IPP network printers from cups-browsed to libcupsfilters, so
          that it can also be used by other utilities.
        - cups-browsed: When auto-generating a PPD set the cost values
          in the filter lines to give the highest priority to PDF,
          then PWG Raster, Apple Raster, PCL-XL, PostScript, PCL 5c/e.
        - cups-browsed: Synced the PPD generator with the one of CUPS,
          giving the best possible support for IPP Everywhere and
          AirPrint printers. Especially support for more media types
          and for finishing units got added. Also support for more
          different ways to represent the printer capabilities via
          IPP attributes got added.
        - cups-browsed: Added support for auto setup of IPP printers
          understanding the Apple Raster input data format (.urf, on
          AirPrint printers), only if CUPS 2.2.2 is used, which can
          generate this format via its rastertopwg filter.
        - cups-browsed: Added new "NewIPPPrinterQueuesShared"
          directive to cups-browsed.conf, which allows to decide
          whether the auto-created local print queue for a newly
          discovered IPP network printer will be shared or not. For
          printers discovered earlier, cups-browsed remembers the
          previous setting.
        - cups-browsed: If a user changes the printer-is-shared bit of
          an auto-created print queue for an IPP network printer (not
          for a remote CUPS queue), record this fact and recover the
          change when creating this queue in the next session.
        - cups-browsed: For automatic creation of print queues for IPP
          network printers also allow only creating queues for IPP
          Everywhere printers, only for Apple Raster printers, or for
          both printer types designed for driverless printing and not
          only for all suitable printers, configurable via the
          CreateIPPPrinterQueues directive in cups-browsed.conf.

CHANGES IN V1.11.6

        - pdftops: Do not default to simply "pdftops" when calling the
          Poppler pdftops utility, as the $PATH of CUPS when running
          filters/backends starts with /usr/lib/cups/filter/ and then
          pdftops would call itself (Bug #1380).

CHANGES IN V1.11.5

        - cups-browsed: Fixed several typos in the documentation (Bug
          #1378).
        - gstoraster, mupdftoraster, pdftops, sys5ippprinter: Use
          execvp() and execvpe() to call programs so that the $PATH
          environment variable gets used to find the programs (Bug
          #1378).
        - build system: Several fixes, especially to make it work when
          cross-compiling or using a build server (Bug #1378).
        - cups-browsed: Silenced a warning.
        - cups-browsed: For remote CUPS queues with a dot in their
          name no local queue got created (Bug #1379).
        - pdftopdf: Do the page logging also for IPP Everywhere
          printers which use the PWG Raster data format as the
          ...toraster filters being the last filter then do not log.
        - gstoraster, pdftoraster: Let filters generate PWG Raster if
          the environment variable FINAL_CONTENT_TYPE is set to
          image/pwg-raster, make sure full-page bitmaps are generated
          in PWG_raster mode, and added mime conversion rules for
          direct PWG Raster output.
        - cups-browsed: Corrected checking of the PDLs of an IPP network
          printer. Now PCL 5c/e printers (not HP inkjets) should get
          recognized correctly.
        - texttopdf: Added missing NULL check to avoid a segfault when
          texttopdf does not find a suitable (monospace TTF) font.
        - foomatic-rip: Replace old manpage macro calls from
          foomatic-filters 3.0.2-20050114.
        - cups-browsed: Allow changing BrowseInterval and
          BrowseTimeout via cups-browsed.conf, as it was formerly with
          CUPS (Debian bug #794655).
        - pdftopdf: Count the actual output pages also if the
          number-up option is not used, to correctly find out whether
          we have an even or odd number of pages, even if the
          page-ranges option is used. This is needed to correctly
          decide whether for duplex printing a blank page has to be
          added (Bug #1377).

CHANGES IN V1.11.4

        - gstoraster: Allow Ghostscript to use the center-of-pixel
          method instead of the PostScript-standard any-part-of-pixel
          method when rendering filled paths. This improves the
          graphics output quality of low-resolution printers like
          label printers, for example to assure readability of bar
          codes (Bug #1373).
        - cups-browsed: Fixes to avoid unneeded calls of
          handle_cups_queues() and even infinite loops (Possible fix
          for bug #1376). Also make sure that queues left over from
          the previous cups-browsed session are integrated correctly.

CHANGES IN V1.11.3

        - cups-browsed: If a queue is not only discovered via Bonjour
          but also via legacy CUPS or LDAP, prefer the Bonjour record
          as it provides more information and there is also a defined
          cancellation broadcast.
        - cups-browsed: Let PPD options saved in the last session also
          get applied to generated PPDs for IPP network printers.
        - cups-browsed: Make sure that saved PPD options do not get
          lost if for some reason the PPD file cannot be loaded in a
          new cups-browsed session (or the loaded PPD file is
          different).  This is done by holding a copy of the settings
          in the remote printer data structure.
        - cups-browsed: When saving option settings, remove
          backslashes added when the settings are read out via IPP
          request. Otherwise the backslashes would double with each
          session of cups-browsed.
        - implicitclass: Do not let the job get immediately retried on
          failure to send it out to the remote CUPS printer. By
          repeating to send the job to an unavailable server so
          quickly, cups-browsed gets bombed with requests and hangs on
          shutdown.
        - cups-browsed: Shortened timeouts of HTTP connections and IPP
          requests to 3 seconds amd of IPP requests to remote CUPS
          servers to 2 seconds. For local IPP requests always use the
          connection once created via http_connect_local(). Also call
          g_main_context_wakeup(NULL) after each
          g_main_loop_quit(gmainloop) call. These measures should
          reduce long hangs of cups-browsed on shutdown when a CUPS
          server got unavailable.
        - cups-browsed: Do not mark remote printers discovered via
          legacy CUPS broadcasts as disappeared right from the
          beginning to implement the browse timeout. Instead manage
          their expiring by introducing a flag which marks them as
          CUPS legacy printers. Printers with disappeared status are
          considered invalid in some situations, especially when
          clusterin equally-named remote printers (Bug #1374).
        - cups-browsed: When we have remote CUPS printers, we use the
          implicitclass backend and a local copy of the remote PPD
          file already if we have only a single remote printer with
          this queue name. This simplifies the management of remote
          CUPS printers and also we do not hassle with using a remote
          PPD file. Now one can change PPD option defaults with
          printer setup tools or the lpadmin command and they get
          preserved in the next cups-browsed sessions.
        - if we are using the implicitclass backend CUPS does not make
          the server's PPD file available on the client any more. To
          fix this, we download the PPD file when creating an
          implictclass:... queue and apply it to the queue. This way
          the options of the printer(s) are always available for
          enumeration, especially in print dialogs (Bug #1372). We
          modify the local copy setting any options saved from the
          previous session and inhibiting local execution of filters
          (as the driver for the remote printer is not necessarily
          available locally).
        - cups-browsed: Added flag to inhibit auto-backup of option
          settings by the on_printer_modified() notification handler
          during print queue setup and removal.
        - cups-browsed: Let the printer_record() function always
          return the master record for the printer name and not an
          arbitrary duplicate.
        - cups-browsed: Fixes in the functionality for saving option
          settings: Make sure to not save the same option twice with
          different values, do not save the "printer-is-shared" option
          (errors out when re-applying option in the next session).
        - cups-browsed: Treat discovered printers correctly also if
          they use a non-standard port, even if several CUPS daemons
          are running on the same server but on different ports. This
          also improves the support of a sandboxed printing stack.
        - cups-browsed: Close http connections opened for polling
          properties of IPP network printers, to fix a possible memory
          leak.
        - cups-browsed: Cleaned up HTTP access to local and remote
          CUPS servers and IPP printers, to assure that the local CUPS
          daemon is always accessed the same (user-defined) way
          (domain socket/localhost:port). This especially prevents
          cups-browwsed hanging on shutdown (Debian bug #832637).
        - cups-browsed: Fixed clustering equally-named queues of
          different remote servers, to assure to have one master
          referencing to all duplicates and not a daisy chain of
          duplicate references.

CHANGES IN V1.11.2

        - cups-browsed: Allow turning off the use of CUPS' domain
          socket via cups-browsed.conf.
        - foomatic-rip: When run as regular CUPS filter use preferably
          /etc/cups/foomatic-rip.conf (or whereever the CUPS
          configuration files reside, according to the CUPS_SERVERROOT
          environment variable) as configuration file. This way we can
          more easily run the printing stack in a sandbox.
        - foomatic-rip: When run as regular CUPS filter, read the PPD
          through CUPS and get the print queue name by environment
          variable.
        - bannertopdf, foomatic-rip, gstoraster, mupdftoraster,
          pdftoopvp, pdftoraster: Do not use build-time hard-coded
          paths, but always the paths from the environment variables
          which CUPS sets when calling its filters. This is needed to
          run the printing stack in a sandbox.

CHANGES IN V1.11.1

        - mupdftoraster: Lowered the priority (raised the cost value)
          in the cupsfilters-mupdf.convs file so that in a full
          cups-filters installation MuPDF is not prioritized.

CHANGES IN V1.11.0

        - pdftops: Added support for MuPDF as PDF renderer. MuPDF can
          be selected by the "pdftops-renderer=mupdf" option.
        - rastertops: Removed unneeded page logging.
        - rastertops: Fixed DSC comments, some were only preceded by
          a single '%' instead of a double "%%".
        - gstoraster, pdftops, foomatic-rip: Use -dNOMEDIAATTRS when
          calling Ghostscript. This way Ghostscript does not try to
          match media sizes with internal lists.
        - Build system: Allow building cups-filters without Poppler
          (--disable-poppler in ./configure command line) This skips
          the build of pdftoraster, bannertopdf, pdftoijs, and
          pdftoopvp and the installation of these filters and their
          auxiliary files. With this cups-filters can be easily
          installed on mobile/appliance systems with MuPDF as the only
          PDF interpreter.
        - mupdftoraster: Added filter to support MuPDF as PDF
          interpreter. MuPDF is a lightweight PDF interpreter
          especially interesting for mobile systems and
          appliances. Thanks to Pranjal Bhor for contributing this as
          part of his Google Summer of Code project.
        - gstoraster: Fix setting of width and height of the page in
          pixels when there is no Resolution option in the PPD.
        - cups-browsed, implicitclass: Avoid the use of files for the
          communication between cups-browsed and the load-balancing
          backend implicitclass. Instead of in a file, cups-brwsed
          stores the destination server name in an option (which CUPS
          saves in printers.conf) which the implicitclass backend
          reads via IPP. This not only makes it easier to run
          cups-filters in a sandbox, but it is also better in terms of
          system security.
        - cups-browsed: Allow configuring where the files produced by
          cups-browsed will get stored. This makes it easier to run
          cups-filters in a sandbox.
        - beh: Fixed printing multiple copies with beh (Ubuntu bug
          #1605514).
        - cups-browsed: Fixed several memory leaks, especially when
          using IPP requests and DNS-SD TXT record look-ups. Thanks to
          Ivo Straka for finding them with Valgrind and supplying
          patches to fix them (Bug #1365, Bug #1368, Ubuntu bug
          #1203276).
        - libcupsfilters: Added missing "#include <cups/ppd.h>" to
          make sure that the package builds on all systems (Bug
          #1366).

CHANGES IN V1.10.0

        - texttotext: Added new filter for text-only printers written
          in C, to use the CUPS library to access the print queue's
          PPD file, with a lot of options to fit practically all
          printer models amd paper sizes, support for CUPS' page
          management options, and support for configuring the print
          queue and controlling the options by the PPD file. The PPD
          is now generated on-the-fly by cupsfilters.drv.
        - textonly: Removed the old script-based filter and its PPD
          for text-only printers.
        - rastertops: Added new filter to turn PWG Raster into
          PostScript, in preparation for MuPDF support. Thanks to
          Pranjal Bhor for contributing this as part of his Google
          Summer of Code project.
        - gstoraster, gstopxl, gstopdf, pstopdf: Integrated
          functionality of script-based filters pstopdf and gstopxl
          into gstoraster filter as script-based filters cannot access
          the print queue's PPD file with current CUPS due to change
          of PPD file permissions.  To make gstoraster always produce
          the correct output format (CUPS/PWG Raster, PDF, PCL-XL) it
          is called via new wrapper scripts (gstopdf, gstopxl) which
          set an environment variable telling the format. The old
          filter scripts got removed.
        - imagetops, texttops: Do not use $0 in the wrapper scripts,
          when CUPS calls filters, it passes the queue name as $0, not
          path and name of the called filter.
        - cups-browsed: When creating local queues for discovered IPP
          network printers always create PPD files and if the
          information supplied by the printer via IPP is insufficient
          use information from the DNS-SD entry or default values
          suitable for most printers. Use System V interface scripts
          only on explicit request in cups-browsed.conf. This change
          is to address the fact that System V interface script
          support is removed from CUPS 2.2.x and later for security
          reasons.
        - pstopdf: Make the filter only get installed if Ghostscript is
          present and also moved its conversion rules into the
          cupsfilters-ghostscript.convs file.
        - cups-browsed: Fixed crash when trying to get debugg logging
          both to the terminal and into a file.
        - libcupsfilters: Fixed crash of pdftoraster when the color
          space is an RGB space (3 colors) with 1 bit color
          depth. Here we need to add one bit to the pixels (to get 4
          bits per pixel) to align the pixels with the bytes.
        - cups-browsed: From cups-browsed.service removed the unneeded
          "Wants=cups.service" as we have "Requires=cups.service"
          (Debian bug #827455, #827457).
        - foomatic-rip: Updated man page for removed page logging
          facility.
        - pdftops: Also added Dell to the list of manufacturers whose
          printers need Poppler's PostScript to work around their
          PostScript interpreter bugs (Debian bug #827040).

CHANGES IN V1.9.0

        - foomatic-rip: Removed page logging via insertion of PostScript code.
          This works only with Ghostscript and PostScript input and even
          then it can break things or simply not work. We do the page logging
          for foomatic-rip in pdftopdf now, which is more universal and more
          reliable.
        - sys5ippprinter: Added page logging (to /var/log/cups/page_log)
          functionality.
        - pdftopdf: Added functionality for logging pages in the
          /var/log/cups/page_log file. Logging can also be forced or
          surpressed via command line (page-logging=on/off/auto) and
          page logging is also done for filters which should do but
          actually do not do: foomatic-rip, gstopxl, hpps (CUPS issue #4798,
          Ubuntu bug #1585380).
        - pdftopdf: Whitespace and indentation clean-up.
        - README: Removed the documentation of the old Poppler-based pdftopdf
          filter which is not included any more.
        - cups-browsed: Do not schedule failed operations for later repetition
          during shutdown.
        - cups-browsed: Added support for debug logging into a file (usually
          /var/log/cups/cups-browsed_log, to be activated via "-l" or
          "--logfile" option or via "DebugLogging file" option in
          cups-browsed.conf.
        - cups-browesd: Consistent use of debug_printf() in the LDAP support.
        - cups-browsed: Added "Requires=cups-service" to the
          cups-browsed.service file, so that systemd keeps CUPS running while
          shutting down cups-browsed on system shutdown (Ubuntu bug #1579905).
        - README: Extended pdftopdf's documentation.
        - README: Added documentation for the pdfAutorotate option in
          pdftopdf.
        - gstoraster: Treat status output of the waitpid() function properly,
          to avoid gstoraster exiting with zero status when Ghostscript
          exited with non-zero status or got terminated by a signal
          (Bug #1354).
        - README: Fixed typos. Thanks to Pranjal Bhor (bhor dot pranjal at
          gmail dot com) for the patch.
        - braille: Recognize application/vnd.cups-pdf-banner MIME type and
          read standard input directly instead of using /dev/stdin.
        - braille: Drop output of the "type" command when checking the
          presence of helper utilities.
        - braille: Do not send EOF twice to the braille embosser.
        - cups-browsed/sys5ippprinter: Fixed documentation about the allowed
          input formats for auto-created network printer queues using
          sys5ippprinter, also improved NEWS entry about renaming of
          sys5ippprinter (Debian bug #819665).

CHANGES IN V1.8.3

        - cups-browsed: When creating or modifying a local print queue
          set the printer-is-shared bit to false in a separate IPP
          request as this operation errors on queues directly pointing
          to remote CUPS queues with the IPP backend. This way we can
          ignore the error and assure that all other settings are
          applied (Ubuntu bug #1560099).
        - Fixed pkg-config support so that $PKG_CONFIG gets used and
          cross compilation works (Bug #1347).
        - gstoraster: Put conversion rules for this filter into a
          separate file, so that they do not get installed when we
          build without Ghostscript support (Bug #1346).
        - Allow disabling dependencies on IJS (Bug #1345).
        - pdftops: Switch to Poppler as PDF renderer also for the
          Apple LaserWriter 12/640, to work around a bug in the
          printer's PostScript interpreter (Bug #1344).

CHANGES IN V1.8.2

        - Allow disabling dependencies on Ghostscript and Foomatic
          (Bug #1342).
        - cups-browsed: Optionally generate also local queues pointing
          to remote raw queues. Usually only queues pointing to remote
          queues with PPD/driver are created (Debian bug #814020,
          Debian bug #756724).

CHANGES IN V1.8.1

        - cups-browsed: Do not disable queues which still have jobs (and
          therefore cannot be removed) when avahi-daemon goes away, the
          print server is most probably still available and printing can
          be continued. Especially important on mobile devices where
          avahi-daemon is shut down when the print dialog is closed (and
          the job(s) still printing).

CHANGES IN V1.8.0

        - COPYING: Replaced the COPYING file by a file in Debian format,
          derived from Debian's file but updated and corrected.
        - braille: Added info about additional packages needed for Braille
          printing to the README file.
        - braille: Let the Braille filters use lou_translate of
          liblouis if the more sophisticated file2brl of liblouisutdml
          is not installed. This is decided on at run time, so later
          installation of liblouisutdml will let the filters
          automatically switch to file2brl.
        - braille: Allow to build with Braille support also if
          liblouis is not installed at build time.
        - braille: Added checks for the presence of helper tools, to
          get clear messages in the CUPS error_log if something is
          missing.
        - Fixed copyright headers of files inherited from CUPS or
          derived from CUPS, pointing to COPYING as license info file,
          removing Apple exceptions, removing hints that a missing
          license info file can be found at www.cups.org, and removing
          "$Id" SVN file ID placeholders.
        - Updated COPYING file for missing implicitclass and beh
          backends.

CHANGES IN V1.7.0

        - cups-browsed: Added possibility to trigger the auto shutdown
          by the queues of cups-browsed being without jobs. Before
          auto shutdown was only possible when all queues have gone
          away. This allows auto shutdown on mobile devices where
          avahi-daemon is also used for other things than printing.

CHANGES IN V1.6.0

        - cups-browsed: Fixed use of CUPS domain socket, both
          detection during build process and permission check at
          runtime.
        - foomatic-rip: Fixed buffer overflow when reading environment
          variables CUPS_FONTPATH, CUPS_DATADIR, and GS_LIB (Bug
          #1336).
        - beh: Introduced beh, the Backend Error Handler, a wrapper
          backend to make handling of backend errors more
          configurable. This backend is a C re-write of the beh
          backend written in Perl which was part of the former
          foomatic-filters package. Several people asked for beh
          getting moved to cups-filters.
        - braille: Make image printing working also if ImageMagick
          generates formatted images without header.
        - braille: If the user does not select a Braille translation,
          let the embosser do the translation.
        - cups-browsed: Added version info to help screen and start-up
          in debug mode, call help screen also via "--version" option.
        - cups-browsed: Minor improvements in help screen and man
          page.

CHANGES IN V1.5.0

        - cups-browsed: Allow use of an alternative configuration file
          via the "-c" command line option.
        - cups-browsed: Allow supplying configuration settings via the
          command line using the "-o" command line option.
        - cups-browsed: Command line help via the "-h" or "--help"
          command line option.

CHANGES IN V1.4.0

        - foomatic-rip: SECURITY FIX: Also consider the semicolon
          (';') as an illegal shell escape character. Thanks to Adam
          Chester (adam dot chester at pentest dot co dot uk) for the
          hint (CVE-2015-8560).
        - brftoembosser, imagetobrf, imagetoubrl, imageubrltoindexv3,
          imageubrltoindexv4, textbrftoindexv3, textbrftoindexv4,
          texttobrf, braille.convs, braille.types, generic-brf.drv,
          indexv3.drv, indexv4.drv: Added support for Braille
          embossing via CUPS. Text and even images can now be sent to
          a Braille embosser like to a printer. Thanks to Samuel
          Thibault (samuel dot thibault at ens-lyon dot org) for this
          contribution.

CHANGES IN V1.3.0

        - cups-browsed: Added new BrowseFilter directive in
          cups-browsed.conf.  This directive allows filtering of the
          remote printers to be accepted on most properties/metadata
          supplied with the DNS-SD broadcasts. This allows, in
          addition to BrowseAllow/BrowseDeny/BrowseOrder, to reduce
          the amount of printers listed in print dialogs to a more
          useful amount.
        - cups-browsed: Added support for BrowseDeny and BrowseOrder
          directives in cups-browsed.conf.
        - cups-browsed: Let the BrowseAllow lines in cups-browsed.conf
          also apply to remote printers discovered via DNS-SD.
        - cups-browsed: Auto-create queues for PCL-5c/e printers but
          not for HP inkjet printers (which also advertise themselves
          as PCL printers).
        - cups-browsed, sys5ippprinter: Recognize PCL-5c/e printers
          not only by the application/vnd.hp-pcl MIME type but also by
          application/pcl and application/x-pcl.

CHANGES IN V1.2.0

        - cups-browsed: When using IP-address-based device URIs via
          the "IPBasedDeviceURIs" directive in cups-browsed.conf, add
          two additional settings to restrict the used IP addresses to
          either only IPv4 addresses or only IPv6 addresses.
        - foomatic-rip: SECURITY FIX: Also consider the back tick
          ('`') as an illegal shell escape character. Thanks to Michal
          Kowalczyk from the Google Security Team for the hint
          (CVE-2015-8327).

CHANGES IN V1.1.0

        - Version numbering scheme changed: Releases with feature
          addition/change have the minor number increased now, pure
          bug fix releases get the revision number increased, to make
          use of the minor number which stayed zero all the time.
        - cups-browsed: Added "DefaultOptions" directive to
          cups-browsed.conf to allow defining default option settings
          for local queues to be generated for newly appearing remote
          printers.
        - cups-browsed: Removed assert() calls which remained from
          copy and paste in the very beginning of the development of
          cups-browsed.  assert() is only for use during debugging and
          should not be used in production code.
        - cups-browsed: Let option settings of a generated print queue
          be saved before taking the queue down so that when the remote
          printer appears again all user changes get restored, making
          user changes permanent on generated queues.
        - foomatic-rip: Fixed string length for shell path constant, to
          work also with systems having longer paths (Bug #1325)
        - cups-browsed: Added a mode in which IP-based device URIs
          for the generation of local print queues are used, for
          cases with problems in local host name resolution.
        - foomatic-rip: Use -dFirstPage=... and -dLastPage=... only
          if really needed (Bug #1324).
        - cups-browsed, implicitclass: Make the load-balancing
          configurable so that one can select whether the jobs get
          queued up locally like in a CUPS class or whether they get
          immediately distributed to the remote servers letting them
          queue up there.

CHANGES IN V1.0.76

        - cups-browsed: Make build also working with BSD make (Bug
          #1310).
        - cups-browsed, implicitclass: Let the load-balancing queue up
          the jobs in the local (generated) queue until a free (idle,
          enabled, and accepting jobs) remote queue is found (check
          every 5 sec if no free queue available). This gives a more
          even distribution of the work amongst the servers and
          protects against the case that a bunch of jobs gets
          inaccessible or lost if one of the servers fails.
        - cups-browsed: Let the load-balancing also check whether the
          destination queue is actually accepting jobs.
        - cups-browsed: If a generated queue is not removed on
          shutdown of cups-browsed due to remaining jobs in it,
          re-enable it in the next cups-browsed session even if it was
          disabled by something other than cups-browsed.
        - implicitclass: Clean up debug and error messages.
        - implicitclass: Fix exit codes for immediate retry of jobs.
        - cups-browsed: Make absence of CUPS notifications via D-Bus
          non-fatal and fall back to the old behavior of cups-browsed
          (fail-over instead of load balancing for equally-named
          remote queues, do not remove generated queue if it is
          default instead of default printer management). This solves
          problems of CUPS and/or cups-browsed built without D-Bus
          support or absence of D-Bus on the system (Bug #1316).
        - cups-browsed: Do not use g_warning() function, sneaked in by
          copy and paste of CUPS subscription functions.

CHANGES IN V1.0.75

        - texttopdf: Really support BoldItalic (original texttops just maps
          BoldItalic to Bold).
        - texttopdf: Fixed segfault when outputting BoldItalic (Bug #1314).

CHANGES IN V1.0.74

        - cups-browsed: Added NULL check when getting the notification of
          a printer starting to process a job and checking whether this
          printer is created by cups-browsed with the implicitclass:
          backend (Ubuntu bug #1488524).
        - backends: Include unistd.h and fcntl.h in backend-private.h for
          all platforms, not only Linux, so that the backends build also
          on non-Linux platforms (Bug #1308).
        - cups-browsed: Do not schedule printers for update when they are
          already marked as disappeared.
        - cups-browsed: Added sanity checks when saving the default printer
          selection in a file.
        - cups-browsed, implicitclass: If remote queues disappear or
          cups-browsed shuts down and a cups-browsed-generated queue still
          has jobs and needs to be kept therefore, disable it and re-enable
          it when cups-browsed starts again and/or the remote queue(s) re-
          appear(s). This avoids repeated retries of the jobs while the
          remote server is not available, causing unneeded system load and
          battery consumption.
        - cups-browsed: After polling info from remote CUPS servers to find
          the best destination job, set the default CUPS server back to local.

CHANGES IN V1.0.73

        - cups-browsed: Added missing
          utils/org.cups.cupsd.Notifier.xml file.

CHANGES IN V1.0.72

        - cups-browsed, implicitclass: Added load balancing
          functionality. If there are several remote CUPS printers
          with the same name, they for locally a cluster represented
          by a print queue with this name. This printer prints through
          a special backend (implicitclass) which makes cups-browsed
          find the best destination remote queue (fewest jobs,
          enabled) for this job.
        - cups-browsed: Added protection against accidental deletion of
          print queues generated by cups-browsed. These queues now get
          automatically re-created.
        - cups-browsed: Added LDAP support. Appropriately configured via
          cups-browsed.conf remote printers made available via LDAP will be
          looked up and local queues pointing to them created. Thanks to
          Raphael Geissert (atomo64 at gmail dot com) for contributing this
          patch (Debian bug #795185).
        - cups-browsed: Introduced new handling for the default
          printer using cache files. So we do not need to keep an auto-generated
          queue because it is set as default printer. If the auto-generated
          queue disappears, the old local printer is set as default again and
          when it re-appears it returns to be the default printer.
        - cups-browsed: Added infrastructure for subscribing to CUPS
          notifications for things like improved default printer handling,
          load balancing, ...
        - foomatic-rip: Prevent crash when supplying "media" option with empty
          value ("media=", Ubuntu bug #1479871).
        - pdftoopvp: Adaptations to API changes on Poppler 0.34.0, note that
          this patch disables color management in this filter. Thanks to
          Vincent le Garrec and Andreas K. Huettel for the patch (Bug #1301,
          Gentoo bug #554782).
        - libcupsfilters, bannertopdf, foomatic-rip, gstoraster, pdftoijs,
          sys5ippprinter, pdftoopvp, pdftops, pdftoraster, rastertoescpx,
          urftopdf, texttopdf: Miscellaneous fixes for build compatibility with
          different platforms, like config.h as very first include and so on.
          Thanks to Richard Palo for the patch (Bug #1264).
        - texttopdf: Request the generic 'monospace' font alias from fontconfig
          instead of the hard-coded FreeMono. Thanks to Fabian Greffrath
          (fabian at debian dot org) for the patch (Debian bug #788048).
 
CHANGES IN V1.0.71

        - texttopdf: The Page allocation is moved into textcommon.c, where it
          does all the necessary checking: lower-bounds for CVE-2015-3258 and
          upper-bounds for CVE-2015-3279 due to integer overflows for the
          calloc() call initialising Page[0] and the memset() call in
          texttopdf.c's WritePage() function zeroing the entire array. Thanks
          to Tim Waugh from Red Hat for the patch.
        - texttopdf: Upper-bounds checking (CVE-2015-3279).

CHANGES IN V1.0.70

        - texttopdf: Fixed buffer overflow on size allocation of texttopdf
          when working with extremely small line sizes, which causes the size
          calculation to result in 0 (CVE-2015-3258, thanks to Stefan
          Cornelius fro Red Hat for the patch).
        - cups-browsed: leak fixes
        - cups-browsed: Further BrowseAllow fixing
        - cups-browsed: BrowsePoll is an array of pointers, not structures,
          so allocate room for the pointers
        - cups-browsed: Prevent NULL dereference when handling BrowseAllow
          without value
        - cups-browsed: Use memory deallocation function corresponding to
          allocation function used
        - cups-browsed: Fixes for glib source handling (Red Hat bug #1228555)
        - foomatic-rip: Allow using another shell than /bin/bash using the
          "--with-shell=..." option for "./configure". Thanks to Leonardo
          Taccari for the patch (Bug #1288).

CHANGES IN V1.0.69

        - cups-browsed: When generating a PPD for an auto-discovered IPP
          network printer, create a "ColorModel" option only if valid
          choices are reported for it by the IPP printer.
        - cups-browsed: Updated PPD file generator for auto-generated queues
          for IPP network printers from the CUPS 2.1.x upstream code, so that
          floating-point numbers are written in a locale-neutral way
          (CUPS STR #4579).
        - cups-browsed: When checking whether a queue name already exists
          as a locally defined queue, do case-insensitive comparing as for
          CUPS printer names are case-insensitive. This assures that
          already existing queues do never get overwritten.
        - cups-browsed: Added "IPPPrinterQueueType Auto/PPD/NoPPD" directive
          to cups-browsed.conf to allow controlling how cups-browsed
          creates queues fr native IPP network printers: with PPD, with
          System V interface script, or selecting automatically.
        - pdftopdf: Center Landscape-oriented jobs correctly on the page
          if the "fitplot" or "number-up" options are used (Bug #1284).
        - pstopdf: Removed "-dUseCIEColor" from the Ghostscript command line.
          In modern Ghostscript versions (9.11 and newer) it is recommended to
          not use it with the pdfwrite and ps2write output devices any more.
        - imagetopdf: Corrections in PDF output: Let evince display the PDF
          with the correct size including margins and let ghostscript not
          complain about an invalid xref entry.
        - cups-browsed: Do not add options to the System V interface script
          which calls sys5ippprinter but set the options as defaults for the
          CUPS queue in printers.conf.
        - cups-browsed: When auto-generating a PPD-less print queue for an
          IPP network printer, determine default page size, unprintable margins,
          and color space from the printer via an IPP request.
        - imagetopdf: Debug logging should be only controlled by the LogLevel
          of CUPS, not by an awkward build time switch.
        - cups-browsed: Determine from the TXT records of the Bonjour broadcast
          of an IPP network printer whether it has color and duplex
          capabilities and if yes, let auto-generated PPD-less print queues
          use appropriate command line options to make use of these
          capabilities.
        - imagetopdf: Make this filter also work with auto-generated PPD-less
          print queues for IPP network printers.
        - sys5ippprinter: Renamed from pdftoippprinter to reflect that
          it is a System 5 interface script and does not accept only
          PDF as input.
        - pdftoippprinter: Support also PWG Raster and JPEG as input formats
          so that an auto-generated, PPD-less queue for an IPP printer emulates
          an IPP Everywhere printer.

CHANGES IN V1.0.68

        - cups-browsed: Numeric IDs for GSources of the glib event
          loop must be positive integers greater than zero according
          to the documentation of the g_source_get_id() function.
          Taken care of this at all places.
        - cups-browsed: Added conditionals so that it also builds with
          CUPS 1.5.x (but then withou support for automatically creating
          queues for IPP network printers). Thanks to Johannes Meixner from
          SUSE for the patch (Bug #1268).
        - Ricoh-PDF_Printer-PDF.ppd: Added PPD file for Ricoh's PDF printers
          (experimental). Thanks to Ulrich Wehner from Ricoh for the file.

CHANGES IN V1.0.67

        - cups-browsed: Use g_source_remove() instead of g_source_destroy()
          for killing auto shutdown timers (Ubuntu bug #1427344).

CHANGES IN V1.0.66

        - cups-browsed: SECURITY FIX: Fixed a bug in the remove_bad_chars()
          failing to reliably filter out illegal characters if there are two
          or more subsequent illegal characters, allowing execution of
          arbitrary commands with the rights of the "lp" user, using forged
          print service announcements on DNS-SD servers (Bug #1265).
        - pdftoopvp: Added conditionals to also build with Poppler 0.31.0
          and newer. Thanks to Armin K. (krejzi at email dot com) for the
          patch (Bug #1254).

CHANGES IN V1.0.65

        - cups-browsed: Listen for NetworkManager changes (Red Hat bug #975933).
        - cups-browsed: Fix for memory leak introduced in BZR rev 7059.
        - cups-browsed: Memory leak/uninit fixes.
        - cups-browsed: Cache prepared browse data to send.
        - cups-browsed: Only get local notifications once per BrowsePoll run.
        - cups-browsed: Fix BrowsePoll now notifications work properly. Need 
          to maintain a list of printers to keep alive for the case of there
          being no notifications of changes.
        - cups-browsed: Use local browsepolling for getting initial printer
          list.
        - cups-browsed: Ignore browse packets for deleted printers.
        - cups-browsed: Cache connection to local cupsd.
        - cups-browsed: Use notifications to track local printers.
          This avoids expensive calls to cupsGetDests().
        - cups-browsed: Manage subscriptions for local browsepolling.
        - cups-browsed: Track notify-sequence-number for notifications.

CHANGES IN V1.0.64

        - cups-browsed: Added PPD file generator for IPP Everywhere
          printers.  If auto-setup of discovered IPP printers is
          activated ("CreateIPPPrinterQueues Yes" in
          cups-browsed.conf), the printer provides suitable capability
          information via a Get-Printer-Attributes IPP call, and
          prints PWG or PostScript input, a PPD is auto-generated
          based on the Get-Printer-Attributes IPP response. Otherwise
          a System-V interface script is used as befreo. Advantage of
          the PPD file is that current print dialogs aloow access to
          the options, no IPP request done by the dialog is
          required. The PPD generator code is borrowed from the CUPS
          2.1.x development code repository. It will perhaps be
          removed in the future when CUPS provides proper API function
          for its PPD generator.

CHANGES IN V1.0.63

        - foomatic-rip: Added hint to man page that direct, spooler-less mode
          is mainly for testing and debugging (Bug #1253).
        - foomatic-rip: Added a symlink of the filter to the binary executable
          directory (usually /usr/bin), so that LSB compliance test scripts
          work (Bug #1255).
        - cups-browsed: Fixed CUPS Browsing timeouts. Thanks to Tim
          Waugh from Red Hat for the patch (Bug #1252, Red Hat bug
          #1189254).

CHANGES IN V1.0.62

        - cups-browsed: Allow underscore characters in print queue names.
          Thanks to Tim Waugh from Red Hat for the bug report (Bug
          #1241).
        - pdftops: Apply workarounds for Kyocera also to Utax printers
          as Utax uses hard- and software from Kyocera. Thanks to Edward
          Huang from Kyocera.
        - cups-browsed: Added support for "BrowseAllow All" in the
          cups-browsed.conf file.
        - cups-browsed: Reorder inclusion of headers for compatibility
          with NetBSD (Bug #1235).
        - imagetopdf, pdftopdf: Correct handling of hardware copies in
          PJL/JCL and/or when the PPD file has a "Copies" option.

CHANGES IN V1.0.61

        - cups-browsed: Fixed memory leak when a
          cups-browsed-generated print queue is the default
          printer. Thanks to Tim Waugh from Red Hat for the patch (Red
          Hat bug: #1119290).
        - cupsfilters.drv, *-PDF.ppd, textonly.ppd: Added
          "*cupsFilter2: ..."  lines to the PPD files to support
          data-format-specific behavior of backends, especially of the
          IPP backend.

CHANGES IN V1.0.60

        - cups-browsed, pdftoippprinter: Do not confuse the PDL "PCLm"
          with "PCL". The former is a proprietary, PDF-based raster
          format and has nothing to do with PCL.
        - cupsfilters.drv: Corrected the CMD: field of the device ID,
          it must read "PWGRaster" there to conform to the PWG standard.

CHANGES IN V1.0.59

        - cupsfilters.drv: Added PPD file for a Generic IPP Everywhere
          Printer, generating PWG Raster output.
        - gstoraster, pdftoraster, imagetoraster: Allow PWG Raster
          output with print queues using a PPD file, using the new
          "PWGRaster" PPD attribute.
        - pdftoraster: Removed "cm_disabled" flag in selectConvFunc()
        - libcupsfilters: Allowed color management to continue while
          invalid input
        - rastertopdf: Streamlined PDF conversion code
        - rastertopdf: Invert all CUPS_CSPACE_K documents by default
        - foomatic-rip: Clean trailing white space from PPD file lines to
          avoid a segfault caused by it (Bug #1227).

CHANGES IN V1.0.58

        - pdftoraster: Changed ICC profile get function to accept a
          PPD fallback profile.
        - pdftoraster: Fixed handling of cupsColorSpaces 18,19,20.
        - rastertopdf: Added test feature to force color management if
          "profile=" option is specified.
        - rastertopdf: Grayscale color conversion now properly inverts
          bits.
        - rastertopdf: Code cleanup for prepare_pdf_page().
        - rastertopdf: Implemented basic 8bit->8bit color space
          conversions.
        - rastertopdf: Added black point compensation.
        - rastertopdf: Added handling of color rendering intent.
        - gstoraster, imagetoraster, pdftoraster, rastertopclx,
          rastertopdf, foomatic-rip: Use color management functions in
          libcupsfilters.
        - libcupsfilters: Modified code formatting and documentation in
          the color management functions.
        - libcupsfilters: Fixed string handling and added debug log
          messages in the color management functions.
        - libcupsfilters: Fixed Adobe RGB matrix for proper rendering
          (transpose)
        - libcupsfilters: Moved color management functions from the
          individual filters to the libcupsfilters library.

CHANGES IN V1.0.57

        - rastertopclx: Fixed implicit declaration of
          colord_get_inhibit_for_device_id.
        - Build system: Explicitly link to libm as -lm was dropped
          from cups-config --libs.
        - libcupsfilters, foomaticrip, gstoraster, imagetoraster,
          pdftoraster, rastertopclx, rastertopdf: Handle absence of
          colord or D-Bus gracefully (Ubuntu bug #1356405).

CHANGES IN V1.0.56

        - rastertopdf: Some code polishing and removal of now unneeded
          functions
        - rastertopdf: Reduced color space handling to only
          PWG-supported color spaces
        - rastertopdf: Added colorspace calibration function; included
          optional "/Alternate" PDF key for ICC profile embedding
        - rastertopdf: Colorspace sRGB now embeds srgb icc profile;
          implemented ICC Profile embedding (PDF 1.3 spec)
        - rastertopdf: Added basic color calibration
        - rastertopdf: Implemented ICC Profile creation code for IPP
          Everywhere (from PWG raster)
        - pdftoraster: Added colord handling of ICC profiles
        - kmdevices.cpp/.h: Added interface for Kolor Manager
        - cups-browsed: Do not consider a remote CUPS queue as raw if
          the TXT record is NULL as for queues broadcasted by the
          legacy CUPS method the TXT record does not exist. Now
          consider a queue with NULL TXT record only as raw if the
          domain entry is not empty (which tells that the queue is
          Bonjour-broadcasted (Bug #1223).
        - cups-browsed: Do also not mark a discovered printer as
          already provided by another server when the other server's
          queue has "unconfirmed" status. Mark the other queue with
          "disappeared" or "unconfirmed" status as duplicate of the
          discovered printer so that the new queue for the discovered
          printer does not get removed when the entry for the other
          queue times out.

CHANGES IN V1.0.55

        - pdftopdf: Fixed manual duplex by adding a blank page to evn
          pages if the total number of pages of the document is
          odd. Otherwise the last page of the document would stay in
          the input tray. This fixes also a side effect as the set of
          even pages reducing to a zero page job if the job consists
          of only one page, making Poppler's pdftops error out (Ubuntu
          bug #1340435).
        - cups-browsed: Do not mark a discovered printer as already
          provided by another server when the other server's queue has
          "disappeared" status. This queue can be from the same server
          before it changed its name.
        - cups-browsed: Do not create a local queue pointing to a
          remote raw queue (Ubuntu bug #1335211).
        - foomatic-rip, imagetoraster, pdftoraster, rastertopclx,
          rastertopdf: Added colord "device_inhibit" support for
          color-managed filters.
        - foomatic-rip: Let it also build correctly on systems which
          already provide the strlcat() and strlcpy() functions, like
          Mac OS X. Thanks to Matt Broughton for reporting this
          (bug #1215).
        - bannertopdf: Added support for PPD-less printing, especially
          one gets a useful test page with PPD-less queues now.
        - bannertopdf: Fixed "Printer Location" and "Driver Version"
          entries on the test page/the banners.
        - bannertopdf: Added new PDF template files which contain the
          text strings appropriate to the banners, before the banners
          were all equal, without text. Thanks to Johannes Meixner
          from SUSE/Novell for this fix (Bug #1209).
        - bannertopdf: Fixed Makefile to mark it dependent on
          libfontembed.la. Thanks to Tim Waugh from Red Hat for the
          patch (Red Hat bug #1106101).
        - pstopdf: Use "grep -E" instead of "grep -P" as the latter
          generates executable code and executes it, requiring
          "execmem" privileges which could be not available in some
          security policies. Thanks to Tim Waugh from Red Hat for the
          patch (Red Hat bug #1079534).
        - foomatic-rip: NetBSD does not provide a mkstemps() function,
          use appropriate workaround then (Bug #1211).
        - cups-browsed: Reorder inclusion of headers for compatibility
          with NetBSD (Bug #1212).
        - pdftoraster: Fixed segfault caused by introduction of
          "no-color-management" option (Bug #1214).
        - libcupsfilters: Let cupsRasterParseIPPOptions() also accept
          "pwg-raster-document-type" settings with hyphen between
          color space name and color depth.

CHANGES IN V1.0.54

        - pdftoraster: Support for output in the color spaces 18
          (CUPS_CSPACE_SW, sGray), 19 (CUPS_CSPACE_SRGB, sRGB), and 20
          (CUPS_CSPACE_ADOBERGB, Adobe RGB). No color management
          appropriate to these color spaces is added yet.
        - foomatic-rip, gstoraster, imagetoraster, pdftoraster,
          rastertopclx: added boolean option "no-color-management" to
          suppress all forms of color correction when
          color-calibrating the printer.
        - pdftops: Default to "hybrid" setting for the PDF->PostScript
          renderer.
        - pdftoraster: Produce correct (compressed) PWG Raster output
          when requested by using the correct mode in
          cupsRasterOpen().
        - rastertopdf: Added new filter to convert PWG Raster input
          into a PDF file (using QPDF). This filter makes CUPS
          supporting the PWG Raster input format which is required to
          be supported by IPP Everywhere printers, making a shared
          CUPS queue emulating an IPP Everywhere printer. This is a
          first implementation which supports the black, RGB, CMYK,
          sGray, sRGB, and Adobe RGB color spaces (all mapped to
          DeviceGray, DeviceRGB, and DeviceCMYK resp. in the PDF
          output) with 1, 8, and 16 bits per component color
          depth. sGray, sRGB, and Adobe RGB are currently also mapped
          to DeviceGray and DeviceRGB and do not have the correct
          color management yet, so color output is not absolutely
          correct. Note that mime.types of CUPS up to 1.7.2 has a bug
          which prevents PWG Raster to be recognized, the
          "priority(100)" of the rule needs to be changed to
          "priority(150)".
        - foomatic-rip: Corrected declaration of print_pdf() function in
          pdf.h file (Debian bug #748028).
        - foomatic-rip: Let it also build with uclibc which does not
          provide the mkstemps() function. Thanks to Andreas K.
          Huettel for the patch (Gentoo bug #509884).
        - cups-browsed: Create local queues also to access classes on
          remote CUPS servers (Ubuntu bug #1313741).
        - cups-browsed: Let a newly discovered printer not only
          overtaking an existing printer entry if it is from the same
          host (usually IPP -> IPPS) or without host entry
          (unconfirmed local queue from previous cups-browsed session)
          but also if it is marked disappeared. So printer entries get
          correctly migrated when things like a host name change of
          the remote server happen.
        - cups-browsed: Always do case-insensitive comparing of
          strings, as CUPS queue names and URIs are case-insensitive
          (CUPS STR #4411).

CHANGES IN V1.0.53

        - foomatic-rip: Fixed segfault when creating log file (Bug
          #1206).
        - cups-browsed: SECURITY FIX: Fix on usage of the
          "BrowseAllow" directive in cups-browsed.conf. Before, if the
          argument of a "BrowseAllow" directive is not understood it
          is treated as the directive not having been there, allowing
          any host if this was the only "BrowseAllow" directive. Now
          we treat this as a directive which no host can fulfill, not
          allowing any host if it was the only one. No "BrowseAllow"
          directive means access for all, as before (Bug #1204).
        - cups-browsed: SECURITY FIX: Further improvement on the fix
          in 1.0.51 as it was insufficient. In addition, some fixes
          against OOB access are done. Thanks to Sebastian Krahmer for
          the patch (SUSE/Novell bug #871327).

CHANGES IN V1.0.52

        - texttopdf: Make sure that margin changes for prettyprint
          get applied.
        - texttopdf, imagetopdf, imagetoraster: Range-check paper
          dimensions and margins taken from the PPD file and correct
          them if needed (Bug #1195).

CHANGES IN V1.0.51

        - cups-browsed: SECURITY FIX to prevent arbitrary code
          injection into the System V interface scripts generated for
          queues for discovered native IPP printers by a malicious IPP
          print service with forged make/model and/or PDL string.
 
CHANGES IN V1.0.50

        - pdftops: Let old HP LaserJet printers (model number without
          letter, like "LaserJet 3" or "LaserJet 4000") use Poppler
          instead of Ghostscript (Debian bug #742765).
        - pdftops: Improved workaround for Toshiba printers. Instead
          of using Poppler do not emit TrueType fonts with Ghostscript
          (Ubuntu bug #998087).
        - cups-browsed: Build the device URIs for all local queues we create
          with the CUPS library function httpAssembleURIf() for proper
          percent escaping of characters which are not allowed in URIs
          (Bug #1187).

CHANGES IN V1.0.49

        - pdftops: Use Poppler also for Toshiba printers (Ubuntu bug
          #998087).
        - pdftops: Fixed typo which always made PostScript level 2 being
          generated when using Poppler's pdftops (Ubuntu bug #1294370).

CHANGES IN V1.0.48

        - cups-browsed: Fix for a crash which happens on Bonjour reports of
          printers without "product", "usb_MDL", and "ty" fields in the
          text record (Ubuntu bug #1284834).
        - cups-browsed: In README and in the sample startup scripts/configs
          for System V Init and Upstart taken into account the fact that it
          is not required any more to start avahi-daemon before starting
          cups-browsed.

CHANGES IN V1.0.47

        - pdftoopvp: SECURITY FIX for CVE-2013-6474, CVE-2013-6475,
          and CVE-2013-6476: Introductionof gmallocn and gmallocn3
          to protect against arbitrary code execution with the
          privileges of the "lp" user via malicious PDF files. Also
          restrict the directory from where OPVP drivers can get
          loaded.
        - urftopdf: SECURITY FIX for CVE-2013-6473: Two heap-based
          buffer overflow flaws in urftopdf. If a malicious URF file
          were processed it could lead to arbitrary code execution
          with the privileges of the "lp" user.
        - pdftopdf: Fixed typo in initialization which sets the default
          value page border to an undefined value. Thanks to Helge
          Blischke for the patch.
        - cups-browsed: Check for changes of the URI of a queue which
          we have created and correct the URI if needed, especially if
          a queue was not removed on shutdown of cups-browsed (default
          printer or still having jobs) and before restart of
          cups-browsed the server's DNS-SD-provided has changed.
        - bannertopdf: Support PDF forms as banner template. This allows
          especially internationalized banner pages. Forms can contain
          fields for any CUPS/IPP value and get automatically filled
          Thanks to Andrew V. Stepanov from ALT Linux (Bug #1170,
          also first step to fix Ubuntu bug #1196986).

CHANGES IN V1.0.46

        - gstoraster: Ignore SIGCHLD, rely on waitpid instead. Thanks
          to Lauri Tirkkonen (Bug #1184).
        - gstoraster: Fix two instances of insufficient EINTR handling.
          Thanks to Lauri Tirkkonen (Bug #1184).

CHANGES IN V1.0.45

        - cups-browsed: Under Upstart load the AppArmor profile
          (Ubuntu bug #1276630).
        - cups-browsed: Added auto-shutdown feature for on-demand use
          of cups-browsed (for example on mobile devices). With auto
          shutdown active, cups-browsed terminates after a certain
          time interval (30 sec by default) without having any remote
          printer to make available locally. The mode can be turned
          on, turned off (default) or set to automatically be off
          while avahi-daemon is running an on otherwise (controlled by
          avahi-daemon running on-demand). The mode and the timeout
          interval can be selected by command line options, the
          configuration file, and sending signals to cups-browsed
          (on/off only).
        - cups-browsed: To make Bonjour-discovered printers locally
          available avahi-daemon does not need to be started before
          cups-browsed and does not need to stay continuously running
          while cups-browsed is running. Bonjour-discovered printers
          are now added whenever avahi-daemon starts and removed
          whenever avahi-daemon stops and cups-browsed keeps
          running. This makes it easier to use cups-browsed in
          different system-configurations and also on systems with
          daemons running on-demand (like mobile systems).
        - foomatic-rip: Fixed pid_t/int function prototype mismatch
          (Bug #1182).
        - Fixed --with-pdftops-path and --with-pdftocairo-path options
          in ./configure (Bug #1181).
        - foomatic-rip: Do not use PATH_MAX for the length of static
          strings which are supposed to hold a command line. Use our
          own CMDLINE_MAX constant to set them to a length of 65535
          bytes (Ubuntu bug #1019662, Debian bug #738440).
        - pdftops: Log command lines of renderer (Ghostscript, pdftops,
          pdftocairo, acroread) and of pstops in CUPS' error_log (in
          debug mode).

CHANGES IN V1.0.44

        - README: Documented the "hybrid" choice for the PDF renderer
          in the pdftops filter.
        - pdftoippprinter: Handle missing Ghostscript/Poppler for all
          output formats.
        - cups-browsed: Minor corrections in the error messages.
        - gstopxl: Support for PPD-less printing. Resolution,
          InputSlot, Duplex, and ColorModel are set also without PPD
          file now.
        - Added another sample PPD file for a native PDF printer,
          Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd. Thanks to Adrian
          Johnson for contributing this PPD file.

CHANGES IN V1.0.43

        - cups-browsed: When automatically setting up a PPD-less print
          queue for an IPP network printer add make/model info as an
          additional "make-and-model" command line option to the call
          of the pdftoippprinter filter, this way filters can do
          make/model-specific exceptions (quirk rules).
        - pdftopdf: Take page size from the command line if not
          already given by the PPD file, this way
          "fitplot"/"fit-to-page" also works with PPD-less printing.
        - libcupsfilters: cupsRasterParseIPPOptions() did not set
          sRGB color space.
        - libcupsfilters: cupsRasterParseIPPOptions() did not set
          Tumble with "Duplex=DuplexTumble".
        - pdftopdf: Fixed software copy generation logic for printers
          with hardware copy generation, but without collate support
          (Ubuntu bug #1259240).
        - pdftops: Let Ghostscript output PostScript level 3 also for
          PPD-less printing, but not for HP lasers or when make/model
          info is not supplied.
        - cups-browsed: removed duplicate definition of ippSetVersion.
        - foomatic-rip: Take PATH_MAX constant from limits.h if
          available instead defining it's own version conflicting with
          kfreebsd. Thanks to Peter Green for the patch (Debian bug
          #731658).
        - pdftops: Ignore "landscape", "orientation-requested",
          "fit-to-page", and any page geometry options. The first two
          do not make sense on PDF input and therefore should only be
          used in ...topdf filters used before pdftopdf, the others
          are already taken care of by pdftopdf so that pdftops gets
          pages with print-ready page geometry.
        - pdftops: Added "-nocenter" to the call of "pdftops
          -origpagesizes" (Poppler/freedesktop.org bug #72312,
          comments #6 and #7).
        - pdftopdf: If there is no PPD file or no
          "*LandscapeOrientation:" keyword in the PPD file, rotate
          counterclockwise, not clockwise to fit a landscape-oriented
          page on a portrait-oriented sheet (See
          Poppler/freedesktop.org bug #72312, comment #6).
        - pstopdf: Support for the "landscape" and
          "orientation-requested" options (Ubuntu bug #1243484).
        - pdftops: Support for PPD-less printing on PostScript
          printers: duplex, resolution, input tray, color mode, and
          make/model (for quirk rules) can now be supplied by the
          command line, pdftopdf takes care of the page geometry.
        - libcupsfilters: cupsRasterParseIPPOptions() allows
          specifying resolutions without unit now, assuming dpi then
          (example: "600x600").
        - Fixed "--with-cups-rundir" and "--with-cups-domainsocket" 
          options in configure (Bug #1174).
        - pdftops: After fixing the output of rotated PDF pages
          (usually landscape-oriented pages rotated by pdftopdf) in
          Poppler (Poppler/freedesktop.org bug #72312) corrected the
          use of "pdftops -origpagesizes" in pdftops appropriately
          (Red Hat bug #768811).

CHANGES IN V1.0.42

        - pdftoippprinter: Check also the presence of Ghostscript and
          use pdftoraster if Ghostscript is missing.
        - gstoraster: At build time use the path for Ghostscript which
          our build system already finds for pdftops.
        - pdftoraster: Take into account rotate field in PDF header,
          when pdftopdf rotates a page to fit the paper it sets the
          rotate field and does not swap the width and height entries.
        - pdftoippprinter: Made PCL 5c/e printing working correctly,
          by first adding support for unprintable margins and
          defaulting to 12pt margins if no margin info is supplied,
          and second, by doing color printing always in RGB color
          space.
        - rastertopclx: Improved support for PPD-less printing,
          allowing color printing with (s)RGB color space. Output is
          in sRGB then.
        - rastertopclx: Determine page size and select correct PCL
          command for the page size more reliably, especially for
          landscape-oriented pages.
        - gstoraster, pdftoraster: Do correct PWG Raster output, allow
          switching to PWG Raster via "media-class=PwgRaster" option
          and CUPS Raster via "media-class=". Default for PPD-less
          printing is PWG Raster.
        - gstoraster, pdftoraster: Support applying unprintable
          margins for PPD-less mode with CUPS Raster output.
        - libcupsfilters: Added support for "media-left-margin",
          "media-right-margin", "media-bottom-margin", and
          "media-top-margin" IPP options to specify unprintable
          margins in 1/100th of a mm, to allow PPD-less printing with
          unprintable margins (esp. PCL 5c/e with rastertopclx).
        - libcupsfilters: Do not set "MediaClass" to "PwgRaster" when
          we request a CUPS Raster header and not a PWG Raster header.
        - libcupsfilters: Fixed typo in a debug message in the colord
          support part.
        - cupsfilters.convs: Corrected cost factor of
          vnd.cups-postscript -> vnd.cups-raster conversion with
          gstoraster, so that input data of the type
          application/vnd.adobe-reader-postscript is converted
          correctly (not via pstotiff). Thanks to Tim Waugh from Red
          Hat for this patch
        - cups-browsed: Fixed several memory leaks by adding missing
          free() calls and removing an unneeded strdup(). Thanks to
          Jaromir Koncicky from Red Hat for the patch (Red Hat bug
          #1027317).
        - Backends parallel and serial: Fixed logical expressions for
          error handling (Bug #1172).
        - libcupsfilters: Moved filter/colord.[ch] into the library as
          this code is now used by both gstoraster and foomatic-rip.
        - libcupsfilters: Made the names of the flags to tell that the
          header is already included unique in all API header files.
        - foomatic-rip: Moved foomatic-rip's upstream home from the
          foomatic-filters package to cups-filters, to make it easier
          for distributions to ship and maintain a complete printing
          stack and also to make upstream maintenance and development
          easier.
        - foomatic-rip: Removed support for all the non-CUPS printing
          environments as they are discontinued upstream. Now
          foomatic-rip only works as a CUPS filter and in a spooler-less
          direct mode, where the latter is mainly for testing and
          debugging. Thanks to Anshul Kushwaha (anshulkushwaha1 at gmail
          dot com) for doing this as a Google Summer of Code 2013 project.
        - foomatic-rip: Eliminated compiler warnings.
        - foomatic-rip: fixed "endswith()" string utility function.
        - foomatic-rip: Removed unneeded HAVE_DBUS conditionals.
        - gstoraster: Fixed build system for gstoraster use D-Bus for
          colord support.
        - libcupsfilters: Recognize more Adobe-generated CMYK JPEGs to
          take into account their inverted colors (Bug #1169).
        - pdftopdf: When checking whether double-sided printing is
          chosen, do not only check for the choice names "DuplexNoTumble"
          and "DuplexTumble" but also for "LongEdge", "ShortEdge",
          "Top", and "Bottom", as CUPS does (Bug #1167).

CHANGES IN V1.0.41

        - cups-browsed: Added support for automatic PPD-less setup of
          print queues for IPP printers discovered on the network via
          Bonjour. Supported are printers with known languages (PWG
          Raster, PDF, PostScript, PCL XL, PCL 5c/e), especially also
          IPP Everywhere printers. This functionality is especially
          ment for mobile devices to be able to print without printer
          setup tool and without printer driver/PPD collection.
        - cups-browsed: Fixed a Valgrind-reported issue.
        - pdftoippprinter: New filter for PPD-less printing. The filter
          will be configured as System-V interface script for a print
          queue for a discovered IPP network printer generated by
          cups-browsed.
        - rastertopclx: Added support for PPD-less printing. Without
          PPD the filter generates PCL 5e.
        - cups-browsed: Fixed socket leaks in recent IPP subscriptions
          changes. Thanks to Tim Waugh from Red Hat for the patch (Red
          Hat bug #1021512).

CHANGES IN V1.0.40

        - pdftops: Introduced new "hybrid" renderer: Here usually
          Ghostscript is used, but if the printer is a Brother,
          Minolta, or Konica Minolta Poppler's pdftops gets used. This
          is a quirk rule to work around bugs in the PS interpreters
          of the printers.
        - Fixed format string issues and added __attribute__ wording
          to printf-like functions to catch any regressions. Thanks to
          Tim Waugh from Red Hat for the patch.

CHANGES IN V1.0.39

        - pdftops: Fix for landscape PDF handling. Do not use the
          command line options "-origpagesizes" and
          "-choosePaperByPDFPageSize" of Poppler's pdftops utility on
          already processed PDF data. Thanks to Tim Waugh from Red Hat
          for the patch.
        - cups-browsed: Improve the efficiency of BrowsePoll by using
          IPP notifications when possible. It falls back to the
          previous behaviour if it is not possible to use this
          optimization. Thanks to Tim Waugh from Red Hat for the patch.

CHANGES IN V1.0.38

        - pdftops: Added "-dNOINTERPOLATE" to the Ghostscript command line
          for quicker processing of embedded bitmaps.
        - pstopdf: Added "-dUseCIEColor" to the Ghostscript command line
          to assure compatibility with newer Ghostscript versions (9.08
          and newer).

CHANGES IN V1.0.37

        - Added example configuration files for systemd and Upstart. Thanks
          to Tomáš Chvátal for the systemd file.
        - Build system: Make sure that gstoraster gets linked against the
          libcupsfilters of the currently built package and not of the
          system. Thanks to Tomáš Chvátal.
        - cupsfilters.convs: Reworked the cost factors of the filters to
          avoid bogus filter chains like pstotiff|imagetopdf instead of
          pstopdf|pdftopdf for PostScript->PDF. Thanks to Tim Waugh from
          Red Hat for the report.
        - pdftopdf: Accept additional command line options for PPD-less
          printing.
        - cups-browsed: Fixed building with CUPS 1.5.x and older,
          ippSetVersion() was missing under the accessor function definitions
          for backward compatibility.

CHANGES IN V1.0.36

        - Fixed libdl detection in configure. Thanks to Andreas Huettel and
          Yuta Satoh (Gentoo bug #478642).
        - cups-browsed: Allow BrowsePoll operation also access print queues
          on older CUPS servers. Thanks to David Mohr for the patch.
        - cups-browsed: Assure that it always applies to the local CUPS
          daemon and never to a remote one specified via client.conf
          (Ubuntu bug #1207203).
        - pdftoopvp, pdftoijs, pdftoraster, bannertopdf: Made code working
          with Poppler 0.24.x (Bug #1144).
        - gstoraster: Silenced compiler warnings.
        - gstoraster, pdftoraster: Added support for PPD-less printing
          controlled by IPP attributes (CUPS 1.7.x+ only).
        - gstoraster, gstopxl: Moved these filters from Ghostscript to
          cups-filters as upstream home.
        - libcupsfilters: Added new cupsRasterParseIPPOptions() API
          function for PPD-less printing controlled by IPP attributes
          (raster.h, CUPS 1.7.x+ only).
        - pdftopdf: Added support for page labels. "page-label" option and
          "CLASSIFICATION" environment variable. Thanks to Tim Waugh from
          Red Hat for the patch.
        - pdftops: If one or more of the PDF-to-PS renderers (Ghostscript,
          Poppler pdftops, Poppler pdftocairo, acroread) is not installed
          at build time, pre-fill the appropriate executable's path with the
          executable name to allow the use of this renderer when it gets
          installed later (Debian bug #716842).
        - cups-browsed: Do not resolve host names of remote printers discovered 
          via CUPS broadcasts (Bug #1141).
        - Added man pages for cups-browsed and cups-browsed.conf. Thanks to
          Brian Potkin for the contribution (Debian bug #714460).
        - Install also escp.h, it is useful for .drv files.

CHANGES IN V1.0.35

        - pdftoraster: Silenced compiler warning (Bug #1092).
        - bannertopdf: Fixed typo which prevented the host name to be shown
          (Bug #1115).
        - README: Fixed info about the PPD keyword cupsManualCopies (Bug
          #1086).
        - Modified the cost factors of the filters to avoid unneeded PDF
          conversion detours when the input data is PostScript. Instead of
          pstopdf->pdftopdf->pdftops and pstopdf->pdftopdf->gstoraster we
          get pstops and pstops->gstoraster now (Bug #1138).
        - pdftops: Added experimental support for pdftocairo as PDF renderer.
          Note that PostScript level 1 output and PDF input with color
          spaces other than DeviceRGB, DeviceGray, sRGB or sGray is not
          supported. PDFs generated by Cairo (for example when printing from
          evince) uses only supported color spaces. Thanks to James Cloos
          for the patch (Bug #1139).
        - cups-browsed: Changed default of browsing protocols fron none to
          both DNS-SD and CUPS.
        - pdftops: Let Poppler generally generate PostScript level 3 if the
          PPD identifies the printer as PS3 printer, make an exception of
          sending PostScript Level 2 only for HP's laser printers, to not
          compromise print quality and performance on all PS3 printers only
          due to some buggy HP models (Debian bug #712949, see also Ubuntu bug
          #277404).
        - Install pcl.h, it is needed by cupsfilters.drv. Thanks to Jiri
          Popelka from Red Hat for the patch (Bug #1133).
        - Make cups-filters building with automake 1.13. Thanks to Andreas K.
          Huettel (dilfridge) on IRC.
        - libcupsfilters, libfontembed, pdftopdf, texttopdf, cups-browsed:
          Fixed several resource leaks and other problems. Thanks to Jiri
          Popelka from Red Hat for the patches (Bug #1116).

CHANGES IN V1.0.34

        - cups-browsed: Fixed build with OpenBSD (Bug #1103).
        - pdftopdf: Enabled hardware copy generation, if available.
        - pdftopdf: Fixed evenDuplex logic.
        - cups-browsed: If a queue left over from the last session
          gets confirmed, fill in the data structure with the Bonjour
          parameters, also update the Bonjour parameters if a local
          queue is upgraded from IPP to IPPS.

CHANGES IN V1.0.33

        - cups-browsed: Added NULL check (Bug #1106).

CHANGES IN V1.0.32

        - cups-browsed: Shared algorithm to generate local queues based on
          browsed remote queue data between Bonjour and CUPS browsing, as the
          simpler method used for CUPS browsing could overwrite local print
          queues and had de-duplication problems, for example if the server
          appears on two IPs in the network (connected by both ethernet and
          WLAN).
        - cups-browsed: CUPS broadcasting also broadcasted non-shared,
          especially cups-browsed-generated printers. Switched to detection
          of non-shared printers by the appropriate bit in the printer-type
          bit field IPP attribute.
        - cups-browsed: Made CUPS broadcasting work also without BrowseAllow
          lines in cups-browsed.conf. In this case we accept all remote
          printers (Ubuntu bug #1163764).
        - README: Updated documentation for cups-browsed.
        - Added more comments and examples to /etc/cups/cups-browsed.conf.
        - cups-browsed: Added support for "...:<port>" extensions of
          BrowsePoll addresses. Thanks to Tim Waugh from Red Hat (Ubuntu
          bug 1159213).

CHANGES IN V1.0.31

        - cups-browsed: cups-browsed removed valid local queues pointing to
          remote queues when cups-browsed did not shut down cleanly after
          the previous session, leaving the user with missing local accessor
          queues for some of the remote CUPS queues (Ubuntu bug #1131149).
        - Fixed build system to allow parallel or multilib builds. Thanks to
          Timo Gurr for the patch (Bug #1104).
        - pdftopdf: Improved error output.
        - pdftopdf: getRotation now handles unusual cases more graceful
          (probably fixes Ubuntu Bug #1154318).
        - Fixed build system to allow building without Avahi. In this case
          a cups-browsed with only CUPS broadcasting/browsing will get
          built. Thanks to Tim Waugh from Red Hat (Bug #1101, Bug #1102).

CHANGES IN V1.0.30

        - cups-browsed: Do not remove a generated local print queue when
          it was made the system default printer (Ubuntu bug #1146407).
        - texttopdf: Fixed corrupted pdf when a utf-8 title is given and
          corresponding crash with 'prettyprint' (Ubuntu Bug #1137438).
        - cups-browsed: Added CUPS Broadcasting for sharing local printers
          to remote CUPS clients with CUPS 1.5.x and older. Thanks to Tim
          Waugh from Red Hat.
        - cups-browsed: Added sample config-file and build-time default
          setting options. Thanks to Tim Waugh from Red Hat.
        - cups-browsed: Added CUPS browsing and BrowsePoll functionality, to
          be backwards compatible to CUPS 1.5.x and older servers. Thanks
          to Tim Waugh from Red Hat.
        - pdftopdf: Fixed incorrect evenDuplex page insertion (Bug #1088).
        - pdftoopvp: Let it build with Poppler 0.22.x. Thanks to Koji Otani
          from BBR Inc. (Bug #1089).

CHANGES IN V1.0.29

        - Fixed ./configure option "--with-rcdir=no". Thanks to Jiri
          Popelka from Red Hat (Bug #1091).

CHANGES IN V1.0.28

        - cups-browsed: Do not create CUPS queues for shared local CUPS
          printers.

CHANGES IN V1.0.27

        - cups-browsed: The daemon crashed if there is no local CUPS queue
          at all. Fixed.

CHANGES IN V1.0.26

        - Some fixes in README and INSTALL.
        - cups-browsed: Added daemon to browse the Bonjour broadcasts of
          shared remote CUPS printers and automatically add local raw queues
          pointing to them, to resemble the behavior of the former CUPS
          broadcasting/browsing which was dropped in CUPS 1.6. Now remote
          printers appear as local print queues as before, but with the
          standardized Bonjour broadcasting.
        - "make dist" got broken in 1.0.25. Fixed.

CHANGES IN V1.0.25

        - urftopdf: Newly added filter to convert the URF format which (at
          least some) iOS apps send when printing via AirPrint (Bug #1076).
        - pdftopdf: pdfautorotate functionality has been patched directly 
          into pdftopdf (Bug #1080).
        - pdftopdf: "mirror" produced only empty pages (XObjects not there).
        - pdftopdf: Fixed segfault on "page-ranges=1-2147483647" (from cups).
        - pdftopdf: Fixed collate filler insertion.
        - texttopdf: Fixed deficient string escaping (Bug #1071).
        - pdftoopvp: Get correct byte order definition when building under
          OpenBSD (Bug #1070).
        - serial backend: Added check for sys/ioctl.h to configure.ac (Bug
          #1069).
        - pdftopdf: Made code building under OpenBSD (Bug #1068).
        - pdftopdf: Don't expect too much C++11 support for now (Bug #1067).

CHANGES IN V1.0.24

        - pdftopdf now generates the necessary pdf comments to disable 
          duplicate number-up when pdftops is also applied (Bug #1063).
        - pdftops: Added support for using Adobe Reader (acroread) in command
          line mode for turning PDF to PostScript (Bug #1065).
        - pdftopdf: Fix build on OpenBSD (Bug #1062).
        - pdftops: Fix stripping of page management options from the pstops
          command line which got already applied by pdftopdf. If the name
          of the option to be removed is contained in the name of a option
          in the command line (like "number-up" in "number-up-layout" or
          "scaling" in "Natural-scaling"), this option gets stripped instead
          of the correct option (Bug #1064).

CHANGES IN V1.0.23

        - Removed filter/pdftopdf.old
        - Fixed the requires.private for cupsfilters lib

CHANGES IN V1.0.22

        - Added missing *.h files of filter/pdftopdf/ to source file list so
          that "make dist" builds correct upstream tarballs.

CHANGES IN V1.0.21

        - bannertopdf: Page duplication routine fixed.
        - bannertopdf: Fixed invalid output of a direct stream object.
        - pdftopdf filter replaced by new QPDF-based filter from Tobias
          Hoffmann's Google Summer of Code project. The former Poppler-based
          pdftopdf duplicated a lot of Poppler's code. The old filter is
          still in the package as pdftopdf.old with source code in
          filter/pdftopdf.old. It will be removed in a later release.
        - Added most recent contributors to AUTHORS and COPYING files.

CHANGES IN V1.0.20

        - pdftops: Added another workaround for Kyocera printers: Some
          models get very slow on images which request interpolation,
          so now we remove the image interpolation requests by additional
          PostScript code only inserted for Kyocera printers (Ubuntu bug
          #1026974).
        - pdftops: The build system only configured the default renderer
          (Ghostscript OR Poppler), not the other renderer, but as we support
          switching on runtime both need to get configured.
        - Improved portability of the package to non-Linux systems (Bug #1056).
        - Made the Poppler-based filters pdftopdf and pdftoopvp build with
          both Poppler 0.18.x and 0.20.x (Bug #1055).
        - Let build system check for dlopen.

CHANGES IN V1.0.19

        - Fixes according to Coverity scan results (Bug #1054).
        - Added distribution packaging instructions to INSTALL.
        - Switched build system to autotools. This especially fixes several
          build problems in Gentoo. Also build-tested with CUPS 1.6.0b1.
        - Fixes for compatibility with clang/gcc-4.7.
        - textonly: Filter did not work as a pipe with copies=1 (Bug #1032).
        - texttopdf: Avoid trimming the results of FcFontSort(), as this may
          miss some reasonable candidates under certain circumstances. BTW,
          fix passing a non-pointer as a pointer to "result" (Debian bug
          #670055),
        - Corrected documentation. The option for the maximum image rendering
          resolution in pdftops is "pdftops-max-image-resolution", not
          "pdftops-max-image-resolution-default".

CHANGES IN V1.0.18

        - Modified "./configure" options related to the pdftops filter to
          allow changing the defaults for the renderer being used by default
          (Ghostscript or Poppler) and the maximum image rendering resolution
          and to supply paths for both Ghostscript's gs and Poppler's pdftops.
        - pdftops: Allow selection whether Ghostscript or Poppler is used
          at runtime, setting the "pdftops-renderer" option to "gs" or
          "pdftops".
        - pdftops: Allow setting an upper limit for the image rendering
          resolution, also at runtime, setting the option
          "pdftops-max-image-resolution" to the desired limit in dpi.
          "0" means no limit.
        - pdftops: Fixed crash by wrong usage of sizeof() function when adding
          "Collate" to the fifth command line argument for the "pstops" CUPS
          filter call (Ubuntu bug #982675).
        - pdftops: Removed newline from copies value when reading it from
          the "%%PDFTOPDFNumCopies" entry of the incoming PDF file.
        - pdftops: Silenced compiler warning about ignoring the return
          value of the write() function.
        - pdftops: Added a crash guard.
        - pdftops: Start determining the printing resolution with
          cupsRasterInterpretPPD(), this is the most reliable as often
          the choice names of the "Resolution" option are marketing names
          with higher numerical values than the actual resolution. Also
          ignore error exit values of cupsRasterInterpretPPD() as the
          function can error out after having found the resolution.
        - pdftops: If printing resolution is determined by
          cupsRasterInterpretPPD() do not stick on 100 dpi if the
          resolution cannot be determined (Ubuntu bug #984082).

CHANGES IN V1.0.17

        - pdftopdf: Fixed segmentation fault when printing selected pages
          ("page-ranges" option, Ubuntu bug #980673).

CHANGES IN V1.0.16

        - pdftopdf: Fixed segmentation faults when using N-up with certain PDF
          files (Ubuntu bug #980673) and when calling pdftopdf manually without
          specifyting a PPD file.

CHANGES IN V1.0.15

        - pdftops: Suppress image compression only for Brother printers as they
          really need this measure to print at all. This accelerates printer-
          internal job processing on most other printers (tested on HP and
          Kyocera). Also suppress page compression on Kyocera printers, this
          works around a bug in Kyocera's PostScript interpreters which makes
          printing pages with images very slow (Ubuntu bug #977912).

CHANGES IN V1.0.14

        - pdftops: Determine printing resolution from the PPD file and supply
          it on the Ghostscript or pdftops (Poppler) command line, so that
          the renderer does the image rendering with a resolution matching the
          printer's resolution. This avoids too slow processing of the jobs
          by the printer's built-in PostScript interpreter. In addition
          a default resolution of 300 dpi is used for PPDs without any hint
          of the printer's resolution, as most PostScript lasers use multiples
          of 300 dpi as resolution (Ubuntu bug #977912).

CHANGES IN V1.0.13

        - bannertopdf: Fix display of the job dates on the test page and on
          banner pages (Ubuntu bug #975064).

CHANGES IN V1.0.12

        - Fixed crash of imagetopdf filter when it is called manually
          without supplying a valid PPD file (Ubuntu bug #973564).

CHANGES IN V1.0.11

        - Actually install the Generic PDF printer PPD file.
        - Really introduce a Generic PDF printer PPD file.

CHANGES IN V1.0.10

        - Added Generic PPD file for native PDF printers.
        - Updated all code copied from Poppler to the current state of Poppler.
        - Made Poppler-based PDF filters building with various versions of
          Poppler.
          
CHANGES IN V1.0.9

        - Deactivated NIME conversion rules which are not used by the PDF-
          based printing workflow.
        - Cleaned up sample PPD file HP-Color_LaserJet_CM3530_MFP-PDF.ppd.
        - imagetopdf: Added support for native PDF printers.
        - imagetopdf, imagetoraster: Let image input "scale to fit"
          by default. This makes photo printing via AirPrint work,
          as the iOS devices send JPEG but do not allow setting options.

CHANGES IN V1.0.8

        - pdftops: Generally do not compress fonts and images, and
          also do not do CCITT compression for bitmap glyphs to make
          the PostScript output more compatible with buggy PostScript
          interpreters. The output gets 30-50% longer but will work on
          many more different printer models. Problems were also
          discovered on HP and not only on Brother (Ubuntu bug
          #960666).

CHANGES IN V1.0.7

        - pdftops: Added PostScript debug mode. For jobs sent with "-o psdebug"
          the PostScript output by Ghostscript does not have compression of
          pages and fonts, so that one can analyse the PostScript code,
          especially in cases of incompatibilities and bugs of the built-in
          PostScript interpreters of printers. Thanks to the Ghostscript
          upstream developers for this hint.

CHANGES IN V1.0.6

        - texttopdf: Fixed minor miscalculation of /AvgWidth.
        - texttopdf: Added support for direct file references in pdf.utf-8.
        - pdftops: Added another workaround for a bug in Brother's PostScript
          interpreter: Suppress CCITT compression for bitmap glyphs and
          images on Brother printers (Ubuntu bug #955553).
        - texttopdf: Fixed typo in pdf font descriptor dictionary keys.
        - Fixed ColorDevice definition in cupsfilters.drv for HP DesignJet
          printers.
        - Put ModelNumber entries in cupsfilters.drv at the right place to
          get correct "*cupsModelNumber:" entries in the PPDs for the HP
          DesignJet printers.
        - rastertopclx: Code of JCL options did not get inserted into the JCL
          header.
        - parallel backend: Use the same way as CUPS does to prevent an
          infinite loop on side channel errors (CUPS STR #4044).
        - pdftopdf: Added support for native PDF printers, add JCL (PJL) 
          options and send page_log entries only if the PDF has the
          "*JCLToPDFInterpreter:" keyword.
        - Updated README.txt for the new native PDF printer support.
        - Added a sample PPD file for a native PDF printer,
          HP-Color_LaserJet_CM3530_MFP-PDF.ppd.
        - texttopdf: A lot of internal rework; also split up into more files
        - texttopdf: Fixed many bugs on the way
        - texttopdf: Added support for CFF-flavoured OTFs; for these
          subsetting is not yet implemented, full embedding is done instead
        - texttopdf: Adapted and improved fontconfig font selection
        - Make sure that "make clean" and "make distclean" also work if
          Makedefs does not exist (Debian bug #663564).

CHANGES IN V1.0.5

        - pdftops: Added insertion of workaround PostScript code for printers
          with bugs in their PS interpreters (Ubuntu bugs #950713, #951627).
        - parallel backend: Break infinite loop (Ubuntu bug #936647).
        - texttopdf: Complete the implementation of fontconfig-based font
          selection (Debian bug #663070).

CHANGES IN V1.0.4

        - texttopdf: Fall back to altermative fonts via fontconfig if the
          FreeMono TrueType fonts are not installed (Debian bugs #495598
          and #662660).
        - bannertopdf: Fix off-by-one error in page duplication
        - bannertopdf: Put indirect references to streams into the page's
          contents
        - bannertopdf: Let byte offsets for the Xref table of the PDF output
          being determined correctly also when the output goes to stdout
          (Ubuntu bug #939735).
        - bannertopdf: Output multiple copies of the test page if duplex
          and/or N-up is chosen, to let the test page appear on all possible
          positions of the sheet (Ubuntu bug #939530).

CHANGES IN V1.0.3

        - bannertopdf: Draw the frame to mark the non-printable borders 1pt
          smaller all around to assure that it is always visible, like it was
          done in bannertops.
        - bannertopdf: Scale the page to fit onto the desired output page.
        - bannertopdf: Get and output the correct media limits.

CHANGES IN V1.0.2

        - bannertopdf: Fixed crash caused by wrong Poppler API use.
        - bannertopdf: Info text on test page came out in gray and not in
          black.

CHANGES IN V1.0.1

        - Added the textonly filter and its PPD file, a driver for text-only
          printers.
        - Install the pdftoijs sample PPD file
          HP-PhotoSmart_Pro_B8300-hpijs-pdftoijs.ppd
        - Added cupsfilters.drv, centralized ppdc-based PPD generator for the
          printer driver filters in this package. Current printers supported
          are several HP DesignJet large format inkjet printers.
        - Fixed "make uninstall". Now everything of this package gets removed.
        - Added wrapper scripts texttops and imagetops for backward
          compatibility to third-party PPD files or custom configurations
          which refer to these filters explicitly (Debian bug #658258).

CHANGES IN V1.0

        - Built the pdftops filter based on Ghostscript by default, as
          Ghostscript is better optimized for print output (Ubuntu bug
          #926068).
        - If the pdftops filter is built for using Poppler, let Poppler not
          emit PostScript level 3, as this causes problems with some HP
          printers (Ubuntu bug #277404, Freedesktop (Poppler) bug #19640).
        - bannertopdf needs to be linked with C++ (bug #995)
        - Added test.sh script for testing texttopdf
        - Added original documentation of the PDF filters to README.txt
        - Install C header files and the static library
        - General clean-up of "make install" targets in Makefiles
        - Raised MIME conversion cost factor of pdftoraster from 66 to 100 to
          give priority to the gstoraster filter from Ghostscript, as this
          filter supports ICC-profile-based color management.
        - Documentation updated because libijs, liblcms, freetype, and
          fontconfig are needed to build this package

CHANGES IN V1.0b1

        - Removed the bannertops, imagetops, and texttops filters, they are
          not needed any more in the PDF-based printing workflow
        - Added support for liblcms2
        - Named the package "OpenPrinting CUPS Filters"
        - Renamed libcupslegacy to libcupsfilters
        - Joined pdftops and cpdftocps filters into one C program
        - Added new bannertopdf filter from Lars Karlitski (formerly
          Uebernickel): https://launchpad.net/bannertopdf
        - Added the filters for the PDF-based printing workflow, from
          OpenPrinting: http://sourceforge.jp/projects/opfc/ and
          http://www.openprinting.org/download/printing/pdf-printing/
        - Initial packaging of files that are no longer included in CUPS 1.6
          from CUPS upstream (http://www.cups.org/)

Generated by dwww version 1.14 on Fri Jan 24 09:37:59 CET 2025.