PrinterDriverAutoDownload

Differences between revisions 16 and 18 (spanning 2 versions)
Revision 16 as of 2006-11-08 23:53:23
Size: 6626
Editor: 207
Comment:
Revision 18 as of 2006-11-10 01:55:45
Size: 8492
Editor: 207
Comment: review comments
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
Printer drivers are continually being created or updated - more so than most other pieces of hardware.  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. 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. 
Line 11: Line 11:
== 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.
Line 16: Line 19:
 * User C has a new printer whose driver is not yet in the release of Ubuntu that they are using.  * User C has a new printer whose driver is not yet in the release of the distribution that they are using.
Line 24: Line 27:
The printer setup tool of Ubuntu 7.04 and later should automatically download LSB-packaged printer drivers from linuxprinting.org (will be the FSG OpenPrinting database then). 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.
Line 26: Line 29:
This will be based on new functionality currently being added to linuxprinting.org. 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 28: Line 31:
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
 * http://www.freestandards.org/wordpress/?p=224
=== Description of the new printer driver download service at FSG OpenPrinting ===
Line 33: Line 33:
=== Principle === ''Note'': This service is completely independent from Ubuntu and is provided to all distributions and also to end users.
Line 35: Line 35:
This will be implemented as follows:
Line 43: Line 44:
=== 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).

To still make use of driver packages from FSG OpenPrinting but provide Ubuntu-approved drivers one could suggest the following approach:

 * A daily process checks whether there are new drivers at FSG OpenPrinting and adds them to a TODO list
 * 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)
 * If all is fine, they make a Debian package of this driver and do perhaps small adaptations
 * The Debian package gets into the Ubuntu repositories
 * The printer setup tool in Ubuntu looks into the Ubuntu repositories for driver auto downloads

The user can still (on his own responsibility) download drivers directly from FSG OpenPrinting and install them.
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
 * http://www.freestandards.org/wordpress/?p=224
Line 60: 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 61: 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 64: Line 62:
Every FSG OpenPrinting driver package should provide the following data:  ''[pitti: how does this make sure that this does not collide with drivers shipped by default?]''
Line 66: Line 64:
To give the best possible reliability and integrity every FSG OpenPrinting driver package will provide the following data:

 * Driver name
Line 72: Line 73:
The driver supplier should overtake responsibility (like support) for the driver he has issued. 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]''
Line 76: Line 111:
Implementation on the FSG OpenPrinting side will soon be started by Till Kamppeter Implementation on the FSG OpenPrinting side will soon be started by Till Kamppeter.
Line 78: Line 113:
Implementation on the Ubuntu will start when all needed APIs and specs are published by FSG. Implementation on the Ubuntu will start as soon as all needed APIs and specs are published by FSG, at least in a testing state.
Line 80: Line 115:
Printer setup tool in which implementation of this feature will be done principally is printerdrake. Printer setup tool in which the implementation of this feature will be done principally is PrinterDrake.
Line 82: Line 117:
The drivers for the most important printers (HPLIP, Gutenprint, ...) will be provided on the CDs, so that users without internet connection will be able to set up their printers in most cases. 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.
Line 84: Line 119:
== Comments == ''[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.]''
Line 86: Line 121:
IanJackson brought in some concerns:

"It is not clear that automatically downloading software from a website like this, and running it as root (''Rem.: Printer drivers do not run as root, see above''), is a good idea. This is probably OK for ppd files (which are more like data) but driver programs (which convert raster data into a stream for the printer) run as root in the printing system, installing packages might accidentally break unrelated aspects of the system (or the whole system), and there are some worries about whether it's always reasonable for us to decide on our users' behalf to wholly trust the originators of these drivers.

So, to be consistent with our efforts to ensure that post-release our systems are stable and secure, it would be sensible to arrange that these programmatic drivers should be blessed by Ubuntu itself. In which case it probably makes most sense to distribute them via our normal package distribution channels."
--
CategorySpec

Automatic download of printer drivers through the internet

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:

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)