about summary refs log tree commit diff
path: root/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh
diff options
context:
space:
mode:
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.sh27
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
 }