Table des matières

Création de paquets RPM

Les paquets RPM sont construits à partir de fichiers ayant comme extension .spec 1).

Les outils ?

Il faut installer les 2 paquets suivants :

dnf install rpmdevtools rpm-build

Ensuite en fonction de ce que l'on souhaite construire il faut en plus un compilateur des entêtes de bibliothèques, et bien sûr des macros

dnf list *rpm-macro*

Ci-dessus la commande qui va lister tous les paquets qui correspondent à cette recherche.

Après avoir installé les paquets nécessaires, il faut créer son environnement de travail :

rpmdev-setuptree

Obtenir la « recette » (.spec) à partir du dépôt central

Tous les .spec qui produisent les paquets (hors dépôts tiers, tels que RPMFusion, etc.) sont disponibles à cette adresse.

Pour récupérer une des recettes, on peut soit utiliser l'utilitaire git, soit fedpkg ((Il utilise git).

1. On installe le paquet fedpkg.

2. On clone le programme qui nous intéresse, par exemple Midori.

fedpkg clone midori --anonymous

L'option anonymous est indispensable (sinon il faut avoir un compte sur le dépôt central).

Construire un RPM

Téléchargement de l'archive

Pour construire un paquet, il faut partir des sources d'un logiciel, Pour cela on doit renseigner les champs :

Ensuite on peut utiliser l'utilitaire spectool, comme cela on téléchargera directement l'archive dans le dossier ~/rpmbuild/SOURCES/.

spectool -g -R ....spec

La création

Cela s'effectue avec l'utilitaire rpmbuild. On peut tester, c'est à dire savoir si notre « recette » est correcte.

rpmbuild -bi ....spec

Pour vérifier qu'un (ou plusieurs) correctif(s) est (ou sont) appliqué(s) :

rpmbuild -bp ....spec

Il faut bien entendu avoir une (ou plusieurs) ligne(s):

<note>La macro %patchN s'applique uniquement si il y a la macro %setup -q

Cette macro est utile si il y a plus de 1 correctif.

Si il existe un correctif, on peut remplacer ces deux macros (%setup -q et %patchN) par une seule %autosetup.

%autosetup prend les mêmes options que %patchN. </note>

Si au cours de cette étape, nous n'avons pas de message d'erreur, on peut passer à la création du RPM

rpmbuild -bb ....spec

Il existe aussi l'option -ba, cela va produire également le paquet source RPM .srpm.

Il faut penser à nettoyer les répertoires BUILD/ et BUILDROOT/

cd ~/rpmbuild
rm -Rf BUILD/*
rm -Rf BUILDROOT/*
1)
C'est la même chose pour openSUSE, mais le contenu est légèrement différent.