[makepkg] Patch pour utiliser /tmp

Mise à jour / Création /debug de paquetages
Avatar de l’utilisateur
mimas
Elfe
Messages : 559
Inscription : sam. 30 sept. 2006, 22:30
Localisation : Toulouse

[makepkg] Patch pour utiliser /tmp

Message par mimas »

Un petit patch rapide pour utiliser le répertoire /tmp lors de la compilation avec makepkg. À utiliser bien sûr avec un répertoire /tmp en tmpfs (et de taille conséquente). ;)

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

Mon makepkg a été précédemment modifié, il risque donc d'y avoir quelques messages d'avertissement.

Comme d'hab, je ne garantie rien sur le comportement de makepkg après modification (ni avant d'ailleurs :p).
Dernière modification par mimas le mar. 11 sept. 2007, 09:32, modifié 3 fois.
Anarchy for the triple A.
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message par marc[i1] »

je suis sur le cul ! :shock:
c'est génial comme patch ! :prosterne:
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
mimas
Elfe
Messages : 559
Inscription : sam. 30 sept. 2006, 22:30
Localisation : Toulouse

Message par mimas »

Je suis aussi sur le cul. Trop mal de s'assoir sur la tête. :)

J'ai corrigé un problème de fichier install (non copié) et de fichier ChangeLog (non copié itou).
Anarchy for the triple A.
Avatar de l’utilisateur
mimas
Elfe
Messages : 559
Inscription : sam. 30 sept. 2006, 22:30
Localisation : Toulouse

Message par mimas »

Modifications :
- suppression du répertoire de compilation avec -c (ce qui était joyeusement ignoré)
- arrachage des doigts crochus (typo)

Ça devrait commencer à avoir le même comportement que makepkg, mais en mieux. :)
Anarchy for the triple A.
Répondre