Mémo Debian & VDR

Recompiler un paquet avec les sources Debian

dimanche 16 septembre 2007 par eRen, Michaël

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)


forum

Accueil | Contact | Plan du site | | Statistiques du site | Visiteurs : 5304 / 145494

Suivre la vie du site fr  Suivre la vie du site Linux  Suivre la vie du site Divers   ?    |    titre sites syndiques OPML   ?

Site réalisé avec SPIP 3.1.4 + AHUNTSIC

Website Security Test Statistique réalisée avec CrawlTrack: free visitors and crawlers tracking script- SEO script - script gratuit de statistiques web

Hébergement par l'autre net et ma propre infra.

Creative Commons License

Visiteurs connectés : 2