On Tue, 2020-06-09 at 21:07 +0200, Thomas Renninger wrote:
Hi,
I wonder how I can check for auto-factory bot failures prior openSUSE:Factory submission.
I now know there are the additional checks I can explicitly run and which seem not be checked with each build via rpmlint:
osc service localrun download_files osc service localrun source_validator
Are there more?
zypper se obs-service - not all of them make a whole lot of sense for your use case download_files and source_validator are the two services factory auto will invoke. Then it has a bunch of added logic on top, like for example (incomplete list) * source package name matches the Name: tag (nothing more confusing to debug than superpackage.src.rpm being produced by openSUSE:Factory/lamepkg - I don't want to debug that, so I don't accept them; the bot helps me) * A changes entry is added (SRs without diff on the .changes are declined) * Package is actually submitted from a devel project * No setBadness in rpmlintrc (setBadness is great during development, which is why we can't use rpmlint to warn on it)
Can't the checks be done in rpmlint?
If you look at above list: most of this info is not available during a package build - so rpmlint can't be useful at all.
eosc service localrun --help tells me it executes all: localrun lr run all services except the ones with mode "buildtime", "disabled", or "serveronly" (deprecated)
But I still have to specify source_validator explicitly and I cannot see how to find which validators that can be run via localrun do exist.
eosc service localrun --help should at least list available validators?
it's about services - not validators. One service just happens to be called 'source_validator'
Here some stuff I run into recently which could certainly be checked prior factory submission (packages built fine):
Attention, cobbler-rpmlintrc is not mentioned in spec files as source or patch.
ERROR: download_files is configured to fail when the upstream file is different than the committed file... this is the case! Source URLs are not valid. Try "osc service localrun download_files".
The buildroot has no access to the internet so can't download files. We build what you give to build. source_validator verifies that you actually REALLY submit what you CLAIM you submit.
Attention, License is not mentioned in spec files as source or patch.
Any file/patch you add needs to be listed - or they won't end up in the src.rpm; osc build copies all of $pwd into the build root (so does build on osc - all of the package files are copied into the buildroot); with sufficent logic, this probably could be checked by rpmlint - but then this starts drifting between distro versions - think about exceptions for debian files, ebuild, whatever else there might come. Cheers, Dominique