This plugin checks for usual mistakes and problems in the source packages submitted by users. The core of the analysis is done by the source-checker Perl script. This script checks, for example, if there is a changelog file, if there is a proper license in the SPEC file or if the patch is referenced in the changelog.
Clone this repository:
git clone https://github.com/openSUSE/openSUSE-release-tools.git
Link the plugin and the library in ~/.osc-plugins
or /var/lib/osc-plugins
.
cd openSUSE-release-tools ln -sr ./osc-check_source.py ./osclib ~/.osc-plugins
The program will also search some external scripts (like check_source.pl) inside the cloned directory (following the symlink).
This program is expected to be executed unattended, usually in a loop or in a cron job.
The most important checks are done in the Perl script source-checker, and can be enumerated as:
-
Check if there are more than one action in the request.
-
Check if the request comes from a valid devel project.
-
Check if the package has a proper name.
-
Check if the service is running in mode=localonly
-
Check if the *.changes file is present.
-
Check if there is a SPEC file with the same name as the source container.
-
No Vendor line is allowed.
-
The changelog is updated.
-
There is a proper license in the SPEC file.
-
The added / deleted patch is documented in the changelog.
-
rpmlint report is good.