diff options
-rw-r--r-- | scripts/makepkg.sh.in | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 23e70cd3..60276f65 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -2896,7 +2896,7 @@ get_vcsclient() { } check_vcs_software() { - local ret=0 + local all_sources all_deps deps ret=0 if (( SOURCEONLY == 1 )); then # we will not download VCS sources @@ -2908,7 +2908,17 @@ check_vcs_software() { return $ret fi - for netfile in ${source[@]}; do + # we currently only use global depends/makedepends arrays for --syncdeps + for attr in depends makedepends; do + pkgbuild_get_attribute "$pkg" "$attr" 1 'deps' + all_deps+=("${deps[@]}") + + pkgbuild_get_attribute "$pkg" "${attr}_$CARCH" 1 'deps' + all_deps+=("${deps[@]}") + done + + get_all_sources_for_arch 'all_sources' + for netfile in ${all_sources[@]}; do local proto=$(get_protocol "$netfile") case $proto in @@ -2921,7 +2931,7 @@ check_vcs_software() { uninstalled="$(set +E; check_deps $client)" || exit 1 # if not installed, check presence in depends or makedepends if [[ -n "$uninstalled" ]] && (( ! NODEPS || ( VERIFYSOURCE && !DEP_BIN ) )); then - if ! in_array "$client" ${depends[@]} ${makedepends[@]}; then + if ! in_array "$client" ${alldeps[@]}; then error "$(gettext "Cannot find the %s package needed to handle %s sources.")" \ "$client" "${proto%%+*}" ret=1 |