Skip to content

2017.6

Compare
Choose a tag to compare
@cgwalters cgwalters released this 17 May 21:36
v2017.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: #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: #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: #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
-----BEGIN PGP SIGNATURE-----

iQEwBAABCgAaBQJZHMGOExx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwt9
LQf/Vu7fVSmtfrlQV6j+uaWeg2sEcYjValgk517aksWBaMlacGbvlYf8N6PESYPv
RcXbv4uNAvHOLKck5yU8iT633f3QpW2gei/IvqIYrV25ePJGhODRs7qGwjkKVVy8
BjEf80AcX/0HT6HGyX0CYLsVJJ8Hg6QSM3dzSMBaqMeWx1HnAK/2pWFQAssUfqRh
6UWWjZfCzW809RqY2efy7nJXDfHDoB4sEFDM8CGs12kQ4tcPJqp6kjMHcuXfC8v9
XZh48yfHb/6o3En4ZTd8cUR7nB5nItnFp+AwXOje7VQa8o2vyiUWvZ8InVJj6/Fx
wZfYgbOcDCfqp++WzsZNhaajBg==
=+xRv
-----END PGP SIGNATURE-----