diff options
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters/python/cpython/2.7')
-rw-r--r-- | nixpkgs/pkgs/development/interpreters/python/cpython/2.7/boot.nix | 2 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix | 74 |
2 files changed, 35 insertions, 41 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/boot.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/boot.nix index 976d30819dbe..ccb366903c5c 100644 --- a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/boot.nix +++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/boot.nix @@ -77,8 +77,6 @@ stdenv.mkDerivation rec { '' ln -s $out/share/man/man1/{python2.7.1.gz,python.1.gz} - paxmark E $out/bin/python2.7 - rm "$out"/lib/python*/plat-*/regen # refers to glibc.dev ''; diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix index 63dad3bf42ff..249c4ac9cf79 100644 --- a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix +++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix @@ -1,7 +1,9 @@ -{ stdenv, buildPackages, fetchurl +{ stdenv, fetchurl, fetchpatch , bzip2 +, expat +, libffi , gdbm -, fetchpatch +, db , ncurses , openssl , readline @@ -10,15 +12,16 @@ , zlib , callPackage , self -, db -, expat -, libffi , CF, configd, coreutils , python-setup-hook # Some proprietary libs assume UCS2 unicode, especially on darwin :( , ucsEncoding ? 4 # For the Python package set , packageOverrides ? (self: super: {}) +, buildPackages +, sourceVersion +, sha256 +, passthruFun }: assert x11Support -> tcl != null @@ -29,16 +32,26 @@ assert x11Support -> tcl != null with stdenv.lib; let - majorVersion = "2.7"; - minorVersion = "15"; - minorVersionSuffix = ""; - version = "${majorVersion}.${minorVersion}${minorVersionSuffix}"; - libPrefix = "python${majorVersion}"; - sitePackages = "lib/${libPrefix}/site-packages"; + + pythonForBuild = buildPackages.${"python${sourceVersion.major}${sourceVersion.minor}"}; + + passthru = passthruFun rec { + inherit self sourceVersion packageOverrides; + implementation = "cpython"; + libPrefix = "python${pythonVersion}"; + executable = libPrefix; + pythonVersion = with sourceVersion; "${major}.${minor}"; + sitePackages = "lib/${libPrefix}/site-packages"; + inherit pythonForBuild; + } // { + inherit ucsEncoding; + }; + + version = with sourceVersion; "${major}.${minor}.${patch}${suffix}"; src = fetchurl { - url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz"; - sha256 = "0x2mvz9dp11wj7p5ccvmk9s0hzjk2fa1m462p395l4r6bfnb3n92"; + url = with sourceVersion; "https://www.python.org/ftp/python/${major}.${minor}.${patch}/Python-${version}.tar.xz"; + inherit sha256; }; hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); @@ -191,12 +204,11 @@ let # Build the basic Python interpreter without modules that have # external dependencies. -in stdenv.mkDerivation ({ - name = "python-${version}"; - pythonVersion = majorVersion; +in with passthru; stdenv.mkDerivation ({ + pname = "python"; + inherit version; - inherit majorVersion version src patches buildInputs nativeBuildInputs - preConfigure configureFlags; + inherit src patches buildInputs nativeBuildInputs preConfigure configureFlags; LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s"; inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH; @@ -215,7 +227,7 @@ in stdenv.mkDerivation ({ '' # needed for some packages, especially packages that backport # functionality to 2.x from 3.x - for item in $out/lib/python${majorVersion}/test/*; do + for item in $out/lib/${libPrefix}/test/*; do if [[ "$item" != */test_support.py* && "$item" != */test/support && "$item" != */test/regrtest.py* ]]; then @@ -224,13 +236,11 @@ in stdenv.mkDerivation ({ echo $item fi done - touch $out/lib/python${majorVersion}/test/__init__.py - ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb - ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb${majorVersion} + touch $out/lib/${libPrefix}/test/__init__.py + ln -s $out/lib/${libPrefix}/pdb.py $out/bin/pdb + ln -s $out/lib/${libPrefix}/pdb.py $out/bin/pdb${sourceVersion.major}.${sourceVersion.minor} ln -s $out/share/man/man1/{python2.7.1.gz,python.1.gz} - paxmark E $out/bin/python${majorVersion} - # Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484 echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py @@ -251,21 +261,7 @@ in stdenv.mkDerivation ({ cp libpython2.7.dll.a $out/lib ''; - passthru = let - pythonPackages = callPackage ../../../../../top-level/python-packages.nix { - python = self; - overrides = packageOverrides; - }; - in rec { - inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch ucsEncoding; - executable = libPrefix; - buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; }; - withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;}; - pkgs = pythonPackages; - isPy2 = true; - isPy27 = true; - interpreter = "${self}/bin/${executable}"; - }; + inherit passthru; enableParallelBuilding = true; |