rpmrebuild_plugins

Autres langues

Langue: fr

Version: 145602 (fedora - 04/07/09)

Section: 1 (Commandes utilisateur)

NAME

rpmrebuild_plugins - système de greffons (plugins) pour étendre les fonctions de rpmrebuild.

SYNOPSIS

rpmrebuild [non-plugins-option] [plugins-option] <packagename>

DESCRIPTION

rpmrebuild essaie de reconstruire le package rpm le plus proche de l'original possible.

dans certains cas, cela ne correspond pas au besoins de modification des rpm, il faut utiliser pour cela les plugins.

RPMREBUILD SANS PLUGINS

Sans plugin, le processus de construction est le suivant :
interrogation -
interrogation de la base rpm sur le package à reconstruire, découpée en plusieurs sections.
concaténation -
création du fichier specfile à partir des sections recupérées.
construction -
fabrication du fichier rpm à partir du fichier specfile.

RPMREBUILD AVEC PLUGINS

Quand on utilise des plugin, le processus devient :
interrogation -
interrogation de la base rpm sur le package à reconstruire, découpée en plusieurs sections.
modification des sections -
applique les filtres ou edite les sections spécifiées.
concaténation -
création du fichier specfile à partir des sections récupérées.
modification globale -
applique les filtre ou edite le fichier specfile.
construction -
fabrication du fichier rpm à partir du fichier specfile.

SECTION DU SPECFILE

L'interrogation récupère les sections suivantes :

preamble
conflicts
obsoletes
provides
requires
description
files
triggers
pre
post
preun
postun
verifyscript
changelog

CONCATENATION DU SPECFILE

crée le fichier specfile complet à partir des sections précédentes. Les étapes sont :

ajouter les tags AutoReq / AutoProv
ajouter le tag BuildRoot
ajouter quelques définitions pour ajuster le comportement de rpm
doubles les '%', afin d'eviter que rpm ne les interprète comme des macros.
ajouter '%description' avant la section description
ajouter '%files' avant la section des fichiers
ajouter '%changelog' avant la section des changements ( changelog )

LES TYPES DE PLUGINS

la fabrication de package utilise deux entrées : un fichier specfile, et des fichiers dans l'arborescence buildroot. Il y a donc deux types de plugins :
- ceux qui modifient le fichier specfile (example : demo.plug).
- ceux qui modifient les fichiers (dans buildroot) (example : demofiles.plug).

INTERFACE DES PLUGIN

Les plugin sont exécuté après les interrogations rpm et avant la fabrication du package, dans l'ordre spécifié dans la ligne de commande.
Code de sortie
Les plugin doivent se terminer avec un code de sortie 0 en cas de succès, n'importe quelle autre valeur en cas d'echec.
Variables d'environment
Les plugins utilisent les variables suivantes:
RPMREBUILD_TMPDIR
répertoire des fichiers temporaires. il sera supprimé par rpmrebuild en fin de travail.
RPMREBUILD_PLUGINS_DIR
répertoire des plugins.
RPMREBUILD_COMMENT_MISSING
Si positionné à 'yes' (oui), les fichier manquants sont commentés dans le fichier specfile.
RPMREBUILD_PUG_FROM_FS
Si positionné à 'yes' (oui), les permissions, le proprietaire (uid), le groupe (gid) sont identiques à ceux des fichiers installés, sinon ils sont ceux enregistrés dans la base rpm.
RPMREBUILD_WARNING
Si positionné à 'yes' (oui), produit des avertissement si des fichiers contiennent des caractères d'expension (* ? ).
PATH
Il est positionné à $RPMREBUILD_PLUGINS_DIR:$PATH
LONG_OPTION
contient le nom de l'option (sans --) qui a déclenché le plugin.
RPM_BUILD_ROOT
Pour les plugins qui modifient les fichiers, est positionné à buildroot. Pour les autres : vide.
stdin and stdout
les plugins qui modifient le fichier specfile (option --spec-hange-*)lisent le specfile sur stdin et écrivent le résultat sur stdout. stdout.

EXEMPLES DE PLUGINS

Plusieurs plugins sont fournis à titre d'exemples :
demofiles.plug (change-files) : un plugin de "démo" pour montrer ce que l'on peut faire sur les fichiers
demo.plug (change-spec-*) : un plugin de "démo", pour montrer ce que l'on peut faire sur le fichier spec
uniq.plug (change-spec) : un "vrai" plugin pour trier les lignes et éliminer les doublons sur certaines sections (require, provide ... )
file2pacDep.plug (change-spec-requires) : un "vrai" plugin pour convertir les dependances vers des fichiers en dependances vers des packages
nodoc.plug (change-spec-files) : un "vrai" plugin pour supprimer la documentation d'un package
set_tag.plug (change-spec-preamble) : un "vrai" plugin pour modifier la valeur d'un tag du fichier de spec

PLUGINS' CONVENTION DE NOMMAGE DES PAGES MAN

Si vous écrivez des plugin, vous êtes encouragés à suffixer les pages de manuel en .1rrp, afin que la commande 'man -k rrp' fournisse la liste des plugins pour rpmrebuild installés. Attention, la commande makewhatis doit être lancé pour que les nouvelles pages soient prises en compte.

AUTHORS

Eric Gerbier <gerbier@users.sourceforge.net>
Valery Reznic <valery_reznic@users.sourceforge.net>

See <URL:http://rpmrebuild.sourceforge.net/>.

SEE ALSO

rpm(8), rpmbuild(8), rpmrebuild(1), demofiles.plug(1), demo.plug(1), nodoc.plug(1), uniq.plug(1), file2pacDep.plug(1), set_tag.plug(1), 'man -k rrp' pour la doc sur les plugins fournis.