From 072e93458d554ee22c74c97a3b23d0a24d99d0c9 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 6 May 2010 21:02:07 +0000 Subject: abuild: break circular deps when building recursively --- abuild.in | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'abuild.in') diff --git a/abuild.in b/abuild.in index 3fea58a..21b1b43 100755 --- a/abuild.in +++ b/abuild.in @@ -820,7 +820,7 @@ builddeps() { if [ "${i#\!}" != "$i" ]; then list_has ${i#\!} $installed_deps \ && conflicts="$conflicts ${i#\!}" - elif ! deplist_has $i $installed_deps; then + elif ! deplist_has $i $installed_deps || [ -n "$upgrade" ]; then missing="$missing $i" fi done @@ -863,11 +863,17 @@ builddeps() { # i = pkg:dir local dir=${i#*:} local pkg=${i%:*} - if [ -d "$dir" ]; then - msg "Entering $dir" - cd "$dir" && $0 $forceroot $keep $quiet $install_deps \ - $recursive $upgrade abuildindex || return 1 - fi + + # ignore if dependency is in other repo + [ -d "$dir" ] || continue + + # break cricular deps + list_has $pkg $ABUILD_VISITED && continue + export ABUILD_VISITED="$ABUILD_VISITED $pkg" + + msg "Entering $dir" + cd "$dir" && $0 $forceroot $keep $quiet $install_deps \ + $recursive $upgrade abuildindex || return 1 done $SUDO $APK add -u --repository "$abuildrepo" \ --wait 30 \ -- cgit v1.2.3