User Tools

Site Tools


Google Season of Docs 2020: OpenPrinting projects


Important: We protect the e-mail addresses of our mentors and mailing lists against spam bots. Please replace all occurrences of “ at ” and “ dot ” by “@” and “.” resp.

Mailing list: printing-architecture at lists dot linux-foundation dot org

IRC: #openprinting on Freenode

OpenPrinting GitHub

Code License: See project descriptions

Organization Administrators

The participation of the Linux Foundation in the Google Season of Docs is organized by Till Kamppeter (till at linux dot com) and Aveek Basu (basu dot aveek at gmail dot com).

Project Ideas

Tutorial and Design Guidelines for Printer/Scanner drivers in Printer Applications

Classic printer drivers consisting of printer-specific filters and PPD (Postscript Printer Description, describes printer capabilities and which filters to call) files which has to be dropped in certain directories of the file system are replaced by so-called Printer Applications, emulation of an IPP network printer.

Physical IPP network printers work driverless, meaning that a client can poll the printer's capabilities from the printer and then knows how to print on it. The Printer Application as an emulator of an IPP printer contains the software to print incoming jobs on the printer(s) it supports, converting the data to the printer's native language, and it provides the info about the printer's capabilities to clients on request. The Printer Application even has a web administration interface, like an actual network printer.

This has two major advantages: First, the ancient concept of PPD files coming from PostScript printers is discontinued. We were already hitting the limits of it a lot with modern printers. In addition, by coupling the CUPS system and the printer driver by an IP connection instead of dropping files into the CUPS system, both the CUPS system and the Printer Appplication can be in separate sandboxed packages (Snap, flatpak, …).

Also scanner drivers can be handled this way. Instead of dropping a SANE driver (a shared library) into the appropriate directory of the system, we emulate an IPP scanner, so we have a Scanner Application, and only one application is needed to fully support a multi-function device with print, scan, and fax capabilities.

This is the format for printer and scanner drivers of the future, and to make it easy for hardware manufacturers to design drivers this way we want to have a tutorial with design guidelines for drivers. And this is the task of this project.

The base for creating such Printer/Scanner Applications is PAPPL, a library providing most functionality for this, but also cups-filters contains code to be used for Printer Applications. The concept is still under development, mainly in this year's Google Summer of Code, but on September 14, when the documentation writing period starts, the coding period of GSoC has already ended and this is when we need the tutorial.

Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com), Michael Sweet, author of CUPS/LPrint/PAPPL and original creator of Gutenprint (msweet at msweet dot org), Ira McDonald, OpenPrinting (blueroofmusic at gmail dot com), Smith Kennedy, HP (smith kennedy at hp dot com), Dheeraj Yadav (dhirajyadav135 at gmail dot com), Sahil Arora (sahilarora dot 535 at gmail dot com)

License: Apache 2.0 + (L)GPL2 exception

Documenting the Usage details for cups-filters

Needs to create the detailed documentation on usage details of all the CUPS filters, backends, and utilities in the cups-filters project and how to build them.

Current documentation is put together from all the different sources from where the filters and other components came originally, before the cups-filters project got started. Some documentation is in the README file other in man pages, …

Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot com)

License: Apache 2.0 + (L)GPL2 exception

Documenting the Automatic Queue Creation and printing Process for a IPP - Driverless printer in Linux

As a part of this project a tech writer needs to document the entire set of steps on how a driverless print queue gets internally created in Linux. The content will have the details of what goes on at the background and how are the queues automatically created.

The writer also needs to document what exactly goes behind the scenes when an user selects a particular queue and fires a print.

This could be made available both on the OpenPrinting web site and also in files coming with the software packages, like cups-filters.

Mentors: Aveek Basu, (aveek dot basu at gmail dot com), Sahil Arora (sahilarora dot 535 at gmail dot com)

Licens: MIT

gsoc/google-season-of-docs-2020-openprinting-projects.txt · Last modified: 2020/04/10 17:46 by till