git: 4ab019329025 - main - bsdconfig: simplify pkg installation and ABI detection

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Thu, 05 Oct 2023 15:31:30 UTC
The branch main has been updated by bapt:

URL: https://cgit.FreeBSD.org/src/commit/?id=4ab0193290255dffce3e123b7b9eec8f768740de

commit 4ab0193290255dffce3e123b7b9eec8f768740de
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2023-10-05 15:16:31 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2023-10-05 15:30:17 +0000

    bsdconfig: simplify pkg installation and ABI detection
---
 usr.sbin/bsdconfig/share/packages/musthavepkg.subr | 34 ++++++++--------------
 1 file changed, 12 insertions(+), 22 deletions(-)

diff --git a/usr.sbin/bsdconfig/share/packages/musthavepkg.subr b/usr.sbin/bsdconfig/share/packages/musthavepkg.subr
index 9b5d94675345..0a1026afe86c 100644
--- a/usr.sbin/bsdconfig/share/packages/musthavepkg.subr
+++ b/usr.sbin/bsdconfig/share/packages/musthavepkg.subr
@@ -44,26 +44,16 @@ f_include $BSDCFG_SHARE/mustberoot.subr
 f_musthavepkg_init()
 {
 	local funcname=f_musthavepkg_init
-	local pkg_abi_awk=' # BEGIN-AWK
-		$1 ~ /^ABI/ && $0 = $NF, sub(/^"/, "") && sub(/".*/, "") {
-			print; found = 1; exit
-		} END { exit ! found }
-	' # END-AWK
 
-	if [ "$PKG_ABI" ]; then # Already set
-		f_dprintf "PKG_ABI=[%s]" "$PKG_ABI"
-		export PKG_ABI
-		f_quietly pkg -N -vv # return status (pkg(8) functional?)
-		return $?
-	fi
-
-	# Attempt to get PKG_ABI without prematurely bootstrapping pkg(8)
-	if f_eval_catch -k PKG_ABI $funcname pkg \
-		"pkg -N -vv | awk '%s'" "$pkg_abi_awk"
-	then
-		f_dprintf "PKG_ABI=[%s]" "$PKG_ABI"
-		export PKG_ABI
-		return $SUCCESS
+	if f_quietly pkg -N; then
+		if [ -n "$PKG_ABI" ]; then
+			export PKG_ABI
+			return $SUCCESS
+		fi
+		if f_eval_catch -k PKG_ABI $funcname pkg "pkg config abi"; then
+			export PKG_ABI
+			return $SUCCESS
+		fi
 	fi
 
 	# pkg(8) not yet bootstrapped; ask for permission unless nonInteractive
@@ -74,10 +64,10 @@ f_musthavepkg_init()
 
 	# Bootstrap pkg(8)
 	f_dialog_info "$msg_bootstrapping_pkg"
-	f_eval_catch -k PKG_ABI $funcname pkg \
-		"ASSUME_ALWAYS_YES=1 pkg -vv | awk '%s'" "$pkg_abi_awk" ||
+	f_eval_catch $funcname pkg \
+		"pkg bootstrap -y" ||
 		f_die 1 "$msg_must_have_pkg_to_execute" "$pgm"
-
+	f_eval_catch -k PKG_ABI $funcname pkg "pkg config abi"
 	f_dprintf "PKG_ABI=[%s]" "$PKG_ABI"
 	export PKG_ABI
 	return $SUCCESS