about summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@secure.mailbox.org>2017-09-25 10:22:37 -0500
committerGitHub <noreply@github.com>2017-09-25 10:22:37 -0500
commit8036ee50aa8e22cabef48961c54b25d6ac6c6a97 (patch)
tree80230b424a449d94b79594155397eccd083772f6 /pkgs/misc
parent8a1fb4b504d644e8a97394be74a3d3a6298fcbe7 (diff)
parenta2b852caa0f1467948becc9a83db807ebfc09119 (diff)
downloadnixlib-8036ee50aa8e22cabef48961c54b25d6ac6c6a97.tar
nixlib-8036ee50aa8e22cabef48961c54b25d6ac6c6a97.tar.gz
nixlib-8036ee50aa8e22cabef48961c54b25d6ac6c6a97.tar.bz2
nixlib-8036ee50aa8e22cabef48961c54b25d6ac6c6a97.tar.lz
nixlib-8036ee50aa8e22cabef48961c54b25d6ac6c6a97.tar.xz
nixlib-8036ee50aa8e22cabef48961c54b25d6ac6c6a97.tar.zst
nixlib-8036ee50aa8e22cabef48961c54b25d6ac6c6a97.zip
Merge pull request #29666 from ttuegel/hplip
hplip: 3.16.11 -> 3.17.9
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/drivers/hplip/3.16.11.nix (renamed from pkgs/misc/drivers/hplip/3.15.9.nix)96
-rw-r--r--pkgs/misc/drivers/hplip/default.nix16
2 files changed, 54 insertions, 58 deletions
diff --git a/pkgs/misc/drivers/hplip/3.15.9.nix b/pkgs/misc/drivers/hplip/3.16.11.nix
index ae96a946e79d..f538066e75ce 100644
--- a/pkgs/misc/drivers/hplip/3.15.9.nix
+++ b/pkgs/misc/drivers/hplip/3.16.11.nix
@@ -1,66 +1,62 @@
 { stdenv, fetchurl, substituteAll
 , pkgconfig
+, makeWrapper
 , cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils
-, net_snmp, polkit
+, net_snmp, openssl, polkit, nettools
 , bash, coreutils, utillinux
-, qtSupport ? true, qt4
+, qtSupport ? true
 , withPlugin ? false
 }:
 
 let
 
   name = "hplip-${version}";
-  version = "3.15.9";
+  version = "3.16.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/hplip/${name}.tar.gz";
-    sha256 = "0vcxz3gsqcamlzx61xm77h7c769ya8kdhzwafa9w2wvkf3l8zxd1";
+    sha256 = "094vkyr0rjng72m13dgr824cdl7q20x23qjxzih4w7l9njn0rqpn";
   };
 
   plugin = fetchurl {
     url = "http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run";
-    sha256 = "1ahalw83xm8x0h6hljhnkknry1hny9flkrlzcymv8nmwgic0kjgs";
+    sha256 = "1y3wdax2wb6kdd8bi40wl7v9s8ffyjz95bz42sjcpzzddmlhcaxg";
   };
 
-  hplipState =
-    substituteAll
-      {
-        inherit version;
-        src = ./hplip.state;
-      };
-
-  hplipPlatforms =
-    {
-      "i686-linux"   = "x86_32";
-      "x86_64-linux" = "x86_64";
-      "armv6l-linux" = "arm32";
-      "armv7l-linux" = "arm32";
-    };
+  hplipState = substituteAll {
+    inherit version;
+    src = ./hplip.state;
+  };
+
+  hplipPlatforms = {
+    "i686-linux"   = "x86_32";
+    "x86_64-linux" = "x86_64";
+    "armv6l-linux" = "arm32";
+    "armv7l-linux" = "arm32";
+  };
 
   hplipArch = hplipPlatforms."${stdenv.system}"
     or (throw "HPLIP not supported on ${stdenv.system}");
 
-  pluginArches = [ "x86_32" "x86_64" ];
+  pluginArches = [ "x86_32" "x86_64" "arm32" ];
 
 in
 
 assert withPlugin -> builtins.elem hplipArch pluginArches
   || throw "HPLIP plugin not supported on ${stdenv.system}";
 
