New CUPS filters package

Registered by Till Kamppeter

Mike Sweet intends to remove the filters which are not used by Mac OS X from the CUPS upstream package:

We have agreed on this on the last OpenPrinting Summit and the filters will be continued and hosted by OpenPrinting. In addition, the filters for the PDF printing workflow will not be adopted by CUPS but joined with the CUPS filters we overtake.

All Linux distributions would have to include this new CUPS filters package then to get CUPS continuing to work and have the same feature set as before. Due to the fact that this package will use the PDF workflow by default and that all major desktop applications send their print jobs already in PDF, this will complete the implementation of PDF as standard print job format in all distros (if they do not patch against the PDF workflow). See also my updated web page:

This will also clean our heavily patched CUPS package somewhat.

We need a name for this new upstream package. Should we call it simply "cups-filters"? Or "op-cups-filters"? Or do we rename Foomatic to openprinting and have the packages

- openprinting-db
- openprinting-db-nonfree
- openprinting-db-engine
- openprinting-rip
- openprinting-cups-filters

Note that we keep foomatic-rip/openprinting-rip separate from the CUPS filters as this filter is a universal filter which also works with many other printing systems.

Another decision to make is whether we really should maintain all the filters which get over to us from CUPS or whether we should discontinue some. The filter set will contain "imageto..." and "textto..." filters which are not made use of by the usual desktop applications, they send all PDF (and some send PostScript). Alternatively, these filters could be made optional.

Usually these are decisions to be made by upstream, in this case OpenPrinting, but in this session I want to have some pre-discussion from the distribution point of view, so that when this new upstream project gets created it will be created with the distro's needs in mind.

Blueprint information

Martin Pitt
Till Kamppeter
Till Kamppeter
Series goal:
Accepted for precise
Milestone target:
milestone icon precise-alpha-2
Started by
Till Kamppeter
Completed by
Martin Pitt

Related branches



Work items:
Create upstream BZR repository at the Linux Foundation: DONE
Convert legacy-1.6 SVN to BZR: DONE
Add PDF filters: DONE
[larsu] Add new bannertopdf filter: DONE
Join pdftops and cpdftocps filters: DONE
Rename libcupslegacy to libcupsfilters: DONE
Rename "CUPS Legacy" to "OpenPrinting CUPS filters": DONE
Add support for liblcms2: DONE
Remove ...tops filters: DONE
Do first upstream release of cups-filters: DONE
Make .deb package of cups-filters: DONE
Patch CUPS Ubuntu/Debian package to not ship the filters which the CUPS filters package provides: DONE
Change Debian/Ubuntu package of CUPS to not ship the PDF filters and depend on the new package: DONE
[pitti] Get the new cups and cups-filters packages into Debian and Ubuntu: DONE

tkamppeter, 2011-12-05: Filters to accept image formats as input will stay in the package, as the reduction of code is not very high and the library libcupsfilters (former libcupslegacy) cannot be eliminated by discontinuing the acceptance of image formats. Exotic/obsolete formats are subject to removal if we run into maintenance problems.

tkamppeter, 2011-12-04: BZR repository for cups-filters upstream is now. Upstream bug reporting on, product OpenPrinting, component cups-filters.

tkamppeter, 2011-11-22: CUPS legacy filter repository converted to BZR and PDF filters added.

tkamppeter, 2011-11-04: Page about PDF as standard print job format at OpenPrinting updated, announcement added to OpenPrinting front page.

tkamppeter, 2011-11-10: Discussed this topic on the monthly phone meeting of OpenPrinting, posted work plan (copy below) on the OpenPrinting architecture mailing list.

tkamppeter, 2011-11-11: CUPS 1.6 is not planned to get into Precise. The new package will also work with CUPS 1.5.x. The changes are done to follow the upstream plans and so reduce the distro patches on the cups package.

q-funk, 2011-11-12: I would vote for using cups-filters as the package name.

q-funk, 2011-11-12: on the issue of CUPS-PDF, it's become clear that upstream insists upon retaining the ability to receive PostScript input. The main question is, do we have any *reasonable* alternative to offer upstream to keep on enabling the use of cups-pdf.conf Ghostscript formatting options as desired, but without affecting the quality of document input that already is in the PDF format?

Work plan for the new OpenPrinting CUPS filter package

1. CUPS upstream drops the following filters and backends which are not used by Mac OS X and passes them over to OpenPrinting:





2. CUPS upstream removes all image-related functions from libcupsimage, separating them in the temporary libcupslegacy, which we rename to libcupsfilter.

3. All this with a correctly working build system is now downloadable from CUPS SVN via

svn co legacy-1.6

This repository will be converted/imported to BZR and uploaded as a new package into the OpenPrinting BZR repositories as soon as the BZR repos of the LF are back.

4. The current CUPS PDF filter add-on

plus the files

will be added to the new CUPS filters package at OpenPrinting.

5. If we run into maintenance problems with exotic or obsolete input formats, like SGI Raster or Photo CD, we will discontinuw these input formats.

6. Text files are continued to be accepted as print input, as it is a convenient facility for system administrators.

7. bannertops will be replaced by a new bannertopdf which does not accept image files as design elements any more, but instead accepts PDF template files, and text sizes and positions (Lars Uebernnickel is currently working on that).

8. As all important applications (checked by standard Ubuntu Oneiric installations) emit print jobs in PDF we consider the PDF printing work flow as completed on the client side. On the server side it is currently only completed on Ubuntu and Debian as distro patch, by adding the files from (4) to the CUPS package. To complete it upstream originally it was planned to get the files of (4) into CUPS upstream, but as CUPS upstream is moving most of the filters to OpenPrinting we will do the upstream completion of the PDF printing workflow at OpenPrinting, via (4) and discontinuing filters which are solely for the PostScript-based printing workflow: bannertops, imagetops, texttops.

9. pstopdf will get continued for the few legacy applications which still send PostScript and which we overlooked here. Usually these are only apps which do not use standard libraries to create jobs and/or which are not maintained any more upstream. Distros should not waste time to patch unmaintained apps so that they send PDF. Distros can make the installation of pstopdf optional, when a PostScript-emitting app gets installed (via package dependencies, suggested by Lars Uebernickel).

10. The filter pdftops in conjunction with cpdftocps and pstops (still part of upstream CUPS) form the "PostScript printer driver", as PostScript is not the standard format any more and so PostScript printers need a driver. These filters (at least pdftops and cpdftocps) will get joined to one filter. Also commandtops (still maintained by CUPS upstream) is part of the PostScript printer driver.

11. To make this CUPS filters package already work with CUPS 1.5.x the filters which got moved from CUPS 1.6.x into this package need to be removed from the CUPS package (for example by patching the Makefile so that the appropriate filters do not get built/installed). We opt for using these filters from the CUPS filters package and not from CUPS as in the CUPS filters package they will get continued to be maintained (in CUPS they disappear after 1.5.x) and we also continue development, especially towards the PDF printing workflow, in the CUPS filters package.

12. The CUPS legacy SVN repository will get observed and if further components of CUPS get dropped into it we will decide on their continuation.


Work Items