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

Till Kamppeter till.kamppeter at gmail.com
Tue Jan 23 15:08:54 PST 2007


Johannes, I am of exactly the same opinion as you. I think it is very 
important that if there is more than one driver for one and the same 
printer model that unexperienced users are guided somehow which driver 
they should choose. Or one should even hhave the possibility to offer a 
beginner's mode in a printer setup tool which shows only models and not 
drivers and the tool selects the driver (This I did in printerdrake in 
Mandriva Linux).

I also think that a central supplier of knowledge and information about 
printer support like the OpenPrinting database (former 
linuxprinting.org) should recommend drivers (and not only list the 
working ones).

Mike, if you do not like the way how I guide unexperienced users by 
putting information into the OpenPrinting database, please tell me in 
which form I should provide the info about which driver is the best for 
a printer. I am open for any suggestion to improve the OpenPrinting 
database. And in my opinion it must be possible for an unexperienced 
user to set up a printer by selecting only the model and not requiring 
from him to know what a driver is and which one is the best.

If the OpenPrinting database recommends a wrong driver, this is a bug, 
missing user experience coming to me, or outdated information in case of 
a new, better driver having appeared. In all these cases please tell me 
about the bad choice for a recommended driver and I will correct it. If 
you like I will give you write access to the database, so that you can 
add drivers and/or change recommendations.

Please do not patch away information which can be useful for 
unexperienced users as you do with SVN revision 6211 (cited below).

Can the CUPS/printing maintainers of the other distros please comment, 
too. Thanks.

    Till


-------------------------------------------------------------------------------
Author: mike
Date: 2007-01-23 10:44:34 -0500 (Tue, 23 Jan 2007)
New Revision: 6211
Log:
Remove "(recommended)" from NickName/make and model reported by Foomatic.


Modified:
    trunk/scheduler/cups-driverd.c

Modified: trunk/scheduler/cups-driverd.c
===================================================================
--- trunk/scheduler/cups-driverd.c	2007-01-23 15:40:04 UTC (rev 6210)
+++ trunk/scheduler/cups-driverd.c	2007-01-23 15:44:34 UTC (rev 6211)
@@ -147,6 +147,7 @@
  	size_t     size)		/* I - File size */
  {
    ppd_info_t	*ppd;			/* PPD */
+  char		*recommended;		/* Foomatic driver string */


   /*
@@ -198,6 +199,14 @@
    strlcpy(ppd->record.device_id, device_id, 
sizeof(ppd->record.device_id));

   /*
+  * Strip confusing (and often wrong) "recommended" suffix added by
+  * Foomatic drivers...
+  */
+
+  if ((recommended = strstr(ppd->record.make_and_model, " 
(recommended)")) != NULL)
+    *recommended = '\0';
+
+ /*
    * Return the new PPD pointer...
    */
-------------------------------------------------------------------------------

Johannes Meixner wrote:
> 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





More information about the cups mailing list