diff options
author | Allan McRae <allan@archlinux.org> | 2014-12-22 01:34:53 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-12-22 05:01:34 +0100 |
commit | ec679e09b2d7b0a2bc84b2edb7dfa628b5295916 (patch) | |
tree | 1f0bb74c1e552b4e0ed8c1558e6651a289a96af8 | |
parent | a7c1b7a914f050036720b643715233f769f00e25 (diff) | |
download | pacman-ec679e09b2.tar.gz pacman-ec679e09b2.tar.xz |
Check architecture specific fields for VCS support
Signed-off-by: Allan McRae <allan@archlinux.org>
-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 |