I have already posted my first question about snapping CUPS. Now I have another question:
The printing snap will contain CUPS, cups-filters, and MuPDF, but not a collection of printer drivers and PPD files, to keep the snap small and light, so that one can also easily use it on IoT appliances and mobile devices. For this kind of devices the printer manufacturers have also introduced several standards for driverless printing: IPP Everywhere, Apple AirPrint, Mopria, and WiFi Direct (AFAIK).
But even with that many driverless printing standards there are enough legacy printers requiring drivers and also in the future such printers will probably continue to get onto the market. Therefore the printing stack snap should also support printer drivers.
My idea is to allow printer driver snaps as plugins to the printing stack snap. The user can install one or more printer driver snaps on his system running the printing stack snap. The printing stack snap sees the installed printer driver snaps and uses them for setting up supported printers.
Printer driver snaps could be put up in the snap store and manufacturers who want to support their printers under Linux and on snap-based appliances can post their printer driver plugin snap there. This is a way to provide distribution-independent printer driver packages (and ones the interface is defined easier to implement for printer manufacturers than the former LSB approach).
So what I want to know is which interface in Snappy is the best to implement this.
I have one master snap (the printing stack snap) and this needs to support plugins which are other snaps and installation of a plugin snap should add files (including binary executables) to the file system of the master snap.
- The master snap does not have to know beforehand which plugin snaps exist. It must be possible to add a new plugin snap to the snap store without need to modify the master snap.
- It must be possible to install any number of (different) plugin snaps to one installed master snap, allowing any number and combination of supported printers to be connected to one machine.
- The plugins can contain binary executables, also closed source.
Would the “content” interface be suitable for this? If yes, could someone post links to documentation and/or examples which could help on the implementation? If no, is there any other suitable interface? Or should I post a feature request? And if so, where?
Thanks for any help.