rpmlint/README

110 lines
3.9 KiB
Plaintext

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 applicable checks are
performed but specific checks can be performed by using command line
parameters.
rpmlint can check binary rpms (files and installed ones), source rpms,
and plain specfiles, but all checks do not apply to all argument
types. For best check coverage, run rpmlint on source rpms instead of
plain specfiles, and installed binary rpms instead of uninstalled
binary rpm files.
The idea for rpmlint is from the lintian tool of the Debian project.
Comments and new checks welcome. See the project home page at
http://rpmlint.zarb.org/ for mailing list information, bug tracking
system and other project resources.
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).
o Pam configuration file checks (PamCheck).
o Rpm file checks (RpmFileCheck).
If you want to change configuration options or the list of checks, use
the global configuration files /etc/rpmlint/*config or the user
configuration file $XDG_CONFIG_HOME/rpmlint (~/.config/rpmlint if
$XDG_CONFIG_HOME is empty or not set).
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, and
removeFilter(regexp) removes one (for use eg. in per-user configuration
files to remove filters added in system config files).
Available options:
name type default
========================================================
BadnessThreshold integer -1 (< 0 means disabled)
DanglingSymlinkExceptions list of pairs (['consolehelper$', 'usermode'],)
Distribution string ""
ExtraMenuNeeds list of strings
ExtractDir string tempfile.gettempdir()
ForbiddenWords regex ''
IconFilename regex '.*\.png$'
InvalidRequires list of regexps see DEFAULT_INVALID_REQUIRES in
TagsCheck.py
KernelModuleRPMsOK boolean True
MaxLineLength integer 79
MetaPackageRegexp regex '^(bundle|task)-'
Packager regex ''
PerlVersionTrick boolean True
ReleaseExtension regex or None ''
RpmGamesGroup regex 'Games'
SkipDocsRegexp regex '\.(rtf|x?html?|ml[ily]?)$'
StandardGroups list of strings see DEFAULT_STANDARD_GROUPS in
FilesCheck.py
StandardUsers list of strings see DEFAULT_STANDARD_USERS in
FilesCheck.py
SystemLibPaths list of strings ('/lib', '/usr/lib', '/usr/X11R6/lib')
UseBzip2 boolean True
UseLzma boolean False
UseXz boolean False
UseDefaultRunlevels boolean True
UseEpoch boolean False
UseIndexedJars boolean True
UseRelativeSymlinks boolean True
UseVersionInChangelog boolean True
UsrLibBinaryException regex '^/usr/lib/(perl|python|menu|pkgconfig|lib[^/]+\.(so|l?a)$)'
UseUTF8 boolean (autodetected)
UseEnchant boolean True (falls back if Enchant is N/A)
ValidBuildHost regex ''
ValidGroups list of strings
ValidLicenses list of strings
ValidMenuSections list of strings
ValidShells list of strings ('/bin/sh', '/bin/bash', '/usr/bin/perl')
ValidSrcPerms list of modes (0644, 0755)
Vendor string ""