====== 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) :
[...]
# 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 [[linux:debian:quilt|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.