From 1620104ec6c1e40f8a55fd8459730f3e186f8950 Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 31 Jul 2025 22:22:25 +0100 Subject: [PATCH] {nukeReferences,removeReferencesTo}: simplify and fix quoting --- .../nuke-references/darwin-sign-fixup.sh | 5 ----- .../build-support/nuke-references/default.nix | 15 +++------------ .../nuke-references/nuke-refs.sh | 11 +++++------ .../remove-references-to/darwin-sign-fixup.sh | 5 ----- .../remove-references-to/default.nix | 19 +++++-------------- .../remove-references-to.sh | 13 +++++-------- 6 files changed, 18 insertions(+), 50 deletions(-) delete mode 100644 pkgs/build-support/nuke-references/darwin-sign-fixup.sh delete mode 100644 pkgs/build-support/remove-references-to/darwin-sign-fixup.sh diff --git a/pkgs/build-support/nuke-references/darwin-sign-fixup.sh b/pkgs/build-support/nuke-references/darwin-sign-fixup.sh deleted file mode 100644 index 940c18e5a627..000000000000 --- a/pkgs/build-support/nuke-references/darwin-sign-fixup.sh +++ /dev/null @@ -1,5 +0,0 @@ -# Fixup hook for nukeReferences, not stdenv - -source @signingUtils@ - -fixupHooks+=(signIfRequired) diff --git a/pkgs/build-support/nuke-references/default.nix b/pkgs/build-support/nuke-references/default.nix index 6bdb81477aac..13f2061b5aa8 100644 --- a/pkgs/build-support/nuke-references/default.nix +++ b/pkgs/build-support/nuke-references/default.nix @@ -11,12 +11,6 @@ shell ? stdenvNoCC.shell, }: -let - stdenv = stdenvNoCC; - - darwinCodeSign = stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64; -in - stdenvNoCC.mkDerivation { name = "nuke-references"; @@ -32,17 +26,14 @@ stdenvNoCC.mkDerivation { chmod a+x $out/bin/nuke-refs ''; - postFixup = lib.optionalString darwinCodeSign '' - mkdir -p $out/nix-support - substituteAll ${./darwin-sign-fixup.sh} $out/nix-support/setup-hooks.sh - ''; - # FIXME: get rid of perl dependency. env = { inherit perl; inherit (builtins) storeDir; shell = lib.getBin shell + (shell.shellPath or ""); - signingUtils = lib.optionalString darwinCodeSign signingUtils; + signingUtils = lib.optionalString ( + stdenvNoCC.targetPlatform.isDarwin && stdenvNoCC.targetPlatform.isAarch64 + ) signingUtils; }; meta.mainProgram = "nuke-refs"; diff --git a/pkgs/build-support/nuke-references/nuke-refs.sh b/pkgs/build-support/nuke-references/nuke-refs.sh index 21eb855cbad9..8a5a65973fca 100644 --- a/pkgs/build-support/nuke-references/nuke-refs.sh +++ b/pkgs/build-support/nuke-references/nuke-refs.sh @@ -2,8 +2,8 @@ fixupHooks=() -if [ -e @out@/nix-support/setup-hooks.sh ]; then - source @out@/nix-support/setup-hooks.sh +if [[ -n "@signingUtils@" ]]; then + source "@signingUtils@" fi excludes="" @@ -25,9 +25,8 @@ for i in "$@"; do cat "$i" | @perl@/bin/perl -pe "s|\Q@storeDir@\E/$excludes[a-z0-9]{32}-|@storeDir@/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" > "$i.tmp" if test -x "$i"; then chmod +x "$i.tmp"; fi mv "$i.tmp" "$i" - - for hook in "${fixupHooks[@]}"; do - eval "$hook" "$i" - done + if [[ -n "@signingUtils@" ]]; then + signIfRequired "$i" + fi fi done diff --git a/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh b/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh deleted file mode 100644 index 940c18e5a627..000000000000 --- a/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh +++ /dev/null @@ -1,5 +0,0 @@ -# Fixup hook for nukeReferences, not stdenv - -source @signingUtils@ - -fixupHooks+=(signIfRequired) diff --git a/pkgs/build-support/remove-references-to/default.nix b/pkgs/build-support/remove-references-to/default.nix index 6ae3e3125c85..13d3eb8a78d8 100644 --- a/pkgs/build-support/remove-references-to/default.nix +++ b/pkgs/build-support/remove-references-to/default.nix @@ -10,13 +10,7 @@ shell ? stdenvNoCC.shell, }: -let - stdenv = stdenvNoCC; - - darwinCodeSign = stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64; -in - -stdenv.mkDerivation { +stdenvNoCC.mkDerivation { name = "remove-references-to"; dontUnpack = true; @@ -29,16 +23,13 @@ stdenv.mkDerivation { chmod a+x $out/bin/remove-references-to ''; - postFixup = lib.optionalString darwinCodeSign '' - mkdir -p $out/nix-support - substituteAll ${./darwin-sign-fixup.sh} $out/nix-support/setup-hooks.sh - ''; - env = { inherit (builtins) storeDir; shell = lib.getBin shell + (shell.shellPath or ""); - } - // lib.optionalAttrs darwinCodeSign { inherit signingUtils; }; + signingUtils = lib.optionalString ( + stdenvNoCC.targetPlatform.isDarwin && stdenvNoCC.targetPlatform.isAarch64 + ) signingUtils; + }; meta.mainProgram = "remove-references-to"; } diff --git a/pkgs/build-support/remove-references-to/remove-references-to.sh b/pkgs/build-support/remove-references-to/remove-references-to.sh index a4d068eb591e..e24524d0c574 100755 --- a/pkgs/build-support/remove-references-to/remove-references-to.sh +++ b/pkgs/build-support/remove-references-to/remove-references-to.sh @@ -2,10 +2,6 @@ fixupHooks=() -if [ -e @out@/nix-support/setup-hooks.sh ]; then - source @out@/nix-support/setup-hooks.sh -fi - # References to remove targets=() while getopts t: o; do @@ -30,8 +26,9 @@ for target in "${targets[@]}" ; do sed -i -e "s|$target|eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee|g" "${regions[@]}" done -for region in "${regions[@]}"; do - for hook in "${fixupHooks[@]}"; do - eval "$hook" "$region" +if [[ -n "@signingUtils@" ]]; then + source "@signingUtils@" + for region in "${regions[@]}"; do + signIfRequired "$region" done -done +fi