[Printing-architecture] Self-certification of Printers and Print
Drivers for POSIX/Linux
Till Kamppeter
till.kamppeter at gmail.com
Tue Jul 17 15:55:12 PDT 2007
Marcelo Ricardo Leitner wrote:
> Hi all,
>
> On Fri Jul 13, 2007 at 16:42:33 +0100, Till Kamppeter wrote:
>> My suggestions for the testing are the following:
>>
>> - Distributions must be LSB compliant. This way they have a common
>> environment for binary executables. LSB 3.2 will require important
>> interfaces for printing functionality in applications and for printer
>> driver integration.
>>
>> The driver package should be made in distribution-indepent form to cover
>> all Linux distros with one driver.
>>
>> - Core/system components which need to be tested:
>>
>> o CUPS
>> o Ghostscript
>> o foomatic-rip
>>
>> The printer drivers interact only with these ones. Apps send jobs to
>> CUPS/the printing system.
>>
>> - One good test would be to set up a print queue for the printer pointing
>> into a file and to print into it. The output file must have a reasonable
>> size after that. If something in the chain is missing this test would fail.
>> If there is physical access to the printer, printing on the printer should
>> also be tested.
>
> I used this kind of test while developing the now old Conectiva Linux 10 and
> it worked pretty well. I had scripts that could even grab the relevant
> error from cups' error_log (debug level) and identify it. Then after running
> this test for all printer/driver combinations (that time from
> foomatic-configure -O), I had a clear view of the main problems in the
> distro. This is a nice test (distro level?), indeed.
>
Great. Can you make the code available? We would have to update it a
little bit, for example using "lpinfo -m" instead of "foomatic-configure
-O" (and recursively searching /usr/share/ppd on non-CUPS systems). We
can make test queues also on non-CUPS systems with foomatic-configure
and on unknown printing systems (or for pure driver consistency testing)
we can use pure spooler-less direct calls of foomatic-rip (with the
"--ppd" argument).
> But, unfortunately, this won't work with drivers that requires direct access
> to the device.
>
Yes. Most printer drivers are filter style (PostScript to printer's
language by a combo of Ghostscript and the driver). If direct printer
access is needed the PostScript-to-printer's-language filter is often
separate from the low-level driver module (like in HPLIP). Without
printer we can only do the filter test, unfortunately. But often filter
and low-level driver come in the same package, so the presence of the
filter would imply the presence of the low-level driver.
>> - The user tool should be a distribution-independent package (or a package
>> each distro has to supply) which runs the tests in an automated way and
>> presents the results in both machine- and human-readable form. It should
>> also provide info to the user what he will need to do to make his printing
>> working.
>
> I can't see what this application would do. The main reasons I see for it
> not working are either he made a custom installation (and thus he has some
> linux development skills) or the distro didn't do its job well, assuming the
> driver was well tested by the manufacturer and it really should work with
> the printer being used.
>
> Can you explain a bit more about this tool please?
>
The user tools would be the complete test suite, consisting of all test
script. So the user can test whether his distro has a consistent
printing system (CUPS, Ghostscript, foomatic-rip, Ghostscript having
"cups", "ijs", "opvp", "pxlmono", and "pxlcolor" output devices, for all
installed PPDs the appropriate driver is present, ...), a driver shipped
by the manufacturer of a printer is working (test should be possible
without the printer, so download manufacturer driver -> test -> buy
printer).
Till
More information about the Printing-architecture
mailing list