PrinterDriverAutoDownload
Size: 6830
Comment:
|
Size: 8492
Comment: review comments
|
Deletions are marked like this. | Additions are marked like this. |
Line 29: | Line 29: |
This will be based on a new service provided by [http://www.openprinting.org FSG OpenPrinting]. linuxptrinting.org is currently merging with FSG OpenPrinting and with the release of LSB 3.2 next year distribution-independent driver packages will be offered for download from linuxprinting.org. Especially there will be also available drivers directly uploaded from printer manufacturers. | This will be based on a new service provided by [http://www.openprinting.org FSG OpenPrinting]. linuxprinting.org is currently merging with FSG OpenPrinting and with the release of LSB 3.2 next year distribution-independent driver packages will be offered for download from linuxprinting.org. Especially there will be also available drivers directly uploaded from printer manufacturers. |
Line 31: | Line 31: |
=== Discription of the new printer driver download service at FSG OpenPrinting === | === Description of the new printer driver download service at FSG OpenPrinting === |
Line 35: | Line 35: |
This will be implemented as folows: | This will be implemented as follows: |
Line 52: | Line 52: |
''[pitti: that's not entirely true, for example, the lpd backend runs as root at least initially. Also, nothing stops an rpm or a deb to ship a suid root file, which might even be legitimate in some cases]'' |
|
Line 53: | Line 56: |
''[pitti: what does that mean? printer drivers being kernel modules? also, a process running as root has the freedom to alter kernel modules, too.]'' |
|
Line 55: | Line 61: |
''[pitti: how does this make sure that this does not collide with drivers shipped by default?]'' |
|
Line 67: | Line 75: |
''[pitti: that does not help users or us in any way]'' |
|
Line 78: | Line 88: |
''[pitti: this is underspecified, and I don't think it's necessary either; we usually want to update the drivers several times until UVF; see comment below for new driver check]'' |
|
Line 79: | Line 92: |
''[pitti: the interface of these drivers is certainly homogenuous enough to allow for an automated test suite? like feeding it various kinds of postscript files and checking whether they succeed converting it to a binary blob?]'' |
|
Line 80: | Line 96: |
''[pitti: It should be possible to create a generic source package that can update itself from upstream sources, run the test suite, and arrange the drivers in several binary packages, preferably split by vendor. please discuss and spec this out a little.]'' |
|
Line 82: | Line 101: |
The printer setup tool in Ubuntu will then into the Ubuntu repositories for driver auto downloads | The printer setup tool in Ubuntu will then look into the Ubuntu repositories for driver auto downloads. ''[pitti: How would this process look like? How does it tie into synaptic/gnome-app-install/etc.?]'' |
Line 85: | Line 106: |
''[pitti: this option should not be enabled by default, and should point out that this is *entirely* unsupportable]'' |
|
Line 95: | Line 118: |
''[pitti: however, the existing printer driver packages should be dropped to the extent possible and their equivalent functionality be provided by the automatically generated packages.]'' -- CategorySpec |
Automatic download of printer drivers through the internet
Launchpad entry: https://features.launchpad.net/distros/ubuntu/+spec/printerdriverautodownload
Created: 2006-10-16 by Till Kamppeter
Packages affected: printerdrake, other printer setup tools, foomatic-db, foomatic-db-engine, printer drivers/PPDs shipped on the CDs
Summary
Printer drivers are continually being created or updated - especially as new printers can come out at any time between distribution releases. It is not reasonable to expect all distributions to be completely up to date all of the time, yet users expect to be able to use a brand new printer straight away.
Rationale
Many printers do not get set up automatically straight away due to their drivers not being shipped with the distribution. Giving easy access to drivers from an external source will widen the scope of printers which will 'just work' a lot.
Use cases
- User A has an uncommon printer for which there are no drivers in their distribution.
- User B has a printer for which the manufacturer supplies a closed-source driver which distributions cannot ship
- User C has a new printer whose driver is not yet in the release of the distribution that they are using.
Scope
All Ubuntu distributions, depending on implementation progress Feisty or Feisty+1.
Design
We will add a functionality to our printer setup tool (PrinterDrake) which lets printer drivers automatically being downloaded on request, dependent on the printer model which is detected.
This will be based on a new service provided by [http://www.openprinting.org FSG OpenPrinting]. linuxprinting.org is currently merging with FSG OpenPrinting and with the release of LSB 3.2 next year distribution-independent driver packages will be offered for download from linuxprinting.org. Especially there will be also available drivers directly uploaded from printer manufacturers.
Description of the new printer driver download service at FSG OpenPrinting
Note: This service is completely independent from Ubuntu and is provided to all distributions and also to end users.
This will be implemented as follows:
Add requirements for common printer driver interfaces to LSB 3.2: Driver/renderer (currently GhostScript interfaces IJS, CUPS raster, OpenPrinting Vector, FHS (File System Hierarchy) extension for printer drivers and PPDs.
- Make use of other LSB standards, like packaging
- Make distribution independent driver packages which work with every LSB-3.2-compliant distro
Attach these packages as downloadable files to the driver entries of the Foomatic database at linuxprinting.org (FSG OpenPrinting)
- Make the access both human- and machine-readable
- Provide an API for client software to access: List of all printers, drivers, driver packages, available/recommended drivers for a given printer (specified by device ID or Foomatic printer entry), driver free/non-free?, digital signatures, driver download
A printer setup tool could for example detect a printer, check local driver availability and in addition ask the FSG OpenPrinting database for available drivers for this printer. Then install the remote driver if there is no local driver is available or if the local driver is older (update).
For more details see:
[https://wiki.ubuntu.com/PrinterDriverAutoDownload?action=AttachFile&do=view&target=FSGOpenPrintingPresentation.pdf printing presentation]
http://www.freestandards.org/en/OpenPrinting/SummitLexington
In general, the risk for a system being messed up by downloading an unknown printer driver in FSG OpenPrinting package format is relatively low:
- On all distros printer drivers do not run as root, but as the special users "cupsys" or "lp".
[pitti: that's not entirely true, for example, the lpd backend runs as root at least initially. Also, nothing stops an rpm or a deb to ship a suid root file, which might even be legitimate in some cases]
- Printer drivers never run in kernel mode.
[pitti: what does that mean? printer drivers being kernel modules? also, a process running as root has the freedom to alter kernel modules, too.]
Printer drivers are filters which generate the printer's native language from PostScript input.
The drivers provided via FSG OpenPrinting are restricted to reside an pre-defined standard directories, so when they are installed they cannot overwrite anything of the system or of other drivers.
[pitti: how does this make sure that this does not collide with drivers shipped by default?]
To give the best possible reliability and integrity every FSG OpenPrinting driver package will provide the following data:
- Driver name
- Release version
- Release date
- Is it free or non-free?
- Contact info to get support, report bugs, ...
- Digital signature of the supplier (for example printer manufacturer)
The driver supplier is also supposed to overtake responsibility (like support) for the driver he has issued.
[pitti: that does not help users or us in any way]
Integrity/Security/Reliability issues
A possible security concern could be that here executable code is automatically downloaded from a non-Ubuntu web site. Even with user advice, as telling that this download will happen and giving the possibility to reject, electronic signatures of the driver supplier (printer manufacturer) is not the ultimate solution here, as we want to provide a distro especially also for unexperienced users. So a blessing of the packages by Ubuntu and even better providing Ubuntu packages on the normal package distribution channels of Ubuntu would be a better solution (See comment below).
How we will provide automatic driver download at Ubuntu
Drivers will not be directly downloaded from FSG OpenPrinting, but they will be tested and blessed by Ubuntu and then be converted into Debian packages and distributed via the Ubuntu repositories.
On our site we will do
A daily process checks whether there are new drivers at FSG OpenPrinting and adds them to a TODO list
[pitti: this is underspecified, and I don't think it's necessary either; we usually want to update the drivers several times until UVF; see comment below for new driver check]
- QA people at Ubuntu test the driver by installing it and doing some tests (which do not require the printer, like printing into a file)
[pitti: the interface of these drivers is certainly homogenuous enough to allow for an automated test suite? like feeding it various kinds of postscript files and checking whether they succeed converting it to a binary blob?]
- If all is fine, we make a Debian package of this driver and do perhaps small adaptations
[pitti: It should be possible to create a generic source package that can update itself from upstream sources, run the test suite, and arrange the drivers in several binary packages, preferably split by vendor. please discuss and spec this out a little.]
- The Debian package gets into the Ubuntu repositories
The printer setup tool in Ubuntu will then look into the Ubuntu repositories for driver auto downloads.
[pitti: How would this process look like? How does it tie into synaptic/gnome-app-install/etc.?]
The user can still (on his own responsibility) download drivers directly from FSG OpenPrinting and install them.
[pitti: this option should not be enabled by default, and should point out that this is *entirely* unsupportable]
Implementation
Implementation on the FSG OpenPrinting side will soon be started by Till Kamppeter.
Implementation on the Ubuntu will start as soon as all needed APIs and specs are published by FSG, at least in a testing state.
Printer setup tool in which the implementation of this feature will be done principally is PrinterDrake.
The drivers for the most important printers (HPLIP, Gutenprint, ...) will be provided on the CDs, so that users without internet connection or with only dial-up will be able to set up their most printers without needing to download anything from the internet.
[pitti: however, the existing printer driver packages should be dropped to the extent possible and their equivalent functionality be provided by the automatically generated packages.]
-- CategorySpec
PrinterDriverAutoDownload (last edited 2008-08-06 16:35:34 by localhost)