Skip to content

Releases: OpenPrinting/cups-filters

cups-filters 2.0.1

Choose a tag to compare

@tillkamppeter tillkamppeter released this 14 Aug 22:45

Bug fix release, mainly fixes on the build system, but also on the serial backend

  • serial backend: Fixed bug in conversion of comments
    (Pull request #548)
  • pclmtoraster: Properly set CFLAGS
    As this is a C program, set pclmtoraster_CFLAGS, not pclmtoraster_CXXFLAGS (Pull request #588).
  • configure: Remove == bashism
    (Pull request #567)
  • configure.ac: Remove Avahi check
    cups-filters does not use Avahi (Pull request #558)

cups-filters 2.0.0

Choose a tag to compare

@tillkamppeter tillkamppeter released this 22 Sep 16:22

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

Choose a tag to compare

@tillkamppeter tillkamppeter released this 20 Jun 20:18

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

Choose a tag to compare

@tillkamppeter tillkamppeter released this 11 Apr 23:37

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

Choose a tag to compare

@tillkamppeter tillkamppeter released this 01 Feb 00:07

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

Choose a tag to compare

@tillkamppeter tillkamppeter released this 25 Jan 01:52

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

Choose a tag to compare

@tillkamppeter tillkamppeter released this 08 Jan 23:15

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

Choose a tag to compare

@tillkamppeter tillkamppeter released this 18 Nov 07:39

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

Choose a tag to compare

@tillkamppeter tillkamppeter released this 24 Aug 12:53

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

Choose a tag to compare

@tillkamppeter tillkamppeter released this 11 Apr 20:03

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