Saturday, December 28, 2013

foomatic is moving into cups-filters

Part of the printing packages on Gentoo are very similar to, err, well, a dumpster on a hot summer afternoon. Nobody really wants to lift the lid and look inside, and beware of poking around in it... version numbers starting with 2007 and self-generated distfiles that noone knows how to regenerate. Yes I'm trying but so far my insights are limited.
What news is happening? The foomatic filters, an awesome printer driver system, originally supported not just CUPS but also LPRng, LPD, and many other prehistoric printing systems. Turns out, every backend except cups is now unmaintained. As a result, after a Google summer of code project, the actual filter binary is now upstream moving into cups-filters, to have a more active development and be perfectly integrated into the CUPS printing system. (Yes this means foomatic support for LPRng will not see further updates and may have to go away one day in the future due to bitrot.) For Gentoo this means that newer versions of net-print/cups-filters cannot be installed together with net-print/foomatic-filters but replace that package.
As a result we get to today's call for testers, preferably ~arch users: If you feel adventurous and if you are using foomatic-filters together with cups, please keyword newest cups-filters, remove foomatic-filters from your world file, and upgrade:
echo '=net-print/cups-filters-1* **' > /etc/portage/package.keywords/cupsfilters
emerge --deselect net-print/foomatic-filters
emerge -uDNav world
If this leads to blockers with one of the following packages, you might want to upgrade that to newest ~arch or re-emerge it first:  net-print/foo2zjs, net-print/foomatic-db-engine, net-print/foomatic-filters-ppds, net-print/hplip, net-print/pnm2ppa
Then, test if your printers still work! Any feedback is appreciated, either on a tracking bug or here in the comments section.


  1. Andreas, thanks for maintaining cups :)

  2. From a quick test on my system (running ~amd64), I didn't find any issues from updating to the new cups-filters from the older version. Included below is what my system had before updating. I didn't have to change any configurations, but did add the cups-browser to default running level and started it before doing the test prints from a pdf document (from 2 separate programs).

    Calculating dependencies... done!
    [ebuild U *] net-print/cups-filters-1.0.43 [1.0.41] USE="jpeg perl png tiff zeroconf -static-libs" 1,074 kB
    [blocks B ] net-print/foomatic-filters ("net-print/foomatic-filters" is blocking net-print/cups-filters-1.0.43)

    emerge -pv foo2zjs foomatic-db-engine foomatic-filters-ppds hplip pnm2ppa

    Calculating dependencies... done!
    [ebuild R ] net-print/foomatic-db-engine-4.0.9 0 kB
    [ebuild R ] net-print/foomatic-filters-ppds-20080507 0 kB
    [ebuild N ] net-print/pnm2ppa-1.13-r1 USE="-syslog" LINGUAS="en -cs -es -fr -it -nl" 285 kB
    [ebuild N ] dev-python/notify-python-0.1.1-r3 USE="-examples" PYTHON_TARGETS="python2_7 -python2_6" 0 kB
    [ebuild N *] net-print/foo2zjs-99999999 USE="{-test}" 0 kB
    [ebuild N ] net-print/hplip-3.13.11-r1 USE="X hpcups libnotify policykit qt4 -doc -fax -hpijs -kde -libusb0 -minimal -parport -scanner -snmp -static-ppds" PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6" 20,616 kB

    1. Great, thanks. I'll wait for one or two more positive reports and then re-add the keywords.

  3. One this you may want to do, is push a revision on cups, to either disable the filters use flag (since it no longer matters, since cups-filters is a direct dependency) or have the filters use flag accept cups-filters-1.0.43 as an option. Otherwise you encounter a block, with cups trying to install foomatic-filters.

    1. Good idea, already done in the 9999 live ebuild (that is the template for bumps).