[pacman-dev] [PATCH 7/7] libmakepkg: disallow using 'any' with other arches
Eli Schwartz
eschwartz at archlinux.org
Fri Jun 8 19:33:49 UTC 2018
On 06/08/2018 02:18 PM, morganamilo wrote:
> 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
Um, how is this supposed to work? If arch=('any') then this for loop
will run once, discover [[ $a = any ]] and error out. The proper check
would be to *not* move the previous return 0, but instead tell it to &&
(( ${#arch[@]} == 1 ))
> 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
>
--
Eli Schwartz
Bug Wrangler and Trusted User
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/pacman-dev/attachments/20180608/b82cb488/attachment.asc>
More information about the pacman-dev
mailing list