Author: chaoflow
Date: Sun Feb 26 17:22:59 2012
New Revision: 32580
URL: https://nixos.org/websvn/nix/?rev=32580&sc=1

Log:
pth file with deps, only current package's scripts, no colliding files

Modified:
   
nixpkgs/branches/stdenv-updates/pkgs/development/python-modules/generic/default.nix

Modified: 
nixpkgs/branches/stdenv-updates/pkgs/development/python-modules/generic/default.nix
==============================================================================
--- 
nixpkgs/branches/stdenv-updates/pkgs/development/python-modules/generic/default.nix
 Sun Feb 26 17:22:55 2012        (r32579)
+++ 
nixpkgs/branches/stdenv-updates/pkgs/development/python-modules/generic/default.nix
 Sun Feb 26 17:22:59 2012        (r32580)
@@ -17,9 +17,33 @@
   # pollute the user environment.
   pythonPath ? []
 
+  # distutils registers dependencies in .pth (good) but also creates
+  # console_scripts for dependencies in bin/ (bad). easy_install
+  # creates no scripts for dependencies (good) but does not register
+  # them in pth neither (bad) - the combination gives us a pth with
+  # dependencies and scripts only for the package we are currently
+  # installing.
 , installCommand ?
     ''
+      # install the current package with easy_install.pth including 
dependencies
+      python setup.py install --prefix="$out"
+
+      # remove console_scripts again, because they were created for deps, too
+      rm -Rf "$out"/bin
+
+      # run easy_install to generate scripts for the current package,
+      # it won't reinstall
       easy_install --prefix="$out" .
+
+      # move colliding easy_install.pth to specifically named one
+      mv 
"$out/lib/${python.libPrefix}/site-packages/"{easy-install.pth,${name}.pth}
+
+      # These cause collisions and our output is not a site anyway
+      # If you need a site, install python-site
+      rm -f "$out/lib/${python.libPrefix}/site-packages/"site.py*
+
+      # If setuptools is a dependency, it is included in $(name}.pth
+      rm -f "$out/lib/${python.libPrefix}/site-packages/setuptools.pth"
     ''
     
 , buildPhase ? "true"
@@ -67,6 +91,10 @@
       # dependencies in the user environment (since Python modules don't
       # have something like an RPATH, so the only way to find the
       # dependencies is to have them in the PYTHONPATH variable).
+      #
+      # XXX: this is not needed for things to work (pth pulls in deps)
+      # but would be nice to have anyway - However, python deps end up
+      # in propagated-build-native-inputs
       if test -e $out/nix-support/propagated-build-inputs; then
           ln -s $out/nix-support/propagated-build-inputs 
$out/nix-support/propagated-user-env-packages
       fi
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to