#694945 foomatic: cannot get PPD for Canon-PIXMA-iP3000 and many others

Package:
foomatic-db-engine
Source:
foomatic-db-engine
Description:
OpenPrinting printer support - programs
Submitter:
Yann Dirson
Date:
2012-12-04 22:30:03 UTC
Severity:
normal
#694945#5
Date:
2012-12-02 15:45:07 UTC
From:
To:
There are apparently 3 CUPS drivers in Debian for the Pixma iP3000:

gutenprint.5.2://bjc-PIXMA-iP3000/expert
foomatic:Canon-PIXMA-iP3000-gutenprint-ijs.5.2.ppd
foomatic:Canon-PIXMA-iP3000-gutenprint-ijs-simplified.5.2.ppd

If I try to use one of the latter two in CUPS, I get the following
errors when selecting them from the Web UI (here copied from
cups/error_log):

E [02/Dec/2012:16:10:17 +0100] [CGI] Could not determine driver name for Canon-PIXMA-iP3000-gutenprint-ijs.5.2.ppd!
E [02/Dec/2012:16:10:17 +0100] copy_model: empty PPD file
E [02/Dec/2012:16:10:17 +0100] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Canon_iP3000_gutenprint_ijs) from localhost
E [02/Dec/2012:16:10:23 +0100] [CGI] Could not determine driver name for Canon-PIXMA-iP3000-gutenprint-ijs-simplified.5.2.ppd!
E [02/Dec/2012:16:10:23 +0100] copy_model: empty PPD file
E [02/Dec/2012:16:10:23 +0100] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost/printers/Canon_iP3000_gutenprint_ijs) from localhost


The problem seems to come from /usr/lib/cups/driver/foomatic itself -
whereas ".../foomatic cat <drv>" works with drivers that specify a
last field with many info (MFG, etc), there seems to be a problem with
those that only show DRV there, which seem to be all those shown by
"/usr/lib/cups/driver/foomatic list | grep -v MFG"

# /usr/lib/cups/driver/foomatic list | grep -i ip3000
"foomatic:Canon-PIXMA-iP3000-gutenprint-ijs.5.2.ppd" en "Canon" "Canon PIXMA-iP3000 Foomatic/gutenprint-ijs.5.2" "DRV:Dgutenprint-ijs.5.2,M0,TF;"
"foomatic:Canon-PIXMA-iP3000-gutenprint-ijs-simplified.5.2.ppd" en "Canon" "Canon PIXMA-iP3000 Foomatic/gutenprint-ijs-simplified.5.2" "DRV:Dgutenprint-ijs-simplified.5.2,M0,TF;"

# /usr/lib/cups/driver/foomatic cat "foomatic:Canon-PIXMA-iP3000-gutenprint-ijs.5.2.ppd"
ERROR: Could not determine driver name for Canon-PIXMA-iP3000-gutenprint-ijs.5.2.ppd!
# /usr/lib/cups/driver/foomatic cat "foomatic:Canon-PIXMA-iP3000-gutenprint-ijs-simplified.5.2.ppd"
ERROR: Could not determine driver name for Canon-PIXMA-iP3000-gutenprint-ijs-simplified.5.2.ppd!
# /usr/lib/cups/driver/foomatic cat "foomatic:Epson-PictureMate_260-gutenprint-ijs.5.2.ppd"|head -1
ERROR: Could not determine driver name for Epson-PictureMate_260-gutenprint-ijs.5.2.ppd!
# /usr/lib/cups/driver/foomatic cat "foomatic:Epson-Stylus_T20-gutenprint-ijs.5.2.ppd"|head -1
ERROR: Could not determine driver name for Epson-Stylus_T20-gutenprint-ijs.5.2.ppd!
...

#694945#10
Date:
2012-12-03 00:49:53 UTC
From:
To:
I have no idea why CUPS is using foomatic drivers here.
The native CUPS driver is preferred.

Do you have the ijsgutenprint package installed?

I'm afraid I can't help with the specifics of the foomatic
issue itself since I'm not a foomatic expert.

[Given the pain they cause, it might be best to remove
the gutenprint foomatic packages entirely for jessie.]


Regards,
Roger

#694945#15
Date:
2012-12-03 19:38:17 UTC
From:
To:
It was a test I wanted to do, to check if the foomatic one would
support features not found in the gutenprint one (notably head cleaning)

yes

Well, I can't tell if there are printers for which they are useful.
But there are definitely things that could be improved, like making
sure drivers for a single printer sort close enough in the list :)

#694945#20
Date:
2012-12-04 10:23:23 UTC
From:
To:
It's exactly the same driver, just using the foomatic/ijsgutenprint/ijs/gs
workflow instead of the native CUPS driver.  It's really only useful for
people using non-CUPS spoolers like LPRng.  It would be much less effort
for the other spoolers to just support using CUPS filters!  The foomatic
stuff for gutenprint appears to break reasonably often--at least, that's
the impression I get from the bug reports.

I thought that it was ordered by manufacturer/model, with the
driver in parentheses following (at least in the web UI).


Regards,
Roger

#694945#25
Date:
2012-12-04 22:27:19 UTC
From:
To:
Ah ok.

[somewhat off-topic wrt to the bug subject] Maybe there could be some
way to make this more obvious at first sight - I mean even if the
foomatic-based chain gets removed from CUPS, if it stays for other
spoolers maybe some wordings could be improved to make it clear they
are not completely different (eg. so people not entirely satisfied
with the cups driver don't go configuring lprng to check whether the
foomatic driver is any better).

Maybe what's missing would be something like identifying in driver
package descriptions what protocol is used to talk to those drivers,
maybe what other packages ship the same drivers for a different
protocol (if such a situation exists), and identifying protocol
adapters as such ?  I admit I'm a bit lost between foomatic-db (which
advertises working with CUPS, but if I understand you well should
usually not be chosen for this use case), openprinting-ppds (which
tells when you don't need the package but not when you need it), and
printer-driver-* (not all of which tell they target CUPS).  Ugh :)

There are different separators (spaces fro gutenprint vs. hyphens for
foomatic ones), which cause them to be grouped separately.

ie. "Canon PIXMA iP3000 - CUPS+Gutenprint v5.2.9"
    "Canon PIXMA iP3100 - CUPS+Gutenprint v5.2.9"
    ...
    "Canon PIXMA MX ..."
    ...
then only after many more lines:
    ...
    "Canon PIXMA-iP3000 Foomatic/gutenprint-ijs.5.2"