buildPythonPackage: Fix after #112276

Fix #114952

Before it was using the wrong `makeWrapper`, the one that expected to
run on the target platform and produce packages for the "super-target".

The "super target" (sliding off the end of the platforms list) is
defined to be the same as the target, to cap it with a loop so there is
no sliding off. However, `targetPackages.targetPackages` is *not*
similarly defined. Per the bottom of `pkgs/stdenv/booter.nix` it is an
almost-empty package set that just exists as a hack to help some things
with exotic `depsTargetTarget`.

In particular, that rump "super `targetPackages`" does not contain a
`runtimeShell`, and that's the source of our eval-time error.
This commit is contained in:
John Ericson 2021-03-03 16:38:16 +00:00
parent ddf21160e3
commit fc74ad444a

View File

@ -126,7 +126,13 @@ in {
# helpers
wrapPython = callPackage ../development/interpreters/python/wrap-python.nix {inherit python; inherit (pkgs) makeSetupHook makeWrapper; };
# We use build packages because we are making a setup hook to be used as a
# native build input. The script itself references both the build-time
# (build) and run-time (host) python from the explicitly passed in `python`
# attribute, so the `buildPackages` doesn't effect that.
wrapPython = pkgs.buildPackages.callPackage ../development/interpreters/python/wrap-python.nix {
inherit python;
};
# Dont take pythonPackages from "global" pkgs scope to avoid mixing python versions
pythonPackages = self;