Differences between revisions 43 and 44
Revision 43 as of 2006-08-12 11:15:49
Size: 15921
Editor: ?PascalDeVuyst
Comment:
Revision 44 as of 2006-08-12 11:16:22
Size: 15926
Editor: ?PascalDeVuyst
Comment:
Deletions are marked like this. Additions are marked like this.
Line 83: Line 83:
 * If you currently set up a printer with foomatic-configure or foomatic-gui, e.g. a Minolta !MagiColor 2430DL that uses foo2zjs binary driver you are able to do so without problems even if the foo2zjs package is not installed. This is also the case for printer drivers that have no Debian package, e.g. epl6100l. To avoid this we should split up foomatic-db into foomatic-db-gs-builtin and foomatic-db-gs-filter. The package foomatic-db-gs-filter should depend on ALL the binary Ghostscript filter packages available in Debian like foo2zjs, pnm2ppa, ...
We should remove drivers from foomatic-db-gs-filter that have no Debian package.
 * If you currently set up a printer with foomatic-configure or foomatic-gui, e.g. a Minolta !MagiColor 2430DL that uses foo2zjs binary driver you are able to do so without problems even if the foo2zjs package is not installed. This is also the case for printer drivers that have no Debian package, e.g. epl6100l. To avoid this we should split up foomatic-db into foomatic-db-gs-builtin and foomatic-db-gs-filter. The package foomatic-db-gs-filter should depend on ALL the binary Ghostscript filter packages available in Debian like foo2zjs, pnm2ppa, ...[[BR]] We should remove drivers from foomatic-db-gs-filter that have no Debian package.

