From f87c4ec7f41c3819f501da285a6c2e68fa176c81 Mon Sep 17 00:00:00 2001 From: Armijn Hemel <armijn@gpl-violations.org> Date: Thu, 9 Aug 2007 00:35:23 +0000 Subject: [PATCH] add Python 2.5.1 svn path=/nixpkgs/trunk/; revision=9077 --- .../interpreters/python/2.5/default.nix | 52 +++++++++++++++++++ .../interpreters/python/2.5/search-path.patch | 27 ++++++++++ .../interpreters/python/2.5/setup-hook.sh | 18 +++++++ 3 files changed, 97 insertions(+) create mode 100644 pkgs/development/interpreters/python/2.5/default.nix create mode 100644 pkgs/development/interpreters/python/2.5/search-path.patch create mode 100644 pkgs/development/interpreters/python/2.5/setup-hook.sh diff --git a/pkgs/development/interpreters/python/2.5/default.nix b/pkgs/development/interpreters/python/2.5/default.nix new file mode 100644 index 000000000000..9a84bfa7ff87 --- /dev/null +++ b/pkgs/development/interpreters/python/2.5/default.nix @@ -0,0 +1,52 @@ +{stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2}: + +assert zlibSupport -> zlib != null; + +with stdenv.lib; + +let + + buildInputs = + optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++ + [bzip2] ++ + optional zlibSupport zlib; + +in + +stdenv.mkDerivation { + name = "python-2.5.1"; + + src = fetchurl { + url = http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tar.bz2; + sha256 = "0rz1279q0i5f69jvwn6i0vlxmhxgcfykxnr80zmx4micw3fd9dfh"; + }; + + patches = [ + # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff. + ./search-path.patch + ]; + + inherit buildInputs; + C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs); + LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs); + + configureFlags = "--enable-shared"; + + 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.5/test + "; + + passthru = { + inherit zlibSupport; + libPrefix = "python2.5"; + }; +} diff --git a/pkgs/development/interpreters/python/2.5/search-path.patch b/pkgs/development/interpreters/python/2.5/search-path.patch new file mode 100644 index 000000000000..2e7b7526c0ce --- /dev/null +++ b/pkgs/development/interpreters/python/2.5/search-path.patch @@ -0,0 +1,27 @@ +diff -rc Python-2.4.4-orig/setup.py Python-2.4.4/setup.py +*** Python-2.4.4-orig/setup.py 2006-10-08 19:41:25.000000000 +0200 +--- Python-2.4.4/setup.py 2007-05-27 16:04:54.000000000 +0200 +*************** +*** 279,288 **** + # Check for AtheOS which has libraries in non-standard locations + if platform == 'atheos': + lib_dirs += ['/system/libs', '/atheos/autolnk/lib'] +- lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) + inc_dirs += ['/system/include', '/atheos/autolnk/include'] +- inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) + + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) + if platform in ['osf1', 'unixware7', 'openunix8']: + lib_dirs += ['/usr/ccs/lib'] +--- 279,289 ---- + # Check for AtheOS which has libraries in non-standard locations + if platform == 'atheos': + lib_dirs += ['/system/libs', '/atheos/autolnk/lib'] + inc_dirs += ['/system/include', '/atheos/autolnk/include'] + ++ lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) ++ inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) ++ + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) + if platform in ['osf1', 'unixware7', 'openunix8']: + lib_dirs += ['/usr/ccs/lib'] diff --git a/pkgs/development/interpreters/python/2.5/setup-hook.sh b/pkgs/development/interpreters/python/2.5/setup-hook.sh new file mode 100644 index 000000000000..11551235c1f8 --- /dev/null +++ b/pkgs/development/interpreters/python/2.5/setup-hook.sh @@ -0,0 +1,18 @@ +addPythonPath() { + local p=$1/lib/python2.5/site-packages + if test -d $p; then + export PYTHONPATH="${PYTHONPATH}${PYTHONPATH:+:}$p" + fi +} + +toPythonPath() { + local paths="$1" + local result= + for i in $paths; do + p="$i/lib/python2.5/site-packages" + result="${result}${result:+:}$p" + done + echo $result +} + +envHooks=(${envHooks[@]} addPythonPath)