RPMBUILD(1)

NOM
rpmbuild – Construction de paquet(s) RPM

SYNOPSIS
rpmbuild -b​ÉTAPE [options] FICHIER_SPÉC ...

rpmbuild -r​ÉTAPE [options] PAQUET_SOURCE ...

rpmbuild -t​ÉTAPE [options] ARCHIVE_TAR ...

rpmbuild {--rebuild|--recompile} [options] PAQUET_SOURCE ...

DESCRIPTION
rpmbuild sert à construire des paquets logiciels au format RPM, d’une manière automatique et réitérable.

Un paquet consiste en une archive de fichiers et de métadonnées utilisée pour installer et écraser les fichiers d’archive. Les métadonnées comprennent des scripts d’aide, des attributs de fichier et une information descriptive du paquet.

Les paquets sont de deux sortes : les paquets binaires utilisés pour encapsuler les logiciels à installer et les paquets source contenant le code source et des recettes nécessaires pour construire les paquets binaires.

OPÉRATIONS
-b​ÉTAPE
    Construire ÉTAPE à partir d’un fichier spec.

-r​ÉTAPE
    Construire ÉTAPE à partir d’un paquet source RPM.

-t​ÉTAPE
    Construire ÉTAPE à partir d’une archive tar(5).

--rebuild, --recompile
    Alias de compatibilité pour -ra.

Les paquets sont construits en quatre phases : analyse, construction, assemblage et nettoyage. Les deux phases centrales sont elles-mêmes divisées en étapes, listées ci-après et qui peuvent être réalisées séparément. Construire une ÉTAPE signifie exécuter toutes les étapes précédentes jusqu’à celle indiquée incluse, sauf déclaration contraire autre part.

  Étapes d’assemblage
Les étapes d’assemblage produisent les paquets et constituent la façon principale d’interagir avec rpmbuild. Dans le doute, choisir une des suivantes.

a
    Construire les paquets source et binaires. Ce n’est pas réellement une étape, mais une combinaison des actions b et s, avec la différence que les paquets construits de cette façon intègrent un « cookie » pour indiquer qu’ils proviennent de la même construction. En cas de succès, le répertoire de construction est supprimé.

b
    Construire uniquement les paquets binaires. En cas de succès, le répertoire de construction est supprimé.

r
    Construire uniquement le paquet source, en vérifiant les dépendances dynamiques de construction. Exécuter les étapes %prep et %generate_buildrequires avant la construction d’un paquet. Consulter la section DÉPENDANCES DYNAMIQUES DE CONSTRUCTION pour plus de détails.

s
    Construire uniquement le paquet source. Aucune étape de construction n’est exécutée.

  Étapes de construction
Ces étapes de construction produisent des artefacts de construction à empaqueter, classiquement à travers une application de correctifs et une compilation des sources, et en installant les binaires dans le buildroot. Ces étapes correspondent généralement aux sections spec telles que %prep, %build ou %install, mais certaines sont implicites.

Construire ces étapes séparément n’est en général utile que pour l’empaquetage au format RPM d’un nouveau logiciel ou en cas de problème. Elles sont listées ci-après dans leur ordre d’exécution avec leur section spec correspondante entre parenthèses lorsque cela est approprié.

p (%prep)
    Décompresser les sources et appliquer tout correctif.

d (%generate_buildrequires)
    Vérifier les dépendances dynamiques de construction et construire le paquet buildreqs.nosrc.rpm si une dépendance est manquante. Ne rien construire d’autre.

f (%conf)
    Configurer les sources. Cela implique généralement l’équivalent de ./configure.

c (%build)
    Compiler les sources. Cela implique généralement l’équivalent de make.

i (%install et %check)
    Installer les binaires dans la racine de construction. Cela implique généralement l’équivalent de make install et make check.

l
    Réaliser un « list check » – la section %files du fichier spec est développée en macros et des vérifications sont faites pour chaque fichier existant. Cela nécessite une construction précédente jusqu’à l’étape %install.

ARGUMENTS
FICHIER_SPEC
    Un fichier spec RPM.

PAQUET_SOURCE
    Un paquet source RPM (avec une extension .src.rpm)

ARCHIVE_TAR
    Une archive tar(5), facultativement compressée. Pour être directement constructible avec rpmbuild(1), une archive doit contenir un fichier spec soit avec le nom Specfile, soit avec l’extension .spec.

OPTIONS
--build-in-place
    Construire à partir de sources récupérées localement dans le répertoire de travail actuel. L’arbre de construction est défini comme si %setup était utilisé, mais %builddir/%buildsubdir pointe vers le répertoire de travail actuel. %prep est totalement ignoré.

--clean
    Supprimer l’arbre de construction une fois les paquets fabriqués (c’est le comportement par défaut).

--nobuild
    Ne pas exécuter d’étape de construction. C’est utile pour le test de fichiers spec.

--nocheck
    Ne pas exécuter l’étape de construction %check même si elle est présente dans le fichier spec.

--noclean
    Ne pas exécuter l’étape de construction %clean même si elle est présente dans le fichier spec.

--nodebuginfo
    Ne pas générer de paquets debuginfo.

