diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2010-05-06 21:02:07 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2010-05-06 21:02:07 +0000 |
commit | 072e93458d554ee22c74c97a3b23d0a24d99d0c9 (patch) | |
tree | 3778e8adf917096aef62a5f68e2d5706cd5008ef /abuild.in | |
parent | 92417870e61f83d2ae4d4d4c7f0931461d3b9c58 (diff) | |
download | abuild-072e93458d554ee22c74c97a3b23d0a24d99d0c9.tar.gz abuild-072e93458d554ee22c74c97a3b23d0a24d99d0c9.tar.bz2 abuild-072e93458d554ee22c74c97a3b23d0a24d99d0c9.tar.xz abuild-072e93458d554ee22c74c97a3b23d0a24d99d0c9.zip |
abuild: break circular deps when building recursively
Diffstat (limited to 'abuild.in')
-rwxr-xr-x | abuild.in | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -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 \ |