Accueil > Linux > Divers > Recompiler un paquet avec les sources Debian
Recompiler un paquet avec les sources Debian
dimanche 16 septembre 2007, par ,
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