[Printing-architecture] Upcoming work for OpenPrinting: Printer (Scanner) Applications and IPP System Service

Solomon Peachy pizza at shaftnet.org
Thu Nov 7 16:49:01 UTC 2019

On Thu, Nov 07, 2019 at 04:34:32PM +0100, Till Kamppeter wrote:
> - Legacy interface functions: For filters/PPDs and
>   for SANE drivers.

(all of my comments are limited to printing, not SANE)

I'm not sure what form this can meaningfully take, other than 
effectively being "Legacy CUPS in a container"

In my view there are really two parallel thrusts; Wrapping existing 
legacy CUPS drivers, and the brave new world of native-IPP solutions.

Where they are similar is in their interfacing to the outside system 
(OS integration, port selection, dns-sd, and so forth but once you 
step past that, they diverge rapidly.  For example, CUPS 
filter wrapping is necessarily PPD-centric, but that's a lot of 
baggage (and complexity) that is presumably unnecessary for native, 
directly-integrated stuff.

> - Communication with printers and scanners,
>   functionality of the CUPS backends.

Most printers can get away with the standard legacy CUPS backends, but 
there are custom backends to contend with (often proprietary), and a lot 
of quirks just to keep life interesting.

> For testing this we should create a native Printer Application from
> Gutenprint for example, or one for PostScript printers for which we have PPD
> files. We also should create a native Scanner Application wrapping SANE with
> its current driver collection.

Gutenprint is a good canidate for this as, at its core, it is a library 
that provides a rich API for printer description, configuration, and 
rasterization.  Its existing CUPS driver and GIMP plugin are 
effectively stand-alone applications that rely on that library, and 
would presumably be a decent example of how one would need to integrate 
third party code into any printer application framework.

Gutenprint's CUPS backends are sort of bolted onto the side, and 
typically support extensive printer configuration/status reporting and 
issuing OOB commands, areas where the IPP model offers substantial 
benefits over the (significant) inadequacies of the legacy CUPS model.

...suffice it to say I'm really looking forward to a native IPP wrapper 
around Gutenprint, and will help any way I can.

> The code should get preferably hosted at OpenPrinting as part of
> cups-filters or in separate projects/repositories. Probably we need to
> overtake some parts of the ippsamples code. Or should the lib then better be
> at the PWG as part ippsamples?

I agree that this effort will require subsuming substantial chunks of 
the ippsample code, if only because of tight integration requirements 
that probably don't align well with ippsample's existing codebase.

But IMO a development goal here would be to try to keep the IPP stuff 
self-contained, and if restructuring is necessary, try to convinve 
upstream ippsample to accept those changes as to minimize everyone's 
maintenance burdens.

Oh, one are of concern here is licensing; As well as chosing a license 
for the (substantial) new code that needs writing, of the code we'd 
presumably want to re-use or otherwise integrate, there's quite an 
assortment.  For example, ippsample is ASL2, gutenprint is GPL2+, and 
cups-filters is a mismash of GPL2, GPL2+, GPL3, GPL3+, and MIT.

 - Solomon
Solomon Peachy			       pizza at shaftnet dot org
High Springs, FL                          ^^ (email/xmpp) ^^
Quidquid latine dictum sit, altum videtur.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.linuxfoundation.org/pipermail/printing-architecture/attachments/20191107/7f7e6fd1/attachment.sig>

More information about the Printing-architecture mailing list