Translation(s): none

Some material of this page has little immediate bearing on a user's printing experience on Debian 11 (bullseye) and 12 (bookworm). It is intended to give a taste of things to come. Its content will inevitably require revision in the coming years.


Within one or two years the complexion of the printing system on Debian will undergo fundamental changes with the release of CUPS 3.0. This version will no longer support printing with PPD files and therefore, by implication, not support vendor drivers, whether they be free or non-free.

CUPS 3.0 will also have a modular printing architecture that includes the introduction of a Local server and a Sharing server.

That means the printer-driver-* packages become useless and any attempt to set up a print queue manually with a Local server will not work.

Legacy/Classic and Modern Printers

A Legacy or Classic printer requires a PPD to describe its capabilities and, in the case of non-PostScript printers, a vendor-specific driver. In contrast, a Modern printer can

One criterion for determining whether a printer is Modern is to ascertain whether it is capable of AirPrint.

Users of Modern printers with the New Architecture should have a printing experience that is basically the same as now. Users of Legacy printers will require a Printer Application.

Printer Applications

A Printer Application emulates an IPP printer. It

The job is then handled by the supported printer's PPD and driver needed for the Legacy printer to operate. The Classic software is built into the Application. For example, hplip-printer-app essentially contains the same printer drivers, PPDs and software to communicate with the printer hardware (but not any of its GUI tools) that is in hplip. A simple example of a Printer Application is given on this page.

The Printer Applications are developed by OpenPrintig and practically every free printer driver that is available as a Debian package is also available in the present Printer Applications. None are as yet packaged for Debian, but it is possible to assess their role in printing on CUPS 2.3/2.4 by installing snapd and going to the Snap Store for an Application.

apt install snapd
snap install --edge ps-printer-app

The Application's EWS is accessed with


With more than one Application present the port number increments by 1; 8001, 8002 etc

Now activate the Add Printer link. The Legacy printer should be discovered and listed. Either allow Auto-Detect Driver or choose a driver. Give the printer a Name and add it.

The printer's existence can be confirmed with

avahi-browse -rt _ipp._tcp
lpstat -l -e

and it should be visible in the dialogs of applications.

Printing to it may be tested with

lp -d <PRINTER_NAME> /etc/nsswitch.conf

The Building Blocks of a Printer Application

Although the vast majority of users will never get involved in building a Printer Application, it might be of interest to be aware of the parts played by two crucial libraries, PAPPL and pappl-retrofit.

This library is a framework for developing CUPS Printer Applications based on the IPP Everywhere protocol. It is intendedd as the replacement for Classic printer drivers. It includes an implementation of IPP Everywhere, allowing driverless access to printers locally via USB or on the network (ethernet and WiWi) and the processing of print requests. In other words, an important part of its function is to emulate an IPP printer.

Printer discovery is undertaken and suitable printer drivers are searched for. Printer configuration is provided by an EWS (a web interface) and there is debug logging. There is also support for Windows 10 and 11 platforms.

pappl-retrofit produces specific Printer Applications and completely relies on PAPPL to aid it by supporting PAPPL's full functionality. PAPPL provides general functionality for a Printer Application whereas pappl-retrofit adapts Classic CUPS drivers and PPD files to the basic Printer Application framework so that CUPS can make use of them. The pappl-retrofit library was developed alongside the four Printer Applications ps-printer-app, ghostscript-printer-app, hplip-printer-app and gutenprint-printer-app and is used as the basis for them.

The EWS of a Printer Application lists all user-settable options of the PPD file, paper input trays, paper size and type and whether borderless printing should be done, if supported. Drivers can be assigned to the discovered printers automatically or manually.

See Also