Release 2017.6 One of the most notable changes in this release is that we switched to using a systemd generator for handling `/var`, which means admins can now set it up as an explicit mount point. We feel pretty confident in the code, but do test your specific setup. One note in particular; the new model (obviously) requires systemd, and while we tried to preserve the non-systemd path, it wasn't explicitly tested. Issue: https://github.com/ostreedev/ostree/issues/855 The work to port to a new code style continues rapidly; at this point most of the library is converted, with just the command line remaining. I think the new style is a lot more readable now that we rely fully on `__attribute__((cleanup))`. Philip Withnall contributed changes to enhance the `OstreeAsyncProgress` reporting API, which I think is going to be quite useful for user interface frontends (like GNOME Software). PR: https://github.com/ostreedev/ostree/pull/819 There's a smattering of smaller bugfixes; minor memory leaks, double `close()` and the like. In this cycle we also beefed up our CI/testing more - we now test both Fedora Atomic Host and flatpak more explicitly. Contributions to extend the suite to other distributions would be appreciated; for example, tests for ostree-as-host on Debian. Our Travis-executed tests should be extensible. Thanks to Dan Nicholson for also fixing some of the test suite for installed tests, and also contributing introspection fixes for language bindings. Another feature that involved a lot of internal changes is our handling for `/etc` on SELinux-based systems. We now label files as we go rather than having a more fragile separate relabeling path. This is also exposed as an API, which is used by `rpm-ostree` now. I think this particular change highlights the strength of "libostree" as an API that can be reused by higher level systems. PR: https://github.com/ostreedev/ostree/pull/797 Thanks to all contributors! Colin Walters (62): pull: Support deltas for explicit commits checkout: Fix bare-user symlink checkouts Bump release for 2017.5 lib/boot: Convert bootconfig parser to new code style sysroot: Continue conversion of some simpler functions to new style cmdline: Start conversion to new code style repo: Optimize bare-user content object reads a bit repo/checkout: Finish conversion to new code style lib/cleanup: Port some of the cleanup code to fd-relative and new style repo: Add a "force copy" flag to checkout lib/core: Complete conversion to new code style Rename "osname" → "stateroot" lib/util: Delete some leftover pre-libglnx directory opening functions repo: Drop unused cache variables leftover from pack files repo/checkout: Cache lookups of dirmeta objects checkout: Merge union/add logic for copies during checkout tests: Factor out a libtest-core.sh tests/installed: New installed, privileged tests using Fedora AH checkout: Add SELinux labeling for checkout, use in deploy repo: Port object listing func to use libglnx more + new style repo: More porting to new style repo: Fix incorrect use of errno() error throwing lib/sepolicy: Convert to new code style sepolicy: Cache the value of is_selinux_enabled() to work around bug lib/checkout: Use TEMP_FAILURE_RETRY() ci: Add a context for testing flatpak ci: Fix flatpak test pkg install checkout: Dedup calls to memcache ref repo: Delete the last use of GFile tmp_dir tree-wide: Convert to using autoptr(GString) vs g_string_free(...,TRUE) Add --enable-installed-tests=exclusive, fix installed case utils/checksum: Port to new code style fsck: Check for refs missing corresponding commit tests: For installed, s/test-/itest-/ to avoid in-tree name clashes tests: Migrate test-pull-many.sh to installed on FAH ci: Extend FAH rootfs for installed tests ci: More flatpak ci fixes ci: Move travis scripts from tests/ → ci/ diff: Port some to new code style sysroot: More porting to new code style checkout/commit: Use glnx_regfile_copy_bytes() if possible lib/prune: Complete porting to new code style lib/checkout: Move special case for subpath of file to toplevel lib/checkout: Optimize checkout by avoiding OstreeRepoFile recusion repo: Fix double close() in summary generation lib/repo: Port more of GPG and summary functions to new code style checkout: Plug a memleak of the state stringbuf tree-wide: Switch tabs ⭾ in various files over to spaces ␠ lib/checkout: Fix regression in subpath for regular files remount: Drop support for auto-tmpfs-on-var; use systemd.volatile=state lib/remote: Box OstreeRemote if experimental-api lib/repo: Fix double close() switchroot/remount: Trim set of remounted filesystems switchroot/remount: Check mount status before remounting, be verbose Switch to using a systemd generator for /var tree-wide: Add a few missing O_CLOEXEC lib: Add "open dfd iter handling noent" helper, port tree-wide lib/upgrader: Port to new code style build: Use cd $(srcdir) instead of `git -C` switchroot/generator: Add var.mount to local-fs.target.requires lib/pull: Port some functions to new code style Release 2017.6 Dan Nicholson (5): pull: Fix crash specifying override URL in summary fetch commit: Mark ostree_repo_transaction_set_ref* checksums nullable pull: Allow additional HTTP headers for summary fetch tests: Install libtest-core.sh with installed tests tests: Look for trivial-httpd in $libexecdir Francesco Giannelli (1): switchroot: Document a bit more, add demo shell implementation Jonathan Lebon (2): tests/ci-commitmessage-submodules.sh: fix for RHCI libglnx: bump and use new helper methods Krzesimir Nowak (1): apidoc: Add missing enums to sections file Philip Withnall (22): ostree: Use G_OPTION_ARG_FILENAME where appropriate tests: Ignore some standard automake check output files libostree: Rework OstreeAsyncProgress to use GVariants internally libostree: Add multiple getter/setter support to OstreeAsyncProgress src: Port to new OstreeAsyncProgress atomic API libostree: Allow OstreeAsyncProgress:status to be set atomically libostree: Get and set OstreeAsyncProgress:status atomically libostree: Fix a typo in docs for ostree_repo_pull_with_options() libostree: Add missing checks for invalid timestamps libostree: Fix potential use of uninitialised memory in progress API libostree: Ensure progress keys are all always set libostree: Add some additional metadata to the summary file libostree: Document endianness of GVariant metadata types ostree: Add --view mode to `ostree summary` ostree: Improve formatting for well-known summary metadata keys ostree: Use #defines for well-known metadata key names tests: Add a test for `ostree summary --view` tests: Fix regex escaping in test-summary-view.sh build: Add --enable-experimental-api configure option for unstable APIs libostree: Expose $OSTREE_FEATURES in the pkg-config file libostree: Make OstreeRemote a public and internal API build: Add -C arguments to some git invocations Sjoerd Simons (1): repo/commit: Fix memory leak Git-EVTag-v0-SHA512: 47a502039ce8abaa83e5872560846d592fc5e38557a190c3b1101f7ea245a3eeee21be8b9aa39c1ab163dc30072d7ef495b26ba18388d4216421b73e3dfd9372