[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.

> ...
> 1:
> The scheduler reads the first line from the input
> and sees if it identifies itself as a PPD file.

It does this...

> 2a:
> If it does not identify as a PPD file,
> the input is used as "System V interface script".

It does this, too...

> 2b:
> 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 mailing list