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.

Tags: ,

Les commentaires sont fermés.