[cups.bugs] [LOW] STR #2949: Tell in the documentation/man page/help output of cupstestppd that CUPS accepts all PPDs which pass "cupstestppd -r" and does not accept PPDs which fail this cupstestppd call
Michael R Sweet
msweet at apple.com
Fri Sep 19 08:42:58 PDT 2008
Johannes Meixner wrote:
> I think the root cause is how the '-m' option works for "lpadmin":
> " -m ... Sets a standard System V interface script or PPD file"
> which means there is some magic to fall back to a "System V
> interface script" when the input doesn't look like a PPD.
> I think this magic is the root cause of Till's trouble.
"-m" comes from System V lp to specify a "model" script, and CUPS
provides backwards-compatibility for System V lp interface scripts,
so "-m" MUST support both PPDs and scripts.
> If '-m' would only be valid for a PPD file and '-i' must
> be used in any case for a "System V interface script",
> then "lpadmin" could exit with an error if a PPD is broken.
"-i" does something completely different - it uses the named file,
not a file from the "model" directory.
> The scheduler reads the first line from the input
> and sees if it identifies itself as a PPD file.
It does this...
> If it does not identify as a PPD file,
> the input is used as "System V interface script".
It does this, too...
> If it does identify as a PPD file,
> the scheduler attempts to load the input stream
> with ppdOpenFile(), and if that fails
> it spits out an error to the error_log file
> and does not set up (or change) the queue at all.
It does this, too, at least for PPDs specified by "-m" (the ppd-name
attribute) - look in scheduler/ipp.c:copy_model...
Michael R Sweet Senior Printing System Engineer
More information about the cups-devel