This commit implements the ability to show for packages that do not
belong to any ring the same details that are shown for packages that do
live in rings. Due to concerns about compatibility and volume of the
output the feature is hidden behind a new --adi-details command
line flag.
For debugging it's very useful to use @memoize(session=False), but that
did not work because the self parameter pickled to a different key for each
run, preventing cache hits. Avoid the self parameter.
Some projects (such as SLFO) are using product-composer, and
they build and publish in the 'product' repository.
If the 'product' repository is configured in the project meta,
ensure it gets configured when freezing the staging.
Signed-off-by: Eugenio Paolantonio <eugenio.paolantonio@suse.com>
In the staging areas used by maintenance, the patchinfo packages are staged together
with the source packages, and because of the way they work, they collect binaries
from the source packages around.
This causes binaries to be reported as duplicated, so ignore patchinfos.
devscripts has a sub-flavor for checknashisms that is required in Ring1 (for rpmlint)
The flavor "" is technically not required, but removing the package would make the
sub-flavor vanish as well.
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.