Skip to content

Releases: OpenPrinting/cups-filters

cups-filters 2.0.0

22 Sep 16:22
Compare
Choose a tag to compare

Final 2.0.0 release with a last fix

  • universal: Enable application/vnd.cups-postscript as input
    There are filters which produce this MIME type (such as hpps of HPLIP), and if someone uses such driver on a client and the server has an IPP Everywhere/driverless printer, the job fails (Pull request #534, requires libcupsfilters 2.0.0).

cups-filters 2.0rc2

20 Jun 20:18
Compare
Choose a tag to compare

Security vulnerability fix and general security and code clean-up of the beh (Backend Error Handler) backend:

  • beh backend: Use execv() instead of system() - CVE-2023-24805
    With execv() command line arguments are passed as separate strings and not the full command line in a single string. This prevents arbitrary command execution by escaping the quoting of the arguments in a job with forged job title.
  • beh backend: Extra checks against odd/forged input - CVE-2023-24805
    • Do not allow / in the scheme of the URI (= backend executable name), to assure that only backends inside /usr/lib/cups/backend/ are used.
    • Pre-define scheme buffer to empty string, to be defined for case of URI being NULL.
    • URI must have :, to split off scheme, otherwise error.
    • Check return value of snprintf() to create call path for the backend, to error out on truncation of a too long scheme or on complete failure due to a completely odd scheme.
  • beh backend: Further improvements - CVE-2023-24805
    • Use strncat() instead of strncpy() for getting scheme from URI, the latter does not require setting terminating zero byte in case of truncation.
    • Also exclude . or .. as scheme, as directories are not valid CUPS backends.
    • Do not use fprintf() in sigterm_handler(), to not interfere with a fprintf() which could be running in the main process when sigterm_handler() is triggered.
    • Use static volatile int for global variable job_canceled.
  • parallel backend: Added missing #include lines

cups-filters 2.0rc1

11 Apr 23:37
Compare
Choose a tag to compare

Release Candidate: Fixes for bugs found by Coverity check run, plus some more fixes.

  • foomatic-rip: Fix a SIGPIPE error when calling gs (Pull request #517)
    Ubuntu's autopkgtest for foo2zjs shows foo2zjs's testsuite failing with cups-filters 2.0beta3 on ppc64el. This is cause by a timing issue in foomatic-rip which is fixed now.
  • Coverity check done by Zdenek Dohnal for the inclusion of cups-filters 2.x in Fedora and Red Hat. Zdenek has fixed all the issues: Missing free(), files not closed, potential string overflows, ... Thanks a lot! (Pull request #510).
  • Dropped all C++ references and obsolete C standards (Pull requests #504 and #513)
    With no C++ compiler needed, there is no need for any checks or setting for C++ in configure.ac.
  • configure.ac: Change deprecated AC_PROG_LIBTOOL for LT_INIT (Pull request #508)

cups-filters 2.0b3

01 Feb 00:07
Compare
Choose a tag to compare

Fixes of bugs found while packaging for distros, mainly in the build system and the source code documentation

  • texttopdf: Do not include fontconfig.h in the CUPS filter wrapper
  • Build system: Do not explicitly check for libpoppler-cpp
    The cups-filters package does not contain any code using libpoppler-cpp, therefore we let ./configure not check for it.
  • COPYING, NOTICE: Simplification for autotools-generated files
    autotools-generated files can be included under the license of the upstream code, and FSF copyright added to upstream copyright list. Simplified COPYING appropriately.
  • Makefile.am: Include LICENSE in distribution tarball
  • Add templates for issue reports on GitHub. This makes a selection screen appear when clicking "New Issue" in the web UI, to select whether the issue is a regular bug, a feature request, or a security vulnerability.

cups-filters 1.28.17

25 Jan 01:52
Compare
Choose a tag to compare

Bug fix release, to more reliably discover all printer capablities from driverless printers, especially borderless printing, and to preferably use Apple Raster instead of PWG Raster or PCLM.

  • libcupsfilters: In PPD generator create only one *cupsFilter2: line for raster. Only use the most desirable/reliable format, usually Apple Raster (Issue #498).
  • libcupsfilters: In get_printer_attributes() poll media-col-database separately if needed. On some printers one gets media-col-database only this way. Often it reveals important functionality, like for example borderless printing (Issue #492).
  • libcupsfilters: Let PPD generator also parse media-col-ready IPP attribute. media-col-ready lists the loaded media, in contrary to media-ready, as list of complete descriptions of the media (media-col data structure). This often lists also variants like borderless (it is the same physical paper). Especially useful when media-col-database is not available (Issue #492).
  • libcupsfilters: In generate_sizes() consider all margin alternatives. When generating the PPD file for a driverless printer, and in the media-{left,right,top,bottom}-margin-supported printer IPP attributes there was more than 1 value, the first value (which often was the 0 for borderless printing) was not considered, leaving the borderless functionality of many printers undiscovered (Issue #492).

cups-filters 2.0b2

08 Jan 23:15
Compare
Choose a tag to compare

Second beta release approaching cups-filters 2.0.0: Corrected installation path for include files for the *.drv files, tons of fixes in source code documentation and build system

  • Corrected installation path for *.h files for *.drv files. The ppdc (and underlying functions) of libppd searches for include files in /usr/share/ppdc and not in /usr/share/cups/ppdc any more.
  • configure.ac: Remove unnecessary AVAHI_GLIB_... definitions.
  • Makefile.am: Include NOTICE in distribution tarball
  • configure.ac: Added foreign to the AM_INIT_AUTOMAKE() call. Makes automake not require a file named README.
  • Cleaned up .gitignore
  • Tons of fixes in the source code documentation: README.md, INSTALL, DEVELOPING.md, CONTRIBUTING.md, COPYING, NOTICE, ... Adapted to the cups-filters component, added links.

cups-filters 2.0b1

18 Nov 07:39
Compare
Choose a tag to compare

First beta release approaching cups-filters 2.0.0, for retro-fitting the filter functions of libcupsfilters and libppd into classic CUPS (2.x) environments.

  • Converted nearly all filters to filter functions, only exceptions are rastertoescpx, rastertopclx, commandtoescpx, commandtopclx, and foomatic-rip. The latter is deeply involved with Foomatic PPDs and the others are legacy printer drivers. The filter functions are mainly in libcupsfilters, the ones which generate PostScript are in libppd.
  • Replaced all the filters converted to filter functions by simple wrapper executables using ppdFilterCUPSWrapper() of libppd for backward compatibility with CUPS 2.x.
  • Added new streaming mode triggered by the boolean "filter-streaming-mode" option. In this mode a filter (function) is supposed to avoid everything which prevents the job data from streaming, as loading the whole job (or good part of it) into a temporary file or into memory, interpreting PDF, pre-checking input file type or zero-page jobs, ... This is mainly to be used by Printer Applications when they do raster printing in streaming mode, to run with lowest resources possible. Currently foomatic-rip, ghostscript, and pdftopdf got a streaming mode. For the former two PostScript (not PDF) is assumed as input and no zero-page-job check is done, in the latter all QPDF processing (page management, page size adjustment, ...) is skipped and only JCL according to the PPD added.
  • The CUPS filter imagetops uses the ppdFilterImageToPS() filter function of libppd now.
  • driverless, driverless-fax: 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, #293, #296, #302, #304, #305, #306, #309, Issue #298, #308).
  • sys5ippprinter: Removed sys5ippprinter, as CUPS does not support System V interface scripts any more. This first approach of PPD-less printing was also not actually made use of.
  • urftopdf: Removed as we require CUPS 2.2.2+ now which supports Apple Raster by itself.
  • Build system, README.md: Require CUPS 2.2.2+. Removed now unneeded ./configure switches for use of the urftopdf filter for old CUPS versions.
  • Sample PPDs: Renamed source directory from ppd/ to ppdfiles/.
  • Build system: Remove '-D_PPD_DEPRECATED=""' from the compiling command lines of the source files which use libcups. The flag is not supported any more for longer times already and all the PPD-related functions deprecated by CUPS have moved into libppd now.
  • Build system: Add files in .gitignore that are generated by "autogen.sh", "configure", and "make" (Pull request #336).

cups-filters 1.28.16

24 Aug 12:53
Compare
Choose a tag to compare

Bug fix release, to make images be printed in their original size with "print-scaling=none" and to not use deprecated data types for reading TIFF images.

  • imagetoraster, imagetopdf, libcupsfilters: Added support for reading the resolution of an image from its EXIF data when loading it. This way we get the image reproduced in its original size with "print-scaling=none" (Issue #362).
  • libcupsfilters: Replaced deprecated data types uint16 and uint32. The function to read TIFF image files via libtiff in cupsfilters/image-tiff.c uses the deprecated types uint16 and uint32. The replacements for these types are uint16_t and uint32_t.

cups-filters 1.28.15

11 Apr 20:03
Compare
Choose a tag to compare

Bug fix release, to make all HP LaserJet PostScript printers correctly work.

  • 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).

cups-filters 1.28.14

04 Apr 11:09
Compare
Choose a tag to compare

Bug fix release to get correct PDF output when using "landscape", "orientation-requested", and/or "nopdfAutoRotate" options, and to get PCLm printing work on printers not telling their PCLM default resolution.

  • 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.