> Since these PPDs come in two different source packages from upstream,
> there is no real way (that I can see) to sort them into "needing
> foomatic-rip" and "standalone" packages.
> The best we can do (that I can see) is sort them into
> linuxprinting.org-gs and linuxprinting.org-postscript within the two
> packages built from the -db and -filters-ppds source packages.
> As for 363052, I can't find any manufacturer-supplied PPD files in
> foomatic-filters-ppds; while there are some PostScript PPD files that
> don't need foomatic-rip, they are built using foomatic-configure and
> are not manufacturer PPDs.
As the author of the PPDFileStructureSpecification
<http://wiki.debian.org/PpdFileStructureSpecification> I agree with you
that PPDs should be sorted under /usr/share/ppd/linuxprinting.org-gs or
/usr/share/ppd/linuxprinting.org-postscript.
The problem is that currently in foomatic-filters-ppds 20060712-1 and
linuxprinting.org-ppds 20060712-1 this is NOT the case.
Package foomatic-filters-ppds installs PPDs only in
/usr/share/ppd/linuxprinting.org-gs but contains real PostScript ppds
that don't belong in /usr/share/ppd/linuxprinting.org-gs. Example:
/usr/share/ppd/linuxprinting.org-gs/Oce/Oce-8465PS-Postscript.ppd.gz is
a real PostScript PPD. There are 122 PPDs in foomatic-filters-ppds that
don't belong in /usr/share/ppd/linuxprinting.org-gs and furthermore
these are duplicates of PostScript PPDs already included in package
linuxprinting.org-ppds (see attachment).
Package linuxprinting.org-ppds installs PPDs only in
/usr/share/ppd/linuxprinting.org-postscript but contains non-PostScript
PPDs that need foomatic-rip and don't belong in
/usr/share/ppd/linuxprinting.org-postscript. Example:
/usr/share/ppd/linuxprinting.org-postscript/NRG/NRG-DSm622_PXL.ppd.gz is
a CUPS/Foomatic PPD needing foomatic-rip.
However the main problem at this moment is when you have installed both
foomatic-filters-ppds and linuxprinting.org-ppds there are duplicate
drivers when adding a printer with GUI tools like CUPS webinterface. The
duplicate PostScript PPDs are there because most printer manufacturers
misuse the driver/Postscript.xml file for adding their real PostScript
printers to the foomatic database, further explanation below. This is a
violation of Design rule #5 of the PPDFileStructureSpecification
<http://wiki.debian.org/PpdFileStructureSpecification> and causes user
confusion.
I) When looking in foomatic-filters-ppds source from linuxprinting.org
we see it contains:
1) PPDs with CUPS/Foomatic extensions that were generated from
foomatic xml files.
2) PPDs for real PostScript printers.
The PostScript PPDs are there because most printer manufacturers
misuse the driver/Postscript.xml file for adding their real PostScript
printers to the foomatic database. The driver/Postscript.xml is normally
meant as a PostScript Level Down driver needing ghostscript to convert
PostScript from Level 2 or 3 to Level 1. There should be a seperate
driver xml file for real PostScript printers and for printers needing
the Level Down Driver. I have reported this upstream at
linuxprinting.org, see
<http://www.linuxprinting.org/forums.cgi?group=linuxprinting.foomatic.devel;article=2346>.
All real PostScript PPDs are just copied over and renamed from
foomatic-db PPD directory when the foomatic-filters-ppds source is
generated upstream.
II) When looking in foomatic-db source from linuxprinting.org under
directory PPD we see it contains:
1) PXL PPDs with CUPS/Foomatic extensions from Gestetner, Infotec,
Lanier, NRG, Ricoh and Savin that were generated by there own tool
instead of foomatic xml files. These PPDs belong under
/usr/share/ppd/linuxprinting.org-gs.
2) PS PPDs from Gestetner, Infotec, Lanier, NRG, Ricoh and Savin:
real PostScript PPDs that have CUPS/Foomatic extensions for Job Log. It
can be argued if these PPDs belong under
/usr/share/ppd/linuxprinting.org-gs or /usr/share/ppd/linuxprinting.
Linuxprinting.org marks these PPDs as real PPDs for PostScript printers
by including them in drivers/Postscript.xml so the PPDs belong under
/usr/share/ppd/linuxprinting.org-postscript.
3) real PostScript PPDs, these obviously belong under
/usr/share/ppd/linuxprinting.org-postscript.
The best way to know if PPDs belong under
/usr/share/ppd/linuxprinting.org-postscript or
/usr/share/ppd/linuxprinting.org-gs is to use the driver information
from foomatic-db by generating all PPDs from foomatic-db source. With
the above mentioned suggestion under I.2 each true PostScript PPD would have
a PostScript indication e.g HP-LaserJet_3200-PostScript in the name.
This indication allows to split up the PPDs easily into two Debian
packages: linuxprinting.org-postscript-ppds and
linuxprinting.org-gs-ppds that respectively only contain real PostScript
PPDs and non-PostScript PPDs.
This means you should not use the upstream source for
foomatic-filters-ppds upstream but instead generate everything from
foomatic-db, also real PostScript PPDs.
But this requires that the problem mentioned under I.2 is fixed upstream
first.
As this fix may take a while I suggest the following change in Debian:
a) Package foomatic-filters-ppds:
Remove PostScript PPDs, this can easily be done by grepping for PPDs
that don't have 'FoomaticRIPCommandLine'.
As mentioned before this can be done because the PostScript PPDs
were just copied over and renamed from the foomatic-db PPD directory
when the foomatic-filters-ppds source was generated upstream.
Since these PPDs are duplicates of the PPDs in Debian package
linuxprinting.org-ppds they can be safely removed from Debian package
foomatic-filters-ppds.
=> This fixes the main problem of duplicate driver indications in GUIs
like CUPS webinterface.
b) Package linuxprinting.org-ppds: no changes necessary.
The disadvantage is that PXL PPDs from Gestetner, Infotec, Lanier,
NRG, Ricoh and Savin will be located wrongly under
/usr/share/ppd/linuxprinting.org-postscript, while they don't really
belong in Debian package linuxprinting.org-ppds.
Greetings,
Pascal
Epson-AcuLaser_C4100PS-Postscript.ppd.gz
Epson-EPL-N2500PS-Postscript.ppd.gz
Gestetner-F9199_9199nf-Postscript.ppd.gz
Gestetner-P7032-Postscript.ppd.gz
HP-Business_Inkjet_2250-Postscript.ppd.gz
HP-Business_Inkjet_2280-Postscript.ppd.gz
HP-Business_Inkjet_2300-Postscript.ppd.gz
HP-Business_Inkjet_2600-Postscript.ppd.gz
HP-Business_Inkjet_2800-Postscript.ppd.gz
HP-Business_Inkjet_3000-Postscript.ppd.gz
HP-Color_LaserJet_2500-Postscript.ppd.gz
HP-Color_LaserJet_2550-Postscript.ppd.gz
HP-Color_LaserJet_2605-Postscript.ppd.gz
HP-Color_LaserJet_2800-Postscript.ppd.gz
HP-Color_LaserJet_3000-Postscript.ppd.gz
HP-Color_LaserJet_3700-Postscript.ppd.gz
HP-Color_LaserJet_3800-Postscript.ppd.gz
HP-Color_LaserJet_4500-Postscript.ppd.gz
HP-Color_LaserJet_4550-Postscript.ppd.gz
HP-Color_LaserJet_4600-Postscript.ppd.gz
HP-Color_LaserJet_4610-Postscript.ppd.gz
HP-Color_LaserJet_4650-Postscript.ppd.gz
HP-Color_LaserJet_4700-Postscript.ppd.gz
HP-Color_LaserJet_4730_MFP-Postscript.ppd.gz
HP-Color_LaserJet_5500-Postscript.ppd.gz
HP-Color_LaserJet_5550-Postscript.ppd.gz
HP-Color_LaserJet_5M-Postscript.ppd.gz
HP-Color_LaserJet_8500-Postscript.ppd.gz
HP-Color_LaserJet_8550GN-Postscript.ppd.gz
HP-Color_LaserJet_9500_MFP-Postscript.ppd.gz
HP-Color_LaserJet_9500-Postscript.ppd.gz
HP-DesignJet_2500CP-Postscript.ppd.gz
HP-DesignJet_3500CP-Postscript.ppd.gz
HP-DesignJet_5500ps-Postscript.ppd.gz
HP-LaserJet_1200-Postscript.ppd.gz
HP-LaserJet_1220-Postscript.ppd.gz
HP-LaserJet_1300-Postscript.ppd.gz
HP-LaserJet_1320-Postscript.ppd.gz
HP-LaserJet_2100M-Postscript.ppd.gz
HP-LaserJet_2200-Postscript.ppd.gz
HP-LaserJet_2300-Postscript.ppd.gz
HP-LaserJet_2410-Postscript.ppd.gz
HP-LaserJet_2420-Postscript.ppd.gz
HP-LaserJet_2430-Postscript.ppd.gz
HP-LaserJet_3015-Postscript.ppd.gz
HP-LaserJet_3020-Postscript.ppd.gz
HP-LaserJet_3030-Postscript.ppd.gz
HP-LaserJet_3200m-Postscript.ppd.gz
HP-LaserJet_3200-Postscript.ppd.gz
HP-LaserJet_3300_MFP-Postscript.ppd.gz
HP-LaserJet_3310_MFP-Postscript.ppd.gz
HP-LaserJet_3320_MFP-Postscript.ppd.gz
HP-LaserJet_3320N_MFP-Postscript.ppd.gz
HP-LaserJet_3330_MFP-Postscript.ppd.gz
HP-LaserJet_3380-Postscript.ppd.gz
HP-LaserJet_4000-Postscript.ppd.gz
HP-LaserJet_4050-Postscript.ppd.gz
HP-LaserJet_4100-Postscript.ppd.gz
HP-LaserJet_4200-Postscript.ppd.gz
HP-LaserJet_4240-Postscript.ppd.gz
HP-LaserJet_4250-Postscript.ppd.gz
HP-LaserJet_4300-Postscript.ppd.gz
HP-LaserJet_4345_MFP-Postscript.ppd.gz
HP-LaserJet_4350-Postscript.ppd.gz
HP-LaserJet_4ML-Postscript.ppd.gz
HP-LaserJet_4_Plus-Postscript.ppd.gz
HP-LaserJet_4Si-Postscript.ppd.gz
HP-LaserJet_4V-Postscript.ppd.gz
HP-LaserJet_5000-Postscript.ppd.gz
HP-LaserJet_5100-Postscript.ppd.gz
HP-LaserJet_5200L-Postscript.ppd.gz
HP-LaserJet_5200-Postscript.ppd.gz
HP-LaserJet_5M-Postscript.ppd.gz
HP-LaserJet_5MP-Postscript.ppd.gz
HP-LaserJet_5Si-Postscript.ppd.gz
HP-LaserJet_6MP-Postscript.ppd.gz
HP-LaserJet_8000-Postscript.ppd.gz
HP-LaserJet_8100-Postscript.ppd.gz
HP-LaserJet_8150-Postscript.ppd.gz
HP-LaserJet_9000-Postscript.ppd.gz
HP-LaserJet_9040_MFP-Postscript.ppd.gz
HP-LaserJet_9040-Postscript.ppd.gz
HP-LaserJet_9050_MFP-Postscript.ppd.gz
HP-LaserJet_9050-Postscript.ppd.gz
HP-LaserJet_9055_MFP-Postscript.ppd.gz
HP-LaserJet_9065_MFP-Postscript.ppd.gz
HP-Mopier_240-Postscript.ppd.gz
HP-Mopier_320-Postscript.ppd.gz
HP-OfficeJet_9100-Postscript.ppd.gz
Lanier-2132-Postscript.ppd.gz
Lanier-LF510_515e-Postscript.ppd.gz
NRG-P7032-Postscript.ppd.gz
Oce-3145PS-Postscript.ppd.gz
Oce-3155PS-Postscript.ppd.gz
Oce-3165PS-Postscript.ppd.gz
Oce-8445PS-Postscript.ppd.gz
Oce-8465PS-Postscript.ppd.gz
Oce-PPC3073PS-Postscript.ppd.gz
Oce-PPC3074PS-Postscript.ppd.gz
Oce-PPC3093PS-Postscript.ppd.gz
Oce-PPC3094PS-Postscript.ppd.gz
Oce-PPC3113PS-Postscript.ppd.gz
Oce-PPC3114PS-Postscript.ppd.gz
Oce-PPC5115PS-Postscript.ppd.gz
Oce-PPC5160PS-Postscript.ppd.gz
Oce-VarioPrint_2045PS-Postscript.ppd.gz
Oce-VarioPrint_2050PS-Postscript.ppd.gz
Oce-VarioPrint_2055PS-Postscript.ppd.gz
Oce-VarioPrint_2060PS-Postscript.ppd.gz
Oce-VarioPrint_2065PS-Postscript.ppd.gz
Oce-VarioPrint_2070PS-Postscript.ppd.gz
Oce-VarioPrint_2090PS-Postscript.ppd.gz
Oce-VarioPrint_2100PS-Postscript.ppd.gz
Oce-VarioPrint_2105PS-Postscript.ppd.gz
Oce-VarioPrint_2110PS-Postscript.ppd.gz
Ricoh-Aficio_AP3200-Postscript.ppd.gz
Ricoh-DDP_70-Postscript.ppd.gz
Ricoh-DDP_92-Postscript.ppd.gz
Ricoh-EMP_156-Postscript.ppd.gz
Ricoh-FAX5510L_5510NF-Postscript.ppd.gz
Savin-FAX3799_3799nf-Postscript.ppd.gz
Savin-SLP32-Postscript.ppd.gz