Ceci est une ancienne révision du document !
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.
