Skip to content

Releases: ostreedev/ostree

2017.15

20 Dec 09:36
v2017.15
Compare
Choose a tag to compare

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

2017.14

04 Dec 18:55
v2017.14
Compare
Choose a tag to compare

This release is almost entirely bugfixes. One notable
fix is a read-after-free when libcurl is finalizing that some
people have hit.

There are a number of improvements around the ${repo}/tmp directory and the
per-transaction staging directory in preparation for adding locking in a future
release. This release should already help avoid several failures when doing
concurrent commits; the aim of the locking work will support concurrent prunes
and commits.

I'm using a new script to generate the shortlog with PR numbers included below:

Thanks to all contributors!

Alexander Larsson (1 PR, 1 commit)
  rofiles-fuse: Fix utime() support (#1351)

Carlos Alberto Lopez Perez (1 PR, 1 commit)
  grub-generator: If OSTREE_BOOT_PARTITION is not set, default to /boot (#1326)

Colin Walters (15 PRs, 18 commits)
  build: Add -Werror=undef by default, fix fallout (#1320)
  lib/pull: Avoid error if current with --require-static-deltas (#1323)
  build-sys: Post-release version bump (#1324)
  build: Work around -Wundef with older GLib (#1327)
  build: Also fix -Werror=undef for old libsoup (#1328)
  deltas: Don't try to rollsum/bsdiff .xz files (#1333)
  lib/traverse: Port to new style (#1338)
  bin: Port a few commands (diff,remote,static-delta) to new style (#1344)
  fetcher/curl: Stop using CURLOPT_LOW_SPEED_TIME/_LIMIT (#1349)
  lib/commit: Use direct repo writes if fsync is disabled (#1354)
  lib/repo: Add a new private API for bare content writes (#1355)
  tests/delta-crosscheck: Disable fsync (#1356)
  lib/repo: Add a DEVINO_CANONICAL commit modifier flag (#1357)
  Release 2017.14 (#1359)
  PR: #1352
    lib/repo: Verify txn stagedir existence after locking
    lib/commit: Move txn stagedir deletion/unlock into one place
    ci: Really show test-suite.log on travis
    tests: Run python tests with stdout unbuffered
    lib/commit: Minor refactoring of tmpdir cleanup code
    lib/commit: Reuse txn dir for tmpfiles

Dan Nicholson (6 PRs, 15 commits)
  tests: Don't symlink rofiles-fuse if it's disabled (#1325)
  bin/summary: Fix --raw option (#1336)
  PR: #1322
    lib/pull: Skip ostree_repo_resolve_keyring_for_collection for bindings
    lib/core: Fix documentation comment in ostree_validate_collection_id
    build: Define OSTREE_ENABLE_EXPERIMENTAL_API for g-ir-scanner
    build: Ensure enumtypes.h is built before enumtypes.c
  PR: #1337
    Revert "lib/pull: Skip ostree_repo_resolve_keyring_for_collection for bindings"
    lib: Include OstreeRemote and OstreeCollectionRef in GIR
    lib/remote: Export ostree_remote_get_type symbol
  PR: #1346
    lib/repo: Don't delete new tmpdir if it can't be locked
    lib/repo: Handle race with existing tmpdir being deleted
    lib/repo: Restore tmpdir reusing out parameter
    lib/repo: Add debug messages when allocating tmpdir
  PR: #1352
    lib/repo: Verify txn stagedir existence after locking
    lib/commit: Move txn stagedir deletion/unlock into one place
    ci: Really show test-suite.log on travis
    tests: Run python tests with stdout unbuffered
    lib/commit: Minor refactoring of tmpdir cleanup code
    lib/commit: Reuse txn dir for tmpfiles

Dusty Mabe (1 PR, 1 commit)
  add back helpful --allow-downgrade err message (#1348)

Joaquim Rocha (1 PR, 1 commit)
  lib/remote: Add a method to return the URL (#1353)

Jonathan Lebon (1 PR, 2 commits)
  PR: #1350
    ci: Make sure we save gtdr test results on failures
    papr: Bump primary to f27

Kalev Lember (1 PR, 1 commit)
  fetcher/curl: Fix invalid memory access in finalize() (#1332)

Philip Withnall (3 PRs, 5 commits)
  build: Add a TODO comment about improving glib-mkenums usage in future (#1330)
  PR: #1335
    lib/repo: Add gtk-doc comment to OstreeRepoCommitState
    lib/repo: Add OSTREE_REPO_COMMIT_STATE_NORMAL to represent most commits
  PR: #1341
    lib/repo: Fix a memory leak of options in ostree_repo_create()
    lib/repo: Add (transfer) annotations to various GHashTable arguments

Will Thompson (1 PR, 1 commit)
  build: fix "executible" typo (#1345)


Git-EVTag-v0-SHA512: 006947e52f45c4a2f7bb11549b666f26727359ab9bb1ec9541ed516b74ec8430356586bfde1b618ac172901ea49227539ac3f80d1efa01ef927d5d89f0b48d85

2017.13

02 Nov 14:34
v2017.13
Compare
Choose a tag to compare

A lot of across-the-board improvements here; the pure bugfixes are mostly in the
experimental Avahi bits, hardening the FIFREEZE on /boot code, explicit
errors when trying to commit non-UTF8 filenames, and finally a number of fixes
around our use of mmap.

One slight backwards-incompatible change (but I doubt it'll break anyone):
Disallow refs starting with a non-letter or digit
If this does affect you, please let us know ASAP.
PR: #1286

For improvements, first up, Alex changed the static delta
code to avoid holding everything in memory; this is a substantial
improvement for large deltas, and also for flatpak which uses
deltas as a "bundle" format.
PR: #1309

A few notable changes:

commit: Add _CONSUME modifier flag
You probably want to use this by default for your build/package
systems.
PR: #1255

core: Add standard SOURCE_TITLE metadata key
This one I think is conceptually quite interesting; for many people, their
ostree commits are derived from something else that has its own versioning,
and it's useful to show that explicitly. I encourage ostree-based build systems
to consider rendering human-readable information about your builds into this
standardized metadata key.
PR: #1296

On the command line side, Ruixin Bao for cleaning
up the --help output significantly.
PR: #1267

And thanks to Simon McVittie for his regular fixups to the tests
to ensure they keep running in Debian!

Full shortlog below:

Alexander Larsson (4):
      Add OtVariantBuilder
      static deltas: Use OtVariantBuilder to create deltas
      static-delta-compilation: Move some things around
      static deltas: Process each part as soon as its done

Colin Walters (58):
      lib/commit: Add some gtk-doc and internal doc comments
      lib/sysroot: Add some more comments
      lib/pull: Fix regression with pull-local for nonexistent refs
      lib/syslinux: Port to fd-relative
      lib/uboot: Port to fd-relative
      lib/pull: Minor cleanup to metadata scanning function, add docs
      lib/core: Init struct stat buffer
      lib/sysroot: Fix pointer going out of scope in unlock code
      Deduplicate and fix up our use of mmap()
      lib/utils: Port a bit to decl-after-stmt style
      lib/pull: Change fetcher to return O_TMPFILE
      lib/util: Delete some unused functions
      lib/deltas: Move variant read helper into the deltas code
      commit: Add _CONSUME modifier flag
      lib: Add a lighter weight internal checksum wrapper
      lib/core: (refactor) Drop wrapper and unneeded args for variant writing
      lib/core: Port a few functions to decl-after-stmt
      lib/core: Use GBytes for file headers
      lib/commit: Make -path commit helper API private
      tree-wide: Update to new libglnx fd APIs
      lib/deploy: Use _exit() for FIFREEZE watchdog
      lib/deltas: Check cancellable during processing
      lib/pull: Drop duplicate/different error for GPG but no detached meta
      lib/pull: Also do commit GPG verification before writing
      tests/basic: Add missing ${COMMIT_ARGS} for bare-user-only
      lib/commit: Implement "adoption" with CONSUME flag
      lib: Use a common helper function to compare checksums
      lib/sysroot: Fix error handling when mounting overlayfs fails
      tests: Add test-pull-bareuseronly
      lib/deltas: Use fastpath for regfile writes for bare-user-only
      lib/deltas: Use pread() instead of lseek()+read()
      lib/commit: Avoid trying to delete `.` with _CONSUME flag
      lib/commit: Fix indentation in file commit code
      lib/commit: Use direct fd xattr operations again on regular files
      syntax-check: Add a rule to enforce glnx_autofd over glnx_fd_close
      lib/pull: Update summary checksum code to use new checksum API
      lib/repo: Update summary code to use newer hashing API
      lib/commit: (refactor) Clean up delta bare write API
      Disallow refs starting with a non-letter or digit
      lib/checkout: For "process whiteouts" mode, replace directories too
      repo: Add wrapper function for setting devino cache on checkout opts
      docs/related-projects: Add Google Usenix link
      bin/status: Port to new style
      bin/status: Inline metadata parsing for versions
      core: Add standard SOURCE_TITLE metadata key
      lib/commit: Fix hardlink checkout commit with bare-user + mod xattrs
      ci: Update centos container to current again
      tree-wide: Use autoptr for OstreeKernelArgs
      lib/repo: Fix loading commitstate with parent repos
      lib/deltas: Fix change to use pread() in write opcode
      lib: Minor static delta fixes
      lib/pull: When --require-static-deltas, use them even for file:/// repos
      lib/pull: Delete unused "exampleos" code
      bin/delta-compilation: Add a "progress bar" for bsdiff generation
      deltas: Add an if0'd bit to print bsdiff objects
      tests: Add a "pull-test2" that uses slightly more realistic content
      Update libglnx
      Release 2017.13

Dan Nicholson (4):
      lib/deploy: Ignore FIFREEZE/FITHAW errors when already in state
      build: Fix bsdiff Makefile circular dependency
      build: Do *.am.inc substitutions from make correctly
      lib/repo: Properly handle NULL homedir when signing commit

Jonathan Lebon (12):
      build-sys: Post-release version bump
      app/main: use HAVE_LIBCURL_OR_LIBSOUP for pull CLI
      ci: really turn on warnings
      tree: fix compiler warnings
      lib/commit: minor coverity fix
      libotutil/checksum-utils: fix openssl compilation
      ci: compile f26/c7-primary with libcurl/openssl
      tests: drop unused variable
      ostree/checksum: port to new decl style
      lib/core: add ostree_checksum_file_at API
      lib/checkout: fallback to checksum for UNION_IDENTICAL
      lib/commit: fix checking flag with bitwise OR

Marcus Folkesson (1):
      docs: mention the $OSTREE_REPO environment variable

Matthew Leeds (2):
      lib/gpg: Print debug info when reading GPG keys
      lib/utils: Check for invalid UTF-8 in filenames

Philip Withnall (10):
      lib/bloom: Add some missing preconditions on n_bytes
      lib/repo-commit: Import detached metadata even if hardlink exists
      docs: Clarify %NULL argument to ostree_sysroot_new()
      lib/repo: Clarify that ostree_repo_remote_fetch_summary() doesn’t verify
      lib/repo-finder-avahi: Fix a leak in a GVariantIter loop
      lib/repo-finder: Add OstreeRepoFinderOverride
      lib/sysroot: Expand docs for ostree_sysroot_get_repo()
      lib/repo-finder-avahi: Fix memory corruption of a GVariantIter
      lib/repo-finder-mount: Fix propagating NULL errors
      lib/repo-finder-mount: Ignore mounts which have a ‘system’ file system

Ruixin Bao (3):
      ostree: Describe subcommands in help output
      ostree: move flags into command struct, pass down through builtins
      ostree: provide command description in a better place

Shaun Taheri (1):
      static deltas: Set optional flag for superblock

Simon McVittie (3):
      Cope with xattr syscalls raising EOPNOTSUPP
      Make sure *.am.inc are up to date before `make dist`
      ostree-system-generator: Include <libglnx.h> for autocleanups

Git-EVTag-v0-SHA512: ccfdad2f0fb324404c1d8886fb415dbf6447ea369ffbd7047c687e167461234c569c3492e7700d975ee92ca8e8951d6eb90e6c52b231e3e23db72a5ed724486e

2017.12

02 Oct 17:11
v2017.12
Compare
Choose a tag to compare

Release 2017.12

Quite a lot in this release. First, on the notable bugfix side,
we fixed an issue where background threads could remain alive
after an error was encountered during pulls. Particularly
for projects like flatpak that do multiple pulls in process, this
is an important fix.
PR: #1185

Another important change related to pulls is that libostree now
performs checksums when mirroring again.
The intent here was to speed up mirroring, but it led to a confusing security
story. Now it's easier to explain: for HTTP pulls we verify checksums
(and this can be disabled), for local filesystem pulls we don't,
(but it can be enabled). We've always verified checksums by
default when pulling from an archive repository into a non-archive.
PR: #1212

Anton Gerasimov contributed a change to the libcurl backend
to support PKCS#11 URIs, useful for storing certificates in a
hardware or software enclave.
PR: #1183

The schema for the experimental OstreeRepoFinderMount API to find OSTree
repos on removable media has changed incompatibly, so that the media doesn’t
need to contain two similar lists of refs. It will now look in .ostree/repos.d,
.ostree/repo, ostree/repo and var/lib/flatpak paths on removable media.
PR: #1179

Similarly, the experimental ostree_repo_resolve_keyring_for_collection() API
has changed to return an OstreeRemote containing the keyring, rather than just
the keyring, making it more generally useful.
PR: #1202

The bloom filter used when finding refs from remote peers has been fixed to
work correctly on 32-bit architectures (such as ARM). This doesn’t change the
bloom filter format, but will require bloom filters created on 32-bit
architectures to be regenerated in order for advertisements from those machines
to work.
PR: #1231

Repositories which have a collection ID set will now put their repository
metadata in an ostree-metadata ref when ostree summary --update is run, in
addition to putting it in the summary file. This is part of a plan to securely
allow unsigned summary files for peer-to-peer pulling of refs. This won’t
happen for repositories which don’t have a collection ID set, or if
--enable-experimental-api is not configured.
PR: #1158

A new ostree create-usb command has been added (if configured with
--enable-experimental-api) which can be used to put refs from repositories onto
removable media in a format which can be detected by OstreeRepoFinderMount.
For example, to allow easy sharing of flatpaks or OS updates between offline
machines.
PR: #1182

OstreeRepo has gained hash() and equal() methods, so it can now easily be used
in a hash table based on its device number and inode, rather than using its
path.
PR: #1179
PR: #1205

A minor bug was fixed in rofiles-fuse, which would cause files to be
created with random mode bits if called for O_RDONLY.
PR: #1200

For clients that use OstreeRepoDevInoCache, a bug was fixed which
caused libostree to ignore callbacks that allow modifying file modes,
ownership, and extended attributes.
PR: #1170

libostree now supports --with-crypto=gnutls. Like the OpenSSL
support, this is currently just checksums, but Jussi Laako
is driving this towards making the GPG
dependency optional and supporting other signature methods.
PR: #1189

In previous releases, libostree learned how to make hardlinks
for local pulls. But if we couldn't hardlink (e.g. the devices
were separate), the local pull code went through a much slower
generic path that included re-checksumming
objects. Now there's a copy/reflink fast path that uses
FICLONE/copy_file_range() directly if possible. This can be
substantially faster.
PR: #1197

ostree prune learned a new --only-branch option. This
can be a lot more convenient for release engineering tasks.
PR: #1127

As usual, more work was done to improve the testsuite. It should
now be able to better detect tmpfs/overlayfs environments. The
upstream CI now also runs tests in a non-overlayfs environment
for better coverage.
PR: #1217
PR: #1170

Anton Gerasimov (1):
      Add support for pkcs11 URIs in TLS client key/certificate

Colin Walters (38):
      lib/repo: Port gpg signing function to new code style
      lib/checkout: Do UNION_FILES via atomic renameat()
      lib/pull: Drop partial fetch code from libsoup backend
      Update libglnx
      tests/prune: Factor out a helper for counting commits in the repo
      bin/prune: Add --only-branch
      ci: Use distro-sync instead of upgrade
      tree-wide: Some glnx_fstatat_allow_noent() porting
      lib/repo: Minor cleanup to object import function
      lib/pull: Wait for pending ops to complete on error
      tests/libtest: Factor out user xattr detection
      lib/repo: Don't syncfs or fsync() dirs if fsync opt is disabled
      lib/repo: Move alloca() outside of loop
      lib/checkout: Squash a gcc maybe-uninitialized warning
      tree-wide: Squash a few warnings when building with no features
      lib: Move bareuseronly verification into commit/core
      lib/commit: Don't try to call linkat() for import on distinct devices
      ci: Add an "all options disabled" context
      lib/repo: Use correct name for tmpdir lockfile
      tree-wide: Remove Emacs modelines
      lib/core: Add static assertions for OstreeRepoMode enum values
      lib: Define an alias OSTREE_REPO_MODE_ARCHIVE
      lib/commit: Some misc porting to decl-after-stmnt
      lib/commit: Add a copy fastpath for imports
      bin/pull: Fix description of --untrusted
      lib/pull: Minor refactoring of metadata scanning function
      lib/pull: Refactor to use OstreeRepoImportFlags internally
      lib/pull: Default checksum for archive mirror, add TRUSTED_HTTP flag
      tests,ci: Move "test-basic" (bare mode) to installed test
      lib/pull: Add status for imported objects
      ci: Record primary context results using g-d-t-r --log-directory
      lib/diff: Add compile-time ABI check on 64 bit arches
      tests/commit-sign: Update a bit to more modern style
      lib/pull: Don't request deltas for unchanged commits
      tree-wide: Bump libglnx, port to new lockfile init
      tests: Add 404 tests for dirtree objects too
      libarchive: Fix assertion error if used with CANONICAL_PERMISSIONS
      Release 2017.12

Jonathan Lebon (11):
      build-sys: Post-release version bump
      rofiles-fuse: also pass mode for O_RDONLY
      tests: allow specifying tmpdir
      tests/libtest: check that we have setfattr
      Add a .vimrc and .editorconfig
      lib/commit: add comments to explain dir commit path
      lib/commit: fix using uninitialized var
      tests/libtest.sh: always nuke repo and files
      lib/commit: don't query devino cache for modified files
      tests: check for relabeling rather than overlay
      tests/installed: also run test-basic-c

Jussi Laako (1):
      Add --with-crypto=gnutls

Matthew Leeds (1):
      lib/pull: Clarify use of unsigned summary support

Philip Withnall (21):
      lib/repo: Add ostree_repo_equal() for comparing repos
      lib/repo-finder-mount: Change the schema for finding repos on volumes
      lib/repo: Drop outdated FIXME comment from ostree-repo.h
      lib/repo: Add ostree_repo_hash() and tests
      lib/repo-finder-mount: Add var/lib/flatpak as a well-known directory
      src/pull: Support local pulls for collection–refs
      create-usb: Add a create-usb command to complement OstreeRepoFinderMount
      lib/repo-refs: Add first version of ostree_repo_resolve_collection_ref()
      lib/repo-pull: Use resolve() instead of list() in fetch_ref_contents()
      lib/repo-pull: Fix a potential minor leak
      lib/repo: Change resolve_keyring_for_collection() to return a remote
      lib/remote: Store name of remote providing keyring for dynamic remotes
      lib/repo-pull: Fix remote names in refspecs from non-mirror P2P pulls
      tests: Add a manual integration test for OstreeRepoFinderMount
      tests: Update some tests to use OSTREE_REPO_MODE_ARCHIVE not ARCHIVE_Z2
      tests/repo: Drop modeline from top of file
      lib/bloom: Fix bloom hashing on 32-bit architectures
      lib/bloom: Fix a -Wconversion warning in OstreeBloom
      man: Fix a copypasta error in ostree-summary.xml
      ostree/summary: Eliminate redundant gotos from error handling path
      ostree/summary: Generate an ostree-metadata ref when updating summary

Simon McVittie (4):
      tests: Fix JavaScript tests with gjs 1.50.0
      test-help.sh: Skip trivial-httpd if enabled
      tests: Explicitly unset LANGUAGE after setting LC_ALL
      tests: Reset umask to 022 while creating test repository

yceh (1):
      bin/commit: Fix build failure when libarchive is not used


Git-EVTag-v0-SHA512: bfa0b7eceb4e4ac915d7ed0a352fa778e47d2ac2bac75fd895ede1f5bcbb65c44848505eb785bac45d57c5574f0ac1d3accb6c323617582cb25c55bc229a3294

2017.11

14 Sep 16:19
v2017.11
Compare
Choose a tag to compare

This release has a few new features, some UX improvements for the command
line, and a variety of bugfixes.

First off though is this commit: docs/build: s/libOSTree/libostree/.
The project is now more canonically called "libostree", though "OSTree"
and "ostree" are also fine.

The most important bugfix for anyone using rofiles-fuse (typically
build systems, rpm-ostree also uses it) is:

Alexander Larsson (1):
rofiles-fuse: Fix lchown() and hardlink verification for symlinks
#1137

On the features side, we've added a few new APIs to the libarchive
importing and checkout path that will be used by rpm-ostree. This
should be of interest to anyone using libostree for build systems
or underlying a hybrid image/package system like rpm-ostree. For
example rpm-ostree automatically converts RPMs that have content
in /boot: coreos/rpm-ostree#969
using the new libarchive filtering that landed here in libostree.
This is because ostree doesn't support updating anything in /boot
besides the bootloader configuration.

Another good example of a package system integration change is the
new OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_IDENTICAL - this matches
the RPM semantic of merging identical files. Thanks to
Ruixin Bao!
#1105

Also on the host system side, there is a new (canonical) place
for build systems to put the kernel/initramfs: /usr/lib/modules/$kver.
This change matches the current Fedora kernel RPM, and was originally
inspired by changes coming from the systemd camp. More information:
#1079

Guy Shapiro contributed a change to have all of the deployments
show up in the uboot configuration, to help enable automatic fallback
if a new OS fails to boot.
#1138

Colin Walters did a lot of style cleanups, some "error prefixing"
work to ensure we produce understandable errors in more situations,
and one other notable cleanup:
boot: Add a tmpfiles.d snippet to clean up /var/tmp/ostree-ovl.XXX
This should be nice for anyone who uses ostree admin unlock frequently.

Dan Nicholson has been doing a lot of work on improving libostree's
management of configuration for remotes:
#1155

Jonathan Lebon did a lot of cleanup in the command line parsing
and fixes for --help, and also helped with the new --selinux-label
option for ostree commit. (And also did tons and tons of code review!)

Robert McQueen has been continuing work on fixing up libostree's handling of
GPG keys that have subkeys - there's now:
lib/gpg: Add _FINGERPRINT_PRIMARY to OstreeGpgVerifyResult
which effectively reverts an earlier change to make the primary key
show up as the main fingerprint.

Philip Withnall and Simon McVittie contributed build system and test
fixes.

$ git shortlog v2017.10..6c0738a000800856d09774d50d16d84c1b537a7b
Alexander Larsson (1):
      rofiles-fuse: Fix lchown() and hardlink verification for symlinks

Colin Walters (46):
      build-sys: Post-release version bump
      boot: Add a tmpfiles.d snippet to clean up /var/tmp/ostree-ovl.XXX
      bin: Squash some -Wuninit warnings with porting to new style
      lib/sysroot: Support /usr/lib/modules/$kver for kernel/initramfs
      docs/build: s/libOSTree/libostree/
      lib/deploy: Add .img to end of initramfs in /usr/lib/modules
      lib/pull: Add support for timestamp-check option, use in upgrader
      lib/commit: Remove duplicated function for filter processing
      lib/commit: Honor commit filter for libarchive --tar-autocreate-parents
      build/maint.mk: Comment out setting of LC_ALL
      bin/main: Remove duplicated usage output on unknown commands
      lib/repo: Add some assertions for ABI sizes
      bin/commit: Add --selinux-policy option
      libarchive: Add support for translating paths during commit
      tree-wide: Replace archive-z2 with archive
      bin/prune: Port to new style
      bin/admin: Port switch,upgrade to new style
      bin/admin: Check for booted deployment to see if we should reboot
      bin/admin: Change init-fs to stop loading a sysroot to init one
      bin/admin: Do sysroot loading during argument parsing
      bin/admin: Check for booted sysroot for root-required commands
      ci: Hackaround Fedora rpm/libdb/glibc issue
      lib/repo: Add apidoc for repo properties
      lib/repo: Add error prefixing during hardlink object import
      bin/local-pull: Clarify docs, add more tests for corrupted local pulls
      lib/sysroot: A bit more new style porting
      lib/gpg: Use nicer helper for gpg error messages
      lib/gpg: Port a few misc gpg functions to new style
      tests/rofiles-fuse: Add tests for chmod/chown
      tree-wide: Use helpers for unlinkat()
      lib/commit: Update docs/code style for ostree_repo_scan_hardlinks()
      lib/pull: Only look for cookie files for non-local remotes
      lib/pull: A bit of new style porting
      lib/commit: Add some error prefixing for txn commit/tmpdir
      lib/sysroot: Use fd-relative acccess for bootversion cleanup
      tree-wide: Add error prefixing for most remaining syscalls
      lib/grub2: Port some to new code style
      lib: Add a private helper to abort txns, use in sysroot cleanup
      lib/syslinux: Port to new code style
      ci: Fixate CentOS container image until rpm-md repos sync
      lib/sysroot: Use direct g_mkdtemp() for overlay tmpdir
      build-sys: Add -Werror=switch
      lib/repo: Port tmpdir locking func to new style
      lib/checkout: Rename disjoint union, change to merge identical files
      tests: Port some bits of C to new style
      Release 2017.11

Dan Nicholson (4):
      repo: Fix non-system remotes-config-dir usage
      sysroot: Reload config after setting sysroot kind
      repo: Add add-remotes-config-dir option
      repo: Ensure new config doesn't set remotes in separate file

Guy Shapiro (3):
      lib/sysroot: fix placement for not-default deployment
      uboot: move system uEnv merge to new function, clean up
      uboot: add non-default deployments to uEnv.txt

Jonathan Lebon (12):
      tests: fix admin upgrade timestamp file check
      pull: better description for --mirror
      ostree-sysroot: convert function to new style
      ostree-sysroot: make simple_write_deployment smarter
      commit: filter out selinux label before commit
      bin/main: Print usage when no command given
      bin/config: Tweak parameter string
      tests/test-help.sh: Rework and strengthen checks
      bin/admin: Don't require root for instutil
      bin/static-delta: Convert to new style and tweak output
      bin/admin: Don't load sysroot for root commands
      bin/remote: don't load repo on root command

Matthew Leeds (5):
      lib/repo-refs: Include remote refs when using collections
      lib/repo-refs: Fix typos in last commit
      tests: Make the deployment mutable in test-sysroot.js
      tests: Check "refs -c PREFIX" behavior
      lib/repo: Update outdated comment

Philip Withnall (2):
      build: Add distcheck configure flags to fix systemd and bash-completion
      build: Ensure ostree-tmpfiles.conf is distributed

Robert McQueen (3):
      lib/gpg: Add _FINGERPRINT_PRIMARY to OstreeGpgVerifyResult
      lib/gpg: Correct missing line prefix with bad signatures
      lib/gpg: Provide the public key to the duplicate check

Ruixin (1):
      checkout: add an extra checkout_overwrite mode

Simon McVittie (6):
      test-libarchive-import: Skip if extended attributes are unsupported
      test-pull-bareuser.sh: This test uses bare-user, hence needs xattrs
      libtest: Allow skipping single checks without user xattrs
      basic-test: Skip explicit uses of bare-user if no user xattrs
      test-basic-user-only: Skip final step if no user xattrs
      Remove shebang from bash completions

Git-EVTag-v0-SHA512: 2b541ac9e19ad265e6b95bf04d2d3bb0efedf95e301709e0261ca74401b4fb3f8431d39c312527537cd3bb94c6870adb5c71b477a8684ac2b04807b50770bb9d

2017.10

17 Aug 18:58
v2017.10
Compare
Choose a tag to compare

In this release, Philip set up Coverity scans, and we fixed
all of the problems it found. I'm proud that we ended up
with a notably lower than average defect density. None of
the issues were critical; the only off-by-one array indexing
for example was in a test case.

Two new contributors showed up and submitted patches for
the documentation - it's hard to describe how happy this makes me!

bash: Add bash completion (Matthew Barnes)
is a quite welcome change as well!

There are a number of smaller features:

lib/repo: Add API to create and list ref aliases

We're planning to use this for Fedora Atomic Host to
define a version-independent ref, while still offering
per-major refs.

repo: Introduce ostree_repo_open_at() and ostree_repo_create_at() is
a notable new API, and finally completes our fd-relative porting for
OstreeRepo. The semantics of these functions are nicer; it's now
more convenient to unconditionally call ostree_repo_create_at() for
example to ensure a repository exists, returning the opened result.

lib/sysroot: Add journal-msg signal is a nice cleanup in that we finally
stopped doing printf() in the library code for OstreeSysroot. If you
maintain a client, you should start listening for this signal, like the demo
command line does (if you want the text of course).

In the "important bugfixes" category,
pull: mark commits from local cache as partial
fixes up the --localcache-repos logic, which is used in
Fedora's Anaconda at least.

Philip also contributed a number of bugfixes for the collections
logic as well as cases of trying to download a missing summary file.

Thanks to all contributors!

Colin Walters (39):
      build-sys: Post-release version bump
      grub2: Handle aarch64 (at least on Fedora/RHEL)
      lib/pull: Journal fetch results
      docs/pull: Finish incomplete docs for pull@hash syntax
      tests: Add some return value checking to pacify Coverity
      bin/refs: Fix error handling logic
      tests/lzma: Use GRand over random()
      rofiles-fuse: Add missing error handling for fcntl()
      tests/lzma: Fix off-by-one in buffer size
      lib/commit: Rework a conditional set for clarity and Coverity
      lib/curl: Only check individual request errors
      lib/gpg: Switch to GLib autocleanups for gpgme types
      tree-wide: Use GLib autocleanups for libarchive
      lib/sysroot: Add prefixes to syncfs/fsync error messages
      lib/deploy: Add structured logging info for syncfs() times
      lib/repo: Add API to create and list ref aliases
      lib/pull: Log state of summary/commit GPG verification
      tests/libtest-core.sh: Add a comment that this copy is canonical
      tree-wide: Use g_autoptr(Ostree*)
      lib: Define and use an autoptr cleanup for gpgme_key_t
      tree-wide: Fix the build with old glib (Ubuntu Trusty etc.)
      lib/deltas: Squash Coverity warning for div-by-zero in delta show
      bin/pull: Fix @ override syntax when pulling multiple refs
      tree-wide: Remove trailing semicolon from autoptr declarations
      lib: Port gpg verification for remotes to fd-relative
      lib/deploy: Use a FIFREEZE/FITHAW cycle for /boot
      lib/sysroot-deploy: Port a kernel finding logic to new style
      lib/sysroot-deploy: Refactor kernel layout parsing
      lib/sysroot: Add journal-msg signal
      lib/deploy: Close test suite race condition
      repo: Introduce ostree_repo_open_at() and ostree_repo_create_at()
      Update libglnx
      build-sys: Move bash completions to /usr/share/ by default
      lib/deploy: Really close testing race condition
      lib/deploy: Ignore errors from FITHAW
      lib/sysroot: Port a few functions to new style
      docs/related-projects: Tweak client side snapshot text, add casync
      lib: Fix v2017.10 symbols to inherit from v2017.8
      Release 2017.10

Guy Shapiro (2):
      Documentation: README: Remove deprecated wiki link
      Documentation: static delta default from

Jonathan Lebon (5):
      man: document configured branches
      pull: mark commits from local cache as partial
      ostree-deployment.c: simplify equality check
      pull: mention libcurl in NOT_SUPPORTED pull path
      ot-main.c: fix signal callback signature

Lisa St. John (1):
      Update introduction.md

Matthew Barnes (2):
      bash: Add bash completion
      ostree: Add naggy comments to help keep options in sync

Matthew Leeds (2):
      main: Fix subcommand usage output
      man: Update ostree-refs manpage

Philip Withnall (12):
      lib/repo-pull: Fix counting of latest commits when finding repos
      lib/repo-finder: Avoid a potential unref-of-NULL crash
      lib/repo-pull: Add a missing precondition
      lib/repo-refs: Add ostree_repo_remote_list_collection_refs() API
      lib/repo-finder-avahi: Drop redundant conditional
      lib/repo-commit: Drop unreachable conditional branch
      lib/sepolicy: Drop duplicate assignment
      ostree/parse-datetime: Ensure tm structs are initialised
      lib/repo: Fix handling of missing summary files when downloading
      lib/repo-finder: Emit gpg-verify-summary=false in dynamic remote config
      lib/gpg-verify: Add an OstreeGpgError error domain
      lib/repo-finder-config: Add some more debug output

Robert McQueen (2):
      gpg-verify-result: canonicalise key when looking up signatures
      gpg-verify-result: try to display the primary key ID from signatures

Stef Walter (2):
      autogen.sh: Fix running out of tree
      man: The min-free-space-percent item goes in [core] section

Git-EVTag-v0-SHA512: af9b85f48e6f3e2de6393ab5f458e6ef405c82a1f618b8fe3c2441fa149d629f9ab464907695a9c8eb82de413692ec1015421f0958315dffe514f23ce798db3d

2017.9

27 Jul 13:13
v2017.9
Compare
Choose a tag to compare

A notable new feature in this release is that the pull machinery now interprets
two new metadata keys: ostree.ref-binding and ostree.collection-binding.
This allows closing a longstanding class of "sidegrade" attacks that Florian
Weimer identified when performing a security audit of libostree years ago:
https://bugzilla.gnome.org/show_bug.cgi?id=724873
There was a more recent discussion on this topic on the list:
https://mail.gnome.org/archives/ostree-list/2017-May/msg00013.html

For the ostree-as-host case, this only matters if you offer multiple refs. For
flatpak, it's more important as a MITM attacker could actually switch applications;
that's why flatpak implemented this a while ago as xa.ref.

I'll note here that it's recommended for content providers to make use of
ostree's support for tls-ca-path to implement TLS CA pinning, which protects
all metadata and content in a strong fashion; in this scenario the GPG
signatures act as a secondary layer of defense and make offline verification
easier (for e.g. mirroring).

Otherwise, there's some performance enhancements for local pulls, and a variety
of bugfixes.

Thanks to all contributors!

Colin Walters (24):
      build-sys: Post-release version bump
      deploy: Port some functions to new style
      checkout: Don't set dir mtime to 0 when doing a force copy checkout
      tests: Run pull tests for bare/bare-user
      lib/pull: Avoid journaling 404s for optional content
      ci/papr: Update to F26
      lib/pull: Do local content imports async too
      Add a notion of "physical" sysroot, use for remote writing
      bin/cookies: Drop libsoup code, fix fd-relative issues, new style
      lib/pull: Drop direct use of ->repodir
      Update libglnx, port various bits to new API
      core: Sanitize error text validating refs (e.g. against HTML)
      lib/repo: Auto-recreate repo/tmp if it's deleted
      ci/papr: Switch primary to libcurl, add libsoup context
      lib/commit: Fix EBADF with GENERATE_SIZES option for commit
      ci/papr: Add a suite to run introspection-based tests without ASAN
      lib: Add #defines for current well-known metadata keys
      tests: More fixes for gjs tests
      ci: Enable -Werror for clang
      build: Turn off default warnings if we find -Werror specified
      Update libglnx, port some uses to newer APIs
      lib/core: Add #defines for ref/collection binding
      ci: Enable libcurl by default on Fedora
      Release 2017.9

Emmanuele Bassi (1):
      Move the include directive to the enum template

Krzesimir Nowak (4):
      ostree: Add collection and ref bindings to metadata on commit
      lib/pull: Pass the ref together with the request
      lib/pull: Collection and ref bindings verification
      tests: New tests for creating commits with bindings and pulling them

Philip Withnall (4):
      lib/repo-commit: Fix types of content size cache entries
      lib/repo: Add OSTREE_REPO_METADATA_REF as a well-known metadata store
      build: Ensure all .sym files are distributed in tarballs
      build: Ensure all experimental tests are distributed in tarballs

Ruixin (1):
      lib: Add #define for endoflife metadata key

Simon McVittie (1):
      build: Don't distribute generated man pages

Git-EVTag-v0-SHA512: d5eff57f587038fcb29ee373db2ecae03908bb1fb0cbbad8d6f30fa8ec618c24b7312b03a4b958a8c10ce1450525382609f6726e837b77a7de8aa26c87a9cf67

2017.8

18 Jul 18:02
v2017.8
Compare
Choose a tag to compare

This is a quicker release closely following 2017.7, but it still
includes a number of changes. First, a lot of work is landing
from Philip/Krzesimir for doing "collections" and pulling
content from Avahi/USB drives etc. That work is still underneath
--enable-experimental-api, but look for more from that soon!

Other notable user-visible feature PRs from this cycle are:

lib/repo: Add min-free-space-percent option, default 3%: #987
Add "pull --localcache-repo": #982

An important bugfix for bare-user repo mode owners is:
lib/commit: Ensure bare-user objects are always user-readable: #989

Besides that we have a lot of code cleanup, CI work, etc.

Thanks to all contributors!

Colin Walters (44):
      main: DevelBuild=yes to `ostree --version` for devel builds
      build-sys: Post-release version bump
      repo: Squash a gcc `-Wmaybe-uninitialized` warning
      ci: Enable -Werror=maybe-uninitialized
      lib/core: Avoid NULL deref in content_file_parse() if out variable unset
      lib/repo: Split archive/bare file parsing
      lib/repo: More cleanup of load_file() internals
      lib/deltas: Port to more to new code style
      cmd/fsck: Port to new style
      tests: add a syntax-check rule for glnx_prefix_error()
      lib/commit: Clean up commit file type handling variables
      lib: Hoist unlinkat() cleanup API to fsutil, use in pull
      lib: Use OtTmpFile for static delta processing
      lib/commit: Fix fallocate size for bare-user symlinks
      lib/ref: Suppress more collection ref methods from introspection
      ci: Make introspection warnings fatal
      lib/deltas: Some style porting
      build: Don't scan ostree-remote.h for introspection if !experimental-api
      pull: Check free space when pulling deltas
      ci: Actually run installed tests again
      Port to GLnxTmpfile
      tree-wide: Misc porting to newer libglnx APIs
      libutil: Add a helper for O_TMPFILE + mmap()
      lib/commit: Refactor non-failable size indexing function
      lib/deltas: More porting to new code style
      lib/repo: Port bareuser-conversion stat to bare load
      lib/pull: Some small style porting
      tests: Fix assert_files_hardlinked
      lib/pull: Don't fetch detached metadata twice for local pulls
      tree-wide: Replace various uses of `archive-z2` → `archive`
      cmdline/pull: Print final status even if noninteractive
      lib: Add a helper to convert struct stat → GFileInfo
      lib/commit: Port a few minor functions to new style
      lib/pull: Move check for requested content earlier
      Add "pull --localcache-repo"
      lib/commit: Fix a tmpfile fd leak in static delta processing
      bin/commit: Port helper functions to new style
      bin/commit: Add '=' to --statoverride
      lib/commit: Ensure bare-user objects are always user-readable
      lib/commit: Use provided length when doing writes
      lib/repo: Add min-free-space-percent option, default 3%
      pull: Cleanly error when doing local pulls of remote-prefixed refs
      lib/repo: Immediately error creating bare-user repo on tmpfs
      Release 2017.8

Jonathan Lebon (6):
      ci: add ci-release-build.sh
      papr: build and test on c7
      test-switchroot.sh: skip if no busybox
      codebase: start using GLNX_HASH_TABLE_FOREACH macros
      ci: unconditionally turn on -Werror
      pull: fix GLNX_HASH_TABLE_FOREACH_KV regressions

Philip Withnall (31):
      build: Add ‘devel’ or ‘release’ to OSTREE_FEATURES for test-symbols.sh
      lib/core: Add ostree_validate_remote_name() for remote names
      lib/core: Fix ‘Since’ line for ostree_validate_remote_name()
      lib/sym: Fix symbol versions for 2017.7 experimental symbols
      lib/remote: Fix ‘Since’ line for OstreeRemote
      lib/repo: Split out ref handling from regenerate_summary()
      lib/ref: Add OstreeCollectionRef type for globally unique refs
      lib/repo: Add collection ID support to OstreeRepo
      lib/refs: Add methods for setting/listing collection–refs
      lib/pull: Add collection support to ostree_repo_pull_with_options()
      lib/repo-finder: Add basic support for finding remote URIs by ref name
      lib/repo-finder: Add config-file based OstreeRepoFinder implementation
      lib/repo-finder: Add mount based OstreeRepoFinder implementation
      lib/bloom: Add an internal bloom filter implementation
      lib/repo-finder: Add Avahi based OstreeRepoFinder implementation
      find-remotes: Add a find-remotes built-in command
      find-remotes: Add pull support to the find-remotes built-in command
      init: Add a --collection-id argument to the built-in init command
      remote-add: Add a --collection-id argument to the built-in add command
      refs: Add a --collections argument to the built-in refs command
      ostree/dump: Include collection IDs and mirrored refs in summary dumps
      ostree/builtins: Add support for collection–refs to a few utilities
      tests: Add integration tests for collections
      lib/refs: Add runtime error checking for collection ID validity
      lib/repo: Fix a typo in a documentation comment
      tests: Fix incorrect `summary --update` usage in test-local-pull.sh
      ostree/summary: Add support for adding additional metadata
      lib/pull: Don’t cache summary file until its signature is verified
      lib/pull: Check whether summary is in normal form when loading it
      lib/pull: Use ostree_repo_verify_summary() to verify summary on pull
      lib/repo: Fix repo-finder deleting remote configs when run

Simon McVittie (1):
      build: Always include ostree-trivial-httpd.xml in tarballs


Git-EVTag-v0-SHA512: e1c420d6528a51dc5daacaec241c6ffaa66be4ba8e07d61bad74086e6add9418a036f26f571e13ea90db482ff2985608c97faa3eb951216a0411cf062de8a4cc

2017.7

19 Jun 15:45
v2017.7
Compare
Choose a tag to compare

The most notable thing for this release is that for flatpak users/distributors,
this release adds a lot of (opt-in) hardening against setuid or world-writable
files. These issues are also (to a lesser degree) applicable to ostree-based
build systems which use the bare-user repository mode. A pending flatpak
version will require this version of libostree. More information in:
flatpak/flatpak#845

For ostree-as-host, we fixed a major regression in SELinux labeling for
/etc (only applies to SELinux-using host systems).

Known issue: test-symbols.sh will fail when building from the tarball (as
opposed to a git clone). Pending fix: #944

Besides that, there's various smaller cleanups and fixes. It's great to see
contributors from a variety of organizations; having libostree be a shared
infrastructure layer across distributions is a longstanding vision. Thanks to
all contributors!

Alexander Larsson (5):
      fetcher: Send Accept-Encoding: gzip when downloading summary
      repo: After renaming in all loose objects, ensure metadata is stable
      lib/repo: Always look in staging directory for objects
      pull: When mirroring, only replace summary if we're doing a full mirror
      static delta apply: Work on bare-user-only repos

Anton Gerasimov (1):
      lib/sysroot: Add API to get pending/rollback for given stateroot

Brian C. Lane (1):
      Remove the OSTREE_MAX_RECURSION limit on metadata depth

Colin Walters (51):
      tests/test-symbols.sh: Fix with --enable-experimental-api
      ci: Add unit case for --enable-experimental-api
      tests/libtest-core: Copy rpm-ostree changes, clean up
      bin/cookies: Delete dead tmpfile code in cookie list command
      Add stub for new libglnx tmpfile API, port simpler callers to it
      lib/deploy: Port config merge logic to new code style
      tests: Add some C tests for object writing
      pull-test: Add some 404 tests
      lib/fsutil: Delete unused GFile ioctl method
      lib/fsutil: Port to new code style
      lib: Add an "is_system" member to OstreeRepo
      lib/sysroot: Add non-failable ostree_sysroot_repo()
      tree-wide: Add+run spatch to use glnx_throw()
      cmd: Use autoptr for GKeyFile
      lib/util: Some style conversion
      Add a notion of "physical" sysroot, use for remote writing
      repo/commit: Dedup metadata writing API implementations
      repo/commit: Dedup content writing API implementation
      repo/commit: In the expected checksum case, check existence early
      repo/commit: Don't renormalize trusted metadata
      repo/commit: Split up metadata/content commit paths
      lib/repo: Delete unused private prototypes
      Revert "Add a notion of "physical" sysroot, use for remote writing"
      Don't install trivial-httpd man page if not enabled
      Canonicalize bare-user-only perms with 0755 mask
      builtins/cat: Port to new code style
      lib/repofile: Port mostly to new code style
      lib/repofile: Follow symlinks for `g_file_read()`
      lib/repo: For bare-user, mask content object modes with 0775
      tests: Add a test for bare-user-only failing to commit suid content
      repo/commit: Support group-writable files for bare-user-only
      ci: Update to match current rpm-ostree
      ci: Add CentOS 7 build
      repo: Fix leak of superblock fds when generating summary
      lib/commit: Port final object writing function to new code style
      lib/commit: Drop some conditionals/clarify code in content path
      lib/checkout: Ignore world-writable dirs for bare-user-only checkout
      lib/repo: Refactor object copy import function
      lib/repo: Skip import via hardlink if repo owners don't match
      lib/repo: Import metadata via hardlink even for distinct repo modes
      lib/repo: Support hardlink conversions from bare-user to bu-only
      lib/pull: Add OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES
      lib/checkout: Add bareuseronly_dirs option
      build-sys: post-release version bump
      lib/sysroot: Add some g_prefix_error() for ostree_sysroot_cleanup()
      lib/pull: Extend BAREUSERONLY_FILES flag to HTTP requests
      lib: Split symbol versioning into -released and -devel
      checkout: Fix SELinux policy labeling when recursing
      tests: Fix previous commit for selinux testing
      build-sys: Add "release build" flag, use for symbol versioning
      Release 2017.7

Daniel Drake (2):
      libtest: allow committing to alternative branches
      Allow commits to mark refs as EOL, replaced by others

David Shea (1):
      lib/repo: Fix annotations for out parameters

Jonathan Lebon (6):
      pull: complete detached meta fetch before scanning
      PAPR: migrate to the new name
      checkout: don't apply SELinux labeling in user mode
      checkout: also chmod in the user checkout case
      manual: document bare-user-only repo mode
      basic-test.sh: explicitly check for uncompressed objects

Krzesimir Nowak (1):
      lib/sysroot: Document the NO_CLEAN flag

Owen W. Taylor (1):
      lib/repo: Don't copy xattrs when manipulating the GPG keyring

Philip Withnall (16):
      lib/remote: Add a getter for OstreeRemote.name
      lib/remote: Add internal annotations to OstreeRemote
      lib/remote: Add arguments to internal OstreeRemote constructor
      lib/repo: Add return value to _ostree_repo_add_remote()
      lib/repo: Make ost_repo_remove_remote() available internally
      lib/remote: Fix compilation with --enable-experimental-api
      build: Use AM_TESTS_ENVIRONMENT rather than TESTS_ENVIRONMENT
      lib/repo: Reindent some code in regenerate_summary() for clarity
      lib/pull: Fix a typo in a documentation comment
      lib/pull: Simplify a for-loop initialisation
      lib/pull: Drop some trailing whitespace
      lib/pull: Fix an over-indented block
      ostree/dump: Improve formatting for well-known commit metadata keys
      lib/repo: Omit deltas from the summary file if there are none
      lib/fetcher: Add cleanup function for OstreeFetcher
      lib/pull: Fix construction of a refspec to use the correct separator

Tristan Van Berkom (1):
      ostreee-version.h.in: Added Since: version annotations



Git-EVTag-v0-SHA512: 5115bcfa837cf59ed3672f5c7717796091ce2e88eb3ecb75148d14055246529afc2206d8e02540d2f6cb0254bee4d29506b47dbd65212f5a0b14a846f1cc986e
-----BEGIN PGP SIGNATURE-----

iQEwBAABCgAaBQJZR/ALExx3YWx0ZXJzQHZlcmJ1bS5vcmcACgkQ3EX9WSHBPwsj
Fwf+J5XIzBg7EWZOvM46tJsIz4SheSC0ULEIOT497S25mZepMUbyWfp5eS1pgr8O
daj/tUwRqWjC84kTF6lo0ChBahQl6d+QFQsC8HYdyKfBgnIfVOEkKfdea5Q2Syed
Ox/ntiPUDdO1bUZ+72X6TpQGaBhV1XfL8l9GT91ZCRgQ22yt3i0hdiAJOX+ka0ix
bD3Dy1LQz/CieUz7ViAMHWxZvva42a+ybKdzgX2r0W9Ci6NXXysOSMtKXCzoNyZl
rf0lzpmx0LpddICUEkn07uSoC2y9Yep8JRH4UKJ5vdbP3h76D1cMckRwNvYvtsjO
vapkPL9pqn/Fv2Rr/oNY3WPJ5w==
=IYbt
-----END PGP SIGNATURE-----

2017.6

17 May 21:36
v2017.6
Compare
Choose a tag to compare

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-----