From 2c91d08e62dd13979192df4a0b2ca76bde87cfd0 Mon Sep 17 00:00:00 2001 From: morganamilo Date: Tue, 16 Oct 2018 18:49:23 +0100 Subject: libmakepkg: fix linting arrays of empty strings [[ ${array[@]} ]] will resolve to false if array only contains empty strings. This means that values such as "depends=('')" can be inserted into a pkgbuild and bypass the linting. This causes makepkg to successfully build the package while pacman refuses to install it because of the unmet dependency on ''. Instead check the length of the array. Signed-off-by: morganamilo Signed-off-by: Allan McRae --- scripts/libmakepkg/util/pkgbuild.sh.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/libmakepkg/util/pkgbuild.sh.in b/scripts/libmakepkg/util/pkgbuild.sh.in index c6f8a82d..b29229a3 100644 --- a/scripts/libmakepkg/util/pkgbuild.sh.in +++ b/scripts/libmakepkg/util/pkgbuild.sh.in @@ -60,7 +60,7 @@ extract_global_variable() { if (( isarray )); then array_build ref "$attr" - [[ ${ref[@]} ]] && array_build "$outputvar" "$attr" + (( ${#ref[@]} )) && array_build "$outputvar" "$attr" else [[ ${!attr} ]] && printf -v "$outputvar" %s "${!attr}" fi @@ -144,7 +144,7 @@ get_pkgbuild_all_split_attributes() { done done - [[ ${all_list[@]} ]] && array_build "$outputvar" all_list + (( ${#all_list[@]} )) && array_build "$outputvar" all_list } ## -- cgit v1.2.3-24-g4f1b