We're continuing down the path of preparing for smooth automatic
updates; a major part of that is enabling the "staging" mode by default.
Several fixes landed in the test suite and codebase in preparation for
this.
Also related to automatic updates, the `rpm-ostree status` command has
been enhanced to display the systemd units, making it more obvious how
things work.
PR: #1432
The YAML treefile mode now rejects unknown keys, and handles
architecture-specific packages. We realize the former is a compatibility
break, but we're going to do it anyways since we assume few people have
made a hard switch to YAML already.
PR: #1459, #1468
For a long time now, rpm-ostree has contained two server-side build
paths; one using libdnf in a "classic" way, and the other is "unified
core", which is now stabilized as `rpm-ostree compose tree
--unified-core`. It can be very significantly faster, and also paves
the way to running fully unprivileged. `--unified-core` is implicitly
used for rojig mode. The only reason not to use it is that some RPMs
may not be compatible with it - e.g. pam in CentOS7. At some point we
may add an override for some of the base packages.
PR: #1465
Some preparatory work landed to stabilize the "rojig" mode for
rpm-ostree. Previously, each build configuration would need to have a
copy of the spec file, but it contained too many implementation details.
YAML treefiles can now contain a small `rojig` entry, and the split-out
spec file (`ex-rojig-spec`) is deprecated.
PR: #1484
For "finger compatibility" with yum/apt and similar tools, we added an
`rpm-ostree update` → `rpm-ostree upgrade` alias.
PR: #1449
We discovered that `rpm-ostree ex livefs --replace` could corrupt the
bootloader configuration if a kernel update was pending, see:
https://github.com/projectatomic/rpm-ostree/issues/1495
It is now renamed/hidden as `rpm-ostree ex livefs
--dangerous-do-not-use-replace`, and we are discussing a way to make it
safe.
PR: #1497
There were a few fixes related to rpm-ostree's interaction with librpm.
Notably, this release disables a new librpm payload checksum at layering
time, since rpm-ostree already verifies packages when they are initially
imported into the repo.
PR: #1469, #1492
The documentation for the new `machineid-compat` treefile option was
updated to reflect the fact that the system must be booted with `rw` so
that systemd can write `/etc/machine-id` on the first boot. This is
related to the ongoing work for Fedora CoreOS to use Ignition and
rpm-ostree together.
PR: #1487
There was an issue with the way package diffs were printed when a
pending deployment was available in the output of the `status` command;
this caused many more packages to be marked as updates than there
actually were. This is now fixed.
PR: #1455
The `install` and `uninstall` commands learned two new switches:
`--idempotent` and `unchanged-exit-77`. The first one allows users to
specify package requests in an idempotent way; that is, requests that
already exist will not error out the operation. The second switch is
useful in combination with the first; so that one knows when an
`install` operation actually created a new deployment. This should make
it easier to interact with the CLI from scripts. Related to this, the
`status` command also learned a new `--pending-exit-77` switch to make
it easier to determine whether a pending deployment exists.
PR: #1478
The `mutate-os-release` key hasn't been working as intended in the last
few releases; rather than updating `/etc/os-release`, on Fedora systems
it would modify `/usr/lib/os.release.d/os-release-fedora`. We now
changed the approach so that we always modify `/etc/os-release` (or
whatever its final location is if it's a symlink).
PR: #1481
There were a few documentation tweaks. Notably, there is now a
`repo_structure.md` file in `docs/` which should make it easier for
contributors to make sense of the tree.
PR: #1452
One other note: in the next release, we are highly likely to hard
require Rust. Please let us know if for some reason this would be
problematic.
Colin Walters (26 PRs, 34 commits)
status: Rework auto-update status display (#1432)
vmcheck/misc-2: Make compatible with staged default (#1438)
sysroot-core: Use new libostree sysroot pruning API (#1439)
app: Add an `update` → `upgrade` alias (#1449)
tests/kernel-args: Prep for staged (#1453)
compose: Add some assertions around treefile context directory (#1454)
tests: Make two more tests compatible with deployment staging (#1458)
build-sys: Use python3 for libdnf by default if available (#1460)
Update libglnx (#1461)
compose: Stabilize --unified-core (#1465)
compose: Support arch-specific packages in YAML (and in JSON again) (#1468)
core: Use new `rpmtsSetVfyLevel()` API for writing rpmdb (#1469)
scripts: Add RPMOSTREE_SCRIPT_TRACE debugging envvar (#1472)
scripts: Add Lua overrides for fedora-release and also -workstation (#1473)
importer: Prefix error with package name (#1477)
Update libdnf, disable Python bindings (#1480)
compose: Write a preset file to enable ostree-remount.service (#1482)
rust: Add support for inline rojig spec files (#1484)
compose: Stop calling fchdir in --unified-core mode (#1485)
livefs: Rename --replace to --dangerous-do-not-use-replace (#1497)
PR: #1406
rebase: Add support for "custom origin" descriptions
(and 1 commit from other author)
PR: #1444
rust/treefile: Avoid unnecessary dup() of fd
rust: Add a `make rustfmt`, run it
rust: Split out treefile into its own module
build-sys: Use --frozen if Rust library was already built
build-sys: Make Rust library naming/entrypoint more generic
build-sys: Move Rust include header under rust/ directory
PR: #1459
treefile.rs: Deny unknown fields by default
(and 1 commit from other author)
PR: #1474
rust: Rework treefile to be an object
rust: Add ptr error mapping API
rust: Rework GError mapping API
PR: #1479
tests/compose: Write logs directly
tests/compose: Add some time logging
PR: #1488
postprocess: Error if `units` with machineid-compat: false
(and 1 commit from other author)
Jonathan Lebon (13 PRs, 24 commits)
app/compose: Fix g_propagate_error ownership (#1486)
docs/treefile: Mention `rw` in for machineid-compat option (#1487)
libpriv/core: Always call rpmtsSetRootDir() (#1492)
Release 2018.7 (#1496)
PR: #1406
ci: Stop rebasing Fedora onto updates ref
(and 1 commit from other author)
PR: #1450
vmcheck/autoupdate-check: Fix minor typos
libvm: add vm_get_journal_after_cursor
vmcheck/autoupdate-check.sh: Fix --check/--preview tests
PR: #1455
daemon: Fix cached-update including no-op diffs
tests/utils: Drop empty inject-pkglist.py
PR: #1459
ci: Pepper in date markers to help debug timing
(and 1 commit from other author)
PR: #1463
ci: Bump f28-compose by 10 minutes
libdnf: Bump and disable html and man pages
PR: #1478
app/pkg-builtins: Add --unchanged-exit-77
app/pkg-builtins: Add --idempotent
daemon/dbus: Document a few missing newer options
app/status: Add --pending-exit-77 switch
PR: #1481
compose: Fix mutate-os-release handling
libpriv/bwrap: Add bwrap_run_captured()
PR: #1488
compose-tests: Rename dir based on failure
(and 1 commit from other author)
PR: #1491
tests/compose: Fix wrong assert in test-rojig-e2e
tests/compose: Simplify test-rojig-e2e file search
tests/compose: Split out machineid-compat test
tests/compose: Fix run-test.sh regression
Ruixin Bao (1 PR, 1 commit)
doc: add repo_structure section (#1452)
Yoginski (1 PR, 1 commit)
Explain how to remove packages from the base layer (#1441)
Git-EVTag-v0-SHA512: 6313f81b66fe878482d0678a7eac37df1f900e11db4c182c0529550b14408e1f5735d1f7e134a0709f14538703979afc3d88d279ada92be935fa78deb136c78a