Skip to content

Keeping up with our ~monthly cadence. A variety of contributors here again, it's
great to see!  There's two notable features, and a variety of non-critical bugfixes.

On the features side we have:

 - `sysroot: Add concept of deployment "pinning" 📌` (#1464)
 - `ostree: introduce PAYLOAD_LINK object type` (#1443)

By default libostree prunes older deployments; the pinning feature allows you to
explicitly retain them until unpinned.  This is useful for major version updates.

The `PAYLOAD_LINK` functionality allows libostree to do content-based
deduplication. Previously, if e.g. a file changes in metadata (mode, owner,
xattrs such as SELinux labels), we can't make a plain Unix hardlink, and hence
by default end up with a new copy on disk. However, the Linux kernel has
standardized "reflinks" and some filesystems support them, including modern
versions of XFS. When reflinks are available, this functionality causes
libostree to compute a content-only payload, and when importing an object, if it
matches in content with an existing object, to use reflinks to deduplicate, while
using different inodes.

Beyond that, as mentioned above we have a variety of non-critical fixes such
as memory leaks, test suite improvements, correctly printing the "would be pruned"
size when using `prune --no-prune`, etc.

Thanks to all contributors!

Colin Walters (15 PRs, 20 commits)
  build-sys: Post-release version bump (#1455)
  ci: Rework installed tests to use Fedora Standard Test interface (#1462)
  bash-completion: Remove `admin` completions (#1468)
  prune: Error if --static-deltas-only without --delete-commit (#1482)
  lib/repo: Do account for size with prune --no-prune (#1483)
  docs/prune: Document that --static-deltas-only isn't that useful (#1484)
  repo/refs: Clean up error prefixing (#1485)
  tests/str: Rework invocation (#1493)
  tests: Avoid generating lots of output in itest-payload-link (#1494)
  lib/deploy: Port various functions to declare-and-initialize (#1499)
  main, status: Factor out deployment printing into helper (#1504)
  Release 2018.3 (#1506)
  PR: #1464
    sysroot: Add concept of deployment "pinning" 📌
    sysroot: Add API to clean up transient keys in origin files
    sysroot: Bump mtime when writing an origin file
  PR: #1497
    sysroot: Rework how we find booted deployment
    sysroot: Track whether /run/ostree-booted exists
    lib/deploy: Port deployment checkout func to new style
  PR: #1505
    lib/deploy: Have internal origin writing API take sepolicy
    lib/deploy: Use in-function error prefixing more

Giuseppe Scrivano (1 PR, 3 commits)
  PR: #1443
    commit: add logic for .payload-link
    ostree: introduce PAYLOAD_LINK object type
    ostree-repo-private: remove declaration for _ostree_repo_find_object

Jeremy Hiatt (1 PR, 1 commit)
  lib/repo: Fix multi-signature support when generating summary files (#1489)

Joaquim Rocha (1 PR, 1 commit)
  pull: Ignore the cancellable when aborting a transaction (#1492)

Jonathan Lebon (2 PRs, 2 commits)
  lib/fetcher: Allow clients to append to User-Agent (#1496)
  lib/core: Support <remote>: syntax when listing refs (#1500)

Jonathan Lebon (1 PR, 1 commit)
  lib/sysroot: Fix retrieving non-booted pending deployment (#1472)

Luca Bruno (1 PR, 1 commit)
  rust/bupsplit: minor idiomatic fixes (#1502)

Matthew Leeds (6 PRs, 6 commits)
  lib/repo-finder-mount: Fix path to flatpak repo (#1471)
  lib/repo-finder-mount: Update comment about paths (#1473)
  lib/repo-pull: Fix free function for hash table (#1474)
  lib/remote: Fix memory leak (#1476)
  lib/repo-finder-mount: Improve debug message (#1477)
  lib: Fix memory leaks of OstreeRemote (#1478)

Rasmus Thomsen (1 PR, 1 commit)
  configure: add option for libsystemd (#1490)

Simon McVittie (2 PRs, 5 commits)
  Use Python 3 for tests (#1463)
  PR: #1457
    tests/bootloader-entries-crosscheck: Use Python 3-friendly sorting
    test-concurrency: Explicitly use floor division
    test-concurrency: Replace range with xrange
    test-concurrency: Use Python 3 syntax for octal

Git-EVTag-v0-SHA512: 00afcacb0ad3b8c2c42c2d3e44e1c807a0dbb65beb2ba888ceab459c603d8c1e5ef380abb0a77c02eacba839b0a3b6138a92a0f05e4c2bfe04eeefe41081e6bf