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
---
 scripts/makepkg.sh.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 2e6a0cc..e89d0ff 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -3413,10 +3413,12 @@ 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
        fi
        mkdir -p "$pkgdirbase"
        chmod a-srwx "$pkgdirbase"
-- 
1.9.4.msysgit.2

-- 
David Macek

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to