Accueil > Linux > Divers > Recompiler un paquet avec les sources Debian

Recompiler un paquet avec les sources Debian

dimanche 16 septembre 2007, par eRen, michael

Recompilation d’un paquet Debian pour y ajouter une fonctionnalité non inclue par défaut ou en supprimer.

Exemple : Recompilation de openssl avec le support de idea non inclu par défaut.

Pré-requis

Avoir des lignes deb-src dans votre sources.list comme ceci :

# Depot officiel Debian (Version Stable)
deb-src http://ftp.fr.debian.org/debian/ stable main contrib non-free

# Depot de securite Debian (Version Stable)
deb-src http://security.debian.org/ stable/updates main contrib non-free

# Depot officiel Debian (Version Testing)
deb-src http://ftp.fr.debian.org/debian/ testing main contrib non-free

# Depot de securite Debian (Version Testing)
deb-src http://security.debian.org/ testing/updates main contrib non-free

# Depot officiel Debian (Version Unstable)
deb-src http://ftp.fr.debian.org/debian/ unstable main contrib non-free

Installation des pré-requis

aptitude install dpkg-dev devscripts build-essential debhelper fakeroot

Installation des pré-requis pour notre paquet openssl

aptitude build-dep openssl

Utilisez apt-get si vous l’utilisez en règle général.

Téléchargement des sources depuis les dépôts officiels

cd /usr/local/src/
mkdir openssl
cd openssl
apt-get source openssl

Modification du script de compilation

cd openssl-*
vi debian/rules

Supprimer no-idea sur la ligne suivante :

CONFARGS = —prefix=/usr —openssldir=/usr/lib/ssl no-idea no-mdc2 no-rc5 zlib

Changer le numéro de version

dch -v "$(dpkg-parsechangelog --format dpkg | grep '^Version' | sed 's/^Version: \(.*\)$/\1b/')" "Activation idea"

Rajouter un b à la fin du numéro de version pour la différencier de la version officiel ainsi qu’un commentaire dans le fichier changelog

Création du nouveau paquet deb

dpkg-buildpackage -rfakeroot -us -uc

Installation du nouveau paquet

cd ..
dpkg -i libssl0.9.8_0.9.8c-4_i386.deb libssl-dev_0.9.8c-4_i386.deb openssl_0.9.8c-4_i386.deb

Bloquer les mises à jours sur ces paquets

Il faudra aussi bloquer la mise à jour de ces paquets avec le fichier preferences de apt.

Je continue toujours sur mon exemple, je vais donc bloquer les mises à jour pour les paquets libssl0.9.8 libssl-dev et openssl.

Créer ou modifier le fichier preferences présent dans /etc/apt/ pour y ajouter ceci

Package: openssl
Pin: version 0.9.8e-4b
Pin-Priority: 1001

Package: libssl-dev
Pin: version 0.9.8e-4b
Pin-Priority: 1001

Package: libssl0.9.8
Pin: version 0.9.8e-4b
Pin-Priority: 1001

Les numéros de version et les noms de packages seront à adapter selon ce que vous recompilez et le numéro de version que vous aurez indiqué.

Bonne compilation


Mise à jour :
 Rajout des paramètres -uc et -us (19.04.2008)
 Rajout des pré-requis du paquet (14.09.2008)
 Incrémente le numéro de version avec la commande dch (21.06.2009)

Erreur d’exécution squelettes-dist/inclure/forum.html

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Se connecter
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Ajouter un document