[cups.general] An idea how to provide CUPS Browsing for CUPS 1.6

Johannes Meixner jsmeix at suse.de
Thu Nov 22 03:58:50 PST 2012


this is a request for comments if and how it might be possible
to provide CUPS Browsing for CUPS 1.6.

Since CUPS 1.6 the source code that implements CUPS Browsing
does no longer exist.

Michael Sweet explained why CUPS Browsing is no longer
supported by Apple's CUPS.

As far as I understand from the information that I have
it seems the background reason why Apple dropped so many
things in CUPS 1.6 is that Apple does no longer want to
maintain code in CUPS that is neither used nor tested by Apple.

If my understanding is right, I would perfectly agree with such
a decision.

But I do not agree with the way how this change happened because
there is no smooth transition possible from CUPS <= 1.5 to CUPS 1.6
because a CUPS 1.6 server is incompatible for CUPS <= 1.5 clients
and vice versa.

But for a Common Unix Printing System there must be backward
compatibility for a reasonable period of time which means
that newer versions still work together with older versions
both on servers and clients in a mixed network environment.

For the dropped filters and backends in CUPS 1.6 backward
compatibility is possible because there is a well known stable
interface in CUPS how third-party filters and backends can be
used with CUPS.

Therefore OpenPrinting.org was able to provide those
filters and backends that are dropped in CUPS 1.6
as third-party addon-software for CUPS 1.6.

All what the Linux distributors have to do is to provide
the cups-filters software from OpenPrinting.org
so that for the end-users printing works as before.

But the dropped support for CUPS Browsing is different
because there is no well known stable interface in CUPS
how third-party software could provide CUPS Browsing.

I do not like to re-introduce CUPS Browsing for CUPS 1.6
by large patches that each Linux distributor maintains
on its own, see

I would prefer if I could provide CUPS Browsing
functionality via a well separated daemon (cups-browsed)
as third-party addon-software for CUPS 1.6, see

This way there would be no change in the behaviour of CUPS 1.6
and no change in what Apple needs to maintain in CUPS.

There would be only a separated software that implements
CUPS Browsing even on a server that runs CUPS 1.6.

shows a simple proof-of-concept via a Perl script.

I looked at the CUPS 1.5.4 source code for the cups-polld
(scheduler/cups-polld.c) and it seems it might be possible
to enhance it into a generic cups-browsed.

Currently cups-polld sends a CUPS_GET_PRINTERS request
for printers and classes to a (remote) CUPS server and then
it broadcasts the printers and classes to (localhost).

A generic cups-browsed may request any CUPS server (including localhost)
for printers and classes and then it broadcasts the printers and classes
to any set of other hosts.

To provide CUPS Browsing on a CUPS 1.6 server such a generic cups-browsed
would request the CUPS 1.6 cupsd on localhost for printers and classes
and broadcast the printers and classes to CUPS <= 1.5 client hosts.

I ask for comments if this is possible at all and what you think
in general about such a generic cups-browsed for CUPS 1.6.

In particular I would be interested if such a generic cups-browsed
cannot work on CUPS 1.6 and/or if CUPS <= 1.5 clients that get printers
and classes this way cannot print "as usual via CUPS Browsing"
also on a CUPS 1.6 server.

Kind Regards
Johannes Meixner
SUSE LINUX Products GmbH -- Maxfeldstrasse 5 -- 90409 Nuernberg -- Germany
HRB 16746 (AG Nuernberg) GF: Jeff Hawn, Jennifer Guild, Felix Imendoerffer

More information about the cups mailing list