Releases: coreos/rpm-ostree
2018.9
https://github.com/projectatomic/rpm-ostree/releases/tag/v2018.9
This is the first release which hard-requires the new staging feature.
We consider the feature to be stable now, though some users have
encountered issues on slower disks during deployment finalization. This
should be alleviated in the latest OSTree release (v2018.9) which
increased the service timeout. See:
#1568
PR #1546
Related to the above, failures that occurred during finalization of
staged deployments will now be prominently displayed in the output of
rpm-ostree status
on reboot.
PR #1601
And related to rpm-ostree status
, note that the JSON output provided
by --json
should now be much less spammy as the package list is now
filtered out.
PR #1577
While rpm-ostree hard depends on Rust, we are only slowly rewriting
code. There are a few reasons for this; one is that any rewrite entails
risk. However, the "treefile" parsing code is among the ugliest, and
hence was a good candidate for oxidation. The new Rust treefile parsing
code (for composes) much better handles inheritance between treefiles,
among other things.
(According to tokei, the percentage of Rust code increased from 1.7% in
v2018.8 to 2.6%)
One additional note about our oxidation process: we now enforce
compatibility at a specific rustc version. That version for now is
1.26.1 to match the current version in the Red Hat Developer Toolset.
PR #1606
A lot of internal preparatory cleanup landed for adding a new
compose rojig
command dedicated to that:
#1081 The
compose tree --ex-output-rojig-set
option has been removed. If you
want to play with rojig in the current release, use compose tree
and
then ex commit2rojig
.
We now override the %post scripts for a few packages in CentOS/RHEL7; at
least an Atomic Host-like package set can be built using
--unified-core
which brings faster build speeds.
PR #1612
The layering logic learned to be smarter about re-using the rpmdb in
current deployments to avoid checking out the whole tree upfront. This
should allow some rpm-ostree layering operations to be much
lighterweight that before.
PR #1502
Related to layering, rpm-ostree now no longer overrides the
metadata_expire
option of repositories. In practice, this should mean
that e.g. the Fedora stable repository will be refreshed less often than
necessary.
PRs #1562, #1587
There have been more reports of the ex livefs
feature potentially
corrupting the bootloader symlinks, rendering the system unbootable. As
such, the feature is now gated behind an explicit --i-like-danger
switch until we investigate the issue further.
PR #1622
The db diff
command now learned to automatically diff against the
rollback deployment if there is no pending deployment. This is useful to
see the package diff after rebooting into an update.
PR #1565
Micah Abbott contributed fixes to our vmcheck
testsuite to make it
easier to run it against an existing host without overlaying the built
rpm-ostree binary.
PR #1555
Special thanks as well to our first-time contributors Christian Glombek,
Michael Nguyen, and Robert Fairley!
Christian Glombek (1 PR, 1 commit)
compose: Print version number (#1637)
Colin Walters (43 PRs, 63 commits)
rust: Use debug=true for release builds (#1550)
ci: Stop installing python-{sphinx,devel} (#1551)
compose: Remove support for `ex-rojig-spec` in treefile (#1558)
core: Stop overriding metadata_expire (#1562)
compose: Split off composeutil.[ch] (#1564)
compose: Add the timestamp to JSON metadata as ISO8601 (#1569)
compose: Drop combined ostree+rojig compose tree (#1570)
postprocess: Make autovar.conf world-readable (#1571)
Split cbindgen to separate build, support external version (#1573)
compose: Have first-one-wins semantics for rojig parsing (#1576)
core: Fix segfault if no selinux-policy package (#1578)
rust/treefile: Fix the type of `add-files`. (#1581)
build-sys: Propagate Automake verbose mode to Rust/cargo (#1583)
build-sys: Inject Automake's default CXXFLAGS to libdnf by default (#1586)
Fix cache_age handling for compose and client-side (#1587)
rust/treefile: Use the c_utf8 crate (#1588)
bwrap: Add APIs to set up bind mounts (#1590)
core: Maintain /usr/etc as /etc when running scripts (#1592)
bwrap: Also drop constructor direct bwrap arguments (#1593)
compose-tests: Use yaml.safe_dump (#1597)
compose: Support not specifying a ref (#1603)
composeutil: Test for ability to open new /dev/null (#1604)
rust/treefile: Include filename in error when parsing (#1607)
compose: Also port one passwd bit to using Rust treefile (#1610)
postprocess: Add missing newline to os-release message (#1611)
scripts: Fully neuter microcode_ctl scripts everywhere (#1623)
Switch to ISO8601 timestamps in more places (#1624)
rust/treefile: Use macros to reduce redundancy in treefile merging (#1631)
build-sys: Fix `make rustfmt`, and run it (#1635)
PR: #1552
compose: Fix double-parsing of first included treefile
compose: Update to decl-and-init coding style
PR: #1559
rust/bindgen: Add an autoptr cleanup for our struct
build: Regenerate rpmostree-rust.h if cbindgen.toml changes
PR: #1561
commit2rojig: Take a (YAML) manifest, not a spec file
tests: Add rojig spec into base config
PR: #1563
treefile: Redo rojig_spec to be Box<CStr>
build-sys: Rework Rust --frozen logic
PR: #1574
compose+rust: Parse includes via Rust too
tests: Add a test for inheritance order of `postprocess`
PR: #1580
rust/treefile: Add support for parsing JSON too
rust: Run rustfmt
PR: #1585
rust/bindgen: Use #pragma once
build-sys: Add a `rust-test` target
rust: Make io::Read a generic again
(and 3 commits from other authors)
PR: #1591
core,scripts: When no cachedir+unified-core, disable rofiles-fuse
core: Apply s{u,g}id consistently on checkout
importer: Don't import libselinux .LOCK files
PR: #1600
rust/lib: Rework fd helpers to consistently lseek()
compose: Move opening passwd/group files into Rust
tests: Add validation for provided passwd/group files
lib/rust: Add a helper to convert the raw pointer
compose: Move "serialized treefile" into Rust ownership
PR: #1601
build-sys: Just error out if building with multiple uids
rust/lib: Remove unnecessary integer casts
(and 4 commits from other authors)
PR: #1612
scripts: Correctly override RHEL7 glibc-common.post
scripts: Neuter RHEL7 pam and microcode_ctl
PR: #1616
compose: Add a helper to convert treefile → treespec
compose: Drop duplicate addition of arch- and bootstrap pkgs
PR: #1618
compose: Lower metadata logic for read/generate into a helper
compose; Lower `add-files` read into composeutil
compose: Clean up passwd/group injection API a bit
PR: #1630
Lower initial SELinux policy load from compose to core
tests/compose: Use workdir in tmpdir
Jonathan Lebon (17 PRs, 34 commits)
Hard require staging (#1546)
daemon/utils: Filter out rpmostree.rpmdb.pkglist (#1577)
libpriv/scripts: Add rpmdb query sanity checks (#1584)
libpriv/postprocess: Handle ENOTEMPTY from renameat (#1589)
postprocess: Add ostree-finalize-staged.path (#1617)
app/livefs: Require --i-like-danger switch (#1622)
Release 2018.9 (#1633)
PR: #1502
tests/vmcheck: Create correct base commits from layered
upgrader: Reuse existing rpmdb checkout if available
PR: #1554
packaging: Don't vendor bundled libcurl
packaging: Use standard strict mode header
PR: #1560
libpriv/util: Add getter for layer version
libpriv: Add simpler base layer getter
postprocess: Don't copy base rpmdb when layering
PR: #1565
app/db-diff: Diff against rollback if no pending
app/db-diff: Factor out helper printing function
app/db-diff: Drop redundant check
PR: #1585
ci: Use continuous image instead of rebasing to it
ci/compose: Use host repos for building rpm-ostree too
ci: Stop rebasing FAH on updates branch
(and 3 commits from other authors)
PR: #1594
upgrader: Output msg when staging deployment
app/start-daemon: Drop unused callbacks
PR: #1601
rust/journal: Adapt for el7 platforms
status: Print systemd or ostree staged failure msg
packaging: Nuke more vendored sources
status: Detect if staging failed in previous boot
(and 2 commits from other authors)
PR: #1606
ci: Add rust-min-version-check
ci: Split out script to install deps
ci/build.sh: Drop unnecessary `pkg_install cargo`
PR: #1620
libpriv/passwd-util: Fix leaks on error path
core: Fix NULL pointer dereference
daemon: Check if outvar is provided before assigning
PR: #1621
ci: Make `adduser` invocation idempotent
ci: Drop CI_PKGS and epel-release in `.papr.yml`
Micah Abbott (2 PRs, 2 commits)
vmcheck/misc-1: skip the overlay check when needed (#1555)
man: add note about pinned deployments when using cleanup (#1599)
Michael Nguyen (1 PR, 1 commit)
app/status: line wrap RemovedBasePackages (#1632)
Robert Fairley (1 PR, 2 commits)
PR: #1548
initramfs: Return error when --arg specified without --enable
initramfs: Print regeneration status for pending deployment
Git-EVTag-v0-SHA512: ba6c33a74f83b9173d1723fbb929633ea3162bb70cd2c38f9f880618025e10854badd35dceb5ada219020ec23b93f3d539377ad5c8b107d713d9d8493bed35f5