--- functions.orig	2026-03-26 22:58:30 UTC
+++ functions
@@ -700,10 +700,10 @@ download_release_sig () {
 
 		info RELEASESIG "Checking Release signature"
 		# If everything is installed, prefer gpgv for now
-		if in_path gpgv; then
+		if in_path gpgv2; then
 			# Don't worry about the exit status from gpgv; parsing the output will
 			# take care of that.
-			(gpgv --status-fd 1 --keyring "$KEYRING" --ignore-time-conflict \
+			(gpgv2 --status-fd 1 --keyring "$KEYRING" --ignore-time-conflict \
 			 "$relsigdest" "$reldest" || true) | read_gpg_status
 		elif in_path sopv; then
 			local rc=0
@@ -715,7 +715,7 @@ download_release_sig () {
 			check_sqv_status "$rc"
 		else
 			# This is already checked at argument parsing time, so shouldn't happen here
-			error 1 NEEDPGPV "none of sopv, sqv or gpgv are installed, but required for Release verification"
+			error 1 NEEDPGPV "none of sopv, sqv or gpgv2 are installed, but required for Release verification"
 		fi
 		progress 100 100 DOWNRELSIG "Downloading Release file signature"
 	fi
@@ -1045,7 +1045,7 @@ extract_dpkg_deb_data () {
 extract_dpkg_deb_data () {
 	local pkg="$1"
 
-	dpkg-deb --fsys-tarfile "$pkg" | tar $EXTRACT_DEB_TAR_OPTIONS -xf - || error 1 FILEEXIST "Tried to extract package, but tar failed. Exit..."
+	dpkg-deb --fsys-tarfile "$pkg" | gtar $EXTRACT_DEB_TAR_OPTIONS -xf - || error 1 FILEEXIST "Tried to extract package, but tar failed. Exit..."
 }
 
 # Raw .deb extractors
@@ -1065,7 +1065,7 @@ extract_ar_deb_field () {
 
 	if in_path $cat_cmd; then
 		ar -p "$pkg" "$tarball" | $cat_cmd |
-		    tar -O -xf - control ./control 2>/dev/null |
+		    gtar -O -xf - control ./control 2>/dev/null |
 		    grep -i "^$field:" | sed -e 's/[^:]*: *//' | head -n 1
 	else
 		error 1 UNPACKCMDUNVL "Extracting %s requires the %s command, which is not available" "$pkg" "$cat_cmd"
@@ -1087,7 +1087,7 @@ extract_ar_deb_data () {
 	esac
 
 	if in_path "$cat_cmd"; then
-		ar -p "$pkg" "$tarball" | "$cat_cmd" | tar $EXTRACT_DEB_TAR_OPTIONS -xf -
+		ar -p "$pkg" "$tarball" | "$cat_cmd" | gtar $EXTRACT_DEB_TAR_OPTIONS -xf -
 	else
 		error 1 UNPACKCMDUNVL "Extracting %s requires the %s command, which is not available" "$pkg" "$cat_cmd"
 	fi
@@ -1696,7 +1696,7 @@ while (read STDIN, $x, 1) {
 }' "$@"
 		elif [ "$1" = "GETDEPS" ]; then
 			local pkgdest="$2"; shift; shift
-LC_ALL=C grep "$gropt" '^$|^Package:|^Depends:|^Pre-Depends:' "${pkgdest}" | perl -e '
+LC_ALL=C pcre2grep '^$|^Package:|^Depends:|^Pre-Depends:' "${pkgdest}" | perl -e '
 %seen = map { $_ => 1 } @ARGV;
 while (<STDIN>) {
 	if (/^Package: (.*)$/) {
@@ -1724,13 +1724,13 @@ while (<STDIN>) {
 			local m="$2"
 			local p="$3"
 			shift; shift; shift
-			LC_ALL=C grep "$gropt" '^$|^Architecture:|^Filename:|^MD5sum:|^Package:|^Priority:|^SHA256:|^Size:|^Version:|^Depends:|^Pre-Depends:' "$p" | pkgdetails_field 1 Package: "$m" "$@"
+			LC_ALL=C pcre2grep '^$|^Architecture:|^Filename:|^MD5sum:|^Package:|^Priority:|^SHA256:|^Size:|^Version:|^Depends:|^Pre-Depends:' "$p" | pkgdetails_field 1 Package: "$m" "$@"
 		elif [ "$1" = "FIELD" ]; then
 			local f="$2"
 			local m="$3"
 			local p="$4"
 			shift; shift; shift; shift
-			LC_ALL=C grep "$gropt" '^$|^Package:|^Priority:|^Essential:' "$p" | pkgdetails_field 0 "$f" "$m" "$@"
+			LC_ALL=C pcre2grep '^$|^Package:|^Priority:|^Essential:' "$p" | pkgdetails_field 0 "$f" "$m" "$@"
 		elif [ "$1" = "STANZAS" ]; then
 			local pkgdest="$2"; shift; shift
 			perl -e '
@@ -1941,7 +1941,7 @@ read_gpg_status () {
 	elif [ "$unkkey" ]; then
 		error 1 UNKNOWNRELSIG "Release signed by unknown key (key id %s)\n   The specified keyring $KEYRING may be incorrect or out of date.\n   You can find the latest Debian release key at https://ftp-master.debian.org/keys.html" "$unkkey"
 	else
-		error 1 SIGCHECK "Error executing gpgv to check Release signature"
+		error 1 SIGCHECK "Error executing gpgv2 to check Release signature"
 	fi
 }
 
