summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Macek <david.macek.0@gmail.com>2015-03-26 19:59:41 +0100
committerAllan McRae <allan@archlinux.org>2015-05-12 14:00:54 +1000
commitf9423cfa5d5b9f2041b70676438082faad1cd1ee (patch)
tree249584f9db92183d294ca44bead31db737b2b457
parent1040ad4e71dc8ade4418f7de8f5d5578658638f3 (diff)
downloadpacman-f9423cfa5d5b9f2041b70676438082faad1cd1ee.tar.xz
makepkg: Empty/create only $pkgdir's relevant to current PKGBUILD
Currently makepkg clears the whole $pkgbasedir which is needless. Moreover, in the obscure case of multiple makepkg runs (with different $pkgname) that share a $pkgdirbase, only $pkgdir's from the last run will remain. Since I consider the contents of $pkgdir an important artifact, this commit restricts the deletion to individual $pkgdir's. When CLEANUP is set, the behavior is unchanged. Discussed in: https://lists.archlinux.org/pipermail/pacman-dev/2015-February/019939.html Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--scripts/makepkg.sh.in7
1 files changed, 5 insertions, 2 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 2e6a0cc2..fb1ef20f 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -3413,10 +3413,13 @@ if (( NOBUILD )); then
msg "$(gettext "Sources are ready.")"
exit 0 #E_OK
else
- # clean existing pkg directory
+ # clean existing pkg directories
if [[ -d $pkgdirbase ]]; then
msg "$(gettext "Removing existing %s directory...")" "\$pkgdir/"
- rm -rf "$pkgdirbase"
+ for pkg in "${pkgname[@]}"; do
+ rm -rf "$pkgdirbase/$pkg"
+ done
+ unset pkg
fi
mkdir -p "$pkgdirbase"
chmod a-srwx "$pkgdirbase"