summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorFlorian Friesdorf <flo@chaoflow.net>2012-11-23 17:28:51 +0100
committerFlorian Friesdorf <flo@chaoflow.net>2012-11-23 17:28:51 +0100
commitddbd5c2eba9ffce01ce91fe2bda48ccc218857d9 (patch)
tree8d77161f7961ad344a3ebdc512b3cf6802408b1b /pkgs
parentdce76a387d387186542fa52af946a7312cb3e93b (diff)
parentad8a4c73fa487deb2a1f2d4814f50acb8a647f5e (diff)
downloadnixpkgs-ddbd5c2eba9ffce01ce91fe2bda48ccc218857d9.tar
nixpkgs-ddbd5c2eba9ffce01ce91fe2bda48ccc218857d9.tar.gz
nixpkgs-ddbd5c2eba9ffce01ce91fe2bda48ccc218857d9.tar.bz2
nixpkgs-ddbd5c2eba9ffce01ce91fe2bda48ccc218857d9.tar.lz
nixpkgs-ddbd5c2eba9ffce01ce91fe2bda48ccc218857d9.tar.xz
nixpkgs-ddbd5c2eba9ffce01ce91fe2bda48ccc218857d9.tar.zst
nixpkgs-ddbd5c2eba9ffce01ce91fe2bda48ccc218857d9.zip
Merge branch 'py/offline-distutils' into python-merge
Conflicts:
	pkgs/development/python-modules/generic/default.nix
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/python-modules/generic/builder.sh10
-rw-r--r--pkgs/development/python-modules/generic/default.nix4
-rw-r--r--pkgs/development/python-modules/offline-distutils/default.nix21
-rw-r--r--pkgs/top-level/python-packages.nix6
4 files changed, 39 insertions, 2 deletions
diff --git a/pkgs/development/python-modules/generic/builder.sh b/pkgs/development/python-modules/generic/builder.sh
new file mode 100644
index 00000000000..52b66aaf6a6
--- /dev/null
+++ b/pkgs/development/python-modules/generic/builder.sh
@@ -0,0 +1,10 @@
+source $stdenv/setup
+
+# do not allow distutils to make downloads, whatever install command is used
+export PYTHONPATH="${setuptools}/lib/${python.libPrefix}:$PYTHONPATH"
+export PYTHONPATH="${offlineDistutils}/lib/${python.libPrefix}:$PYTHONPATH"
+
+# enable pth files for dependencies
+export PYTHONPATH="${site}/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+
+genericBuild
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 865f7ca9be1..8502e91b650 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -3,7 +3,7 @@
    (http://pypi.python.org/pypi/setuptools/), which represents a large
    number of Python packages nowadays.  */
 
-{ python, setuptools, wrapPython, lib }:
+{ python, setuptools, wrapPython, lib, offlineDistutils }:
 
 { name, namePrefix ? "python-"
 
@@ -47,6 +47,8 @@ python.stdenv.mkDerivation (attrs // {
 
   buildInputStrings = map toString buildInputs;
 
+  builder = ./builder.sh
+
   pythonPath = [ setuptools] ++ pythonPath;
 
   installPhase = ''
diff --git a/pkgs/development/python-modules/offline-distutils/default.nix b/pkgs/development/python-modules/offline-distutils/default.nix
new file mode 100644
index 00000000000..2ed41b08bb7
--- /dev/null
+++ b/pkgs/development/python-modules/offline-distutils/default.nix
@@ -0,0 +1,21 @@
+# Used during module installation to prevent easy_install and python
+# setup.py install/test from downloading
+
+{ stdenv, python }:
+
+stdenv.mkDerivation {
+  name = "python-offline-distutils-${python.version}";
+
+  buildInputs = [ python ];
+
+  unpackPhase = "true";
+  installPhase = ''
+    dst="$out/lib/${python.libPrefix}"
+    ensureDir $dst/distutils
+    ln -s ${python}/lib/${python.libPrefix}/distutils/* $dst/distutils/
+    cat <<EOF > $dst/distutils/distutils.cfg
+[easy_install]
+allow-hosts = None
+EOF
+  '';
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index db5643427f8..32f050fec12 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -9,7 +9,7 @@ let pythonPackages = python.modules // rec {
 
   buildPythonPackage = import ../development/python-modules/generic {
     inherit (pkgs) lib;
-    inherit python wrapPython setuptools;
+    inherit python wrapPython setuptools offlineDistutils;
   };
 
 
@@ -24,6 +24,10 @@ let pythonPackages = python.modules // rec {
     inherit python wrapPython;
   };
 
+  offlineDistutils = import ../development/python-modules/offline-distutils {
+    inherit (pkgs) stdenv;
+    inherit python;
+  };
 
   ipython = import ../shells/ipython {
     inherit (pkgs) stdenv fetchurl;