Mandriva




Les erreurs fournies par Rpmlint

Cette page sert à expliquer les erreurs fournies par Rpmlint, et la manière habituelle de les régler. Si une erreur n'est pas discutée ici, essayer l'option -i de rpmlint pour avoir plus de précision sur celle-ci.

Vous pouvez aussi utiliser rpmlint -I erreur, pour obtenir la description d'une erreur.

Configuration de Rpmlint

rpmlint se configure dans le fichier ~/.rpmlintrc, ou dans /etc/rpmlintrc. Vous devriez avoir configuré au minimum:

from Config import * setOption("Packager","login@email.org") addFilter("E: .* no-signature") addFilter("W: .* invalid-packager") setOption('Packager', 'Mandrivalinux Team <1.1 http://www.mandrakeexpert.com>|@mandrakesoft.com|@mandrake.org')

Pour en savoir plus, reportez vous à la page de manuel de rpmlint ou à son source code.

Erreurs

binary-or-shlib-defines-rpath

Le binaire ou la bibliothèque partagée déifinit le `RPATH'. En général, c'est mauvais car ça met en dur le chemin de recherche des librairies. Vous allez trouvé probablement un Makefile avec la ligne: gcc test.o -o test -Wl,rpath.

Si le programme utilise "./configure", il est probablement possible de rajouter l'option disable-rpath (verifiez avec ./configure ––help pour voir si l'option est présente).

Vous pouvez chercher le wiki Debian pour plus d'infos sur ce sujet: ( RpathIssue )

Si vous ne pouvez pas le changer facilement, utilisez chrpath -d sur ce fichier à la fin de %build. Dans ce cas, n'oubliez pas de rajouter un " Trash.~BuildRequires: chrpath " à votre spec.

configure-without-libdir-spec

Ce message se présente en général quand vous n'utilisez pas la macro %configure ou %configure2_5x macro pour appeller le script configure. Ils font fonctionner configure avec des options pas défaut afin d'installer tous les fichiers aux bons endroits. Vous pouvez ignorer cette erreur si les sources contiennent un script de configuration qui n'a pas été généré par autoconf.

N'incluez pas de dépendances comme Requires: libdvdread3 dans votre fichier spec. Les dépendances de bibliothèques sont gérées automatiquement, de telle sorte que si votre programme est lié à libdvdread.so.3, le paquet libdvdread3 sera une dépendance automatique.De même, ceci n'est pas portable à d'autres architectures comme amd64, puisque le paquet y est nommé lib64dvdread3. Si vous avez vraiment besoin d'une dépendance à une bibliothèque, par exemple pour forcer la mise à jour à une nouvelle version, utilisez le nom virtuel fournit par le paquet, dans notre exemple, Requires: libdvdread.

invalid-directory-reference

N'incluez pas des fichiers de /tmp ou /home dans votre paquet.

lib-package-without-%mklibname

Si vous séparez des paquets de bibliothèques, vous devriez utiliser la macro %mklibname pour générer le nom du paquet de la bibliothèque. Plus d'informations sur %mklibname et ses usages sont disponibles dans la section usage des bibliothéques.

no-prereq-on

Exemple d'erreur: no-prereq-on rpm-helper

Solution: Ajoutez " ~PreReq rpm-helper " au paquet.

no-signature

Les paquets sont signés pendant la procédure d'upload, donc ignorez ce message ou rajoutez à rpmlintrc: addFilter("E: .* no-signature")

Warnings (Alertes)

dangling-relative-symlink

Le lien symbolique ne pointe nulle part. Si vous êtes certain que le fichier désigné sera présent (par exemple avec un require sur le paquet le contenant), vous pouvez ignorer ce message. Dans le cas contraire, réglez le problème :-)

incoherent-init-script-name

no-default-runlevel

Newimr, Kozaky_dev et Beuz_ - Nov 2004 - Traduction et Relecture.

Goetz Waschk - 12 Mar 2004 (configure without libdir, %mklibname macro)

Emmanuel Blindauer - 01 Mar 2004 (option for disable-rpath)

Goetz Waschk - 26 Feb 2004 (explicit-lib-dependency)

Pascal Terjan - 22 Dec 2003

John Keller - 24 Jan 2004 (style sheets)

KB - Les erreurs fournies par Rpmlint
Version 1.6 modifié par beuz le 11/06/2005 à 07:07

 


Multilinguisme
RSS
RSS

Créateur: newimr le 10/12/2004 à 18:55
(c) Mandriva 2007
1.1-SNAPSHOT.1715