Skip to content

Releases: OpenPrinting/cups-filters

cups-filters 1.27.0

26 Jan 17:15
Compare
Choose a tag to compare

In this release cups-browsed does not need to know the port number of the CUPS daemon it is attached to any more when it connects via domain socket and many additional filters support zero-page jobs now

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

cups-filters 1.26.2

13 Jan 20:03
Compare
Choose a tag to compare

Bug fix release mainly to make cups-browsed correctly working with a CUPS daemon on a non-standard port, and also for cups-filters smoothly building with GCC 10

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

cups-filters 1.26.1

02 Jan 18:05
Compare
Choose a tag to compare

Bug fix release, to make the cups-browsed-generated local print queues actually work on all OS distributions and to get legacy (not actually designed for driverless IPP) printers better working.

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

cups-filters 1.26.0

13 Dec 23:40
Compare
Choose a tag to compare

This release adds some new features to cups-browsed and to the driverless utility: Both now use DNS-SD-service-name-based URIs for IPP print queues, like CUPS does. These URis are independent of network interfaces and ports and so make providing IPP services on the local machine (Printer Applications) easier. cups-browsed creates large numbers of local queues in portions now, so that it can treat jobs to print clusters between the portions, this makes printing more reliable in large networks with many printers. In addition, a lot of bugs got fixed.

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

cups-filters 1.25.13

29 Nov 20:34
Compare
Choose a tag to compare

Bug fix release, mainly to solve problems of cups-browsed, mainly for compatibility problems with some printers, leaks, and crashes. Also updated the PPD generator to catch up with the one of CUPS. Prefer Apple Raster instead of PWG Raster as some printers have bugs in their PWG Raster implementation.

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

cups-filters 1.25.12

12 Nov 18:41
Compare
Choose a tag to compare

Bug fix release, to address a bug of grayscale jobs not printed on PostScript printers when Poppler is used as PDF interpreter, to allow printing on printers which claim to accept PWG Raster but actually do not print this format, and to eliminate all compiler warnings when building the package.

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

cups-filters 1.25.11

10 Oct 10:59
Compare
Choose a tag to compare

Bug fix release for cups-browsed working correctly with legacy (IPP 1.1) remote printers

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

cups-filters 1.25.9

09 Oct 17:02
Compare
Choose a tag to compare

Important bug fix release, fixes infinite recursion in cups-browsed! DO NOT use 1.25.8!

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

cups-filters 1.25.8

09 Oct 13:10
Compare
Choose a tag to compare

Bug fix release, especially to solve problems with cups-browsed connecting to older IPP printers/servers and for compatibility with Ghostscript 9.27+

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

cups-filters 1.25.10

09 Oct 21:07
Compare
Choose a tag to compare

Bug fix release for a bug making cups-browsed crash

  • 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 (Ubunru bug #1847488).