(Re)compiler un logiciel des dépôts

Ce tutoriel vous expliquera comment reprendre les sources d'un paquet pour les modifier et recréer le paquet ainsi modifié.

Ceci vous sera utile si vous souhaitez modifier un logiciel par exemple…

  • Si vous voulez patcher un logiciel ou le modifier.
  • Si vous voulez ajouter des supports optionnels qu'offre le logiciel et que la version disponible dans les dépôts n'a pas été compilée avec ces options.
  1. Télécharger les sources depuis les dépôts
  2. Installer les « headers » et les bibliothèques nécessaires pour compiler le logiciel
  3. Effectuer les modifications sur les sources
  4. Construire votre paquet modifié

Pour cette manipulation, il est important que :

  • Le logiciel soit présent dans les dépôts
  • Les sources soient disponibles
  • La licence du programme vous autorise à accéder au sources, les modifier etc. (logiciel open source, libre, …)
  • Vous ayez activé les dépôts des sources
  • Avoir installé les paquets nécessaires pour compiler, ainsi que les utilitaires APT dont nous allons nous servir :
    build-essential dpkg-dev fakeroot
Dans cet exemple, nous allons modifier le paquet vlc.

Pour obtenir les sources, placez vous dans un terminal et entrez :

apt-get source vlc

Les sources du logiciel vont être téléchargées dans le répertoire courant.

Nous allons maintenant installer les dépendances de VLC.

Vous remarquez que la plupart de ces dépendances finissent en « -dev ». En fait ce sont souvent les #includes que vous voyez dans les sources C. Ils se trouvent dans /usr/include.
sudo apt-get build-dep vlc

Les sources seront installées dans le répertoire a partir duquel vous avez lancé la commande apt-get source.

Normalement les sources sont extraites automatiquement par dpkg-source. Si ce n'est pas le cas, il faudra le faire à la main.

Ensuite déplaçons nous dans le dossier des sources :

cd vlc*

Modification des sources

Maintenant que vous avez les sources, vous pouvez les modifier, les patcher etc.

Toute la compilation sera gérée par le script debian/rules. Dans ce script il y a surement une ligne qui lance les paramètres du ./configure. Vous pouvez aussi modifier cette ligne.

Ce script est fait par le mainteneur du paquet, donc suivant la personne il peut être présenté de manière différente ou dans plusieurs fichier etc.

Compilation, création du paquet et installation

Ce script procède de la manière suivante :

  1. Compilation : ce qui correspond souvent au ./configure && make. Généralement on peut le faire en tant que simple utilisateur.
  2. Installation : le fameux make install, sauf que là, on veux créer un paquet et non installer réellement le paquet.
    Nous allons donc faire croire qu'on est root (à cause de certain Makefiles, qui font eux aussi des tests) pour créer toute l'arborescence que va contenir le paquet.
Pour VLC, par exemple, avec un sudo make install, on aurait copié VLC dans /usr/bin/vlc (qui nécessite le sudo), mais là on veut juste créer $PWD/debian/build/usr/bin/vlc et on a le droit en tant qu'utilisateur…

Pour ce faire, nous utilisons donc fakeroot.

Pour lancer la compilation et la création du paquet, une seule commande sera nécessaire :

fakeroot debian/rules binary

Patientez… Le temps nécessaire à la compilation dépend de la puissance de votre machine et de la taille des sources.

Quand c'est fini (et qu'il n'y a pas eu d'erreurs), votre paquet modifié est crée dans le répertoire parent. Vous pouvez alors l'installer !

sudo dpkg -i ../vlc*.deb

Contributeurs : philpep-tlse

  • projets/paquets/recompiler_un_logiciel_des_depots.txt
  • Dernière modification: Le 26/01/2009, 23:48
  • par draco31.fr