23 Nov 2018, 00:00

Appliquer un fichier .patch à une source Debian

Share

La version du programme disper disponible dans les dépôts Debian stretch segfault dès qu’on lui demande quelque fonction que ce soit.
Ceci a été discuté et corrigé sur le bugtracker de Debian. La version des dépôts n’est toutefois toujours pas corrigée. Comme c’était mon premier ( \o/ ), voici comment appliquer le patch.

On commence par vérifier/ajouter le dépôt source au sources.list
deb-src http://deb.debian.org/debian/ stretch main contrib non-free

On crée un dossier de travail, et on y récupère les sources de disper.

mkdir disper-patch && cd disper-patch
apt source disper

On prépare les paquets nécessaires à la construction du paquet.

## permet l'installation automatique des paquets nécessaires pour compiler disper
sudo apt build-dep disper
## contient des outils pour construire et maintenir des paquets Debian. Pas sûr que ce soit nécessaire
sudo apt install packaging-dev devscripts

On récupère ensuite le patch, on l’applique, et on reconstruit le paquet

## ce fichier est une copie inchangée du fichier disponible dans la mailing-list
wget -c raphaelguetta.fr/files/disper-patch.diff

## Applique le patch à l'arborescence. L'option -p0 permet de conserver entiers les chemins fournis par le patch, sachant que le programme patch ne conserve par défaut que les noms de fichiers
patch -p0 < disper-patch.diff

## ce dossier contient directement la source upstream, et un dossier debian qui contient les modifs made-in Debian
cd disper-0.3.1
debuild -b -us -uc

Le paquet .deb doit normalement être disponible dans le dossier parent (ici disper-patch). On peut l’installer avec dpkg -i.