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.
Tout ce qui va nous servir à compiler notre paquet.
sudo apt-get install build-essential fakeroot devscripts
Je vous conseille de le faire, ça rendra votre travail plus clair.
mkdir PAQUET && cd PAQUET
Si ce n'est déjà fait :
wget http://URL...
Notez qu'il n'est pas nécessaire de le faire en sudo, puisqu'on n'installe rien.
apt-get source PAQUET
Toutes les librairies nécessaires à la compilation du paquet.
sudo apt-get build-dep PAQUET
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
Régénération du paquet avec les nouvelles modifications.
debuild -uc -us
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.
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.