This fixed FS#9403. With this you can use "makepkg -sr", install the dependencies, Ctrl+c during the makedepends installation and have makepkg remove the installed packages on the exit. Previously makepkg tried to also remove the makedepends which were not installed. The deplist="" line in remove_deps is due to an obscure bug where local varaibles from the handle_deps function seem stay in scope because we never formally exited it. Signed-off-by: Allan McRae <allan@archlinux.org> --- scripts/makepkg.sh.in | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index ae19983..379e9d8 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -362,11 +362,10 @@ resolve_deps() { local deplist="$(check_deps $*)" if [ "$deplist" = "" ]; then return $R_DEPS_SATISFIED - else - pkgdeps="$pkgdeps $deplist" fi if handledeps $deplist; then + pkgdeps="$pkgdeps $deplist" # check deps again to make sure they were resolved deplist="$(check_deps $*)" [ "$deplist" = "" ] && return $R_DEPS_SATISFIED @@ -390,6 +389,7 @@ remove_deps() { [ "$pkgdeps" = "" ] && return local dep depstrip deplist + deplist="" for dep in $pkgdeps; do depstrip=$(echo $dep | sed -e 's|=.*$||' -e 's|>.*$||' -e 's|<.*$||') deplist="$deplist $depstrip" -- 1.5.6.4