Skip to content

v2021.9

@cgwalters cgwalters tagged this 19 Aug 19:42
Procedural note: We tagged v2021.8, but never made it an official release because it was belatedly noticed that modularity support wasn't flagged sufficiently experimental.  So the logical history is now v2021.7..v2021.9.

The biggest change here is initial support for modularity, both on the compose side (via a new `modules:` treefile key) and on the client side (via e.g. `rpm-ostree ex module install`) ([#2760](https://github.com/coreos/rpm-ostree/pull/2760)). Note that support for modules is still experimental.

The daemon now periodically logs download progress for the base ostree to the systemd journal.

A new experimental `rpm-ostree override replace --ex-pin-from-repos $package` is now available (new contributor [@Razaloc](https://github.com/Razaloc)).  This makes it easier to pull in packages newer than are in the base image for testing. ([#2905](https://github.com/coreos/rpm-ostree/pull/2905))

The daemon now works when `polkit` is not available ([#3019](https://github.com/coreos/rpm-ostree/pull/3019)).

Some smaller fixes for "ostree-in-container" integration ([#3010](https://github.com/coreos/rpm-ostree/pull/3010), [#3011](https://github.com/coreos/rpm-ostree/pull/3011)).

The `rpmdb` key now supports two new keys: `host` and `target` ([#3002](https://github.com/coreos/rpm-ostree/pull/3002)). The latter causes the rpmdb of the compose to use the native format of the `rpm` version in the compose itself. In general, one probably always wants `target`, which is the new default. See documentation for full details.

Some smaller ongoing oxidation (conversion of C/C++ to Rust) on the order of 500 lines.

The codebase now more consistently uses `GError` on the C/C++ side instead of exceptions.  Related to this, a number of "error prefixing" changes landed which will help debug errors.

Updated to ostree-rs-ext 0.2.2.

Various CI improvements.

Thanks to all contributors!

```
Benjamin Gilbert (2):
      workflows: bump lint toolchain
      workflows: limit permissions to reading repo contents

Colin Walters (43):
      Directly invoke cliwrap code from Rust
      daemon: Move more deployment-variant bits to Rust using treefile
      rust/main: Move all real logic into inner_main()
      Move all error printing into Rust
      main: Add comment noting to use inner_main()
      docs: Add experimental/cliwrap
      upgrader: Inline the check for local assembly
      transactions: Only open up sepolicy once when importing
      Support `rpmdb: host` and default to `target`
      upgrader: Print messages when we're fetching container bits
      Add container image digest and print it in status
      compose: Add error prefixing when writing compose JSON
      db: Prefix error when we fail to load the rpmdb
      os: Minor code style cleanup
      daemon: Authorize uid 0 when polkit is not available
      Move `usroverlay` code into Rust
      compose: Add error prefixing for local pull
      ci: Install system deps before cxxbridge
      build-sys: Install cxxbridge in target/
      Add .copr/Makefile
      Update to glib 0.14 + ostree 0.8 + ostree-rs-ext 0.2
      postprocess: Oxidize directory size counting
      rust: Almost entirely empty out our variant_utils.rs
      origin: Change change handling to saturate at `TRUE`
      Add some more debugging bits when replacing kernel
      deploy: Only hold local variant pointer, not in struct
      origin: Make some package/module mutation functions no-ops for NULL
      daemon: Move more deploy transaction init into execute()
      deploy: Move local_repo_remote_dfd into function scope
      deploy: Move install_local_pkgs into function scope
      deploy: Move package overrides into function scope
      origin: Change add_packages to ignore NULL
      Use gobject-sys via re-exported `glib::gobject_ffi`
      Use gio-sys via re-exported `gio::ffi`
      Use glib-sys via re-exported `glib::ffi`
      rust: Update to ostree-ext 0.2.2 (and deps), use unified import
      daemon: Inline variable declarations for txn progress
      daemon: Inline parsing of ostree progress
      daemon: Fix elapsed_secs
      Oxidize transaction progress rendering
      libdnf-sys: Drop glib dependency
      daemon: Emit transaction progress to journal every 15s (if changed)
      Release 2021.8

Jonathan Lebon (10):
      rust/utils: Mark `:` as shell-safe
      rust/utils: Add safe wrapper for print_treepkg_diff_from_sysroot_path
      daemon/upgrader: Drop unused variable
      core: Drop duplicate querying for enabled repos
      tests/kolainst: Nuke `tests/kola` before regenerating
      Add support for modules
      src: Wrap all throwable CXX calls in try-catch
      src: Simplify CXX_TRY_VAL macro
      core: Disable all modules upfront
      core: Use new API for disabling all modules

Luca BRUNO (7):
      builtins/compose: move /dev preparation to Rust
      builtins/compose: move basearch and pretty-print logic to Rust
      builtins/compose: always return computed input-hash
      builtins/compose: drop an automatic-error-prefix macro
      compose/commit: decouple JSON summary logic, move stats to Rust
      clientlib: add more error contexts
      libpriv/diff: allow missing rpmdb

Rafael G. Ruiz (1):
      override replace: add experimental option ex-pin-from-repos
```

Git-EVTag-v0-SHA512: e6c92bcfd5720059ce7c151f8a085094d333f01f897e79d456f78e5ee861762dcbe8b4bc250aec055f022f1f58644cf7bf424fe483d44d5f9719c73aa8b734fe
Assets 2
Loading