diff options
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/python-modules/pygtk/default.nix | 43 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 6 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 14 |
3 files changed, 42 insertions, 21 deletions
diff --git a/pkgs/development/python-modules/pygtk/default.nix b/pkgs/development/python-modules/pygtk/default.nix index 81147fff17dc..07d57591f1ac 100644 --- a/pkgs/development/python-modules/pygtk/default.nix +++ b/pkgs/development/python-modules/pygtk/default.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchurl, makeWrapper, python, pkgconfig, glib, gtk, pygobject, pycairo -, libglade ? null }: +{ stdenv, fetchurl, python, pkgconfig, glib, gtk, pygobject, pycairo +, buildPythonPackage, libglade ? null }: -stdenv.mkDerivation rec { +buildPythonPackage rec { name = "pygtk-2.22.0"; src = fetchurl { @@ -10,26 +10,35 @@ stdenv.mkDerivation rec { }; buildInputs = - [ makeWrapper python pkgconfig glib gtk ] + [ pkgconfig glib gtk ] ++ stdenv.lib.optional (libglade != null) libglade; propagatedBuildInputs = [ pygobject pycairo ]; + installCommand = "make install"; + checkPhase = stdenv.lib.optionalString (libglade == null) + '' + sed -i -e "s/glade = importModule('gtk.glade', buildDir)//" \ + tests/common.py + sed -i -e "s/, glade$//" \ + -e "s/.*testGlade.*//" \ + -e "s/.*(glade.*//" \ + tests/test_api.py + '' + '' + sed -i -e "s/sys.path.insert(0, os.path.join(buildDir, 'gtk'))//" \ + -e "s/sys.path.insert(0, buildDir)//" \ + tests/common.py + make check + ''; + # XXX: TypeError: Unsupported type: <class 'gtk._gtk.WindowType'> + # The check phase was not executed in the previous + # non-buildPythonPackage setup - not sure why not. + doCheck = false; + postInstall = '' rm $out/bin/pygtk-codegen-2.0 ln -s ${pygobject}/bin/pygobject-codegen-2.0 $out/bin/pygtk-codegen-2.0 - - # All python code is installed into a "gtk-2.0" sub-directory. That - # sub-directory may be useful on systems which share several library - # versions in the same prefix, i.e. /usr/local, but on Nix that directory - # is useless. Furthermore, its existence makes it very hard to guess a - # proper $PYTHONPATH that allows "import gtk" to succeed. - cd $(toPythonPath $out)/gtk-2.0 - for n in *; do - ln -s "gtk-2.0/$n" "../$n" - done - - wrapProgram $out/bin/pygtk-demo --prefix PYTHONPATH ":" \ - $(toPythonPath "${pygobject} ${pycairo} $out") + ln -s ${pygobject}/lib/${python.libPrefix}/site-packages/${pygobject.name}.pth \ + $out/lib/${python.libPrefix}/site-packages/${name}.pth ''; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2303d730720a..032538f95053 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5311,11 +5311,9 @@ let pygobject = pythonPackages.pygobject; - pygtk = callPackage ../development/python-modules/pygtk { }; + pygtk = pythonPackages.pygtk; - pyGtkGlade = callPackage ../development/python-modules/pygtk { - inherit (gnome) libglade; - }; + pyGtkGlade = pythonPackages.pyGtkGlade; pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) { inherit python openssl; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 65711acf6f8f..c247f858b5a4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -67,6 +67,20 @@ let pythonPackages = python.modules // rec { inherit python; }; + pygtk = import ../development/python-modules/pygtk { + inherit (pkgs) fetchurl stdenv pkgconfig glib gtk; + inherit python buildPythonPackage pygobject pycairo; + }; + + # XXX: how can we get an override here? + #pyGtkGlade = pygtk.override { + # inherit (pkgs.gnome) libglade; + #}; + pyGtkGlade = import ../development/python-modules/pygtk { + inherit (pkgs) fetchurl stdenv pkgconfig glib gtk; + inherit (pkgs.gnome) libglade; + inherit python buildPythonPackage pygobject pycairo; + }; # packages defined here |