Recompile an official package

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.

Initialisation

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//

Recompiler un paquet

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

Conclusion

Vous savez désormais comment recompiler certains paquets sur un Archlinux à base d’un repository, et ainsi optimiser les performances de vos programmes.

Source

https://wiki.archlinux.org/index.php/Arch_Build_System

See Also