I am using the pacman's latest master branch,When I run updpkgsums when there is source_i686 or source_x86_64 in PKGBUILD. it will complain: /usr/share/makepkg/lint_pkgbuild/variable.sh: line 60: declare: sha512sums: not found ==> ERROR: sha512sums_i686 should be an array /usr/share/makepkg/lint_pkgbuild/variable.sh: line 60: declare: source: not found ==> ERROR: source_i686 should be an array /usr/share/makepkg/lint_pkgbuild/variable.sh: line 60: declare: sha512sums: not found ==> ERROR: sha512sums_x86_64 should be an array /usr/share/makepkg/lint_pkgbuild/variable.sh: line 60: declare: source: not found ==> ERROR: source_x86_64 should be an array ==> ERROR: Failed to generate new checksums for example, you can use nvidia's PKGBUILD in extra repo, and try run updpkgsums. I think this bug is introduced by this commit: https://projects.archlinux.org/pacman.git/commit/?id=23f128ad5e2b26733376d16... a simple workaround patch is: diff --git a/scripts/libmakepkg/lint_pkgbuild/variable.sh.in b/scripts/libmakepkg/lint_pkgbuild/variable.sh.in index 4943c50..183e740 100644 --- a/scripts/libmakepkg/lint_pkgbuild/variable.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/variable.sh.in @@ -57,7 +57,7 @@ lint_variable() { v="${i}_${a}" eval "keys=(\"\${!${v}[@]}\")" if (( ${#keys[*]} > 0 )); then - if [[ "$(declare -p $i)" != "declare -a "* ]]; then + if [[ "$(declare -p $v)" != "declare -a "* ]]; then error "$(gettext "%s_%s should be an array")" "$i" "$a" ret=1 fi