Skip to content
Release 2019.2

It's been some time since the last release, so this is a slightly larger
one! There's lots of new features, and a few bug fixes. Some highlights
below.

New features:

- A new `sysroot.bootloader` key was added to be more explicit about
  which bootloader OSTree should use. Notably a `none` value is
  supported, in which OSTree is solely responsible for writing the BLS
  entries. This can then be used by bootloaders like GRUB2, which now
  supports BLS natively. (#1814)
- `ostree config` now supports the `unset` command to unset a key from
  the OSTree repo config (#1743)
- `ostree remote add` now supports the `--force` flag to replace a
  remote of the same name if it exists (#1166)
- `ostree-prepare-root` now logs a structured journal message after
  finding the deployment to which to pivot. This can be used by
  higher-level apps like RPM-OSTree to build a history of the
  deployments the machine was booted into. (#1842)
- The staging API now supports a lockfile which prevents finalization at
  shutdown. This is intended to be used in systems like Fedora CoreOS,
  which needs more fine-tuned control between *staging* a deployment,
  and setting it as the *default* deployment on reboot. (#1841)
- `ostree static-delta show` now prints the `From` and `To` commits for
  which the delta was generated (#1823)

Bug fixes:

- Make looking up collection-refs similar to how regular refs are looked
  up, i.e. first in the transaction, then in the current repo, and then
  in the parent repo (#1821)
- Don't include the OSTree commit version number twice in the boot menu
  title. This affected at least Fedora-based systems composed with
  RPM-OSTree's `mutate-os-release`. (#1829)
- Activate `ostree-finalize-staged` earlier; this should hopefully make
  deployment finalization more reliable by running it later in the
  shutdown sequence, when less services are running (#1840)
- Run `grub2-mkconfig` on the filesystem tree of the pending deployment,
  rather than the previously deployed tree. This was a corner case where
  the deployment failed if a previous deployment did not exist, on
  systems where grub.cfg is used. (#1831)

As always, thanks to all the contributors!

```
Colin Walters (5 PRs, 8 commits)
  Post-release bump (#1800)
  static-delta: Change `show` to display from/to commits (#1823)
  prepare-root: Fix compilation with --with-static-compiler (#1846)
  PR: #1803
    lib/commit: Don't set user.ostreemeta for bare → bare-user-only imports
    lib/commit: Set xattr on correct fd for bare-user → bare-user imports
    lib/commit: Fix bare → bare imports
  PR: #1806
    ci/rpmostree: Bump to 2019.1
    ci/rpmostree: Fix use of `fatal`

Dan Nicholson (1 PR, 3 commits)
  PR: #1166
    remote-add: Add --force option to add or replace remote
    man: Document remote add --if-not-exists option
    repo: Add OstreeRepoRemoteChange replace operation

Jeremy Bicha (1 PR, 1 commit)
  tests: Update for glib 2.59.2 (#1818)

Jonathan Lebon (6 PRs, 9 commits)
  lib/deploy: Don't include version twice in bootmenu title (#1829)
  boot: Activate ostree-finalize-staged even earlier (#1840)
  ostree-prepare-root: Log journal message after finding deployment (#1842)
  Release 2019.2 (#1844)
  PR: #1841
    lib/deploy: Support locking deployment finalization
    lib/deploy: Write to journal if nothing to finalize
    lib: Add ot_journal_* helper macros
  PR: #1843
    lib/sysroot: Match deployment /usr mode for overlay
    lib/sysroot: Call `chmod` on overlay dirs when unlocking

Laurent Bonnans (1 PR, 1 commit)
  lib/repo: fix leak of `bootloader` field (#1837)

Matthew Leeds (11 PRs, 17 commits)
  tests: Don't skip collection-based summary test (#1804)
  lib/repo-pull: Allow the keyring remote to be overridden (#1810)
  lib/repo-pull: Fix docs for n-network-retries option (#1812)
  lib/repo: Fix Since: annotation for REMOTE_CHANGE_REPLACE (#1813)
  tests: Remove unused includes in libostreetest.c (#1815)
  man: Document ostree --version (#1820)
  lib/repo-refs: Resolve collection-refs in-memory and in parent repos (#1821)
  lib: Check for http_proxy being the empty string (#1835)
  PR: #1743
    ostree/config: Check for too many args
    man/ostree-config: Consistently use GROUPNAME placeholder
    ostree/config: Use g_autoptr instead of goto
    ostree/config: Add an "unset" operation
  PR: #1825
    lib/repo-refs: Allow resolving local collection-refs
    lib/repo-refs: Add a flag to exclude listing from refs/mirrors
    lib/repo-refs: Fix resolving collection-refs
  PR: #1834
    tests: Put a regex in quotes
    tests: Escape periods when appropriate

Micah Abbott (1 PR, 1 commit)
  README: add note about Liri OS (#1802)

Robert Fairley (3 PRs, 9 commits)
  PR: #1814
    Add sysroot.bootloader repo config key
    libotutil: Rename to ot_keyfile_get_string_list_with_separator_choice()
    tests/test-config: Remove extra space
    ostree-grub-generator: Comment wording fix
    (and 1 commit from other author)
  PR: #1831
    grub2: Generate config from pending deployment
    tests/test-admin-deploy-none: Split grub.cfg directory and file creation
    tests/test-admin-deploy-none: Update comment for #1774 status
  PR: #1839
    tests/test-config: Fix regex causing Debian test failure
    travis: Update to Debian Stretch

Robert Fairley (1 PR, 1 commit)
  PR: #1814
    libotutil: Add ot_keyfile_get_value_with_default_group_optional()
    (and 4 commits from other authors)
```

Git-EVTag-v0-SHA512: 1a900dac71e960a425bbf4252b91287f0c4a68719d21f719aa2a7741c8923905b9dd0c1b95eb5acbdc0b3dd2d7b4dab45b8c93847081a3eb9f1faca7d0d6cb63