-stdenv.mkDerivation {
-  inherit name src version;
+pythonPackages.buildPythonApplication {
+  inherit name src;
+  format = "other";
 
   buildInputs = [
     libjpeg
     cups
     libusb1
-    pythonPackages.python
-    pythonPackages.wrapPython
     sane-backends
     dbus
     net_snmp
-  ] ++ stdenv.lib.optionals qtSupport [
-    qt4
+    openssl
   ];
 
   nativeBuildInputs = [
@@ -71,13 +67,14 @@ stdenv.mkDerivation {
     dbus
     pillow
     pygobject2
-    recursivePthLoader
     reportlab
     usbutils
   ] ++ stdenv.lib.optionals qtSupport [
     pyqt4
   ];
 
+  makeWrapperArgs = [ ''--prefix PATH : "${nettools}/bin"'' ];
+
   prePatch = ''
     # HPLIP hardcodes absolute paths everywhere. Nuke from orbit.
     find . -type f -exec sed -i \
@@ -92,6 +89,7 @@ stdenv.mkDerivation {
 
   preConfigure = ''
     export configureFlags="$configureFlags
+      --with-hpppddir=$out/share/cups/model/HP
       --with-cupsfilterdir=$out/lib/cups/filter
       --with-cupsbackenddir=$out/lib/cups/backend
       --with-icondir=$out/share/applications
@@ -148,32 +146,30 @@ stdenv.mkDerivation {
     rm $out/etc/udev/rules.d/56-hpmud.rules
   '';
 
-  fixupPhase = ''
-    # Wrap the user-facing Python scripts in $out/bin without turning the
-    # ones in $out /share into shell scripts (they need to be importable).
-    # Note that $out/bin contains only symlinks to $out/share.
+  # The installed executables are just symlinks into $out/share/hplip,
+  # but wrapPythonPrograms ignores symlinks. We cannot replace the Python
+  # modules in $out/share/hplip with wrapper scripts because they import
+  # each other as libraries. Instead, we emulate wrapPythonPrograms by
+  # 1. Calling patchPythonProgram on the original script in $out/share/hplip
+  # 2. Making our own wrapper pointing directly to the original script.
+  dontWrapPythonPrograms = true;
+  preFixup = ''
+    buildPythonPath "$out $pythonPath"
+
     for bin in $out/bin/*; do
-      py=`readlink -m $bin`
+      py=$(readlink -m $bin)
       rm $bin
-      cp $py $bin
-      wrapPythonProgramsIn $bin "$out $pythonPath"
-      sed -i "s@$(dirname $bin)/[^ ]*@$py@g" $bin
+      echo "patching \`$py'..."
+      patchPythonScript "$py"
+      echo "wrapping \`$bin'..."
+      makeWrapper "$py" "$bin" \
+          --prefix PATH ':' "$program_PATH" \
+          --set PYTHONNOUSERSITE "true" \
+          $makeWrapperArgs
     done
+  '';
 
-    # Remove originals. Knows a little too much about wrapPythonProgramsIn.
-    rm -f $out/bin/.*-wrapped
-
-    # Merely patching shebangs in $out/share does not cause trouble.
-    for i in $out/share/hplip{,/*}/*.py; do
-      substituteInPlace $i \
-        --replace /usr/bin/python \
-        ${pythonPackages.python}/bin/${pythonPackages.python.executable} \
-        --replace "/usr/bin/env python" \
-        ${pythonPackages.python}/bin/${pythonPackages.python.executable}
-    done
-
-    wrapPythonProgramsIn $out/lib "$out $pythonPath"
-
+  postFixup = ''
     substituteInPlace $out/etc/hp/hplip.conf --replace /usr $out
   '' + stdenv.lib.optionalString (!withPlugin) ''
     # A udev rule to notify users that they need the binary plugin.
@@ -192,6 +188,6 @@ stdenv.mkDerivation {
       then licenses.unfree
       else with licenses; [ mit bsd2 gpl2Plus ];
     platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" ];
-    maintainers = with maintainers; [ jgeerds nckx ];
+    maintainers = with maintainers; [ jgeerds ttuegel ];
   };
 }
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index 9342c547a17e..a01fc74ce471 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -4,23 +4,23 @@
 , cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils
 , net_snmp, openssl, polkit, nettools
 , bash, coreutils, utillinux
-, qtSupport ? true
+, withQt5 ? true
 , withPlugin ? false
 }:
 
 let
 
   name = "hplip-${version}";
-  version = "3.16.11";
+  version = "3.17.9";
 
   src = fetchurl {
     url = "mirror://sourceforge/hplip/${name}.tar.gz";
-    sha256 = "094vkyr0rjng72m13dgr824cdl7q20x23qjxzih4w7l9njn0rqpn";
+    sha256 = "0y46jjq8jdfk9m4vjq55h8yggibvqbi9rl08vni7vbhxym1diamj";
   };
 
   plugin = fetchurl {
-    url = "http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run";
-    sha256 = "1y3wdax2wb6kdd8bi40wl7v9s8ffyjz95bz42sjcpzzddmlhcaxg";
+    url = "http://hplipopensource.com/hplip-web/plugin/${name}-plugin.run";
+    sha256 = "10z8vzwcwmwni7s4j9xp0fa7l4lwrhl4kp450dga3fj0cck1gxwq";
   };
 
   hplipState = substituteAll {
@@ -69,8 +69,8 @@ pythonPackages.buildPythonApplication {
     pygobject2
     reportlab
     usbutils
-  ] ++ stdenv.lib.optionals qtSupport [
-    pyqt4
+  ] ++ stdenv.lib.optionals withQt5 [
+    pyqt5
   ];
 
   makeWrapperArgs = [ ''--prefix PATH : "${nettools}/bin"'' ];
@@ -188,6 +188,6 @@ pythonPackages.buildPythonApplication {
       then licenses.unfree
       else with licenses; [ mit bsd2 gpl2Plus ];
     platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" ];
-    maintainers = with maintainers; [ jgeerds nckx ];
+    maintainers = with maintainers; [ jgeerds ttuegel ];
   };
 }