PrinterDriverAutoDownload

Differences between revisions 25 and 26
Revision 25 as of 2008-05-15 09:24:07
Size: 6725
Editor: p54BEECD2
Comment:
Revision 26 as of 2008-05-15 12:57:46
Size: 6967
Editor: p54BEECD2
Comment:
Deletions are marked like this. Additions are marked like this.
Line 27: Line 27:
We will add a functionality to our printer setup tool (system-config-printer) which lets printer drivers automatically being downloaded on request, dependent on the printer model which is detected. The automatic download will be triggered by the auto-detection of a printer, either via the driver download and management tool Jockey (most probable) or by the printer setup tool system-config-printer.
Line 29: Line 29:
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. Binary printer driver packages and also PPD files (for PostScript printers) will be hosted on the OpenPrinting web site. Binary packages will be available as distribution-independent LSB-3.2-based packages (some are already available for testing) and also as distribution-specific packages, automatically rebuilt by the SUSE build service software. The package repositories will get indexed to allow automatic updates with package managers like apt-get, yum, urpmi, ... Upload of driver packages and PPD files to OpenPrinting will be done by printer manufacturers and also by major free software driver projects.
Line 31: Line 31:
=== Description of the new printer driver download service at FSG OpenPrinting === === Description of the printer driver download service at OpenPrinting ===
Line 36: Line 36:
 * 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).
 * The LSB 3.2 has requirements for common printer driver interfaces: Driver/renderer interfaces: IJS, CUPS Raster, OpenPrinting Vector, Ghostscript driver pxlmono/pxlcolor, foomatic-rip, libcupsimage library, FHS (File System Hierarchy) extension for printer drivers and PPDs.
 * LSB-compliant binary executables, Adobe-compliant PPDs
 * Ma
ke distribution-independent binary RPMs which work with every LSB-3.2-compliant distro (RPMs get converted to Debian packages with alien).
 * Later also distribution-specific packages via automatic rebuild with SUSE build service software
 *
Attach these packages as downloadable files to the driver entries of the Foomatic database at OpenPrinting
 * Access is both h
uman- and machine-readable
 * Web API for client software to access: List of all printers, drivers, driver packages, available/recommended drivers for a given printer (specified by device ID, make/model, or Foomatic printer entry), driver free/non-free?, digital signatures, driver download
