CUPS 1.6 changes ahead

As I mentioned elsewhere, there are some changes ahead in CUPS 1.6. These changes are not imminent but give an indication of the direction the CUPS project is heading.

Back in 2007 CUPS became an Apple project.  Now the parts that are not relevant on Mac OS are being dropped, with some of the Linux-relevant parts being gathered together in a separate project, cups-filters.

The main part that is being dropped completely is CUPS Browsing. This is currently the primary mechanism for CUPS-to-CUPS printer queue discovery on Linux. It works by having each CUPS server periodically broadcast UDP packets on port 631 announcing its available queues, and listening for broadcasts from other CUPS servers.

This discovery method is being dropped because DNS-SD is preferred upstream. Support for it has been upstream in CUPS for a while, and it is what CUPS uses on Mac OS X, but it uses Apple’s libdns_sd library and not Avahi. I have added support for this in Fedora, and the patch is submitted upstream.

So in CUPS 1.6, automatic CUPS queue discovery will require Avahi to be running on both the server (i.e. the system hosting the CUPS queue) and the clients (i.e. the systems wanting to print to it).

Of course, you will be able to run CUPS without having Avahi running — but you won’t have automatic CUPS queue discovery in that case.  Clients will have to have queues explicitly configured, or else use the BrowsePoll configuration setting to periodically query a particular CUPS server for its queues.

Several other filters will be dropped from CUPS in 1.6, to be picked up by the new cups-filters package. Information about this package is on the OpenPrinting web site and a beta release is now available.

This new package restores the filters that will be dropped in CUPS 1.6 and also adds new filters to support PDF as the baseline document format rather than PostScript.






7 responses to “CUPS 1.6 changes ahead”

  1. Máirín Duffy avatar

    Hi Tim!

    I have noticed that the few OS X clients we have in the office here are unable to detect the office’s CUPS servers automatically, and I typically help those users out by manually editing the OS X cups configuration to BrowsePoll for the office’s CUPS server.

    Does this mean our CUPS server isn’t properly sending out avahi / DNS-SD signals for them to pick up the printers’ existence, necessitating the manual conf file editing?

    Will your change make it possible to put a new OS X machine on the network and have it automatically pick up the CUPS server and be able to print without manual intervention?

  2. tim avatar

    Mac OS X systems use AirPrint to discover printers. Details of how to alter what CUPS broadcasts so that it is usable by AirPrint are here:

    In short: no, they won’t automatically pick up CUPS queues without manual intervention.

  3. Máirín Duffy avatar

    I’m almost glad in a way, it’s one of the examples I like to use to demonstrate everything does not “just work” with OS X 🙂

    For Linux machines then, though, it will just work?

  4. tim avatar

    One of the things that continues to be an obstacle for getting this to just work in e.g. Fedora is that the default firewall stops it, and adjusting the firewall is not easy from the point of view of a configuration tool. Hopefully FirewallD will make this simple in future.

    Firewall aside, the next issue is whether Avahi is running by default. I believe it will need to be for print queues to be automatically discovered.

    Do we want Avahi running by default?

  5. Tilman Baumann avatar
    Tilman Baumann

    Thanks for pointing that out. And thanks for the Avahi patch.

    I prefer mDNS-SD from a technological standpoint. And I think we should merge towards it.
    But I can not believe that axing the old discovery method is a good idea. There is outside of OSX almost zero installed base out there that will be compatible. This will brake a lot of installations needlessly.
    Was it really that important to get rid of the old code altogether?

  6. Jiri avatar

    Johannes Meixner made
    to deal with the incompatible changes in CUPS 1.6.x in openSUSE.