From dd1256d2ca410915f8ad91a2a0d1464b4d19f23f Mon Sep 17 00:00:00 2001 From: Theodore Ni <3806110+tjni@users.noreply.github.com> Date: Tue, 1 Aug 2023 23:34:49 -0700 Subject: [PATCH] python3.pkgs.pythonRelaxDepsHook: don't propagate wheel The usage of wheel should be restricted to the hook. I discovered this when trying to remove wheel from the Python bootstrap. Some packages that needed wheel did not need it added explicitly because they use this hook. This implicit change to the dependency tree shouldn't happen (even though it is mostly harmless). --- pkgs/development/interpreters/python/hooks/default.nix | 3 +-- .../interpreters/python/hooks/python-relax-deps-hook.sh | 6 ++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix index b4f97d08c693..74aff43f7cae 100644 --- a/pkgs/development/interpreters/python/hooks/default.nix +++ b/pkgs/development/interpreters/python/hooks/default.nix @@ -144,9 +144,8 @@ in { pythonRelaxDepsHook = callPackage ({ makePythonHook, wheel }: makePythonHook { name = "python-relax-deps-hook"; - propagatedBuildInputs = [ wheel ]; substitutions = { - inherit pythonInterpreter; + inherit pythonInterpreter pythonSitePackages wheel; }; } ./python-relax-deps-hook.sh) {}; diff --git a/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh b/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh index 3502fe106369..1ac91fb40e4e 100644 --- a/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh +++ b/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh @@ -84,7 +84,8 @@ pythonRelaxDepsHook() { # We generally shouldn't have multiple wheel files, but let's be safer here for wheel in "$pkg_name"*".whl"; do - @pythonInterpreter@ -m wheel unpack --dest "$unpack_dir" "$wheel" + PYTHONPATH="@wheel@/@pythonSitePackages@:$PYTHONPATH" \ + @pythonInterpreter@ -m wheel unpack --dest "$unpack_dir" "$wheel" rm -rf "$wheel" # Using no quotes on purpose since we need to expand the glob from `$metadata_file` @@ -96,7 +97,8 @@ pythonRelaxDepsHook() { cat $metadata_file fi - @pythonInterpreter@ -m wheel pack "$unpack_dir/$pkg_name"* + PYTHONPATH="@wheel@/@pythonSitePackages@:$PYTHONPATH" \ + @pythonInterpreter@ -m wheel pack "$unpack_dir/$pkg_name"* done # Remove the folder since it will otherwise be in the dist output.