Any comments or suggestions to this wikipage are welcome!!! ?BR Please openly discuss this on [http://lists.debian.org/debian-printing/ debian-printing mailing list].

Printer Driver Packages Suggested Changes

Created: 06/08/2006 by ?PascalDeVuyst ?BR Last update: 07/08/2006 ?BR

Introduction

This wikipage suggests the changes that should be made to the foomatic, prebuilt PPD and some other printing related packages in Debian to give users a better experience while setting up their printer queues. It mainly describes the changes that should be made to let the current packages in Debian, that provide printer drivers, conform with the PpdFileStructureSpecification. I invite the Debian maintainers of the packages described below in particular and everyone who is interested to discuss the changes I suggest in this wikipage on the [http://lists.debian.org/debian-printing/ debian-printing mailing list]. Any comments or suggestions are welcome!!!

Printer Driver Packages in Debian

The following binary printer driver, prebuilt PPD and Foomatic database packages are available at this moment in Debian (feel free to add missing ones):

  • gs-gpl or 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, pnm2ppa, min12xxw, c2050, cjet, lexmark7000linux: 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
  • hp-ppd

Suggested changes to packages

foomatic-db-engine

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 could drop the foomatic-filters-ppds package completely from Debian 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 the issues we have with the current static package, see below. I can't think of any tools that would still need the static foomatic-filters-ppds package.

If we still want to keep the static foomatic-filters-ppds package we should have 2 seperate packages with prebuilt PPDs: linuxprinting.org-gs-builtin-ppds and linuxprinting.org-gs-filter-ppds:

  • linuxprinting.org-gs-builtin-ppds should have all the prebuilt PPDs for binary printer Ghostscript drivers built into in gs-gpl and/or gs-esp.
  • linuxprinting.org-gs-filter-ppds should have all the prebuilt PPDs for Ghostscript filters like foo2zjs, pnm2ppa, ...

I think it is better to use the name linuxprinting.org instead of foomatic-filters since there are a lot of other packages that actually need foomatic-filters (e.g. hpijs, ijsgutenprint, ...) and they don't have foomatic-filters in their package name.

Suggested changes:

  • Remove real PostScript PPDs from foomatic-filters-ppds, these belong in linuxprinting.org-ppds ([http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=363052 see Debian bug #363052]).

  • Include the custom PXL PPDs from Gestetner, Infotec, Lanier, NRG, Ricoh and Savin that were generated with their own tools instead of Foomatic. These PPDs use the pxlmono driver that is built into Ghostscript and should be in linuxprinting.org-gs-builtin-ppds package.
  • PPDs should be installed under /usr/share/ppd/foomatic-rip/linuxprinting.org-gs-builtin or /usr/share/ppd/foomatic-rip/ghostscript_filter_package_name, where ghostscript_filter_package_name is e.g. foo2zjs, pnm2ppa, ...

  • *NickName inside PPDs should use the PpdFileStructureSpecification indication.

  • If you currently set up a printer with CUPS web interface, e.g. a Minolta MagiColor 2430DL that uses foo2zjs binary driver you are able to do so without problems even if the foo2zjs package is not installed. This is also the case for printer drivers that have no Debian package, e.g. epl6100l. To avoid this linuxprinting.org-gs-filter-ppds package should depend on ALL the binary Ghostscript filter packages available in Debian and only include PPDs files for Ghostscript filter packages available in Debian.

Currently the foomatic-filters-ppds package is generated from the tar.gz source with the same name from linuxprinting.org. If we decide to stick with static PPDs it would be better to generate these from foomatic-db source.

If we use dynamically generated PPDs we should decide what to do with the custom PXL PPDs from Gestetner, Infotec, Lanier, NRG, Ricoh and Savin that were generated with their own tools instead of Foomatic. My suggestion is to create a linuxprinting.org-ricoh-pxl-ppds package for them.

linuxprinting.org-ppds

We should have a package that only includes real PostScript PPDs, therefore the linuxprinting.org-ppds package should be renamed to linuxprinting.org-postscript-ppds.

  • PPDs should be installed under /usr/share/ppd/postscript/linuxprinting.org/
  • Rename to linuxprinting.org-postscript-ppds and remove custom PXL PPDs from Gestetner, Infotec, Lanier, NRG, Ricoh and Savin that were generated with their own tools instead of Foomatic ([http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=363054 see Debian bug #363054]). The PXL custom PPDs should be part of linuxprinting.org-gs-builtin-ppds or linuxprinting.org-ricoh-pxl-ppds.

  • *NickName inside PPDs should have the PpdFileStructureSpecification indication.

hpijs-ppds

The above issues could easily be resolved by using dynamically generated PPDs through the CUPS API from foomatic-db-hpijs and remove the hpijs-ppds package from Debian.

One reason to keep a static hpijs-ppds package could be because the hp-setup printer queue setup tool from hplip needs static PPDs. We could keep the foomatic-rip PPDs together with real PostScript PPDs from hplip source but they shouldn't be installed under /usr/share/ppd to avoid duplicate entries when PPDs are retrieved via the CUPS API. It would still be better to alter hp-setup to use the CUPS API or the command line interface for driver programs for retrieving PPDs, because then the same PPD file would be used independent of the printer queue setup tool that was used.

foomatic-db

  • Repack after running "foomatic-cleanupdrivers" to remove unwanted drivers that are only used to list supported printers on the linuxprinting.org website. It is not possible to generate PPDs from these pseudo-drivers since there is no Ghostscript command line. This avoids errors in tools that use foomatic-db. If you currently try to install a HP DeskJet 520 printer in foomatic-gui with driver "gutenprint" this won't work and gives no error message or warning. This is because "gutenprint" is a pseudo-driver only used to list supported printers on the linuxprinting.org website. Only if you install the foomatic-db-gutenprint package you get the real "gutenprint-ijs.5.0" driver that is able to generate PPDs.

  • If you currently set up a printer with foomatic-configure or foomatic-gui, e.g. a Minolta MagiColor 2430DL that uses foo2zjs binary driver you are able to do so without problems even if the foo2zjs package is not installed. This is also the case for printer drivers that have no Debian package, e.g. epl6100l. To avoid this we should split up foomatic-db into foomatic-db-gs-builtin and foomatic-db-gs-filter. The package foomatic-db-gs-filter should depend on ALL the binary Ghostscript filter packages available in Debian like foo2zjs, pnm2ppa, ...?BR We should remove drivers from foomatic-db-gs-filter that have no Debian package.

foomatic-db-hpijs

  • Remove driver/hpijs-rss.xml and opt/hpijs-rss-* ?BR These files are only used to generate hpijs 1.2.x supported PPDs. Debian no longer supports this old hpijs version. The PPDs are just very old and do not contain anything special to activate the rss patches, the only thing they do is confuse people. The rss patches are available in the hpijs version in Debian and will be used with PPDs generated form driver/hpijs.xml.

cupsys

  • PPDs should be installed under /usr/share/ppd/cups-raster/cups-included/
  • dymo.ppd should have *Manufacturer: "Dymo-CoStar".

  • *NickName inside PPDs should have the PpdFileStructureSpecification indication.

  • Should check if the /etc/ppd/ directory exists when this package is installed, if not create it and apply group-writable permissions for lpadmin user.
  • Currently CUPS looks under /usr/share/ppd/ for PPDs. In /usr/share/ppd/ is cups-transitional-dir, a symlink pointing to /usr/share/cups/model/. In /usr/share/cups/model is cups-included, a symlink that points to /usr/share/ppd/cups-included/. This makes CUPS find duplicate cups-included PPDs, first by directly looking in /usr/share/ppd/cups-included/ and second by following the cups-transitional-dir and cups-included symlinks. The cups-included symlink should be removed to resolve this issue.
  • Instead of using symlinks CUPS should directly look for PPDs in both /usr/share/ppd/, /usr/share/cups/model/ (for compatibility) and /etc/ppd/
  • Include a symlink from /usr/lib/cups/driver/foomatic to /usr/bin/foomatic-ppdfile to allow dynamic generation of PPD files with foomatic-ppdfile.

cupsys-driver-gutenprint

  • PPDs should be installed under /usr/share/ppd/cups-raster/gutenprint-5.0.0/
  • *NickName inside PPDs should have the PpdFileStructureSpecification indication.

Instead of providing static PPDs in the cupsys-driver-gutenprint package it would be better to have a driver program with the CUPS command line interface to allow dynamic generation of PPD files.

gs-esp

  • pxlmono.ppd and pxlcolor.ppd should be installed under /usr/share/ppd/cups-raster/gs-esp/
  • *Manufacturer inside these PPDs should be "Generic", nobody will look under "ESP".
  • *NickName inside PPDs should have the PpdFileStructureSpecification indication using "pstopxl" as driver_name.

lpr

  • Should check if the /etc/ppd/ directory exists when this package is installed, if not create it and apply group-writable permissions for lpadmin user.

lprng

  • Should check if the /etc/ppd/ directory exists when this package is installed, if not create it and apply group-writable permissions for lpadmin user.

hp-ppd

We need more printer driver packages in Debian

We should provide more printer drivers in Debian, the drivers listed below currently have no packages in Debian and have a GPL license. Feel free to add any drivers missing in the lists.

Ghostscript filter drivers

cups-raster drivers

Old resolved issues

  • hplip-ppds package (now hpijs-ppds) incorrectly uses *Manufacturer: "HP (HPLIP)" inside PPDs. See [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347264 bug #347264] [SOLVED].

  • foomatic-filters-ppds package contains the same hpijs ppds as hplip-ppds package. To avoid this duplication hpijs PPDs should be provided by only one package. The hpijs ppds should be provided by hplip-ppds package so they always match with the installed version of binary HPIJS Ghostscript drivers. Hpijs ppds from hplip project should be removed from package foomatic-filters-ppds, see [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347668 bug #347668] [SOLVED].

  • A package foomatic-db-postscript-ppds could be created to replace hp-ppd, this package should contain real PPDs for PostScript printers from foomatic-db project found at http://www.linuxprinting.org (this project currently contains real PPDs from different printer manufacturers). A new package linuxprinting.org-ppds has been created by ChrisLawrence [SOLVED].

  • CUPS does not yet include the symbolic link, see [http://bugs.debian.org/358186 bug #358186]. CUPS now directly looks for PPDs under /usr/share/ppd/ [SOLVED].

  • ?MartinPitt: where to put user-provided PPD files? (Proposal: /usr/share/ppd/custom -> /etc/ppd/ symlink; which package owns that?) It needs to be group-writable by user lpadmin, so that printer admins can install PPDs through e.g. gnome-cups-manager. Has been addressed in the PpdFileStructureSpecification. Printer queue setup tools should directly look under /etc/ppd for user-provided and custom PPDs, there is no need for a symlink.