Draft: Support for IPP and Printer Applications in CUPS Transition
This Merge Request is part of OpenPrinting's work to adapt the "Printers" module of the GNOME Control Center to the changes in the architecture of the printing workflow.
Due to the fact that most modern printers are driverless IPP (Internet Printing Protocol) printers, CUPS is going away from supporting PPD files and driver filters, but it is going all-IPP and with this will support only driverless IPP printers. For the few specialty printers and the many non-driverless legacy printers still around, Printer Applications will be used. Printer Applications are software emulations of drivreless IPP printers which on the other end talk with the printer hardware, doing all needed conversions internally. This format is the replacement for the former printer drivers.
We add the following features:
In the main view we do not only display permanent, user-created CUPS queues, but also IPP print destinations (driverless network printers, IPP-over-USB printers, Printer Applications, shared remote CUPS queues, ...) for which CUPS would auto-create a temporary queue when printing on them (equivalent of lpstat -l -e output). Action menus for these IPP print destinations are adapted, especially entry to directly open the destinations's web admin interface.
In the "Add Printer" part we add functionality to discover (non-driverless) printers by polling installed Printer Applications and also to apply Printer Applications to a discovered printer as driver.
We add this functionality and do not remove the old one for smooth transition, as the current CUPS 2.x supports both architectures, and the future CUPS 3.x only the new one. Once G-C-C updated, CUPS can be updated at any time.