# rpm-ostree v2022.2 A major feature in this release is: * Add rpm-ostree ex rebuild command by @jlebon in https://github.com/coreos/rpm-ostree/pull/3340 This means `rpm-ostree` now has experimental support for layering packages defined on a tree file under `/etc/rpm-ostree/origin.d/` which gives us a more declarative way to add packages on top of the OS. At the current time, this only works when run inside an ostree-based container. This work is aimed for [CoreOS layering](https://github.com/coreos/enhancements/blob/main/os/coreos-layering.md)/[ostree native container](https://fedoraproject.org/wiki/Changes/OstreeNativeContainer). We also fixed integration with two major changes coming in Fedora 36: * https://fedoraproject.org/wiki/Changes/Make_Authselect_Mandatory * https://fedoraproject.org/wiki/Changes/RelocateRPMDNFToUsr There is now support for `platform-module` in treefiles, which can be useful for modularity integration at build time. There's an ongoing effort to make use of [cap-std](https://docs.rs/cap-std/latest/cap_std/) and [rustix](https://docs.rs/rustix/latest/rustix/), with some more incremental porting happening in this release. And of course, many other fixes and minor improvements! ``` Aravindh Puthiyaparambil (1): docs: clarify layering tutorial Benno Rice (3): Allow the platform module to be specified in the Treefile. Fix platform_module getter. Document platform-module field. Colin Walters (30): Start using cap-std/rustix instead of openat/nix tree-wide: Replace `nix::get*[ug]id` with rustix equivalents build-sys: Symlink, not hard link `ostree-container` scripts: Replace `authselect-libs` prein composepost: Deal with `/etc/nsswitch.conf` being a symlink to authselect core: When we fail to find a locked package, also print non-matches core: Small tweaks for non-matching package output client: Add context to microdnf failure to exec ci: Try using next so we pick up `microdnf` container-image: Test installs in a container packaging: Add `Recommends: skopeo` ci: Switch back to `testing-devel` README.md: Link to ostree native container change docs: Give a kernel override example too Bump ostree-ext and cap-std core: Honor `repo-packages` in treefile on client too treefile: Don't bail out if `/etc/rpm-ostree` doesn't exist ex-rebuild: Print something in the case where we found no files treefile: Fix parsing of derived config fields docs/container: Update for recent changes treefile: Use `Deref` trait for something like inheritance composepost: Do replace `altfiles` in `/etc/authselect/nsswitch.conf` `ex rebuild`: Drop check gating on `packages` key Add a `Dockerfile.containerci` treefile: Also error if derive is nonempty for client side treefile: Fix naming of `assert_empty()` Revert "composepost: Do replace `altfiles` in `/etc/authselect/nsswitch.conf`" Bump to cap-std-ext 0.24 tests/container-image: Support old rhel8 podman Bump to ostree-ext 0.6.3 Jonathan Lebon (24): composepost: Add comment re. tmpfiles.d conversion tests/compose: check for /run/ostree-booted in unified mode rust: const-ify `OSTREE_BOOTED` path compose: Support `/run/ostree-booted` also in legacy mode rust/treefile: Document `extra` struct member a bit more rust/treefile: Sort compose knobs into "base" and "derivation" rust/treefile: Simplify `error_if_nonempty` core: Add new `rpmostree_context_new_container` rust/treefile: Add client treefile support Stabilize `initramfs-etc` rust/treefile: Factor out parsing and postprocess core: Connect callback to dnf context state changes rust/treefile: Also validate treefile when creating from string rust/treefile: Don't support workdir for clients rust/treefile: Support creating client from /etc dropins Add `rpm-ostree ex rebuild` command app/pkg-builtins: Use container backend for installs Finish dropping microdnf dependency rust: Fix `cargo clippy` warnings rust/treefile: Support creating client from /etc dropins Add `rpm-ostree ex rebuild` command app/pkg-builtins: Use container backend for installs Finish dropping microdnf dependency composepost: Remove /usr/lib/sysimage/rpm dir before symlinking Joseph Marrero (1): docs/layering: Tutorial on using the rpm-ostree layering feature Luca BRUNO (4): daemon: port revision-string parser to Rust daemon/donwload-pkgs: fix a wrong error return libpriv/core: recursively create /var/lib/rpm-state libpriv/importer: log spurious content for debugging Timothée Ravier (3): docs: Match title and link for ex-container page docs: Add page for `override replace --experimental` docs/countme: Update doc links and trigger frequency ``` ## New Contributors * @aravindhp made their first contribution in https://github.com/coreos/rpm-ostree/pull/3345 **Full Changelog**: https://github.com/coreos/rpm-ostree/compare/v2022.1...v2022.2