1 The Rpmlint plugin
1.0.1 Description
rpmlint is a tool for checking common errors in rpm packages.
This plugin is responsible for scanning with rpmlint .rpm and .src.rpm packages generated by each component in the
build and report errors and warnings found.
It walks through the directory ${distDir}/project_name/component_name/ looking for packages to be scanned.
It generates an overall report (html) of all the packages belonging to each component with the number of warnings
and errors found. It updates the corresponding metrics in the buildstatus.xml file.
If a report relative to a package is not readable, it is not included in the report nor it contributes to the metrics value.
The config file was edited to filter out the signature check.
1.0.2 Version
rpmlint v. 1.3
1.0.3 Homepage
http://rpmlint.zarb.org
1.1 Activation
1.1.1 Suitability
Suitable for any module which produces rpm packages after the build process.
1.1.2 Execution point
The execution point defines during which command and which target the plugin will be executed.
COMMAND |
BUILD |
TARGET |
postpublish |
1.1.3 Profiles
The profiles must be specified in the configuration in order to activate the plugin.
The plugin profile can be used to enable specific plugins.
The bundle profiles can be used to enable a set of plugins within a specific category.
PLUGIN PROFILES |
rpmlint |
BUNDLE PROFILES |
|
1.2 Deactivation
If this plugin has been activated for a larger set of modules (at project or subsystem level), it is possible to disable it for specific modules using special properties:
NAME |
norpmlint |
DESCRIPTION |
To disable the rpmlint execution for the current module |
NAME |
notest |
DESCRIPTION |
To disable all the plugins registered at TEST target (PRETEST, TEST, POSTTEST) for the current module |
1.3 Input
1.3.1 Required properties
The required properties must be available in order for the plugin to run.
Some of the required properties may have default values which correctness must be check to ensure the correct execution of the plugin.
NAME |
rpmlint.failure.threshold |
DESCRIPTION |
Defines whether a module must fail in case one or more errors/warnings are found: none - No module build failures due to rpmlint. high - The module build is marked as failed if one or more errors are found. low = The module build is marked as failed if one or more warnings are found |
DEFAULT VALUE |
high |
EXAMPLE |
To force module builds to fail in case one or more errors are found, the property must be set as: high |
NAME |
rpmlint.failure |
DESCRIPTION |
If set to True the build is stopped if a module fails. |
DEFAULT VALUE |
false |
EXAMPLE |
To force the build to stop if the module fails, the property must be set as: true |
1.3.2 Other requirements
NONE
1.3.3 Dependencies
NONE
1.4 Output
1.4.1 Module reports
For each module, the output is generated in ${src.location}/reports/rpmlint
The plugin generates ${moduleName}-${configuration}/RPMLINT-${rpmName}.log containing the log of rpmlint for the named rpm.
1.4.2 Global reports
The plugin generates the overall html report index.html with number of warnings and errors found for every rpm of every components.
1.5 Metrics
1.5.1 Overall
The overall metrics are related to the whole build/test and provide a summary of the modules executed.
NAME |
Rpmlint |
VALUE |
Total number of warnings and errors found during the build |
UNIT |
Violations |
TYPE |
integer |
LINKS |
HTML:${workspaceDir}/reports/rpmlint/index.html |
NAME |
Rpmlint rate |
VALUE |
Percentage of modules that have successfully passed the threshold defined by ${rpmlint.failure.threshold} |
UNIT |
modules |
TYPE |
percentage |
LINKS |
HTML:${workspaceDir}/reports/rpmlint/index.html |
1.6 Module
The module metrics are related to a single module and provide its plugin execution details.
NAME |
Rpmlint |
VALUE |
Total number of warnings and errors found during the build for this module |
UNIT |
Violations |
TYPE |
integer |
LINKS |
HTML:${workspaceDir}/reports/rpmlint/index.html |
1.7 Advanced
1.7.1 Register
Verifies the existence of rpmlint
Registers the plugin
1.7.2 Execute
Verifies the existence of user defined properties and looks for packages to be scanned.
Scans packages with rpmlint
1.7.3 Publish
Analyses the result of the scan. Generates a package report and feeds metrics into build-status.xml.
Checks the threashold value.
1.7.4 Finalise
Generates an overall report and overall metrics
-- - 21-Sep-2011