From 61223d51de5824c57754990c606f91aeae0fc730 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Tue, 7 Jun 2022 15:54:30 +0100 Subject: [PATCH 1/3] pythonRelaxDepsHook: fix usage in packages with `-` in pname --- .../python/hooks/python-relax-deps-hook.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 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 7e1cfe51724b..1c515ea92139 100644 --- a/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh +++ b/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh @@ -59,10 +59,11 @@ _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" + local -r wheel=$(printf "$pkg_name"*".whl") @pythonInterpreter@ -m wheel unpack --dest "$unpack_dir" "$wheel" rm -rf "$wheel" @@ -72,10 +73,10 @@ pythonRelaxDepsHook() { if (( "${NIX_DEBUG:-0}" >= 1 )); then echo "pythonRelaxDepsHook: resulting METADATA:" - cat "$unpack_dir/$package/$package.dist-info/METADATA" + 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" popd } From 0d71f8a2bc0b47189e348e68245334971ba0d05f Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Tue, 7 Jun 2022 15:54:55 +0100 Subject: [PATCH 2/3] pysigma-backend-insightidr: use pythonRelaxDepsHook Co-authored-by: Fabian Affolter --- .../python-modules/pysigma-backend-insightidr/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix index 46346f466b20..583abc11f6dc 100644 --- a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix +++ b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix @@ -5,6 +5,7 @@ , pysigma , pytestCheckHook , pythonOlder +, pythonRelaxDepsHook }: buildPythonPackage rec { @@ -23,12 +24,17 @@ buildPythonPackage rec { nativeBuildInputs = [ poetry-core + pythonRelaxDepsHook ]; propagatedBuildInputs = [ pysigma ]; + pythonRelaxDeps = [ + "pysigma" + ]; + checkInputs = [ pytestCheckHook ]; From 15491e727dbde6cd4d1c9b1579d64164dd8054df Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Sun, 12 Jun 2022 11:46:30 +0100 Subject: [PATCH 3/3] pythonRelaxDepsHook: correct handles multiple wheels --- .../python/hooks/python-relax-deps-hook.sh | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 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 1c515ea92139..82231ee3adc6 100644 --- a/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh +++ b/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh @@ -63,20 +63,22 @@ pythonRelaxDepsHook() { local -r pkg_name="${pname//[^[:alnum:].]/_}-$version" local -r unpack_dir="unpacked" local -r metadata_file="$unpack_dir/$pkg_name/$pkg_name.dist-info/METADATA" - local -r wheel=$(printf "$pkg_name"*".whl") - @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/$pkg_name/$pkg_name.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/$pkg_name" + @pythonInterpreter@ -m wheel pack "$unpack_dir/$pkg_name" + done popd }