Include package-specific and arch-specific dependencies when checking
dependencies prior to the build.

Fixes: https://bugs.archlinux.org/task/42191
---
 scripts/makepkg.sh.in | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 0db9912..6565809 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -2537,6 +2537,22 @@ pkgbuild_get_attribute() {
        fi
 }
 
+pkgbuild_get_all_for_arch() {
+       # $1: attribute name
+       # $2: architecture
+       # $3: output variable
+       local pkg __all l
+
+       array_build __all "$1"
+       for pkg in "${pkgname[@]}"; do
+               pkgbuild_get_attribute "$pkg" "$1" 1 l && __all+=("${l[@]}")
+               pkgbuild_get_attribute "$pkg" "$1_$2" 1 l && __all+=("${l[@]}")
+       done
+
+       mapfile -t __all < <(printf '%s\n' "${__all[@]}" | awk '!_[$0]++')
+       array_build "$3" __all
+}
+
 lint_pkgbase() {
        if [[ ${pkgbase:0:1} = "-" ]]; then
                error "$(gettext "%s is not allowed to start with a hyphen.")" 
"pkgname"
@@ -3626,7 +3642,8 @@ else
        deperr=0
 
        msg "$(gettext "Checking runtime dependencies...")"
-       resolve_deps ${depends[@]} || deperr=1
+       pkgbuild_get_all_for_arch 'depends' "$CARCH" all_deps
+       resolve_deps "${all_deps[@]}" || deperr=1
 
        if (( RMDEPS && INSTALL )); then
                original_pkglist=($(run_pacman -Qq))    # required by remove_dep
-- 
2.2.1

Reply via email to