This has multiple benefits:
* Easier to interface with the python code that calls it
* Uses the osc python interface for connection and authentication handling
* Allows to drop the bundled OBS code in the bs_copy directory
version_calculate() calls describe in the current working dir, but that fails in
git repositories without any commits in them. Actually we should be calling this
in the osc-release-tools repository instead, hence fixing this issue.
Previously it went through each package's provides->required_by chain.
This does not deal with cycles correctly and there was only a hack to deal
with single-package cycles.
Instead, recursively walk through all required packages, starting from the
build enabled images and take note of all needed source packages.
This also handles _multibuild flavors as separate packages.
A dict mapping linked package to linking package won't work, there are multiple
linking packages which previously overwrote each other. Turn it around.
After freeze, /standard needs to rebuild, which then triggers
the pipelines to perform installcheck, recalculate the media and
enable build of /images.
Fixes issue#2817
This replaces #1304 with a more brute force approach to fix not only
32bit libs but all failures we see on i586. We waste so much energy
retrying failed builds, it's really not worth it not trying i586 on
adi.
We will check if there are approved pkglistgen comments and if so, apply
them to the target. For this we need to parse the generated markdown, so
refactor both in a common class.
There diff is applied, but not yet commited in this commit
With the current pipelines, we enable build of the images repository
once everything in /standard is build-succeeded and repo-checker passed.
Let's go the last mile and disable images when we check in the staging.
This should save some OBS build power (not building ISO images before the
stagings are actually ready) and also some openQA (not testing ISO images
before stagings settle)
I can foresee that sometimes an RM would still want to have preliminary
testing done - in which case the images repo can be manually build enabled
(or the pipeline be triggered to go beyond repo-checker, as it likely also
needs a recalculation of the content)