A major new feature in this release is initial support for "chunked" ostree containers.
The client (and part of the build side) was released in [ostree-ext 0.7](https://github.com/ostreedev/ostree-rs-ext/releases/tag/ostree-ext-v0.7.0). On the build side here, the new
`rpm-ostree container-encapsulate` command will generate "chunked" images.
For more information, see https://github.com/ostreedev/ostree-rs-ext/issues/69
Also relating to containers, `override replace` and `override remove` now work in container builds.
The `rpm-ostree compose extensions` command now supports a `--rootfs` switch to operate directly on a rootfs rather than an ostree ref.
rpm-ostree should now work on CentOS Stream 9 systems without polkit.
We work around kernel packages that have absolute paths in their `.hmac` files.
We now correctly detect and error out when in a container environment for commands that do not support it.
We adopted `clang-format` and reformatted the whole source tree for consistency.
Significant work landed on canonicalization our representation of state in the treefile (not "origin"). For more information, see [this issue](https://github.com/coreos/rpm-ostree/issues/2326).
Progress continues on porting to [cap-std](https://docs.rs/cap-std).
We fixed several clang `scan-build` warnings.
Several CI reliability improvements landed.
Oxidation continues! Some code was rewritten in Rust (from appoximately 17% of the code to 19%).
We also started adopting Rust inline `format!`, and fixed some clippy lints.
Special thanks to first-time contributor Jonathan Dickinson!
```
Benno Rice (7):
Ignore .vscode and libgnlx-config.h
Separate includes that need to retain non-alphabetic ordering.
Add a clang-format configuration file.
Add a pass to ensure C/C++ code under `src` meets style.
Reformat all C/C++ code under src with clang-format.
Fix handling of lockfile parent directory, port to cap_std
Fix clippy warning.
Colin Walters (43):
Bump to containers-image-proxy 0.4.1
Require clang-format on all C/C++ files
Update to cap-std-ext 0.23.3
ci: Only run one instance of `clang-format`
docs: Mention mount point mutability
daemon/sysroot: Use iterators more
compose: Complete porting to cap-std
client: Don't invoke `systemctl start` if unit is already active
client: Warn about reliability of `--check` and `--preview`
extensions: Port to cap-std
Bump to cap-std 0.24.2, use `try_exists()`
lockfile: Use new internal `open_dir_of` helper
composepost: Also remove stamp file created by recent RPM `%posttrans`
rpmutil: Ensure libdnf is initialized when loading rpmdb
ci: Add Github action flow for testing container path
ci: Be verbose for tar extraction
cli: Opt-in some CLI verbs to working inside ostree containers
container: Cleanup BDB rpmdb leftovers after installs
compose extensions: Support `--rootfs`
extensions: Validate we don't have `--repo` and `--rootfs`
ci: Drop skopeo override
composepost: Make rpmdb location `pub(crate)`
architecture: Motivate base vs extensions split
man: Document that `rebase` and `deploy` will also update layered packages
spec: BR `libassuan-devel` on rhel8
daemon: Handle `org.freedesktop.DBus.Error.ServiceUnknown` too
core: Port to cap-std
compose: Fix handling of base rev
daemon: Port to cap-std
extensions: Port to cap-std
testutils: Port to cap-std
testutils: Port to rustix for `Mode`
partial, tree-wide: Switch to using inline variables in `format!`
daemon: Move tokio handle reference into daemon
core: Minor cleanups for kernel hmac bits
ci: Move legacy compose tests to GH actions
ci: Rename some of the GH actions
Update to ostree-ext 0.7, add new `container-encapsulate`
ci: Move codestyle check into our single GH actions flow
ci: Pull buildroot from CI registry
importer: Initialize cpio offset
tree-wide: Rework C++ try/catch to GError bridging
Release 2021.6
Jonathan Dickinson (2):
use basename when cleaning up the .vmlinuz.hmac file
port rpmostreed_generate_object_path to rust
Jonathan Lebon (68):
packaging: Canonicalize tarballs to uid/gid 0
packaging/spec: Don't own /usr/share/dbus-1/system-services
Makefile: add `make clang-format` to format tree
treefile: Don't serialize override-commit if `None`
libpriv/container: Drop treefile generation helper
libpriv/container: Add missing includes
scripts: Also ignore kernel-debug-core.posttrans
.editorconfig|.vimrc: Adapt to .clang-format spec
daemon/upgrader: Cleanup unused variables
treefile: Drop new_from_fields()
daemon/upgrader: Remove misleading try/catch
libpriv/util: Rename CXX_TRY to ROSCXX_TRY and add CXX_TRY
libpriv/util: Add `CXX` and `CXX_VAL` macros
tree: Add missing CXX wrapping
tree: Remove unneeded CXX wrapping
tree: Remove more try/catch blocks
treefile: rework validation for container flow
app/override: Support override remove in container flow
app/override: Support override replace in container flow
vmcheck/history: delete journal hack
rust/origin: support converting treefile to origin
libpriv/origin: Uninline parse_deployment
libpriv/origin: Drop classify_refspec
libpriv/origin: Pass RpmOstreeOrigin directly to helper
libpriv/origin: Drop get_full_refspec
libpriv/origin: Rename has_packages to has_any_packages
libpriv/origin: Delete unused modules_install
rust/origin: Genericize keyfile string list parsing
libpriv/origin: Drop unused get_string
libpriv/origin: Move ref/unref higher up
rust/utils: Add OptionExtGetOrInsertDefault
libpriv/origin: Stop commenting override commit version
rust/origin: Drop duplicate check for `container-image-reference`
core: Make refspec classification infallible
libpriv/origin: Make set_rebase infallible
core: Oxidize rpmostree_refspec_classify
rust: Convert `map().flatten()` to `and_then()`
rust/treefile: Support constructing from YAML strings
libpriv/origin: Drop `G_[BEGIN|END]_DECLS` wrappers
libpriv/origin: Label mutability of all public functions
libpriv/origin: Move source of truth to treefile
libpriv/origin: Back get_refspec() by treefile
libpriv/origin: Back get_custom_description() by treefile
libpriv/origin: Back get_packages() by treefile
libpriv/origin: Back has_modules_enable() by treefile
libpriv/origin: Back get_local_packages() by treefile
libpriv/origin: Back get_override_remove() by treefile
libpriv/origin: Back get_overrides_local_replace() by treefile
libpriv/origin: Back get_override_commit() by treefile
libpriv/origin: Back get_initramfs_etc_files() by treefile
libpriv/origin: Back get_regenerate_initramfs() by treefile
libpriv/origin: Back get_initramfs_args() by treefile
libpriv/origin: Back get_unconfigured_state() by treefile
libpriv/origin: Back has_any_packages() by treefile
libpriv/origin: Back may_require_local_assembly() by treefile
libpriv/origin: Back dup_keyfile() by treefile
libpriv/origin: Back get_cliwrap() by treefile
libpriv/origin: Make sync_treefile() void
libpriv/origin: Use CXX_MUST_VAL in sync_treefile()
libpriv/origin: Add sync_origin()
libpriv/origin: Use set_override_commit() instead of treefile resync
libpriv/origin: Fully back override-commit by treefile
rust/treefile: Make initramfs-etc a set
libpriv/origin: Use initramfs_etc_files_track() instead of treefile resync
libpriv/origin: Use initramfs_etc_files_untrack() instead of treefile resync
libpriv/origin: Use initramfs_etc_files_untrack_all() instead of treefile resync
libpriv/origin: Fully back initramfs-etc files by treefile
ci: Drop unnecessary `parallel`
Luca BRUNO (11):
libpriv/postprocess: always set exit code
daemon/utils: avoid superfluous gotos
daemon: port some sysroot core logic to Rust
libpriv/import: implement autocleanup for rpmfd
daemon/dbus/os: remove some goto statements
daemon/dbus: port some deployment logic to Rust
libpriv/unpacker: tweak error handling
libpriv/unpacker: implement autocleanup for archive
libpriv/editor: rework error handling to avoid goto statements
app: implement auto-cleanup for TransactionProgress
daemon: simplify some error cases
Timothée Ravier (1):
packaging: Remove unneeded Windows binaries from vendor snapshot
dependabot[bot] (13):
build(deps): bump libglnx from `88da8dd` to `c71f7ae`
build(deps): bump once_cell from 1.9.0 to 1.10.0
build(deps): bump termcolor from 1.1.2 to 1.1.3
build(deps): bump regex from 1.5.4 to 1.5.5
build(deps): bump curl from 0.4.42 to 0.4.43
build(deps): bump anyhow from 1.0.55 to 1.0.56
build(deps): bump cxx from 1.0.65 to 1.0.66
build(deps): bump cxx-build from 1.0.65 to 1.0.66
build(deps): bump libc from 0.2.119 to 0.2.121
build(deps): bump cap-tempfile from 0.24.1 to 0.24.2
build(deps): bump tracing from 0.1.31 to 0.1.32
build(deps): bump paste from 1.0.6 to 1.0.7
build(deps): bump tracing-subscriber from 0.3.9 to 0.3.10
```
Git-EVTag-v0-SHA512: 4ab108f571c182ce9a2dc4078240af6095a42383bbf544f8859a54896b046389c0e81f368f403ff75a0ed6ad4cc31289b7c87c47bbd7e8f43bb7bfc50b6c2c89