rpm-ostree/tests/compose
Jonathan Lebon 271954a41c app: Add rpm-ostree compose extensions
This adds support for a new `rpm-ostree compose extensions` command`
which takes a treefile, a new extensions YAML file, and an OSTree repo
and ref. It performs a depsolve and downloads the extensions to a
provided output directory.

This is intended to replace cosa's `download-extensions`:
https://github.com/coreos/coreos-assembler/blob/master/src/download-extensions

The input YAML schema matches the one accepted by that script.

Some differences from the script:
- We have a guaranteed depsolve match and thus can avoid silly issues
  we've hit in RHCOS (like downloading the wrong `libprotobuf` for
  `usbguard` -- rhbz#1889694).
- We seamlessly re-use the same repos defined in the treefile, whereas
  the cosa script uses `reposdir=$dir` which doesn't have the same
  semantics (repo enablement is in that case purely based on the
  `enabled` flag in those repos, which may be different than what the
  rpm-ostree compose ran with).
- We perform more sanity-checks against the requested extensions, such
  as whether the extension is already in the base.
- We support no-change detection via a state SHA512 file for better
  integration in cosa and pipelines.
- We support a `match-base-evr` key, which forces the extension to have
  the same EVR as the one from a base package: this is helpful in the
  case of extensions which complement a base package, esp. those which
  may not have strong enough reldeps to enforce matching EVRs by
  depsolve alone (`kernel-headers` is an example of this).
- We don't try to organize the RPMs into separate directories by
  extension because IMO it's not at the right level. Instead, we should
  work towards higher-level metadata to represent extensions (see
  https://github.com/openshift/os/issues/409 which is related to this).

Closes: #2055
2021-01-23 17:12:09 +01:00
..
disabled-test-boot-location-new.sh Disable boot-location: new test 2020-10-30 11:55:38 +01:00
libbasic-test.sh tests/compose: Check filecaps of arping instead of ping 2020-10-14 03:44:19 +02:00
libcomposetest.sh compose: Add --ex-lockfile-strict 2020-04-17 15:48:40 -04:00
runtest.sh tests/compose: Target FCOS 31, move off of PAPR 2020-01-08 16:42:54 +01:00
test-basic-unified.sh app: Add rpm-ostree compose extensions 2021-01-23 17:12:09 +01:00
test-basic.sh compose: Use static enablement for ostree systemd services 2020-12-02 22:40:31 +01:00
test-boot-location-modules.sh tests/compose: Target FCOS 31, move off of PAPR 2020-01-08 16:42:54 +01:00
test-excludes.sh treefile: Add exclude-packages 2020-02-05 21:02:06 +01:00
test-install-langs.sh tests: Loosen regexp for French date 2020-10-14 03:44:19 +02:00
test-installroot.sh tests/compose: Target FCOS 31, move off of PAPR 2020-01-08 16:42:54 +01:00
test-lockfile.sh manifest: Add lockfile-repos field 2020-04-19 09:17:17 -04:00
test-machineid-compat.sh tests/compose: Target FCOS 31, move off of PAPR 2020-01-08 16:42:54 +01:00
test-misc-tweaks.sh Make /run a directory in scripts 2020-10-22 16:43:00 -04:00
test-mutate-os-release.sh tests: Make more resistant to releasever changes 2020-06-02 19:37:43 +02:00
test-rojig-e2e.sh Add --enable-rojig, disable by default 2020-10-22 15:38:50 -04:00
test-rojig-pure.sh Add --enable-rojig, disable by default 2020-10-22 15:38:50 -04:00
test-write-commitid.sh tests/compose: Target FCOS 31, move off of PAPR 2020-01-08 16:42:54 +01:00