From d1c176fedfc99d61c1dc8037ab549bec48c17bea Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Tue, 28 Apr 2026 20:39:14 +0100 Subject: [PATCH] packages: Make create-sets.sh more robust Use ${PKG_CMD} rather than bare 'pkg' to fix the build when pkg is not in the tools path. Provide a default in case it's not set for some reason (e.g., running the script by hand). Since set -- $(...) does not trigger an exit from set -e if the command fails, this failure was silent and resulted in sets not being built correctly if we failed to run pkg. Use a temporary variable, which does trigger set -e, to fail correctly. MFC after: 2 weeks Reviewed by: sjg Sponsored by: https://www.patreon.com/bsdivy Differential Revision: https://reviews.freebsd.org/D56676 --- release/packages/create-sets.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/release/packages/create-sets.sh b/release/packages/create-sets.sh index 46dfd543619..3dfd8f1a338 100755 --- a/release/packages/create-sets.sh +++ b/release/packages/create-sets.sh @@ -26,6 +26,8 @@ if [ $# -lt 3 ]; then exit 1 fi +: ${PKG_CMD:="pkg"} + srcdir="$1"; shift wstagedir="$1"; shift repodir="$1"; shift @@ -43,7 +45,8 @@ for pkg in "$repodir"/*.pkg; do # packages. { echo "$pkg" | grep -q '-'; } || continue - set -- $(pkg query -F "$pkg" '%At %n %Av' | grep '^set ') + _tmp="$(${PKG_CMD} query -F "$pkg" '%At %n %Av' | grep '^set ')" + set -- $_tmp pkgname="$2" sets="$(echo "$3" | tr , ' ')" for set in $sets; do