diff options
Diffstat (limited to 'nixpkgs/pkgs/build-support/setup-hooks')
4 files changed, 15 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh b/nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh index 8a62c57dbd07..45096d833b42 100644 --- a/nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh +++ b/nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh @@ -69,8 +69,8 @@ _multioutConfig() { # try to detect share/doc/${shareDocName} # Note: sadly, $configureScript detection comes later in configurePhase, # and reordering would cause more trouble than worth. - if [ -z "$shareDocName" ]; then - local confScript="$configureScript" + if [ -z "${shareDocName:-}" ]; then + local confScript="${configureScript:-}" if [ -z "$confScript" ] && [ -x ./configure ]; then confScript=./configure fi diff --git a/nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh b/nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh index e6872db1acd7..a22f989362c4 100644 --- a/nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh +++ b/nixpkgs/pkgs/build-support/setup-hooks/patch-shebangs.sh @@ -75,7 +75,7 @@ patchShebangs() { read -r oldInterpreterLine < "$f" read -r oldPath arg0 args <<< "${oldInterpreterLine:2}" - if [[ -z "$pathName" ]]; then + if [[ -z "${pathName:-}" ]]; then if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then pathName=HOST_PATH else diff --git a/nixpkgs/pkgs/build-support/setup-hooks/separate-debug-info.sh b/nixpkgs/pkgs/build-support/setup-hooks/separate-debug-info.sh index 334db4cfcd9c..3a16ac4fee90 100644 --- a/nixpkgs/pkgs/build-support/setup-hooks/separate-debug-info.sh +++ b/nixpkgs/pkgs/build-support/setup-hooks/separate-debug-info.sh @@ -21,6 +21,9 @@ _separateDebugInfo() { while IFS= read -r -d $'\0' i; do if ! isELF "$i"; then continue; fi + [ -z "${READELF:-}" ] && echo "_separateDebugInfo: '\$READELF' variable is empty, skipping." 1>&2 && break + [ -z "${OBJCOPY:-}" ] && echo "_separateDebugInfo: '\$OBJCOPY' variable is empty, skipping." 1>&2 && break + # Extract the Build ID. FIXME: there's probably a cleaner way. local id="$($READELF -n "$i" | sed 's/.*Build ID: \([0-9a-f]*\).*/\1/; t; d')" if [ "${#id}" != 40 ]; then diff --git a/nixpkgs/pkgs/build-support/setup-hooks/strip.sh b/nixpkgs/pkgs/build-support/setup-hooks/strip.sh index d2422bb84234..ce41e6ea0562 100644 --- a/nixpkgs/pkgs/build-support/setup-hooks/strip.sh +++ b/nixpkgs/pkgs/build-support/setup-hooks/strip.sh @@ -49,11 +49,19 @@ stripDirs() { local ranlibCmd="$2" local paths="$3" local stripFlags="$4" + local excludeFlags=() local pathsNew= [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1 [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1 + local pattern + if [ -n "${stripExclude:-}" ]; then + for pattern in "${stripExclude[@]}"; do + excludeFlags+=(-a '!' '(' -name "$pattern" -o -wholename "$prefix/$pattern" ')' ) + done + fi + local p for p in ${paths}; do if [ -e "$prefix/$p" ]; then @@ -67,7 +75,7 @@ stripDirs() { local striperr striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')" # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh. - find $paths -type f -a '!' -path "$prefix/lib/debug/*" -print0 | + find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -print0 | # Make sure we process files under symlinks only once. Otherwise # 'strip` can corrupt files when writes to them in parallel: # https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039 |