Opened 2 years ago
Closed 2 years ago
Last modified 2 years ago
New minor version.
Now version 1.25.0
Integration of Deepak Patankar's Google Summer of Code 2018 project with the main goal of clustering different printers with cups-browsed and automatically selecting the destination printers by job content and option/attribute settings. To achieve this, several other features got added to cups-browsed, especially support for mixed clusters of remote CUPS queues and native IPP printers and not downloading PPDs from remote CUPS servers any more. 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.
In this release the pdftoraster filter is changed to only use stable/documented APIs of Poppler (Tanmay Anand's Google Summer of Code 2019 project) and the deprecated, Poppler-based filters pdftoijs and pdftoopvp are finally completely removed. Now Poppler is only used for the pdftoraster filter. Poppler's unstable/internal APIs are nowhere used any more in cups-filters.
Note for distribution packagers: cups-filters now uses libpoppler-cpp for pdftoraster.
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).
It looks like the pdftoijs filter is removed, meaning that IJS is now useless. I'll verify, and if that's the case, I'll archive IJS.
The dependency on IJS in cups-filters is no longer valid.
Gutenprint references it though in it's installed files, so when I get there on my elogind system in a couple of hours, I'll see if that's still true or not.
Fixed at r21686
Powered by Trac 1.5.3.dev0
By Edgewall Software
© 1998-2021 Gerard Beekmans.