summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2014-12-22 01:34:53 +0100
committerAllan McRae <allan@archlinux.org>2014-12-22 05:01:34 +0100
commitec679e09b2d7b0a2bc84b2edb7dfa628b5295916 (patch)
tree1f0bb74c1e552b4e0ed8c1558e6651a289a96af8
parenta7c1b7a914f050036720b643715233f769f00e25 (diff)
downloadpacman-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.in16
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