hplip: 3.18.3 -> 3.18.5

Also fixes multiples issues:

 -  broken plugins:

     -  `fax_marvell.so file is not present or symbolic link is missing`
     -  `lj.so library file doesn't have user/group execute permission.`
     -  `bb_escl.so file is not present or symbolic link is missing`

 -  multiple error during configuration phase which prevented `*.ppd`
    generation:

     -  `ppdc: Unable to find include file "<font.defs>"`
     -  patched configure time `perl` script
     -  patched use of `file`

 -  some potentially problematic filter and services:

     -  patched reference to ghost script and fonts dir in filter.
     -  patched usb configuration service.

 -  patch scripts so that they refer to valid location.

Add some options:

 -  `withStaticPPDInstall`: Install `*.ppd` files along with `*.drv`.
    When true, configure outputs: `checking for cups ppd install... yes`.
This commit is contained in:
Raymond Gauthier 2018-02-20 22:48:31 -05:00
parent dfa2895181
commit 4ca2daae8f

View file

@ -1,26 +1,28 @@
{ stdenv, fetchurl, substituteAll
, pkgconfig
, makeWrapper
, cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils
, net_snmp, openssl, polkit, nettools
, cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends
, dbus, file, ghostscript, usbutils
, net_snmp, openssl, perl, polkit, nettools
, bash, coreutils, utillinux
, withQt5 ? true
, withPlugin ? false
, withStaticPPDInstall ? false
}:
let
name = "hplip-${version}";
version = "3.18.3";
version = "3.18.5";
src = fetchurl {
url = "mirror://sourceforge/hplip/${name}.tar.gz";
sha256 = "0x5xs86v18w46rxz5whc15bl4fb7p4km6xqjpwzclp83nl7rl01y";
sha256 = "0xb7ga2wgbwjxsss67mjn2y6fmqsfwzmv11ivvfzhnl36lh22hkb";
};
plugin = fetchurl {
url = "https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run";
sha256 = "11nc3cifhd2h2c7p0dr2jjzrg3fd5j43ih1wy0m186l6wcgdjssw";
sha256 = "1jf74jya071zqvwhy9n0c3007pzgcxydkw7qdh4sx70brly81i7p";
};
hplipState = substituteAll {
@ -55,8 +57,11 @@ pythonPackages.buildPythonApplication {
libusb1
sane-backends
dbus
file
ghostscript
net_snmp
openssl
perl
zlib
];
@ -86,6 +91,11 @@ pythonPackages.buildPythonApplication {
-e s,/usr/share/hal/fdi/preprobe/10osvendor,$out/share/hal/fdi/preprobe/10osvendor,g \
-e s,/usr/lib/systemd/system,$out/lib/systemd/system,g \
-e s,/var/lib/hp,$out/var/lib/hp,g \
-e s,/usr/bin/perl,${perl}/bin/perl,g \
-e s,/usr/bin/file,${file}/bin/file,g \
-e s,/usr/bin/gs,${ghostscript}/bin/gs,g \
-e s,/usr/share/cups/fonts,${ghostscript}/share/ghostscript/fonts,g \
-e "s,ExecStart=/usr/bin/python /usr/bin/hp-config_usb_printer,ExecStart=$out/bin/hp-config_usb_printer,g" \
{} +
'';
@ -98,6 +108,7 @@ pythonPackages.buildPythonApplication {
--with-systraydir=$out/xdg/autostart
--with-mimedir=$out/etc/cups
--enable-policykit
${stdenv.lib.optionalString withStaticPPDInstall "--enable-cups-ppd-install"}
--disable-qt4
${stdenv.lib.optionalString withQt5 "--enable-qt5"}
"
@ -111,10 +122,20 @@ pythonPackages.buildPythonApplication {
hplip_confdir=$out/etc/hp
hplip_statedir=$out/var/lib/hp
"
# Prevent 'ppdc: Unable to find include file "<font.defs>"' which prevent
# generation of '*.ppd' files.
# This seems to be a 'ppdc' issue when the tool is run in a hermetic sandbox.
# Could not find how to fix the problem in 'ppdc' so this is a workaround.
export CUPS_DATADIR="${cups}/share/cups"
'';
enableParallelBuilding = true;
#
# Running `hp-diagnose_plugin -g` can be used to diagnose
# issues with plugins.
#
postInstall = stdenv.lib.optionalString withPlugin ''
sh ${plugin} --noexec --keep
cd plugin_tmp
@ -130,17 +151,27 @@ pythonPackages.buildPythonApplication {
mkdir -p $out/share/hplip/prnt/plugins
for plugin in lj hbpl1; do
cp $plugin-${hplipArch}.so $out/share/hplip/prnt/plugins
chmod 0755 $out/share/hplip/prnt/plugins/$plugin-${hplipArch}.so
ln -s $out/share/hplip/prnt/plugins/$plugin-${hplipArch}.so \
$out/share/hplip/prnt/plugins/$plugin.so
done
mkdir -p $out/share/hplip/scan/plugins
for plugin in bb_soap bb_marvell bb_soapht fax_marvell; do
for plugin in bb_soap bb_marvell bb_soapht bb_escl; do
cp $plugin-${hplipArch}.so $out/share/hplip/scan/plugins
chmod 0755 $out/share/hplip/scan/plugins/$plugin-${hplipArch}.so
ln -s $out/share/hplip/scan/plugins/$plugin-${hplipArch}.so \
$out/share/hplip/scan/plugins/$plugin.so
done
mkdir -p $out/share/hplip/fax/plugins
for plugin in fax_marvell; do
cp $plugin-${hplipArch}.so $out/share/hplip/fax/plugins
chmod 0755 $out/share/hplip/fax/plugins/$plugin-${hplipArch}.so
ln -s $out/share/hplip/fax/plugins/$plugin-${hplipArch}.so \
$out/share/hplip/fax/plugins/$plugin.so
done
mkdir -p $out/var/lib/hp
cp ${hplipState} $out/var/lib/hp/hplip.state