Archlinux est une distribution en rolling release très intéressante, réservée à des utilisateurs plus avertis que la normale, le processus d’installation étant manuel (et bien documenté).
Une des fonctionnalités intéressantes d’Archlinux est la possibilité de pouvoir recompiler certains paquets afin d’optimiser les performances de la machine en optimisant le code binaire généré, en ajoutant, retirant des options de compilation ou encore en optimisant les flags passés au compilateur.
Afin de pouvoir bénéficier de ce système de build, installez le paquet abs (Archlinux Build System)
sudo pacman -S abs
Si vous souhaitez utiliser la branche testing, il va falloir reconfigurer ABS pour lui dire de synchroniser ces repositories. Editez le fichier /etc/abs.conf et activez le repository testing en retirant les point d’exclamation.
Ainsi:
REPOS=(core extra community multilib !testing !community-testing !multilib-testing !staging !community-staging !gnome-unstable !kde-unstable
Deviendra:
REPOS=(core extra community multilib testing community-testing multilib-testing !staging !community-staging !gnome-unstable !kde-unstable)
Lancez maintenant la commande abs en root afin de télécharger les définitions de paquets.
sudo abs
Cette commande va télécharger les définitions de paquets dans /var/abs//
Admettons qu’on souhaite recompiler mesa, la pile graphique libre sous Linux.
On copie le répertoire /var/abs/extra/mesa dans ~/mesa-custom puis on entre dedans
cp -R /var/abs/extra/mesa ~/mesa-custom
cd ~/mesa-custom
Si vous souhaitez modifier les options à passer au compilateur, éditez la ligne CFLAGS et CXXFLAGS dans le fichier /etc/makepkg.conf (attention toutes les options ne sont pas identiques entre Clang et GCC).
Si vous souhaitez changer les options de compilation du programme, éditez le fichier PKGBUILD présent dans le répertoire.
Construisez maintenant le paquet.
makepkg -s
Enfin installez votre nouveau paquet !
sudo pacman -U mesa-10.6.0-1-x86_64.pkg.tar.xz
Vous savez désormais comment recompiler certains paquets sur un Archlinux à base d’un repository, et ainsi optimiser les performances de vos programmes.