summary refs log tree commit diff
path: root/pkgs/tools/misc/system-config-printer
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-01-17 14:54:28 +0300
committerNikolay Amiantov <ab@fmap.me>2016-01-17 15:50:40 +0300
commit03353ce6ff738acce3d535f6a414895751967a05 (patch)
treec9344a40168c0d58d2dd369a4f7d58196be8f8ed /pkgs/tools/misc/system-config-printer
parent47017474fd75a75d747cdb5600b14b9203801984 (diff)
downloadnixpkgs-03353ce6ff738acce3d535f6a414895751967a05.tar
nixpkgs-03353ce6ff738acce3d535f6a414895751967a05.tar.gz
nixpkgs-03353ce6ff738acce3d535f6a414895751967a05.tar.bz2
nixpkgs-03353ce6ff738acce3d535f6a414895751967a05.tar.lz
nixpkgs-03353ce6ff738acce3d535f6a414895751967a05.tar.xz
nixpkgs-03353ce6ff738acce3d535f6a414895751967a05.tar.zst
nixpkgs-03353ce6ff738acce3d535f6a414895751967a05.zip
system-config-printer: 1.3.12 -> 1 5.7
Diffstat (limited to 'pkgs/tools/misc/system-config-printer')
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix27
-rw-r--r--pkgs/tools/misc/system-config-printer/detect_serverbindir.patch17
2 files changed, 38 insertions, 6 deletions
diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index 6b0be9d2f6e..7ed25fb549b 100644
--- a/pkgs/tools/misc/system-config-printer/default.nix
+++ b/pkgs/tools/misc/system-config-printer/default.nix
@@ -5,16 +5,20 @@
 , withGUI ? true
 }:
 
-stdenv.mkDerivation rec {
-  name = "system-config-printer-1.3.12";
+let majorVersion = "1.5";
+
+in stdenv.mkDerivation rec {
+  name = "system-config-printer-${majorVersion}.7";
 
   src = fetchurl {
-    url = "http://cyberelk.net/tim/data/system-config-printer/1.3/${name}.tar.xz";
+    url = "http://cyberelk.net/tim/data/system-config-printer/${majorVersion}/${name}.tar.xz";
     sha256 = "1cg9n75rg5l9vr1925n2g771kga33imikyl0mf70lww2sfgvs18r";
   };
 
   propagatedBuildInputs = [ pythonPackages.pycurl ];
 
+  patches = [ ./detect_serverbindir.patch ];
+
   buildInputs =
     [ intltool pkgconfig glib udev libusb1 cups xmlto
       libxml2 docbook_xml_dtd_412 docbook_xsl desktop_file_utils
@@ -32,17 +36,28 @@ stdenv.mkDerivation rec {
 
   postInstall =
     ''
+      export makeWrapperArgs="--set prefix $out"
       wrapPythonPrograms
+      # The program imports itself, so we need to move shell wrappers to a proper place.
+      fixupWrapper() {
+        mv "$out/share/system-config-printer/$2.py" \
+           "$out/bin/$1"
+        sed -i "s/.$2.py-wrapped/$2.py/g" "$out/bin/$1"
+        mv "$out/share/system-config-printer/.$2.py-wrapped" \
+           "$out/share/system-config-printer/$2.py"
+      }
+      fixupWrapper scp-dbus-service scp-dbus-service
+      fixupWrapper system-config-printer system-config-printer
+      fixupWrapper system-config-printer-applet applet
+      # This __init__.py is both executed and imported.
       ( cd $out/share/system-config-printer/troubleshoot
         mv .__init__.py-wrapped __init__.py
       )
-
-      # Upstream issue: https://github.com/twaugh/system-config-printer/issues/28
-      sed -i -e "s|/usr/bin|$out/bin|" "$out/share/dbus-1/services/org.fedoraproject.Config.Printing.service"
     '';
 
   meta = {
     homepage = http://cyberelk.net/tim/software/system-config-printer/;
     platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/misc/system-config-printer/detect_serverbindir.patch b/pkgs/tools/misc/system-config-printer/detect_serverbindir.patch
new file mode 100644
index 00000000000..2cd3058f233
--- /dev/null
+++ b/pkgs/tools/misc/system-config-printer/detect_serverbindir.patch
@@ -0,0 +1,17 @@
+diff --git a/cupshelpers/config.py.in b/cupshelpers/config.py.in
+index 55abbfc..1244327 100644
+--- a/cupshelpers/config.py.in
++++ b/cupshelpers/config.py.in
+@@ -22,3 +22,12 @@
+ prefix="@prefix@"
+ sysconfdir="@sysconfdir@"
+ cupsserverbindir="@cupsserverbindir@"
++
++try:
++    with open("/etc/cups/cups-files.conf") as config:
++        for cfgline in config:
++            args = cfgline.split(" ")
++            if len(args) == 2 and args[0] == "ServerBin":
++                cupsserverbindir = args[1].strip()
++except OSError:
++    pass