[pacman-dev] [PATCH 7/7] libmakepkg: disallow using 'any' with other arches

morganamilo morganamilo at gmail.com
Fri Jun 8 18:18:59 UTC 2018


Error if the arch array contains any and any other values. This also
fixes a bug where the check for `$arch == 'any'` which only evaluated
the first value in the array, meaning the rest of the values would not
be linted.

Signed-off-by: morganamilo <morganamilo at gmail.com>
---
 scripts/libmakepkg/lint_pkgbuild/arch.sh.in | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/scripts/libmakepkg/lint_pkgbuild/arch.sh.in b/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
index f2c80c73..98ae70af 100644
--- a/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
+++ b/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
@@ -38,11 +38,12 @@ lint_arch() {
 		return 1
 	fi
 
-	if [[ $arch == 'any' ]]; then
-		return 0
-	fi
-
 	for a in "${arch[@]}"; do
+		if [[ $a == 'any' ]]; then
+			error "$(gettext "any can not be used with other architectures")"
+			ret=1
+		fi
+
 		if [[ $a = *[![:alnum:]_]* ]]; then
 			error "$(gettext "%s contains invalid characters: '%s'")" \
 					'arch' "${a//[[:alnum:]_]}"
@@ -50,6 +51,10 @@ lint_arch() {
 		fi
 	done
 
+	if [[ $arch == 'any' ]]; then
+		return $ret
+	fi
+
 	if (( ! IGNOREARCH )) && ! in_array "$CARCH" "${arch[@]}"; then
 		error "$(gettext "%s is not available for the '%s' architecture.")" "$pkgbase" "$CARCH"
 		return 1
-- 
2.17.1


More information about the pacman-dev mailing list