[lsb-discuss] Re: Question of LSB DDK for printing

Till Kamppeter till.kamppeter at gmail.com
Wed Feb 13 07:49:11 PST 2008


Tatsuya Saito wrote:
> rpmmacros don't add absolute path on "*cupsFilter" if "filternames"
> is defined.
> So if I want to use "filternames", I must use %set_cups_links.
> Is it ok?
> If ok, what's reason why we need "filternames"?
> 

Are you giving the filter name(s) with absolute path, for example with

%define filternames /opt/nec/bin/pngtoneclaser

In the PPD all occurences of "pngtoneclaser" will be replaced by 
"/opt/nec/bin/pngtoneclaser".

If you filter is a CUPS filter, for example "rastertoneclaser" you can 
use "%set_cups_links" and do not need "filternames" then. But using 
"filternames" as I described above and not using "%set_cups_links" 
should also work.

> 
>>> 4) %set_opt_paths and %init_scriptlet
>>>   My spec file includes these macros, but not adds /opt/supplier/bin
>>>   to PATH env after install.
>>>   It means my executable modules in /opt/supplier/bin cannot run...
>>>
>> You must log out and log in again, or reboot to make sure 
>> that it is in 
>> the PATH for the whole system.
> There is a problem if we have to reboot for adding path.
> I think I should be able to use driver soon when I installed it,
> don't need reboot, or re-log.
> Now, almost drivers for linux do it.
> 
> By the way, I reboot after install, but PATH env isn't added my bin path.
> I have same issue with splix driver (that you made it). I check it in Debian
> etch 
> with lsb package. This case, rpmmacros added some code in /etc/profile,
> but not work.
> 

This looks like a bug of your distro, /etc/profile should be executed at 
least on boot or login. For the printing itself you will usually not 
need to add something to the PATH, filters can have absolute paths in 
the PPD or they can be linked to /usr/lib/cups/filter.

The facility to add the driver's executable directory to the PATH is 
more to simplify the call of maintenance tools, like ink level checks, ...

> 
>>> 5) Testing on buildenv or LSB simple implementation
>>>   For testing, I try to print some postscript on lsb-buildenv.
>>>   Of course, I red your document and LSB tutorial and make 
>> environment
>>>   with LSB3.1 rpms and LSB DDK.
>>>   But I have following lpr command error...
>>>     lpr: connect: No such file or directory
>>>     jobs queued, but cannot start daemon.
>>>   I thought it may be my driver's problem, so tried splix 
>> driver[3] on 
>>>   same environment. I failed too...
>>>   Do you know this error case with LSB DDK?
>> Make sure that "lpr" is really the one of CUPS. For that the 
>> LSB package 
> Thank you for you help!
> I can print to file using "lpr" in /opt/cups/bin.
> Of cource, I already switched CUPS daemon.
> 
> But I cannot print to printer using lpd backend...
> Spool file was created completely.
> But error_log has following message and spool file isn't transfered to
> printer.
>    Unable to reserve port: Invalidargument
> 
> This message is also shown with splix driver package.
> Do you know some info for this problem?
> 

Seems to be a problem of the "lpd" backend in the chroot. Can you check 
the permissions of the backend (/opt/cups/lib/cups/backend/lpd in the 
chroot)? They must be 700 and owner and group must be root. cupsd itself 
must also run as root (do not change the configuration of the CUPS in 
chroot to let the daemon run as normal user). With this the "lpd" will 
be run as root which is needed to access the LPD port 515.

    Till




More information about the lsb-discuss mailing list