--nodeps
    Ne pas vérifier les dépendances de construction.

--noprep
    Ne pas exécuter l’étape de construction %prep même si elle est présente dans le fichier spec. Cela suppose qu’il y a un autre rpmbuild exécuté dans lequel %prep a déjà été exécuté.

--rmsource
    Supprimer les sources après la construction (cela peut être utilisé de manière autonome, par exemple, rpmbuild --rmsource toto.spec). Notez que par définition, les fichiers NoSource et NoPatch ne sont pas des sources et par conséquent ne sont pas affectés par cette option.

--rmspec
    Supprimer le fichier spec après la construction (cela peut être utilisé de manière autonome, par exemple, rpmbuild --rmspec toto.spec).

--rpmfcdebug
    Afficher des informations de débogage sur la classification de fichier et la génération de dépendance.

--scm=SCM
    Choisir le SCM à utiliser avec %autosetup si aucun n’est défini dans le fichier spec. Remarquez que cela n’autorise pas toutes les valeurs pour SCM, par exemple, patch (valeur par défaut) et gendiff, git ou quilt sont interchangeables avec tous les autres correctifs et options déclarés dans la ligne %autosetup, particulièrement l’option -pN.

--short-circuit
    Aller directement à l’étape indiquée (c’est-à-dire sauter toutes les étapes conduisant à l’étape indiquée). Cela est seulement autorisé pour les options -bc, -bi et -bb. C’est utile seulement pour un test local. Les paquets construits de cette façon seront marqués avec une dépendance impossible de satisfaire pour empêcher leur utilisation accidentelle.

--with OPTION
    Activer l’OPTION de configuration spécifiée pour la construction.

--without OPTION
    Désactiver l’OPTION de configuration spécifiée pour la construction.

Consulter rpm-common(8) pour les options communes à toutes les opérations.

DÉPENDANCES DYNAMIQUES DE CONSTRUCTION
Quand l’étape %generate_buildrequires est exécutée et que certains des BuildRequires nouvellement générés ne sont pas satisfaits, rpmbuild crée un paquet source intermédiaire dans buildreqs.nosrc.rpm qui possède les nouveaux BuildRequires, et quitte avec le code de retour 11. Ce paquet peut alors être utilisé à la place du paquet source original pour résoudre et installer les dépendances de construction manquantes de la manière habituelle, comme avec dnf-builddep(8).

Plusieurs couches de dépendances dynamiques de construction peuvent exister dans un fichier spec ; la présence de BuildRequires spécifiques peut produire de nouveaux BuildRequires lors de la prochaine construction avec le même paquet source. La façon la plus simple de s’assurer que toutes les dépendances dynamiques de construction sont satisfaites est d’utiliser l’option -br, d’installer les nouvelles dépendances du paquet buildreqs.nosrc.rpm et de recommencer la procédure entière jusqu’à ce que rpmbuild ne quitte plus avec le code 11.

Si l’option -br est couplée avec l’option --nodeps, le code de retour 11 est toujours renvoyé et le paquet buildreqs.nosrc.rpm est toujours créé.

ENVIRONNEMENT
RPM_BUILD_NCPUS
    Cette variable d’environnement permet d’outrepasser l’autodétection du nombre de CPU pour utiliser les sections « parallélisées » de la construction.

CODE DE RETOUR
En cas de succès, 0 est renvoyé, autrement, un code d'échec différent de zéro est renvoyé.

Les paquets avec une section %generate_buildrequires renvoient un code 11 quand les dépendances dynamiques de construction ne sont pas satisfaites.

EXEMPLES
rpmbuild --rebuild toto-1.0-1.src.rpm
    Construire les paquets source et binaire à partir du paquet source toto-1.0-1.src.rpm.

rpmbuild -bb --nocheck --with openssl toto.spec
    Construire les paquets binaires à partir du fichier toto.spec, en omettant l’étape %check si présente et en activant la prise en charge de l’option de construction openssl (en supposant qu’une soit indiquée dans le fichier spec).

rpmbuild -ta toto-2.0.tar.gz
    Construire les paquets source et binaire à partir de l’archive compressée toto-2.0.tar.gz, en supposant que l’archive contient un fichier spec valable (consulter ARCHIVE_TAR pour plus de détails).

rpmbuild -bc toto.spec
    Construire toto.spec jusqu’à l’étape %build incluse, c’est-à-dire sans produire réellement les paquets.

rpmbuild -bi --short-circuit toto.spec
    Exécuter seulement l’étape %install de toto.spec, en omettant toutes les étapes précédentes. Cela suppose une exécution précédente jusqu’à au moins l’étape %build (voir l’exemple précédent). C’est utile pour éviter des reconstructions complètes lors d’un travail sur la section %files d’un paquet.

FICHIERS
Consulter rpm-common(8)

VOIR AUSSI
gendiff(1), popt(3), rpm(8), rpm-common(8), rpmbuild-config(5), rpm2cpio(1), rpmkeys(8), rpmspec(1), rpmsign(1), rpm-setup-autosign(1), rpm-macros(7)

http://www.rpm.org/

TRADUCTION
La traduction française de cette page de manuel a été créée par Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.