EdgyPrinterDriverPackages
This is a draft specification. It is still under heavy development... Please ignore until it has shaped up more.
Introduction
There are a number of driver projects which provide PPDs, these come in different Ubuntu packages. Several packages in Ubuntu should form a database of unique PPDs. Ubuntu already supports large driver projects with good quality in main. Other smaller, special or low quality drivers should be moved to universe.
This specification describes which binary driver and PPD packages should be included in main and which should be moved to universe and what changes are necessary.
https://launchpad.net/distros/ubuntu/+bug/23852
Implementation
Packages providing prebuilt PPDs should follow this specification: https://launchpad.net/distros/ubuntu/+spec/ppd-file-structure.
- The above specification doesn't describe which PPDs should be in which packages. I believe large driver projects should have seperate PPD packages which is already the case. But smaller binary driver projects only support a few printers and should include the PPDs in the binary driver package. This isn't always the case, Ubuntu should add the PPDs to these packages where necessary.
- Ubuntu should make the changes described below for better support of the ppd-file-structure specification. Debian is very slow in making these changes. In some changes I refer to bug reports in Ubuntu which indicate that following this specification will provide a better printing experience.
Printer Driver Packages in Ubuntu
The following binary printer driver, prebuilt PPD and Foomatic database packages are available at this moment in Ubuntu (feel free to add missing ones):
main
- gs-esp with foomatic-filters-ppds or PPDs generated from foomatic-db
- hpijs with hpijs-ppds or PPDs generated from foomatic-db-hpijs
- ijsgutenprint with PPDs generated from foomatic-db-gutenprint
- foo2zjs and pnm2ppa: PPDs in foomatic-filters-ppds or generated from foomatic-db
- cupsys: rasterto binaries with cups-included PPDs
- cupsys-driver-gutenprint: rastertogutenprint.5.0 binary with PPDs generated on installation
- linuxprinting.org-ppds
universe
- min12xxw, c2050, cjet: PPDs in foomatic-filters-ppds or generated from foomatic-db
- hp-ppd
Suggested changes to packages
ubuntu-desktop
- Remove foomatic-db-gutenprint dependency. foomatic-db-gutenprint is only needed to generate PPDs for LPRng or other spoolers with foomatic-ppdfile or by use of foomatic-configure or foomatic-gui. Since Ubuntu uses the CUPS spooler and cupsys-driver-gutenprint generates cups-raster PPDs for all gutenprint printers on installation this package only wastes space. Therefore ijsgutenprint and foomatic-db-gutenprint could be moved to universe.
- Should we add a dependency to linuxprinting.org-ppds which only contains postscript PPDs? Currently the linuxprinting.org-ppds package is not installed by default.
foomatic-filters-ppds
Since CUPS 1.2 it is possible to use dynamically generated PPD files by using driver programs under the /usr/lib/cups/driver directory. Driver programs must implement a specific command-line interface as described in the cups-driverd manpage, foomatic-ppdfile provides the needed command-line interface since 20060420.
We should drop the foomatic-filters-ppds package completely from Ubuntu and replace it by providing a symlink from /usr/lib/cups/driver/foomatic to /usr/bin/foomatic-ppdfile. The symlink should be part of the cupsys package. Every printer queue setup tool using the CUPS API like CUPS web interface, gnome-cups-manager and KDE Print Manager will use these dynamically generated PPDs automatically. By using dynamically generated PPDs it would be easier to resolve some issues we have with the current static package.
Dynamic generation of PPDs is already possible in Edgy, I have done some performance test: see Malone bug #55685.
foomatic-db
Split up in two packages: foomatic-db-gs-builtin and foomatic-db-gs-filter.
- foomatic-db-gs-builtin should have all the xml files for binary printer Ghostscript drivers built into in gs-gpl and/or gs-esp.
- foomatic-db-gs-filter should contain all the xml files for Ghostscript filters like foo2zjs, pnm2ppa, ...
foomatic-db-gs-filter should be moved to universe and depend on ALL Ghostscript filters: foo2zjs, pnm2ppa, cjet, c2050, ...
https://launchpad.net/distros/ubuntu/+bug/42965 https://launchpad.net/distros/ubuntu/+source/cupsys/+bug/34647
Call foomatic-cleanupdrivers in the post-install and post-uninstall scripts of all packages which contain Foomatic data to make sure that there is always an existing driver as recommended driver. Suggested by Till Kamppeter in Malone bug #42965
linuxprinting.org-ppds
*NickName inside PPDs should use the ppd-file-structure indication (see Malone bug #33900). Gnome-cups-manager uses this indication to group different drivers of the same printer model together.
hpijs-ppds
Add the missing non-HP hpijs PPDs (see Malone bug #49102).
This issue would be automatically resolved by using dynamically generated PPDs through the CUPS API from foomatic-db-hpijs and remove the hpijs-ppds package from Ubuntu.
foo2zjs
sync with foo2zjs 20060625dfsg-1 from debian/experimental (see Malone bug #54690).
Version 20060625 upstream has remained unchanged for over a month now, which indicates it's stable.
This will fix these Ubuntu bugs:
Malone bug #6017: Update to latest package to make HP LaserJet 1020 work
Malone bug #50631: HP PPDs installed by foo2zjs should use *Manufacturer: "HP"
According to upstream changelog it will also avoid bugs in gs 8.14 and 8.15 with Hp Color LaserJet 2600 printer:
2006-06-25 Rick Richardson <rickr@mn.rr.com>
- Modify: foo2hp2600-wrapper to avoid bugs in gs 8.14 and 8.15 (Ubuntu).
- Move to universe.
pnm2ppa, min12xxw, c2050, cjet
- Move pnm2ppa and min12xxw to universe.
hp-ppds
- Has no usefull PPDs inside and should be removed from Ubuntu.
ijsgutenprint
- Move to universe. Since Ubuntu uses the CUPS spooler and cupsys-driver-gutenprint generates cups-raster PPDs for all gutenprint printers on installation this package should not be in main.
foomatic-db-gutenprint
- Move to universe. Since Ubuntu uses the CUPS spooler and cupsys-driver-gutenprint generates cups-raster PPDs for all gutenprint printers on installation this package should not be in main.
Call foomatic-cleanupdrivers in the post-install and post-uninstall scripts of all packages which contain Foomatic data to make sure that there is always an existing driver as recommended driver. Suggested by Till Kamppeter in Malone bug #42965
gnome-cups-manager
https://launchpad.net/distros/ubuntu/+source/gnome-cups-manager/+bug/29966 https://launchpad.net/distros/ubuntu/+source/gnome-cups-manager/+bug/54362
EdgyPrinterDriverPackages (last edited 2008-08-06 16:21:28 by localhost)