pygtk in pythonPackages, checks disabled, demo works, relates #223

Previously the checkPhase was not executed. It is now and a couple of
issues with it are seded away.
This commit is contained in:
Florian Friesdorf 2013-01-11 17:45:26 +01:00
parent 59879f6496
commit a7a6173a3f
3 changed files with 42 additions and 21 deletions

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, makeWrapper, python, pkgconfig, glib, gtk, pygobject, pycairo { stdenv, fetchurl, python, pkgconfig, glib, gtk, pygobject, pycairo
, libglade ? null }: , buildPythonPackage, libglade ? null }:
stdenv.mkDerivation rec { buildPythonPackage rec {
name = "pygtk-2.22.0"; name = "pygtk-2.22.0";
src = fetchurl { src = fetchurl {
@ -10,26 +10,35 @@ stdenv.mkDerivation rec {
}; };
buildInputs = buildInputs =
[ makeWrapper python pkgconfig glib gtk ] [ pkgconfig glib gtk ]
++ stdenv.lib.optional (libglade != null) libglade; ++ stdenv.lib.optional (libglade != null) libglade;
propagatedBuildInputs = [ pygobject pycairo ]; 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 = '' postInstall = ''
rm $out/bin/pygtk-codegen-2.0 rm $out/bin/pygtk-codegen-2.0
ln -s ${pygobject}/bin/pygobject-codegen-2.0 $out/bin/pygtk-codegen-2.0 ln -s ${pygobject}/bin/pygobject-codegen-2.0 $out/bin/pygtk-codegen-2.0
ln -s ${pygobject}/lib/${python.libPrefix}/site-packages/${pygobject.name}.pth \
# All python code is installed into a "gtk-2.0" sub-directory. That $out/lib/${python.libPrefix}/site-packages/${name}.pth
# 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")
''; '';
} }

View File

@ -5311,11 +5311,9 @@ let
pygobject = pythonPackages.pygobject; pygobject = pythonPackages.pygobject;
pygtk = callPackage ../development/python-modules/pygtk { }; pygtk = pythonPackages.pygtk;
pyGtkGlade = callPackage ../development/python-modules/pygtk { pyGtkGlade = pythonPackages.pyGtkGlade;
inherit (gnome) libglade;
};
pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) { pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
inherit python openssl; inherit python openssl;

View File

@ -67,6 +67,20 @@ let pythonPackages = python.modules // rec {
inherit python; 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 # packages defined here