Avantage : rapidité puisque la compilation et la création du paquet se fait en mémoire (sauf si tmpfs est obligé de swapper par manque de mémoire).
Inconvénients : ceux de tmpfs.
Code : Tout sélectionner
--- makepkg.orig 2007-09-08 20:31:54.000000000 +0200
+++ makepkg 2007-09-11 09:26:38.000000000 +0200
@@ -26,7 +26,7 @@
#
myver='3.0.3'
-startdir=$(pwd)
+pkgdir=$(pwd)
BUILDSCRIPT="PKGBUILD"
PKGEXT="pkg.tar.gz"
@@ -656,17 +656,20 @@
warning "pacman was not found in PATH. skipping dependency checks."
fi
-cd "$startdir"
+[ ! -e /tmp/$pkgname ] && mkdir /tmp/$pkgname
+cd /tmp/$pkgname/
+startdir=$(pwd)
+
# retrieve sources
msg "Retrieving Sources..."
mkdir -p src
-cd "$startdir/src"
+cd "src"
for netfile in ${source[@]}; do
file=$(strip_url "$netfile")
- if [ -f "../$file" ]; then
+ if [ -f "$pkgdir/$file" ]; then
msg2 "Found $file in build dir"
- cp "../$file" .
+ cp "$pkgdir/$file" .
elif [ -f "$SRCDEST/$file" ]; then
msg2 "Using cached copy of $file"
cp "$SRCDEST/$file" .
@@ -1070,14 +1073,14 @@
# check for an install script
if [ "$install" != "" ]; then
msg "Copying install script..."
- cp "$startdir/$install" "$startdir/pkg/.INSTALL"
+ cp "$pkgdir/$install" "$startdir/pkg/.INSTALL"
fi
# do we have a changelog?
have_changelog=0
-if [ -f "$startdir/ChangeLog" ]; then
+if [ -f "$pkgdir/ChangeLog" ]; then
msg "Copying package changelog"
- cp "$startdir/ChangeLog" "$startdir/pkg/.CHANGELOG"
+ cp "$pkgdir/ChangeLog" "$startdir/pkg/.CHANGELOG"
have_changelog=1
fi
@@ -1094,10 +1097,10 @@
exit 1
fi
-cd "$startdir"
+cd "$pkgdir"
if [ "$CLEANUP" = "1" ]; then
msg "Cleaning up..."
- rm -rf src pkg
+ rm -rf $startdir
rm -rf ${pkgname}-${pkgver}-${pkgrel}-${CARCH}.log*
fi
Comme d'hab, je ne garantie rien sur le comportement de makepkg après modification (ni avant d'ailleurs :p).