Line 45: Line 45:
 * [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
 * [http://www.linux-foundation.org/en/OpenPrinting/WritingAndPackagingPrinterDrivers Making distribution-independent printer driver packages based on the LSB]
 * [http://www.linux-foundation.org/en/OpenPrinting/Database/Query Web API for printer setup tools to query the OpenPrinting database and download printer drivers]
 * [https://www.linux-foundation.org/images/e/e4/Distro-Independent-Packages.pdf Presentation from OpenPrinting Summit 2007]
Line 49: Line 49:
To give the best possible reliability and integrity every FSG OpenPrinting driver package will provide the following data: To give the best possible reliability and integrity every OpenPrinting driver entry provides the following data:
Line 52: Line 52:
 * Supported printers
Line 53: Line 54:
 * Release date
Line 55: Line 55:
 * License, with license text if needed
 * Possible patent issues
Line 56: Line 58:
 * Digital signature of the supplier (for example printer manufacturer)
Line 58: Line 59:
=== How we will provide automatic driver download at Ubuntu === It is planned to digitally sign the packages and to index the package repositories for package management tools like apt-get, yum, ...
Line 60: Line 61:
For security and stability reasons we do not directly download and install printer driver packages from FSG to the User's system. Instead, we will create a package infrastructure which makes these upstream drivers available as Ubuntu packages in the Ubuntu archive after a QA process. ===Driver download by Ubuntu===

In Ubuntu the driver download will most probably get performed by the driver management tool Jockey. For that on a printer auto-detection Jockey will be called at first to check the presence of the driver and download it if needed. Then system-config-printer will be called to set up the print queue. For network printers there should also be a possibility to call Jockey from the printer setup tool.

Alternatively, one caould also think about a download done by the printer setup tool.
Line 64: Line 69:
Web API for database queries and packaging method for distribution-independent binary packages are already implemented. system-config-printer already contains a facility to auto-download pure PPD files (for PostScript printers). Also infrastructure for driver lookup is already in system-config-printer.


Line 66: Line 75:
We will create a source package `openprinting-drivers` which can automatically
Line 68: Line 76:
 * download available drivers from upstream,
 * create one binary package per vendor,
 * ensure that there will be no packaging conflicts,
 * run a test suite over all available drivers (set up a temporary print queue for this driver, print some standard PostScript files throuh it into a file, check whether the driver finished successfully and the resulting binary blob has a reasonable size).

This package should be updated several times during the release cycle until UVF. Those drivers should also be considered for `*-updates` if we can get reliable test results on real hardware.

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 Linux distributions, depending on implementation progress starting with Ubuntu Intrepid.

Design

The automatic download will be triggered by the auto-detection of a printer, either via the driver download and management tool Jockey (most probable) or by the printer setup tool system-config-printer.

Binary printer driver packages and also PPD files (for PostScript printers) will be hosted on the OpenPrinting web site. Binary packages will be available as distribution-independent LSB-3.2-based packages (some are already available for testing) and also as distribution-specific packages, automatically rebuilt by the SUSE build service software. The package repositories will get indexed to allow automatic updates with package managers like apt-get, yum, urpmi, ... Upload of driver packages and PPD files to OpenPrinting will be done by printer manufacturers and also by major free software driver projects.

Description of the printer driver download service at 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:

  • The LSB 3.2 has requirements for common printer driver interfaces: Driver/renderer interfaces: IJS, CUPS Raster, OpenPrinting Vector, Ghostscript driver pxlmono/pxlcolor, foomatic-rip, libcupsimage library, FHS (File System Hierarchy) extension for printer drivers and PPDs.

  • LSB-compliant binary executables, Adobe-compliant PPDs
  • Make distribution-independent binary RPMs which work with every LSB-3.2-compliant distro (RPMs get converted to Debian packages with alien).
  • Later also distribution-specific packages via automatic rebuild with SUSE build service software
  • Attach these packages as downloadable files to the driver entries of the Foomatic database at OpenPrinting

  • Access is both human- and machine-readable
  • Web API for client software to access: List of all printers, drivers, driver packages, available/recommended drivers for a given printer (specified by device ID, make/model, or Foomatic printer entry), driver free/non-free?, digital signatures, driver download

For more details see:

To give the best possible reliability and integrity every OpenPrinting driver entry provides the following data:

  • Driver name
  • Supported printers
  • Release version
  • Is it free or non-free?
  • License, with license text if needed
  • Possible patent issues
  • Contact info to get support, report bugs, ...

It is planned to digitally sign the packages and to index the package repositories for package management tools like apt-get, yum, ...

===Driver download by Ubuntu===

In Ubuntu the driver download will most probably get performed by the driver management tool Jockey. For that on a printer auto-detection Jockey will be called at first to check the presence of the driver and download it if needed. Then system-config-printer will be called to set up the print queue. For network printers there should also be a possibility to call Jockey from the printer setup tool.

Alternatively, one caould also think about a download done by the printer setup tool.

Implementation

Web API for database queries and packaging method for distribution-independent binary packages are already implemented. system-config-printer already contains a facility to auto-download pure PPD files (for PostScript printers). Also infrastructure for driver lookup is already in system-config-printer.

Packaging infrastructure

Printer setup tool integration

If there is no matching driver installed, the printer setup tool will check the apt database for available ones. If there is one, ask the user and call the package manager for installing it (synaptic supports this mode with some special command line arguments).

The user can still (on his own responsibility) download drivers directly from FSG OpenPrinting and install them by explicitly enabling this functionality in the printer setup tool and confirm that this mode is entirely unsupported by Ubuntu.

Assignments

Implementation on the OpenPrinting side done by Till Kamppeter.

Implementation on the Ubuntu will start as soon as all needed APIs and specs are published by OpenPrinting, 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.

The existing printer driver packages should be dropped to the extent possible and their equivalent functionality be provided by the automatically generated packages.

* [http://www.linux-foundation.org/en/OpenPrinting/WritingAndPackagingPrinterDrivers Making distribution-independent printer driver packages based on the LSB] * [http://www.linux-foundation.org/en/OpenPrinting/Database/Query Web API for printer setup tools to query the OpenPrinting database and download printer drivers]

-- CategorySpec

PrinterDriverAutoDownload (last edited 2008-08-06 16:35:34 by localhost)