[pacman-dev] pacman-5.0:error run updpkgsums when there is source_i686 or source_x86_64 in PKGBUILD

Zuyi Hu hzy068808 at gmail.com
Sun Jan 24 06:15:18 UTC 2016


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=23f128ad5e2b26733376d16f5095d36085a97747

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


More information about the pacman-dev mailing list