diff options
Diffstat (limited to 'pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh')
-rw-r--r-- | pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh | 27 |
1 files changed, 15 insertions, 12 deletions
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 7e1cfe51724b6..82231ee3adc6c 100644 --- a/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh +++ b/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh @@ -59,23 +59,26 @@ _pythonRemoveDeps() { pythonRelaxDepsHook() { pushd dist - local -r package="$pname-$version" + # See https://peps.python.org/pep-0491/#escaping-and-unicode + local -r pkg_name="${pname//[^[:alnum:].]/_}-$version" local -r unpack_dir="unpacked" - local -r metadata_file="$unpack_dir/$package/$package.dist-info/METADATA" - local -r wheel=$(echo "$package"*".whl") + local -r metadata_file="$unpack_dir/$pkg_name/$pkg_name.dist-info/METADATA" - @pythonInterpreter@ -m wheel unpack --dest "$unpack_dir" "$wheel" - rm -rf "$wheel" + # 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" + rm -rf "$wheel" - _pythonRelaxDeps "$metadata_file" - _pythonRemoveDeps "$metadata_file" + _pythonRelaxDeps "$metadata_file" + _pythonRemoveDeps "$metadata_file" - if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "pythonRelaxDepsHook: resulting METADATA:" - cat "$unpack_dir/$package/$package.dist-info/METADATA" - fi + if (( "${NIX_DEBUG:-0}" >= 1 )); then + echo "pythonRelaxDepsHook: resulting METADATA for '$wheel':" + cat "$unpack_dir/$pkg_name/$pkg_name.dist-info/METADATA" + fi - @pythonInterpreter@ -m wheel pack "$unpack_dir/$package" + @pythonInterpreter@ -m wheel pack "$unpack_dir/$pkg_name" + done popd } |