Skip to content

v2018.7

@jlebon jlebon tagged this 09 Aug 17:51
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
Assets 2
Loading