Je viens un peu pour me plaindre, car je voulais écrire le fichier PKGBUILD pour ajouter un nouveau paquet sur AUR. J'ai besoin de récupérer les sources sur GitHub.com, et donc dans le PKGBUILD j'ai besoin de faire intervertir des variables pour versions de développement. D'habitude, je vole mes PKGBUILD à droite et à gauche (par manque d’expérience), pour essayer de faire un résultat correct au final, mais là je voulais m'amuser à l'écrire plus en autonomie, pour apprendre mais aussi pour essayer de faire un PKGBUILD dont la structure est correcte (car je me rends compte que ce qu'on trouve sur AUR peut être déprécié parfois).
Donc je me suis tout naturellement rendu sur le wiki Fr à la page PKGBUILD, qui me renvoi directement au dossier local /usr/share/pacman/. J'y jete un oeil, je pars sur le fichier PKGBUILD-git.proto, jusqu'à là, tout va bien.
J'ai abs, mais je n'en ai pas encore senti le besoin de décortiquer davantage de paquets pour m'aider à construire le mien.
De plus, il est renseigné sur cette page que je dois utiliser les variables suivantes :
GIT: _gitroot et _gitname
Une recherche plus loin, je suis tombé sur le Wiki En, à la page VCS_PKGBUILD_Guidelines, qui m'a parue plus ciblée ce que je cherchais. Et là le PKGBUILD a rien à voir :
- Utilisation de la fonction
pkgver()
.- Utilisation de la fonction
source()
avec le protocole git- Du coup, pas de variable
_gitroot
, ce qui supprime les 13 lignes de code suivantes par la même occasion :
Code : Tout sélectionner
cd "$srcdir"
msg "Connecting to GIT server...."
if [[ -d "$_gitname" ]]; then
cd "$_gitname" && git pull origin
msg "The local files are updated."
else
git clone "$_gitroot" "$_gitname"
fi
msg "GIT checkout done or server timeout"
msg "Starting build..."
rm -rf "$srcdir/$_gitname-build"
git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
cd "$srcdir/$_gitname-build"
$_gitname
et non sa forme lourde $srcdir/$_gitname-build
.En gros, au final, je ne sais pas qui suivre pour que mon PKGBUILD respecte les vrais standards d'ArchLinux. Je sais très bien que les deux sont acceptables, les deux fonctionnent, c'est une variante, mais je sais qu'une seule de ces deux formes est bonne quand on désire se standardiser.
Personnellement, j'ai toujours plus vu les PKGBUILD du même modèle que le /usr/share/pacman/PKGBUILD-git.proto. Mais je sais que les paquets évoluent avec le temps, maintenant il faut utiliser la fonction
package()
, il me semble que les anciens paquets ne l'utilise pas, or c'est déprécié aujourd'hui de ne pas l'utiliser. Donc je me dis que, peut-être, la page VCS_PKGBUILD_Guidelines tend à instaurer un nouveau standard. Puis cette autre forme dont je parle me parait plus légère, mais aussi simplifiée, et plus propre.Au final, que choisir ? Merci d'avance...
