From e82c1ce18443995949af40229ff54e77a3fb185e Mon Sep 17 00:00:00 2001 From: Artturin Date: Sat, 15 Oct 2022 04:46:04 +0300 Subject: [PATCH 1/2] pythonInterpreters: don't use with pkgs --- .../interpreters/python/default.nix | 53 +++++++++++-------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index ade4168036a52..2a8f2ea400862 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -1,6 +1,15 @@ -{ pkgs }: - -with pkgs; +{ pkgs +, callPackage +, config +, darwin +, db +, lib +, libffiBoot +, newScope +, pythonPackagesExtensions +, splicePackages +, stdenv +}: (let @@ -79,11 +88,11 @@ with pkgs; extra = _: {}; optionalExtensions = cond: as: if cond then as else []; python2Extension = import ../../../top-level/python2-packages.nix; - extensions = lib.composeManyExtensions ((optionalExtensions (!self.isPy3k) [python2Extension]) ++ pkgs.pythonPackagesExtensions ++ [ overrides ]); + extensions = lib.composeManyExtensions ((optionalExtensions (!self.isPy3k) [python2Extension]) ++ pythonPackagesExtensions ++ [ overrides ]); aliases = self: super: lib.optionalAttrs config.allowAliases (import ../../../top-level/python-aliases.nix lib self super); in lib.makeScopeWithSplicing - pkgs.splicePackages - pkgs.newScope + splicePackages + newScope otherSplices keep extra @@ -150,7 +159,7 @@ with pkgs; in { python27 = callPackage ./cpython/2.7 { - self = python27; + self = pkgs.python27; sourceVersion = { major = "2"; minor = "7"; @@ -163,7 +172,7 @@ in { }; python37 = callPackage ./cpython { - self = python37; + self = pkgs.python37; sourceVersion = { major = "3"; minor = "7"; @@ -176,7 +185,7 @@ in { }; python38 = callPackage ./cpython { - self = python38; + self = pkgs.python38; sourceVersion = { major = "3"; minor = "8"; @@ -189,19 +198,19 @@ in { }; python39 = callPackage ./cpython ({ - self = python39; + self = pkgs.python39; inherit (darwin) configd; inherit passthruFun; } // sources.python39); python310 = callPackage ./cpython ({ - self = python310; + self = pkgs.python310; inherit (darwin) configd; inherit passthruFun; } // sources.python310); python311 = callPackage ./cpython { - self = python311; + self = pkgs.python311; sourceVersion = { major = "3"; minor = "11"; @@ -215,7 +224,7 @@ in { # Minimal versions of Python (built without optional dependencies) python3Minimal = (callPackage ./cpython ({ - self = python3Minimal; + self = pkgs.python3Minimal; inherit passthruFun; pythonAttr = "python3Minimal"; # strip down that python version as much as possible @@ -226,7 +235,7 @@ in { sqlite = null; configd = null; tzdata = null; - libffi = pkgs.libffiBoot; # without test suite + libffi = libffiBoot; # without test suite stripConfig = true; stripIdlelib = true; stripTests = true; @@ -244,7 +253,7 @@ in { }); pypy27 = callPackage ./pypy { - self = pypy27; + self = pkgs.pypy27; sourceVersion = { major = "7"; minor = "3"; @@ -253,14 +262,14 @@ in { sha256 = "sha256-wERP2YcwWMHA2Z4TqTTpIoXLBZksmWi/Ujwyv5vsCp0="; pythonVersion = "2.7"; db = db.override { dbmSupport = !stdenv.isDarwin; }; - python = python27; + python = pkgs.python27; inherit passthruFun; inherit (darwin) libunwind; inherit (darwin.apple_sdk.frameworks) Security; }; pypy38 = callPackage ./pypy { - self = pypy38; + self = pkgs.pypy38; sourceVersion = { major = "7"; minor = "3"; @@ -269,20 +278,20 @@ in { sha256 = "sha256-Ia4zn09QFtbKcwAwXz47VUNzg1yzw5qQQf4w5oEcgMY="; pythonVersion = "3.8"; db = db.override { dbmSupport = !stdenv.isDarwin; }; - python = python27; + python = pkgs.python27; inherit passthruFun; inherit (darwin) libunwind; inherit (darwin.apple_sdk.frameworks) Security; }; - pypy37 = pypy38.override { - self = pythonInterpreters.pypy37; + pypy37 = pkgs.pypy38.override { + self = pkgs.pythonInterpreters.pypy37; pythonVersion = "3.7"; sha256 = "sha256-LtAqyecQhZxBvILer7CGGXkruaJ+6qFnbHQe3t0hTdc="; }; pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix { # Not included at top-level - self = pythonInterpreters.pypy27_prebuilt; + self = pkgs.pythonInterpreters.pypy27_prebuilt; sourceVersion = { major = "7"; minor = "3"; @@ -295,7 +304,7 @@ in { pypy38_prebuilt = callPackage ./pypy/prebuilt.nix { # Not included at top-level - self = pythonInterpreters.pypy38_prebuilt; + self = pkgs.pythonInterpreters.pypy38_prebuilt; sourceVersion = { major = "7"; minor = "3"; From a45996a104c18fa58c9d9cf1d73ed97d28dc5e47 Mon Sep 17 00:00:00 2001 From: Artturin Date: Sat, 15 Oct 2022 04:47:23 +0300 Subject: [PATCH 2/2] pythonInterpreters: get self from __splicedPackages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BEFORE: the python derivation did not contain .nativeDrv and .crossDrv because it was not from the __splicedPackages set the python used in mk-python-derivation.nix was for host ``` nix-repl> pkgsCross.aarch64-multiplatform.python3Packages.xpybutil.nativeBuildInputs [ «derivation /nix/store/bhz39ds4v02hn6x4py4mzjyilw4a589h-python3-aarch64-unknown-linux-gnu-3.10.7.drv» «derivation /nix/store/v880cnh4ml7czmivfbk3cdh93hz9yvbn-hook.drv» «derivation /nix/store/f243ab7wv92gqsmc9h7gr0qcnj0xcgdb-hook.drv» «derivation /nix/store/880lf8895bzn8d94lrr2y7ilgkxq0lc4-python-remove-tests-dir-hook.drv» «derivation /nix/store/fzjnhawfs1wpw58hcd1vxd9y750dc08y-python-remove-bin-bytecode-hook.drv» «derivation /nix/store/n8l59iparx98yfw8g5ydqmzmk3fdic75-setuptools-setup-hook.drv» «deri→ ``` AFTER: the python derivation does contain .nativeDrv and .crossDrv because it is from the __splicedPackages set those 2 are what makes nativeBuildInputs and buildInputs function properly the python used in mk-python-derivation.nix is for build ``` nix-repl> pkgsCross.aarch64-multiplatform.python3Packages.xpybutil.nativeBuildInputs [ «derivation /nix/store/hvb9yxgv1133cfhxxd869sibldvv2vdx-python3-3.10.7.drv» «derivation /nix/store/v880cnh4ml7czmivfbk3cdh93hz9yvbn-hook.drv» «derivation /nix/store/f243ab7wv92gqsmc9h7gr0qcnj0xcgdb-hook.drv» «derivation /nix/store/880lf8895bzn8d94lrr2y7ilgkxq0lc4-python-remove-tests-dir-hook.drv» «derivation /nix/store/fzjnhawfs1wpw58hcd1vxd9y750dc08y-python-remove-bin-bytecode-hook.drv» «derivation /nix/store/n8l59iparx98yfw8g5ydqmzmk3fdic75-setuptools-setup-hook.drv» «derivation /nix/store/7vyhynla→ ``` --- .../interpreters/python/default.nix | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 2a8f2ea400862..08b408880737c 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -1,4 +1,4 @@ -{ pkgs +{ __splicedPackages , callPackage , config , darwin @@ -159,7 +159,7 @@ in { python27 = callPackage ./cpython/2.7 { - self = pkgs.python27; + self = __splicedPackages.python27; sourceVersion = { major = "2"; minor = "7"; @@ -172,7 +172,7 @@ in { }; python37 = callPackage ./cpython { - self = pkgs.python37; + self = __splicedPackages.python37; sourceVersion = { major = "3"; minor = "7"; @@ -185,7 +185,7 @@ in { }; python38 = callPackage ./cpython { - self = pkgs.python38; + self = __splicedPackages.python38; sourceVersion = { major = "3"; minor = "8"; @@ -198,19 +198,19 @@ in { }; python39 = callPackage ./cpython ({ - self = pkgs.python39; + self = __splicedPackages.python39; inherit (darwin) configd; inherit passthruFun; } // sources.python39); python310 = callPackage ./cpython ({ - self = pkgs.python310; + self = __splicedPackages.python310; inherit (darwin) configd; inherit passthruFun; } // sources.python310); python311 = callPackage ./cpython { - self = pkgs.python311; + self = __splicedPackages.python311; sourceVersion = { major = "3"; minor = "11"; @@ -224,7 +224,7 @@ in { # Minimal versions of Python (built without optional dependencies) python3Minimal = (callPackage ./cpython ({ - self = pkgs.python3Minimal; + self = __splicedPackages.python3Minimal; inherit passthruFun; pythonAttr = "python3Minimal"; # strip down that python version as much as possible @@ -253,7 +253,7 @@ in { }); pypy27 = callPackage ./pypy { - self = pkgs.pypy27; + self = __splicedPackages.pypy27; sourceVersion = { major = "7"; minor = "3"; @@ -262,14 +262,14 @@ in { sha256 = "sha256-wERP2YcwWMHA2Z4TqTTpIoXLBZksmWi/Ujwyv5vsCp0="; pythonVersion = "2.7"; db = db.override { dbmSupport = !stdenv.isDarwin; }; - python = pkgs.python27; + python = __splicedPackages.python27; inherit passthruFun; inherit (darwin) libunwind; inherit (darwin.apple_sdk.frameworks) Security; }; pypy38 = callPackage ./pypy { - self = pkgs.pypy38; + self = __splicedPackages.pypy38; sourceVersion = { major = "7"; minor = "3"; @@ -278,20 +278,20 @@ in { sha256 = "sha256-Ia4zn09QFtbKcwAwXz47VUNzg1yzw5qQQf4w5oEcgMY="; pythonVersion = "3.8"; db = db.override { dbmSupport = !stdenv.isDarwin; }; - python = pkgs.python27; + python = __splicedPackages.python27; inherit passthruFun; inherit (darwin) libunwind; inherit (darwin.apple_sdk.frameworks) Security; }; - pypy37 = pkgs.pypy38.override { - self = pkgs.pythonInterpreters.pypy37; + pypy37 = __splicedPackages.pypy38.override { + self = __splicedPackages.pythonInterpreters.pypy37; pythonVersion = "3.7"; sha256 = "sha256-LtAqyecQhZxBvILer7CGGXkruaJ+6qFnbHQe3t0hTdc="; }; pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix { # Not included at top-level - self = pkgs.pythonInterpreters.pypy27_prebuilt; + self = __splicedPackages.pythonInterpreters.pypy27_prebuilt; sourceVersion = { major = "7"; minor = "3"; @@ -304,7 +304,7 @@ in { pypy38_prebuilt = callPackage ./pypy/prebuilt.nix { # Not included at top-level - self = pkgs.pythonInterpreters.pypy38_prebuilt; + self = __splicedPackages.pythonInterpreters.pypy38_prebuilt; sourceVersion = { major = "7"; minor = "3";