[cups.general] Why not "recommend" PPDs in the NickName?

Johannes Meixner jsmeix at suse.de
Tue Jan 23 07:27:13 PST 2007


Hello,

On Jan 23 07:52 Michael Sweet wrote (shortened):
> > in the (shortened) mail below you wished that there is
> > no longer any "recommended" driver/PPD.
> > Could you explain why?
> 
> Specifically because the PPD file is the wrong place to make that
> decision.  You don't know what device the user is selecting that
> time around, so instead you have 100's of PPDs marked as
> "recommended".  Recommended for what?
> 
> When adding a printer, you can determine (via whatever software
> you provide to add a printer) which PPD/driver to preselect for
> a given device.  The CUPS web interface currently only uses the
> make and model information, but 1.3 will also use the device ID
> for PPD pre-selection.  The user sees a driver preselected that
> matches their printer and clicks next.

I think here is a misunderstanding what "recommended" in the
NickName means.

It is useful when there match several drivers/PPDs
for the same model.
It is not intended to recommend a set of PPDs without
using a relationship to a specific model.

For example on my current openSUSE 10.2 system:
-----------------------------------------------------------------
lpinfo -m | grep 'HP DeskJet 990C'

gutenprint/stp-hp-dj_990c.5.0.ppd.gz
 HP DeskJet 990C - CUPS+Gutenprint v5.0.0

gutenprint/stp-hp-dj_990c.5.0.sim.ppd.gz
 HP DeskJet 990C - CUPS+Gutenprint v5.0.0 Simplified

HP/DeskJet_990C-cdj550.ppd.gz
 HP DeskJet 990C Foomatic/cdj550

HP/DeskJet_990C-cdj970.ppd.gz
 HP DeskJet 990C Foomatic/cdj970 (recommended)

HP/DeskJet_990C-chp2200.ppd.gz
 HP DeskJet 990C Foomatic/chp2200

manufacturer-PPDs/hplip/HP-DeskJet_990C-hpijs.ppd.gz
 HP DeskJet 990C Foomatic/hpijs (recommended)

HP/DeskJet_990C-pcl3.ppd.gz
 HP DeskJet 990C Foomatic/pcl3
-----------------------------------------------------------------
There are 7 PPDs which match to a "HP DeskJet 990C"
and two of them are marked as "recommended".

In contrast the output of
lpinfo -m | grep '(recommended)'
is a almost totally useless list.

For example YaST uses the "recommended" info to determine
one PPD for a given model.

The algorithm in YaST is a bit complicated
and at the moment it is broken, see
https://bugzilla.novell.com/show_bug.cgi?id=220712

It should do something like:

If only one PPD matches to the model
then select this PPD
else if there is only one "recommended" PPD
        which matches to the model
     then select this PPD
     else if there is is only one "recommended" PPD
             in the manufacturer-PPDs sub-driectory
             which matches to the model
          then select this PPD
          else select an arbitrary PPD which matches to the model

To avoid misunderstanding:
Of course one can select in YaST all the PPDs which match
to the model - the "recommended" stuff is only used to let
YaST preselect one PPD so that an unexperienced user gets
a (hopefully) well working driver/PPD when he accepts what
was preselected.


> Now, we could easily just add the word "recommended" next to the
> driver that best matches the current device, but we aren't in the
> business of pushing a particular driver.

I am afraid but I disagree.

I think we should not leave unexperienced users totally alone
with the decission (or let them find out by trial and error)
which of many drivers/PPDs works well for his particular model.
The crucial point is that "recommended" means only that we think
this driver/PPD is a good choice if the user doesn't know what
he should select - it does not mean that we advise against
the usage of other drivers/PPDs.

On the other hand of course I know that if the wrong PPD
is "recommended", it is much worse than if there is
no PPD recommended at all.


> > But as far as I see this does not mean that we should not
> > help an unexperienced user by recommending a particular driver
> > (or even recommend a few drivers for the same model which
> > would not cause a problem as long as all recommended
> > drivers/PPDs work at least o.k.).
> 
> Well, personally I would only provide drivers that work OK.

I am afraid but we don't have the knowledge which drivers
actually work o.k. for which models because this would mean
that we would have to have all printer models and test all
printer model and driver combinations.

We rely first of all on drivers from printer manufacturers
(therefore YaST prefers PPDs from the manufacturer-PPDs
sub-driectory) and then we rely on the collected user feedback
via OpenPrinting (formerly LinuxPrinting) but this feedback
is sometimes simply wrong or outdated (for example the
cdj550 Ghostscript driver for the "HP DeskJet 990C"
may be considered to be outdated).


Kind Regards
Johannes Meixner
-- 
SUSE LINUX Products GmbH, Maxfeldstrasse 5      Mail: jsmeix at suse.de
90409 Nuernberg, Germany                    WWW: http://www.suse.de/





More information about the cups mailing list