From 6328518e98e8097d79e49efa692c4babb2f0eda8 Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Sun, 12 Jan 2020 21:29:45 +0100 Subject: stdenv: bootstrap darwin with python3 - Replaced python override from the final stdenv, instead we propagate our bootstrap python to stage4 and override both CF and xnu to use it. - Removed CF argument from python interpreters, this is redundant since it's not overidden anymore. - Inherit CF from stage4, making it the same as the stdenv. --- .../interpreters/python/cpython/2.7/boot.nix | 103 --------------------- .../interpreters/python/cpython/2.7/default.nix | 4 +- .../interpreters/python/cpython/default.nix | 6 +- pkgs/development/interpreters/python/default.nix | 13 +-- 4 files changed, 12 insertions(+), 114 deletions(-) delete mode 100644 pkgs/development/interpreters/python/cpython/2.7/boot.nix (limited to 'pkgs/development/interpreters') diff --git a/pkgs/development/interpreters/python/cpython/2.7/boot.nix b/pkgs/development/interpreters/python/cpython/2.7/boot.nix deleted file mode 100644 index 0b9ddc0bb345..000000000000 --- a/pkgs/development/interpreters/python/cpython/2.7/boot.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ stdenv, fetchurl, configd, CF, coreutils }: - -with stdenv.lib; - -let - - mkPaths = paths: { - C_INCLUDE_PATH = makeSearchPathOutput "dev" "include" paths; - LIBRARY_PATH = makeLibraryPath paths; - }; - -in - -stdenv.mkDerivation rec { - pname = "python-boot"; - version = "2.7.12"; - libPrefix = "python2.7"; - - src = fetchurl { - url = "https://www.python.org/ftp/python/2.7.12/Python-${version}.tar.xz"; - sha256 = "0y7rl603vmwlxm6ilkhc51rx2mfj14ckcz40xxgs0ljnvlhp30yp"; - }; - - inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH; - - LDFLAGS = optionalString (!stdenv.isDarwin) "-lgcc_s"; - NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2"; - - buildInputs = optionals stdenv.isDarwin [ CF configd ]; - - patches = - [ # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff. - ./search-path.patch - - # Python recompiles a Python if the mtime stored *in* the - # pyc/pyo file differs from the mtime of the source file. This - # doesn't work in Nix because Nix changes the mtime of files in - # the Nix store to 1. So treat that as a special case. - ./nix-store-mtime.patch - - # patch python to put zero timestamp into pyc - # if DETERMINISTIC_BUILD env var is set - ./deterministic-build.patch - ]; - - # Hack hack hack to stop shit from failing from a missing _scproxy on Darwin. Since - # we only use this python for bootstrappy things, it doesn't really matter if it - # doesn't have perfect proxy support in urllib :) this just makes it fall back on env - # vars instead of attempting to read the proxy configuration automatically, so not a - # huge loss even if for whatever reason we did want proxy support. - postPatch = '' - substituteInPlace Lib/urllib.py --replace "if sys.platform == 'darwin'" "if False" - ''; - - DETERMINISTIC_BUILD = 1; - - preConfigure = '' - # Purity. - for i in /usr /sw /opt /pkg; do - substituteInPlace ./setup.py --replace $i /no-such-path - done - '' + optionalString (stdenv ? cc && stdenv.cc.libc != null) '' - for i in Lib/plat-*/regen; do - substituteInPlace $i --replace /usr/include/ ${stdenv.cc.libc}/include/ - done - '' + optionalString stdenv.isDarwin '' - substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"' - substituteInPlace Lib/multiprocessing/__init__.py \ - --replace 'os.popen(comm)' 'os.popen("${coreutils}/bin/nproc")' - ''; - - configureFlags = [ "--enable-shared" "--with-threads" "--enable-unicode=ucs4" ] - ++ optionals stdenv.isCygwin [ "ac_cv_func_bind_textdomain_codeset=yes" ] - ++ optionals stdenv.isDarwin [ "--disable-toolbox-glue" ]; - - postInstall = - '' - ln -s $out/share/man/man1/{python2.7.1.gz,python.1.gz} - - rm "$out"/lib/python*/plat-*/regen # refers to glibc.dev - ''; - - enableParallelBuilding = true; - - passthru.pkgs = builtins.throw "python-boot does not support packages, this package is only intended for bootstrapping." {}; - - meta = { - homepage = http://python.org; - description = "A high-level dynamically-typed programming language"; - longDescription = '' - Python is a remarkably powerful dynamic programming language that - is used in a wide variety of application domains. Some of its key - distinguishing features include: clear, readable syntax; strong - introspection capabilities; intuitive object orientation; natural - expression of procedural code; full modularity, supporting - hierarchical packages; exception-based error handling; and very - high level dynamic data types. - ''; - license = stdenv.lib.licenses.psfl; - platforms = stdenv.lib.platforms.all; - maintainers = with stdenv.lib.maintainers; [ lnl7 domenkozar ]; - }; -} diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix index e6b3dff433b3..77b37c5f5c39 100644 --- a/pkgs/development/interpreters/python/cpython/2.7/default.nix +++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix @@ -11,7 +11,7 @@ , tcl ? null, tk ? null, tix ? null, xlibsWrapper ? null, libX11 ? null, x11Support ? false , zlib , self -, CF, configd, coreutils +, configd, coreutils , python-setup-hook # Some proprietary libs assume UCS2 unicode, especially on darwin :( , ucsEncoding ? 4 @@ -180,7 +180,7 @@ let ++ optional stdenv.hostPlatform.isCygwin expat ++ [ db gdbm ncurses sqlite readline ] ++ optionals x11Support [ tcl tk xlibsWrapper libX11 ] - ++ optionals stdenv.isDarwin ([ CF ] ++ optional (configd != null) configd); + ++ optional (stdenv.isDarwin && configd != null) configd; nativeBuildInputs = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ buildPackages.stdenv.cc buildPackages.python ]; diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index e75bd0a09875..70eff43daf5c 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -11,7 +11,7 @@ , tcl ? null, tk ? null, tix ? null, libX11 ? null, xorgproto ? null, x11Support ? false , zlib , self -, CF, configd +, configd , python-setup-hook , nukeReferences # For the Python package set @@ -57,10 +57,10 @@ let pythonForBuild ]; - buildInputs = filter (p: p != null) [ + buildInputs = filter (p: p != null) ([ zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ] ++ optionals x11Support [ tcl tk libX11 xorgproto ] - ++ optionals stdenv.isDarwin [ CF configd ]; + ++ optionals stdenv.isDarwin [ configd ]); hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index caf2e13bdf62..367a6194ecff 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -57,7 +57,7 @@ in { suffix = ""; }; sha256 = "0hds28cg226m8j8sr394nm9yc4gxhvlv109w0avsf2mxrlrz0hsd"; - inherit (darwin) CF configd; + inherit (darwin) configd; inherit passthruFun; }; @@ -70,7 +70,7 @@ in { suffix = ""; }; sha256 = "0jdh9pvx6m6lfz2liwvvhn7vks7qrysqgwn517fkpxb77b33fjn2"; - inherit (darwin) CF configd; + inherit (darwin) configd; inherit passthruFun; }; @@ -83,7 +83,7 @@ in { suffix = ""; }; sha256 = "1pj0mz1xl27khi250p29c0y99vxg662js8zp71aprkf8i8wkr0qa"; - inherit (darwin) CF configd; + inherit (darwin) configd; inherit passthruFun; }; @@ -96,7 +96,7 @@ in { suffix = ""; }; sha256 = "0gskry19ylw91p38pdq36qcgk6h3x5i4ia0ik977kw2943kwr8jm"; - inherit (darwin) CF configd; + inherit (darwin) configd; inherit passthruFun; }; @@ -109,7 +109,7 @@ in { suffix = ""; }; sha256 = "1s4lwn5vzsajlc88m6hkghsvnjw4d00l2dsgng0m2w6vyqbl32bm"; - inherit (darwin) CF configd; + inherit (darwin) configd; inherit passthruFun; }; @@ -122,7 +122,7 @@ in { suffix = "a2"; }; sha256 = "02a301bdcldin05ksdg8xw8xr6gdkpf73p0cabvn9rdl6yhkr3q8"; - inherit (darwin) CF configd; + inherit (darwin) configd; inherit passthruFun; }; @@ -136,6 +136,7 @@ in { ncurses = null; gdbm = null; sqlite = null; + configd = null; stripConfig = true; stripIdlelib = true; stripTests = true; -- cgit 1.4.1