diff options
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 \ |