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