summary refs log tree commit diff
path: root/pkgs/tools/misc/system-config-printer
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2016-06-19 11:52:59 +0200
committerBjørn Forsman <bjorn.forsman@gmail.com>2016-06-28 14:23:49 +0200
commit1f4853f7a920b8a4aa55b1e5ce618bb1aa326dc8 (patch)
tree821c717518cf0bb18c59326f90b77bc41c2a1344 /pkgs/tools/misc/system-config-printer
parent66ee7a4c46ac27c30d7a06981361b9c8b0a330af (diff)
downloadnixpkgs-1f4853f7a920b8a4aa55b1e5ce618bb1aa326dc8.tar
nixpkgs-1f4853f7a920b8a4aa55b1e5ce618bb1aa326dc8.tar.gz
nixpkgs-1f4853f7a920b8a4aa55b1e5ce618bb1aa326dc8.tar.bz2
nixpkgs-1f4853f7a920b8a4aa55b1e5ce618bb1aa326dc8.tar.lz
nixpkgs-1f4853f7a920b8a4aa55b1e5ce618bb1aa326dc8.tar.xz
nixpkgs-1f4853f7a920b8a4aa55b1e5ce618bb1aa326dc8.tar.zst
nixpkgs-1f4853f7a920b8a4aa55b1e5ce618bb1aa326dc8.zip
system-config-printer: update hash to really upgrade to 1.5.7
Commit 03353ce6ff738acce3d ("system-config-printer: 1.3.12 -> 1 5.7")
forgot to update the hash. So since that commit we actually continued to
use the old version (1.3.12) because of the NixOS tarball cache...

The new version prints some warnings on startup:

  /nix/store/HASH-system-config-printer-1.5.7/share/system-config-printer/system-config-printer.py:32: \
    PyGIWarning: Polkit was imported without specifying a version first. \
    Use gi.require_version('Polkit', '1.0') before import to ensure that the right version gets loaded.
  from gi.repository import Polkit

...and similar errors for GdkPixbuf, Gdk, Gtk and Notify. These warnings
are already fixed upstream and will be part of the next release.

Implementation details:
* The new version needs python3.
* Remove unneeded, and python3 incompatible, 'notify' dependency.
  system-config-printer > 1.3.12 replaced it with GOBject introspection
  bindings to libnotify (from gi.repository import Notify).
* Add gtk3, gdk_pixbuf, pango, atk, libnotify as needed (for gobject
  introspection).
* A new --with-udevdir configure option is used to prevent the
  installer from trying to install stuff to "/rules.d" (yes, the root).
* Get pycups from the passed pythonPackages set (fixes loading of
  python cups module).
* Use pygobject3 instead of pygobject, as needed.
* Use dbus from the passed pythonPackages attrset instead of
  pythonDBus, so we get a python3 compatible module that loads
  successfully.
* Python requests2 modules is required.
Diffstat (limited to 'pkgs/tools/misc/system-config-printer')
-rw-r--r--pkgs/tools/misc/system-config-printer/default.nix17
1 files changed, 10 insertions, 7 deletions
diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix
index b36697ede02..d16fdd4e605 100644
--- a/pkgs/tools/misc/system-config-printer/default.nix
+++ b/pkgs/tools/misc/system-config-printer/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, udev, intltool, pkgconfig, glib, xmlto
-, makeWrapper, pygobject, pygtk, docbook_xml_dtd_412, docbook_xsl
-, pythonDBus, libxml2, desktop_file_utils, libusb1, cups, pycups
+, makeWrapper, gtk3, docbook_xml_dtd_412, docbook_xsl
+, libxml2, desktop_file_utils, libusb1, cups, gdk_pixbuf, pango, atk, libnotify
 , pythonPackages
 , withGUI ? true
 }:
@@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://cyberelk.net/tim/data/system-config-printer/${majorVersion}/${name}.tar.xz";
-    sha256 = "1cg9n75rg5l9vr1925n2g771kga33imikyl0mf70lww2sfgvs18r";
+    sha256 = "1vxczk22f58nbikvj47s2x1gzh6q4mbgwnf091p00h3b6nxppdgn";
   };
 
   propagatedBuildInputs = [ pythonPackages.pycurl ];
@@ -25,18 +25,21 @@ in stdenv.mkDerivation rec {
       pythonPackages.python pythonPackages.wrapPython
     ];
 
-  pythonPath =
-    [ pythonDBus pycups pygobject pythonPackages.pycurl ]
-    ++ stdenv.lib.optionals withGUI [ pygtk pythonPackages.notify ];
+  pythonPath = with pythonPackages;
+    [ pycups pycurl dbus pygobject3 requests2 ];
 
   configureFlags =
     [ "--with-udev-rules"
+      "--with-udevdir=$(out)/etc/udev"
       "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
     ];
 
   postInstall =
+    let
+      giTypelibPath = stdenv.lib.makeSearchPath "lib/girepository-1.0" [ gdk_pixbuf.out gtk3.out pango.out atk.out libnotify.out ];
+    in
     ''
-      export makeWrapperArgs="--set prefix $out"
+      export makeWrapperArgs="--set prefix $out --set GI_TYPELIB_PATH ${giTypelibPath}"
       wrapPythonPrograms
       # The program imports itself, so we need to move shell wrappers to a proper place.
       fixupWrapper() {