Comment appliquer un *.debdiff à un paquet
Il arrive que sur Launchpad, certains développeurs postent des fichiers *.debdiff pour résoudre le bug. Ces fichiers contiennent en fait une liste des changements du paquet par rapport à l'ancien, dans notre cas, ce sont les modifications qui ont été appliquées au paquet deb pour résoudre le bug. On va donc apprendre à appliquer ce debdiff pour avoir un nouveau paquet fonctionnel.
La marche à suivre est simple: récupération de la source du paquet, création du paquet original, récupération du debdiff, recompilation du paquet suivant le debdiff, installation du paquet, bonheur. Rassurez vous, c'est très simple.
Exemple : Je veux appliquer mon debdiff à Rhythmbox : mon deb s'appelle sûrement rhythmbox0.11.5-ubuntuxxx, mais le nom du paquet reste rhythmbox. Je remplace donc PAQUET par rhythmbox tout le temps.
Outils de constructions
Tout ce qui va nous servir à compiler notre paquet.
sudo apt-get install build-essential fakeroot devscripts
Créer le répertoire de travail (optionnel)
Je vous conseille de le faire, ça rendra votre travail plus clair.
mkdir PAQUET && cd PAQUET
Récupérer le *.debdiff
Si ce n'est déjà fait :
wget http://URL...
Récupérer la source du paquet
Notez qu'il n'est pas nécessaire de le faire en sudo, puisqu'on n'installe rien.
apt-get source PAQUET
Récupérer les dépendances du paquet
Toutes les librairies nécessaires à la compilation du paquet.
sudo apt-get build-dep PAQUET
Appliquer le debdiff
Ici, on applique le debdiff dans le répertoire source de notre paquet. Pensez à remplacer DEBDIFF par le nom de votre fichier debdiff.
cd PAQUET-* && patch -p1 < ../DEBDIFF
Compiler le nouveau paquet
Régénération du paquet avec les nouvelles modifications.
debuild -uc -us
Installer le nouveau paquet
Et enfin…
sudo dpkg -i ../PAQUET*.deb
Et voilà, si tout s'est bien passé vous disposez à présent de la version mise à jour du paquet. Notez que certaines étapes (la récupération des sources, la compilation) peuvent prendre pas mal de temps.
Exemple
sudo apt-get install build-essential fakeroot devscripts cd /tmp wget http://librarian.launchpad.net/4941195/vino_2.16.0-0ubuntu2.1.dsc.debdiff apt-get source vino sudo apt-get build-dep vino cd vino-* patch -p1 < ../vino_2.16.0-0ubuntu2.1.dsc.debdiff debuild -uc -us sudo dpkg -i ../vino*.deb
Contributeurs : Steph/orkerone, d'après la documentation originale.