prevent distutils during module install from downloading and load pth files
based on a patch by Cillian de Róiste svn path=/nixpkgs/branches/stdenv-updates/; revision=32583
This commit is contained in:
parent
ccb34b093f
commit
d52e2c7c41
|
@ -3,7 +3,7 @@
|
|||
(http://pypi.python.org/pypi/setuptools/), which represents a large
|
||||
number of Python packages nowadays. */
|
||||
|
||||
{ python, setuptools, wrapPython, lib, site }:
|
||||
{ python, setuptools, wrapPython, lib, site, offlineDistutils }:
|
||||
|
||||
{ name, namePrefix ? "python-"
|
||||
|
||||
|
@ -69,6 +69,15 @@ python.stdenv.mkDerivation (attrs // {
|
|||
|
||||
buildInputs = [ python wrapPython setuptools ] ++ buildInputs ++ pythonPath;
|
||||
|
||||
configurePhase = ''
|
||||
# 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"
|
||||
'';
|
||||
|
||||
# XXX: I think setuptools is not needed here
|
||||
pythonPath = [ setuptools site ] ++ pythonPath;
|
||||
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
}
|
|
@ -9,7 +9,7 @@ let pythonPackages = python.modules // rec {
|
|||
|
||||
buildPythonPackage = import ../development/python-modules/generic {
|
||||
inherit (pkgs) lib;
|
||||
inherit python wrapPython setuptools site;
|
||||
inherit python wrapPython setuptools site offlineDistutils;
|
||||
};
|
||||
|
||||
|
||||
|
@ -24,6 +24,10 @@ let pythonPackages = python.modules // rec {
|
|||
inherit python;
|
||||
};
|
||||
|
||||
offlineDistutils = import ../development/python-modules/offline-distutils {
|
||||
inherit (pkgs) stdenv;
|
||||
inherit python;
|
||||
};
|
||||
|
||||
ipython = import ../shells/ipython {
|
||||
inherit (pkgs) stdenv fetchurl;
|
||||
|
|
Loading…
Reference in a new issue