Table des matières
Comment recompiler un paquet Debian
Variables d'environnement
On doit définir 3 variables d'environnement (si le shell est bash, voici les lignes à rajouter) :
- .bashrc
[...] # For build .deb DEBEMAIL="" DEBFULLNAME="" export DEBEMAIL DEBFULLNAME export QUILT_PATCHES=debian/patches
Il faut définir DEBEMAIL et DEBFULLNAME.
Les sources
Dans le(s) dépôt(s) officiel(s)
Si le paquet existe déjà, on peut récupérer les sources amonts à partir du dépôt, il faut « décommenter » la ligne deb-src dans le fichier /etc/apt/sources.list
.
apt source nom-du-paquet
Parfois les « sources » contiennent des patches, mais l'on ne souhaite pas les appliquer dans l'immédiat. Voici la démarche à suivre.
1. On télécharge les sources sans effectuer la décompression de l'archive
apt-get --download-only source nom-du-paquet
2. On extrait l'archive
dpkg-source --skip-patches -x nom-du-paquet.dsc
À partir du dossier debian/
Ce dossier contient plusieurs fichiers, notamment changelog
et watch
. On peut utiliser l'utilitaire uscan
(paquet devscript) pour télécharger les sources.
La commande uscan
ne doit pas être lancée dans le dossier debian/
.
uscan
« lit » la première ligne (cela correspond à la dernière version) du fichier changelog
. Il va ensuite créer un lien symbolique.
uscan --force-download
Si il n'existe pas de fichier watch
, on télécharge les sources de manière classique.
Gérer les patches
Consultez la page dédiée à cette partie.
Mettre à jour debian/changelog
Une fois que l'on a fait les modifications souhaitées on peut mettre à jour le fichier debian/changelog
.
dch --local pseudo
pseudo est un suffixe qui sera rajouté au paquet pour indiquer que le paquet a été reconstruit.
Recompiler
dpkg-buildpackage -us -uc -tc
Les options -us -uc évite une erreur lors de la signature du paquet (c'est pas indispensable dans notre cas).
Installation
Pour installer le (ou les) .deb
.
dpkg -i *.deb
Conclusion
On peut conserver l'archive qui correspond au dossier debian/
pour une mise à jour ultérieure.