Réaliser un rétroportage de Edgy vers Dapper
Il arrive parfois, lorsqu’on utilise la version stable d’une distribution Linux, de vouloir utiliser les dernières versions de ses logiciels favoris. Vous utilisez Ubuntu Dapper et vous bavez d’envie d’essayer Rhythmbox 0.9.5, mais vous ne voulez pas passer à Edgy, encore instable ? Le rétroportage, ou backport, est pour vous.
Vous aimez la stabilité et le grand choix de logiciels de la distribution Ubuntu Dapper, mais parfois vous aimeriez, pour une raison ou pour une autre, disposer d’une version plus récente de votre logiciel favori : une nouvelle fonctionnalité est apparue, un bug a été résolu, etc. Vous pourriez bien sûr télécharger les sources de ce logiciel, les compiler et les installer à la main ; mais vous perdriez alors le bénéfice du système APT. Une solution plus élégante consiste à réaliser ce qu’on appelle un backport, c’est-à-dire qu’on va utiliser les sources du paquet disponible dans Edgy (la prochaine version d’Ubuntu, encore en développement) pour reconstruire un paquet adapté à Dapper.
Nous nous intéresserons ici au logiciel UFRAW qui permet de développer les fichiers RAW produits par les appareils numériques.
Tout d’abord, nous allons ajouter une ligne dans le fichier /etc/apt/sources.list pour télécharger les sources de notre paquet Edgy :
$ sudo -s # echo "deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy main universe" >> /etc/apt/sources.list
ou bien ouvrez le fichier dans un éditeur,
$ gksudo gedit /etc/apt/sources.list
et copiez-collez cette ligne à la fin du fichier :
deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy main universe
Ensuite, il faut mettre à jour notre base de données APT :
$ sudo apt-get update
Désormais, il est possible de télécharger les paquets-sources de Edgy. Nous allons récupérer le paquet de UFRAW :
$ apt-get source ufraw $ cd ufraw-0.9.1
Nous allons avoir besoin du paquet fakeroot, qui permet de se faire passer pour l’administrateur de la machine :
$ sudo apt-get install fakeroot
Nous pouvons lancer la compilation :
$ fakeroot dpkg-buildpackage
La compilation va très certainement échouer, car de nombreux logiciels et bibliothèques sont nécessaires : leur liste apparaît dans le terminal. Nous allons les installer.
$ sudo apt-get install libgimp2.0-dev liblcms-dev libtiff4-dev libexiv2-dev $ fakeroot dpkg-buildpackage
De nouveau, la compilation échoue, car la version disponible de libexiv2-dev est trop vieille : il veut la 0.10, alors que nous ne disposons que de la 0.7 dans Dapper. C’est ici que nous allons “bidouiller” les dépendances du paquet, pour que dpkg-buildpackage accepte notre version. Attention ! Il est bien évident que si le logiciel lui-même requiert une certaine version de la bibliothèque pour fonctionner, la compilation échouera !
$ gedit debian/control
Repérer dans le champ Build-Depends la bibliothèque qui pose problème. Dans notre cas, on voit :
Build-Depends: debhelper (>= 4.0.0), libgimp2.0-dev (>= 2.2), (...) libexiv2-dev (>= 0.10)
Modifions le numéro de version pour obtenir :
Build-Depends: debhelper (>= 4.0.0), libgimp2.0-dev (>= 2.2), (...) libexiv2-dev (>= 0.7)
Pour savoir de quelle version on dispose dans Dapper, il suffit de lire le résultat de la commande :
$ apt-cache show libexiv2-dev Package: libexiv2-dev Priority: optional Section: universe/libdevel Installed-Size: 1352 Maintainer: KELEMEN Peter <fuji@debian.org> Architecture: i386 Source: exiv2 Version: 0.7-9.1ubuntu1 Depends: libexiv2c2a (= 0.7-9.1ubuntu1) Conflicts: libexiv2c2a (<< 0.7-9.1) Filename: pool/universe/e/exiv2/libexiv2-dev_0.7-9.1ubuntu1_i386.deb Size: 316930 MD5sum: e1ee0b6b7af95f221282d1a8cea6bdc1 Description: EXIF/IPTC metadata manipulation library - development files Exiv2 C++ header files. Bugs: mailto:ubuntu-users@lists.ubuntu.com Origin: Ubuntu</fuji@debian.org>
On a donc la version 0.7.
Une fois que les histoires de dépendances sont résolues, nous passons à la création du paquet en lui-même :
$ dpkg-buildpackage
La compilation va normalement se terminer sans encombre. Un paquet de votre application préférée a été créé dans le répertoire juste au dessus :
$ ls .. drwxrwxrwx 5 bdelagoutte bdelagoutte 4096 2006-09-03 12:58 ufraw-0.9.1 -rw-r--r-- 1 bdelagoutte bdelagoutte 7544 2006-09-03 12:57 ufraw_0.9.1-0ubuntu1.diff.gz -rw-r--r-- 1 bdelagoutte bdelagoutte 449 2006-09-03 12:57 ufraw_0.9.1-0ubuntu1.dsc -rw-r--r-- 1 bdelagoutte bdelagoutte 0 2006-09-03 12:58 ufraw_0.9.1-0ubuntu1.dsc.asc -rw-r–r– 1 bdelagoutte bdelagoutte 323792 2006-09-03 12:58 ufraw_0.9.1-0ubuntu1_i386.deb -rw-r–r– 1 bdelagoutte bdelagoutte 331171 2006-08-14 22:03 ufraw_0.9.1.orig.tar.gz
Vous pouvez l’installer directement :
$ sudo dpkg -i ../ufraw_0.9.1-0ubuntu1_i386.deb
Ou encore l’installer avec Gdebi, en cliquant dessus.
N’hésitez pas à appliquer cette méthode à n’importe lequel des logiciels présents dans Edgy. J’ai pour ma part backporté avec succès Rhythmbox 0.9.5.
Dernière information : pour connaître la version d’un paquet dans Edgy, vous pouvez utiliser le site qui répertorie les logiciels de chacune des versions d’Ubuntu.