rpmlint is a tool for checking common errors in rpm packages. rpmlint
can be used to test individual packages before uploading or to check
an entire distribution. By default all checks are processed but
specific checks can be performed by using command line parameters.
The idea for rpmlint is from the lintian tool of the Debian project.
Comments and new checks welcome. Send feedback to
<flepied@mandrakesoft.com>.
Implemented checks:
o Tag checks (TagsCheck).
o Distribution specific checks (MandrakeCheck).
o Binary checks (BinaryCheck).
o Configuration file checks (ConfigCheck).
o Location, permission, group and owner checks (FileCheck).
o suid warnings (FileCheck).
o Signature checks (SignatureCheck).
o FHS checks (FHSCheck).
o Source specific checks (SourceCheck).
o i18n checks (I18NCheck).
o Menu system checks (MenuCheck).
o %post; %pre, %postun and %preun script checks (PostCheck).
o /etc/rc.d/init.d checks (InitScriptCheck).
o Spec file checks (SpecCheck).
o Zip/Jar file checks (ZipCheck).
If you want to change configuration options or the list of checks, use
the global configuration file /etc/rpmlint/config or in the user
configuration file ~/.rpmlintrc.
Configuration files are Python source files and should begin with the
following line:
from Config import *
to load configuration functions.
Configuration functions:
resetChecks() resets the list of checks.
addCheck(check) adds the check to the list of checks to try.
addCheckDir(path) adds a path to look for checks.
setOption(name, value) sets the value of the configuration option.
See below for the list of available options.
addFilter(regexp) adds a filter to remove the output of a check.
Available options:
name type default
========================================================
Vendor string "Mandrakesoft"
Distribution string "Mandrakelinux"
UseBzip2 boolean 1
ValidGroups list of strings
ValidMenuSections list of strings
ReleaseExtension string or None "mdk"
UseVersionInChangelog boolean 1
ExtraMenuNeeds list of strings
ExtractDir string "/tmp"
ValidLicenses list of strings
SystemLibPaths list of strings ('/lib', '/usr/lib', '/usr/X11R6/lib')
ValidShells list of strings ('/bin/sh', '/bin/bash', '/usr/bin/perl')
Packager regex '@mandrakesoft.com|bugs@linux-mandrake.com|https://qa.mandrakesoft.com'
RpmGamesGroup regex 'Games'
DanglingSymlinkExceptions list of pairs (['consolehelper$', 'usermode'],)
ForbiddenWords regex 'Linux.?Mandrake|Mandrake[^ ]*Linux'
ValidBuildHost regex '\.mandrakesoft\.com$|\.mandrake\.org$'
InvalidRequires list of strings ('is', 'not', 'owned', 'by', 'any', 'package')
IconFilename regex '.*\.png$'
PerlVersionTrick boolean 1
CrossCompilation regex '-mandrake-linux-[^/]+$'
UsrLibBinaryException regex '^/usr/lib/(perl|python|menu|pkgconfig|lib[^/]+\.(so|l?a)$)'
UseEpoch boolean 0
UseIndexedJars boolean 1
ValidSrcPerms list of modes (0644, 0755)
KernelModuleRPMsOK boolean 1