Commit Graph

3 Commits

Author SHA1 Message Date
Jonathan Lebon
8e22075721 RELEASE: Add step to update libdnf's deps
In the latest release, we should've bumped librepo's requirement. It
doesn't use symbol versioning, so we don't automatically get this. At
release time at least, we should just peek at the spec we're baking in
and pick up from that.

Clearly the updated deps are in the buildroot if CI is green, so this
should mostly be a matter of bumping to versions which are already
shipped in Fedora.

See: https://github.com/rpm-software-management/libdnf/pull/1128
See: https://github.com/coreos/rpm-ostree/pull/2644
See: https://bugzilla.redhat.com/show_bug.cgi?id=1943773
2021-03-29 10:37:13 -04:00
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
Timothée Ravier
d71a50796d docs: Import Release page 2020-10-01 12:01:25 -04:00