* Purity fix in building Python: don't let it search in /usr/include
and /usr/lib to determine what optional modules (like bzip2, zlib, dl, etc.) to build. Unfortunately there doesn't seem to be a way to tell the Python build process to look anywhere else, so I had to patch setup.py. svn path=/nixpkgs/trunk/; revision=8780
This commit is contained in:
@@ -1,24 +1,52 @@
|
||||
{stdenv, fetchurl, zlib ? null, zlibSupport ? true}:
|
||||
{stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2}:
|
||||
|
||||
assert zlibSupport -> zlib != null;
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
|
||||
buildInputs =
|
||||
optional (stdenv ? gcc && stdenv.gcc ? libc) stdenv.gcc.libc ++
|
||||
[bzip2] ++
|
||||
optional zlibSupport zlib;
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "python-2.4.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://www.python.org/ftp/python/2.4.4/Python-2.4.4.tar.bz2;
|
||||
md5 = "0ba90c79175c017101100ebf5978e906";
|
||||
};
|
||||
buildInputs = [
|
||||
(if zlibSupport then zlib else null)
|
||||
|
||||
patches = [
|
||||
# Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff.
|
||||
./search-path.patch
|
||||
];
|
||||
inherit zlibSupport;
|
||||
|
||||
inherit buildInputs;
|
||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||
|
||||
configureFlags = "--enable-shared";
|
||||
|
||||
libPrefix = "python2.4";
|
||||
preConfigure = "
|
||||
# Purity.
|
||||
for i in /usr /sw /opt /pkg; do
|
||||
substituteInPlace ./setup.py --replace $i /no-such-path
|
||||
done
|
||||
";
|
||||
|
||||
postInstall = "
|
||||
ensureDir $out/nix-support
|
||||
cp ${./setup-hook.sh} $out/nix-support/setup-hook
|
||||
rm -rf $out/lib/python2.4/test
|
||||
";
|
||||
|
||||
passthru = {
|
||||
inherit zlibSupport;
|
||||
libPrefix = "python2.4";
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user