[cups] Brother MFC-J6935DW filter failing. It cannot use Perl modules.
cups at jubileegroup.co.uk
Mon Dec 18 11:03:30 PST 2017
On Mon, 18 Dec 2017, Steve Wanamaker wrote:
> ... Ubuntu 16.04 ...
> D [17/Dec/2017:16:03:27 -0800] [Job 1035]
> Can\'t locate Cwd.pm: /usr/local/lib/x86_64-linux-gnu/perl/5.22.1/Cwd.pm:
> Permission denied at /opt/brother/Printers/mfcj6935dw//lpd/filter_mfcj6935dw line 8.
> ... this command ... works:
> root at home2:/opt/brother/Printers/mfcj6935dw/lpd# cat
> /usr/share/ghostscript/9.18/lib/zeroline.ps | ./filter_mfcj6935dw > out.txt
> -rwxr-xr-x 1 root root 3949384 Feb 5 2017 brmfcj6935dwfilter*
> -rwxr-xr-x 1 root root 8040 Feb 5 2017 filter_mfcj6935dw*
> What do I need to do to make this work?
The permissions causing the problem appear to be those of Cwd.pm, or
rather its parent directories -- not those on your filter. Maybe you
fiddled with them? :)
I guess the location (/usr/local/lib) is correct if the command works
as root. I don't use Ubuntu, so I don't know where it stashes things,
but on my Debian systems Cwd.pm is under /usr/lib/ not /usr/local/lib/.
You can use 'locate' or similar to find Cwd.pm and take a look at the
permissions of it and its parent directories. Cups won't be running as
root when it does the filtering, so whatever user it's running as needs
to find the appropriate permissions when it tries to execute the filter.
More information about the cups