With the background of all modern printers being driverless IPP printers and the standard job format being PDF and not PostScript any more for years we will have changes in the architecture of the printing stack.
From the 3.x series on (release end-2023) CUPS will not support classic printer drivers, consisting of PPD (PostScript Printer Description) files and filter executables, any more but go totally IPP, supporting only driverless IPP printers. To not drop support for legacy printers drivers are provided as Printer Applications (in the Snap Store), software emulators of IPP printers. Also the already available CUPS Snap (in the Snap Store) does not support classic drivers any more.
These changes require also changes in how user applications communicate with CUPS. Print dialogs for example cannot download PPDs from CUPS anymore to display the printer options, temporary CUPS queues for auto-discovered IPP printers must be supported, ... and printer setup tools need to list IPP services with shortcuts to their web interfaces and other configuration options, and for adding non-driverless printers they need to find and install the appropriate Printer Applications.
For print dialogs the responsibility of keeping up with changes in CUPS and other print technologies (like cloud print services) can also be transferred to OpenPrinting and print service providers, using the Common Print Dialog Backends.
In addition to this we have sandboxed packaging (Snap, Flatpak, ...) now and users want to easily print and scan also from applications installed via such a sandboxed package and CUPS is already available as a Snap, too.
In this talk I want to present the changes in printing and scanning relevant for application and GUI toolkit developers and packagers and what needs to get changed and how things get done.