2017.15
The headlining feature in this release is support for
repository locking, contributed by Dan Nicholson. Currently it is
disabled by default; add locking=true
in a repository configuration
file to enable. This feature should be considered as "tech preview"; it's
highly likely we'll stabilize it in its current form, but it's possible something
will change. Currently the locking only protects commit + prune; there is
a large pending PR to extend locking to many more APIs and commands.
Several new APIs were added; for example libostree now has a convenient
API to break a hardlink, which happens in e.g. rpm-ostree in several places
such as handling the RPM database.
Also, multithreading support in the commit APIs was cleaned up and clarified.
It's now possible to call transaction_set_ref()
from multiple threads, which
rpm-ostree uses now to import RPMs to OSTree in parallel.
We're tracking an issue with http2+libcurl (#1362) and while I've been too
cowardly to pull out wireshark and gdb to fully track this down, it looks like
there are a number of issues still floating around HTTP2+libcurl (some are
server bugs), that we added support at both build and runtime to disable http2.
The fsck
command learned how to verify ref bindings, and relatedly,
the commit
command gained a --unbound
option to skip creating ref bindings.
Thanks to all contributors
Colin Walters (21 PRs, 26 commits)
lib/repo: Add MT support for transaction_set_ref(), clarify MT rules (#1358)
build-sys: Post-release version bump (#1361)
lib/repo-file: Add casts to appease GLib g_object_ref cast PR (#1363)
lib/commit: Refactor file commits to separate subdir from content (#1365)
pull: Add http2=false remote config option (#1368)
docs/related: Add Balena (#1369)
lib/commit: Fix memleak in bare-user devino hit path (#1370)
lib/commit: Use more direct path for regfile commits (#1371)
build-sys: Add --disable-http2 (#1373)
lib/repo: Add an API to mark a commit as partial (#1376)
bin/fsck: Make ref binding verification optional (#1379)
bin/commit: Support creating "unbound" commits (#1380)
bin/refs: Disallow aliases to remote refs (#1381)
Bump libglnx, use "n items" progress for fsck (#1383)
build-sys: Use -fno-strict-aliasing by default (#1384)
Release 2017.15 (#1386)
PR: #1343
tests: Test concurrent operations
lib/repo: Add some error prefixing in commit, repo create
(and 4 commits from other authors)
PR: #1364
tests: Change test-corruption to use fatal()
Add public API for fsck, use it before loading metadata
PR: #1372
bin/show: Add --no-byteswap
bin/commit: Add --add-metadata that accepts g_variant_print() format
PR: #1375
lib/repo: Disable locking by default, add locking=true boolean
lib/repo: Make locking timeout configurable
PR: #1378
lib/core: Optimize breaking hardlinks for regfiles
lib/core: Add a "break hardlink" API
Dan Nicholson (1 PR, 4 commits)
PR: #1343
lib/prune: Take exclusive repository lock
lib/commit: Add repository locking during transactions
lib/repo: Add locking auto cleanup handler
lib/repo: Add repo locking mechanism
(and 2 commits from other authors)
Matthew Leeds (1 PR, 1 commit)
lib/repo: Properly list remotes of parent repos (#1366)
Philip Withnall (1 PR, 11 commits)
PR: #1347
tests: Expand fsck unit tests to cover checks on bindings
tests: Fix LC_ALL for systems which use .utf8 suffixes
ostree/commit: Allow --orphan and --bind-ref to be specified together
ostree/fsck: Add --verify-back-refs option
lib/repo: Clarify documentation for ostree_repo_list_refs{,_ext}()
ostree/fsck: Handle refspecs from ostree_repo_list_refs()
ostree/fsck: Verify commit bindings for each ref
lib/static-delta: Drop duplicated declaration from private header
lib/pull: Fix capitalisation in binding verification error messages
lib/pull: Split verify_bindings() out into a cmdprivate method
ostree/fsck: Factor out common commit checking code
Sam Thursfield (1 PR, 1 commit)
README.md: Link to BuildStream (#1360)
Git-EVTag-v0-SHA512: 67edb397e64223ecd05c1285e9cf3da6087a8794d8ecdf1a7c66a56cb3afb042a43184224e61aa8631308bddd5bf5e45587c9b05268a36fe2c676869b522249a