{{tag>tutoriel paquet}}
====== Comment appliquer un *.debdiff à un paquet ======
Il arrive que sur [[http://launchpad.net|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.
Dans la suite du tutoriel, nous appellerons le paquet à traiter PAQUET. Pensez donc à bien remplacer PAQUET par le paquet que vous souhaitez traitez.
//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 : [[utilisateurs:orkerone|Steph/orkerone]]//, d'après [[https://wiki.ubuntu.com/UbuntuPackagingGuide/BuildFromDebdiff|la documentation originale]].