summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2008-07-23 15:01:35 +0200
committerDan McGee <dan@archlinux.org>2008-07-25 05:16:28 +0200
commit67f388c3fcad755d94944bee1f3a5a938817f5b9 (patch)
tree1f5d9f58dceb02a7a85418451415c5fb79ab1c31
parent5e4882dfe8b62a8cb7c206986d1010195a63d74e (diff)
downloadpacman-67f388c3fcad755d94944bee1f3a5a938817f5b9.tar.gz
pacman-67f388c3fcad755d94944bee1f3a5a938817f5b9.tar.xz
makepkg: add packages to pkgdeps list only after successful install
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> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--scripts/makepkg.sh.in4
1 files changed, 2 insertions, 2 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index ae199837..379e9d8b 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"