[pacman-dev] [PATCH] makepkg: add packages to pkgdeps list only after successful install
Allan McRae
allan at archlinux.org
Wed Jul 23 09:09:45 EDT 2008
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 at 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
More information about the pacman-dev
mailing list