2022.6
rpm-ostree v2022.6
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. On the build side here, the new
rpm-ostree container-encapsulate
command will generate "chunked" images.
For more information, see ostreedev/ostree-rs-ext#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.
Notable bugfixes
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.
Internals
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.
Progress continues on porting to 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