Skip to content
Tags give the ability to mark specific points in history as being important
  • v2016.8
    73eabca5 · Release 2016.8 ·
    Release 2016.8
    First, there's some ongoing work in this release to support
    systems without an initramfs, which is common in the classical embedded
    space.  Thanks to William Manley and Gatis Paeglis!  I expect in the
    future to do more work on improving ostree for the embedded case, such
    as making more dependencies optional, and notably supporting libcurl.
    In working on OCI/OSTree integration, we realized that some
    APIs like checkout and archive import weren't introspectable.  There's
    a new checkout API that use booleans rather than bitfields, and the
    previous one is deprected.
    Thanks to Simon McVittie for improving the test suite, and extending
    it to Debian on Travis.
    This release is also notable for the completion of the port to "libglnx",
    so OSTree no longer depends on libgsystem.
    Besides that, this release is mostly bugfixes.
    Thanks to all contributors!
    Colin Walters (49):
          tests: Fix karg tests on ostree-booted system
          Revert "tests/ Print non-matching file on failure"
          repo: Ensure we set mode for bare-user files before xattrs
          builtins/commit: Switch to using ostree_repo_write_dfd_to_mtree()
          build: Make symlink depend on source
          docs/formats: Elaborate a bit on delta from NULL usage
          repo: Fix leak with ostree_repo_commit_traverse_iter_init_commit()
          pull: Don't execute static deltas when mirroring
          trivial-httpd: Fix leak of option context
          glib.supp: Suppress some dynamic type registrations too
          pull-local: Explicitly unref variant rather than relying on floating
          glib.supp: Suppress worker context -> thread bits
          fetcher: Explicitly join thread if it's not self
          glib.supp: Suppress g_task -> thread leaks
          sysroot: Fix a leak in deployment dirpath API
          deploy: Fix leaks in parsing /etc/os-release
          lib: Fix leak in bootconfig parser
          lib: Fix compiler warning from previous patch
          tests/delta-crosscheck: Add missing --from
          deltas: Handle untrusted checksums faster and more robustly
          libglnx porting: Migrate to new tempfile code
          repo: Make ostree_repo_create() nonfatal on existing repos
          deploy: Replace a use of gs_file_enumerator with compat wrapper
          repo: Port sign_data() to libglnx tmpfile APIs
          repo: Port to g_autoptr() rather than old style cleanup macros
          lib: Port away from gs_file_rename()
          grub2: Port away from gs_file_sync_data()
          deltas: Port compilation to libglnx/fd-relative
          repo: Flip the fsync default to off for new checkout API
          lib: Add padding booleans to OstreeRepoCheckoutAtOptions
          Update libglnx for O_TMPFILE build time option
          lib: Use libglnx file replace API more consistently
          lib: Fix a compiler warning introduced from earlier patch
          repo: Port metadata writing code to fd-relative
          lib: Drop GFiles for self->{objects_dir,state_dir}
          repo: Drop internal GFile config_file
          .travis.yml: Delete, we aren't using it right now
          repo: Drop more internally unused GFile members
          build: Import attributes.m4, detect CFLAGS at build time
          build: Make -Werror=int-conversion fatal
          repo: Fix an uninitialized variable
          deploy: Port file copying code to GLnxDirFdIterator
          deploy: Use internal recursive copy rather than libgsystem
          build: Update .gitignore
          prune: Retain the tip of each ref even with date pruning
          Final excision of libgsystem dependency
          travis: Disable email notifications
          tests: Port sysroot.js away from libgsystem
          Release 2016.8
    Dan Nicholson (5):
          repo: Fix annotation for ostree_repo_add_gpg_signature_summary
          lib: Fix version script node ordering
          core: Add allocating b64 checksum functions
          deltas: Allow processing of empty delta parts
          tests: Add test for delta with empty parts
    Giuseppe Scrivano (5):
 make check uses the built binaries
          libostree: new function ostree_repo_checkout_at
          libostree: mark ostree_repo_checkout_tree_at as deprecated
          libostree: skip introspection for two functions
          libostree, ostree: fix usage of ostree_repo_checkout_tree_at
    Jonathan Lebon (3):
          libglnx: bump to latest
          static-delta: fix command contexts
          static-delta: remove unused struct
    Matthew Leeds (1):
          README: Fix broken link     Closes: #397     Approved by: cgwalters
    Simon McVittie (3):
          Update libglnx: Add missing files to libglnx distribution
          Skip tests that use whiteouts under Docker/aufs
          travis: run the test suite on various distributions
    William Manley (10):
          tests: Add basic tests for ostree-prepare-root
          ostree-prepare-root: Refactor code to resolve deploy_path
          ostree-prepare-root as init: exec init from deployment if run as PID1
          ostree-prepare-root: Cope with /proc not being mounted
          ostree-prepare-root: Refactor: Create /sysroot.tmp much later
          Refactor ostree-prepare-root: Perform chdir to deploy directory earlier
          ostree-prepare-root: Use pivot_root if real sysroot is already mounted at /
          ostree-prepare-root: Make error message capitalisation consistent
          ostree-prepare-root: Fix typo in error message
          ostree-prepare-root: Add test that overlayfs over /usr works.
    Git-EVTag-v0-SHA512: f819c064f27c2fc62ca80ad7448c6ab59ef5425542dd5e43d4e89152cf1bf92075d00ee2ce7dc4c7b853bad48a893b20c4cb6cd9b6936c100ca864ab8b51aba7
  • debian/2016.7-1
    109b2fe0 · 2016.7-1 ·
    ostree Debian release 2016.7-1
  • upstream/2016.7
    Upstream version 2016.7
  • v2016.7
    c31cf755 · Release 2016.7 ·
    Release 2016.7
    This release is almost entirely bugfixes.  Most notable is a fix for a
    relatively rare race condition in the pull code on cleanup (after
    completion), and also a memory leak.
    Besides that, there are improvements for the test suite, some more
    porting away from libgsystem, a bugfix for static deltas important to
    flatpak, build tweaks for older glib, etc.
    Thanks to all contributors!
    Alexander Larsson (2):
          pull: Correctly handle repo->parent_repo when applying static deltas
          tests: Test partial commits for local remotes
    Bastien Nocera (1):
          libostree: Fix build failure with glib 2.42
    Colin Walters (17):
          libostree.sym: Fix test-symbols
          libglnx porting: Use of GSDirFdIterator
          lib: Use sd_journal directly (optionally)
          lib: Use g_file_enumerator_iterate() if available, with fallback
          libglnx porting: Drop uses of gs_file_openat_noatime
          pull: Write commitpartial files for local imports too
          build-sys: Make depend on the symbol file
          rofiles-fuse: Do allow fchmod/fchown on directories
          checkout: Add an option to require hardlinks
          delta: Add --if-not-exists option
          docs: Add a section on Docker
          tests/ Print non-matching file on failure
          tests: Add some test coverage of repeated pulls w/HTTP 500s
          fetcher: Hold a ref to main context for lifetime of thread
          fetcher: Clear all data for session in session thread
          fetcher: Remove unused GTask structure member
          Release 2016.7
    Dan Nicholson (6):
          tests: Remove gpg verification files from EXTRA_DIST
          tests: Ensure mutable deployments from libostreetest
          build: Distribute libglnx and bsdiff Makefile templates
          tests: Remove extra $CMD_PREFIX from
          tests: Improve check for /proc/cmdline kargs
          build: Override systemd unit directory for distcheck
    Jonathan Lebon (2):
          ostree admin switch: fix short summary
          static-delta-core.c: squash unused var warning
    Krzesimir Nowak (1):
          core: Fix wrong return value docs
    Mathnerd314 (5):
          core: Use OSTREE_SHA256_STRING_LEN instead of 64
          configure: Turn on -Wempty-body
          refs: Fix a logic error
          pull: Free fetch_data by default
    Simon McVittie (3):
          entry_pathname_test_helper: these tests need extended attributes
          tests: use our own generated libtool, not the one in $PATH
          tests: fail the build if symlinking tests/ostree fails
    Yu Qi Zhang (2):
          refs: allow overwrite of empty folders
          refs: resolve conflict between local/remote repos
    Git-EVTag-v0-SHA512: 782bd89c873f94081a7ec1bd8d1d802738960e48580a1ca6dbe00d86e7700fb7d36e86148100d30d7523c19a836b3abe7a8495327e238942817ec5700c165a64
  • debian/2016.6-4
    ostree Debian release 2016.6-4
  • debian/2016.6-3
    eb427ca1 · 2016.6-3 ·
    ostree Debian release 2016.6-3
  • debian/2016.6-2
    0187b512 · 2016.6-2 ·
    ostree Debian release 2016.6-2
  • debian/2016.6-1
    3f50f368 · 2016.6-1 ·
    ostree Debian release 2016.6-1
  • upstream/2016.6
    Upstream version 2016.6
  • v2016.6
    6c7e1911 · Release 2016.6 ·
    Release 2016.6
    There's quite a lot of changes in this release since 2016.5, but one
    thing I want to call out explicitly is that we fixed a race condition
    in the HTTP pull code that could cause hangs or crashes that mostly
    occurred only when doing "large" pulls (thousands of object requests).
    If this occurs, client systems can work around it by cancelling and
    retrying the pull.
    Other high level changes:
    Jonathan Lebon:
          ostree-repo-libarchive.c: major refactor
    This laid more groundwork for rpm-ostree to import RPM (CPIO) archives
    sanely.  If you are integrating with an existing package management
    format, this should help a lot.
    Mathnerd314 (11):
          repo: use OSTREE_TIMESTAMP (=1) for checked-out files
    Is a quite interesting change - we previously used a timestamp of
    zero, but Nix has apparently done better with `1` for various reasons.
    This is a pretty subtle change, so be on the lookout for regressions.
    Thanks to all contributors!
    Alexander Larsson (13):
          ostree export: Add --subpath support
          ostree export: Add --prefix option
          repo: Allow loading files staged in the transaction
          repo: Fix temporary directory allocation
          repo: Handle parent repos with different remote configuration
          tests: Fix build with old glib
          Build on older versions of glib
          libotutil: Fix leak of VariantMapData
          pull: Fix leak of debug temporary strings
          pull: Fix leak of FetchObjectData in some cases
          pull: Fix leaked uri in request_static_delta_superblock_sync
          pull: Fix leak of refs_to_fetch
          tests: Exit valgrind tests if a leak is detected
    Colin Walters (50):
          core: Remove ostree_checksum_update_meta that was not implemented
          lib: Remove ostree_repo_file_make_empty_tree
          Rename test-abi to test-symbols, start verifying symbols are documented
          libtest: Skip FUSE if CAP_SYS_ADMIN not in bounding set
          repo: Simplify internal has_object() lookup code
          deploy: Start hardlinking kernel/initramfs on single-part again
          build: Introduce --with-dracut=yesbutnoconf
          libglnx porting: Migrate from GSConsole
          repo: Fix reading repos on read-only media
          repo: Add OSTREE_REPO_TEST_ERROR=pre-commit env var
          repo: Add OSTREE_BOOTID override envvar for debugging
          repo: Clean up staging directory for previous boot IDs
          repo: Make repo/tmp expiry configurable via tmp-expiry-seconds
          lib: Add more filename validations (no ., .. or /) in commit logic
          libglnx porting: Migrate to glnx_stream_fstat()
          build: Use --std=gnu99
          trivial-httpd: Add __attribute__((format))
          Make enum generation private by default, export stub symbol
          build: Don't run glib-mkenums if there's nothing to do
          README: x/xdg-app/flatpak/
          libglnx porting: Port "load utf8 file" contents API callers
          repo: Port uncompressed cache GC to libglnx
          libglnx porting: Port callers of gs_file_unlink to just unlink()
          libglnx porting: Port away from gs_file_ensure_directory()
          sysroot: Correct error handling path in previous libglnx port
          core: Port to new libglnx tempname API
          lib: Change ot_util_variant_map helpers to consistently sink refs
          lib: Drop GFile variant mapping API for fd-relative
          libglnx porting: Port away from gs_file_map_noatime()
          glnx porting: Port away from gs_file_get_basename_cached()
          tests: Use strict mode by default for C tests
          tests/test-pull-c: New test that runs through the pull API via C
          glnx porting: Drop last uses of gs_file_get_basename_cached()
          libglnx porting: Drop last use of gs_transfer_out_value()
          glnx porting: Drop use of gs_file_openat_noatime
          lib: Add `_ALLOW_NOENT` flag to internal variant mapping API
          lib: Add a helper for mmap->bytes with openat(), use it in repo
          repo: (minor) Drop a GFile usage in signature creation
          lib: Fix a leak in remote parsing
          lib: Add OSTREE_SUPPRESS_SYNCFS environment variable
          tests: Modernize valgrind infrastructure
          lib: Port some manual close() cleanups to be glnx_fd_close
          manual: Link to
          Add "archive" as an alias for "archive-z2"
          repo: Avoid a possible divide by zero in progress
          manual: Discuss mirroring
          build: Fix libreaddir-rand to honor global CFLAGS
          tests: Support OT_SKIP_READDIR_RAND
          pull: Ensure we always process queue only from main thread
          Release 2016.6
    Gatis Paeglis (3):
          Remove unused variables from install_deployment_kernel
          Fix --enable_rofiles_fuse=no build
          Fix build when have_libsoup_client_certs=no
    Giuseppe Scrivano (1):
          man: add missing options for commit
    Jonathan Lebon (7):
          ostree-repo-libarchive.c: major refactor
          ot-builtin-commit.c: add --skip-list option
          tests/ add more test
          tests/test-libarchive-import.c: add tests
          OstreeRepo: add extensions directory
          ostree_repo_write_commit: add missing docstring arg
 properly check for bison
    Krzesimir Nowak (26):
          lib: Fix a typo
          trivial-httpd: Remove useless code
          lib: Fix an introspection annotation
          tests, lib: Remove unused variables
          lib: Add URL override pull option
          pull: Add a --url option
          trivial-httpd: Add a --log-file option
          tests: Add a test for ostree pull --url
          sysroot: Plug some leaks
          core: Improve variant format docs
          repo: Plug a leak
          repo: Allow using options for fetching summary
          libostree: Variant-related leak plugs and fixes
          libostree: Fix bracket-missing warnings
          libostree: Add g_autoptr() support for the public types
          build: Remind about bumping related versions
          build: Allow ostree to use g_autoptr on its types internally
          build: Install new autocleanups header
          libotutil: Plug a leak
          core: Add a function creating an archive-z2 content stream
          repo: Factor out the check of gpg result to a separate function
          repo: Add a missing Returns paragraph
          repo: Factor out setting up a GPG verifier
          repo: Add functions for verifying any data in repository
          summary: Fix a typo
          repo: Fix build on 32-bit systems
    Mathnerd314 (11):
          commit: accept NULL subject argument
          commit: Add --editor / -e command line argument
          commit: Display subject/body in commit editor
          commit: Don't require a subject
          log: Display "(no subject)" for commits without a subject
          commit: Update manpage to reflect --editor
          repo: use OSTREE_TIMESTAMP (=1) for checked-out files
          pull: Move libsoup-related code from ostree-repo.c to ostree-repo-pull.c
          pull: Move pull and pull_onedir back into ostree-repo.c
          docs: Get API docs working again
          related-projects: Update with more information and projects
    Micah Abbott (1):
          docs: fix swapped link syntax
    Sam Spilsbury (2):
          Makefile: Move to AM_DISTCHECK_CONFIGURE_FLAGS
          repo: Display estimated time remaining when pulling
    Simon McVittie (12):
          libtest: show files' contents when assertions about them fail
          test-parent: this test requires user xattrs
          test-sysroot.js: set "strict mode" when sourcing
          Link libreaddir-rand to libdl
 rely on VPATH for submodules' Makefile-*
          build: distribute libostree.sym in tarballs
          build: distribute test scripts in tarballs
          build: distribute TAP helper scripts in tarballs
          build: distribute more test files
          libtest: make gpghome in tmpdir writeable
          libostreetest: include from srcdir, not builddir
          build: re-create tests/ostree-symlink-stamp if Makefile changes
    Yu Qi Zhang (2):
          refs: add "ostree refs --create" and unit tests
          libglnx porting: delete temp files on failure of file creation
    Git-EVTag-v0-SHA512: 216ec7ea61eeabb0404207b01387b7de85276b2fbf09e39928f4800eddac06904d690dbf66260282a1cc4127f15a68feb0a8da31921d7d943856569cb81b1d6f
  • debian/2016.5-4
    d9f69cfb · 2016.5-4 ·
    ostree Debian release 2016.5-4
  • debian/2016.5-3
    01fe8081 · Upload to unstable. ·
    ostree Debian release 2016.5-3
  • debian/2016.5-2
    ostree Debian release 2016.5-2
  • debian/2016.5-1
    a1bdb2d2 · 2016.5-1 ·
    ostree Debian release 2016.5-1
  • upstream/2016.5
    Upstream version 2016.5
  • v2016.5
    bfa23bdc · Release 2016.5 ·
    Release 2016.5
    This release is the first one where the git repository is now
    canonically [on Github](  The
    guide is now updated, but the TL;DR is we still support patches to the
    mailing list and Bugzilla as well.
    This release has a few highlights.  The first is many updates to the
    tests - thanks in particular to Simon McVittie is working on
    [Debian packaging](
    and as part of that made numerous fixes to the tests.  Jonathan Lebon
    also helped debug some tricky issues resulting from running the tests in
    the Docker container for Project Atomic vs in a pbuilder etc.
    Jonathan Lebon also added new APIs for the OSTree SELinux handling in
    preparation for rpm-ostree package layering work.
    Alexander Larsson contributed several new API and feature additions to
    improve support for a model where a privileged system helper process
    can pull and verify content that was downloaded by an unprivileged
    user - i.e. "Install xdg-app system wide".
    Colin Walters updated the documentation, including a new section on
    [repository management](
    Gatis Paeglis introduced a
    [smaller GRUB2 generator](
    which should be nice for embedded systems - it allows avoiding having
    the full GRUB2 binaries on the target system, which are large due to
    internal static linking.
    Thanks to all contributors!
    Alexander Larsson (19):
          Add --untrusted option to pull and pull-local
          pull: Don't try to cache summaries for pull-local
          Fix local-pull test
          pull-local: Support --gpg-verify and --gpg-verify-summary
          Support pathnames for --subpath=...
          Export ostree_repo_get_remote_option* functions
          Inherit remotes and remote options from parent repo
          Add test case for inheriting remote options
          Add support for ostree static-delta delete
          Fix the symbol versions for ostree_repo_get_remote_*option
          fetcher: Initialize output_stream_set_lock mutex
          commit: Fix crash if dfd_iter is NULL
          Add cache_dir_fd to OstreeRepo
          Add OstreeRepo option for an out-of-band cache dir
          Add remotes-config-dir to OstreeRepo
          Look for $remotename.trustedkeys.gpg in remotes.d dir
          static-delta: Put temp files in /var/tmp
          static-delta: Initialize read_source_fd to -1
    Colin Walters (15):
          Add a stub .travis.yml
          tests: Add a test-abi
          docs: Add a section on repository management
          commit: Support generating commits with no parent, or a custom one
          commit: Support writing orphans
          docs/ Update for github move, Homu etc.
          tests: Make failing to kill the GPG agent non-fatal
          build: Find grub2-mkconfig a bit more automagically
          build: Make tests/ rule use AM_V_GEN
          pull: More consistently use remote_repo_local for local repos
          build: Move grub2-15_ostree back to pkglibexecdir
          man: Elaborate on per-remote GPG
          refs: Add g_prefix_error around opendir for easier debugging
          Release 2016.5
    Dan Nicholson (4):
          core: Add verbose messages for pruning
          core: Add debug messages for traversing
          build: Set G_LOG_DOMAIN to OSTree
          main: Set log handler for OSTree domain
    Gatis Paeglis (2):
          Introducing ostree-grub-generator
          Fix AS_HELP_STRING for builtin grub2 mkconfig
    Giuseppe Scrivano (6):
          tests: add libostreetest.h to EXTRA_DIST
          tests: add missing ${CMD_PREFIX} before ostree
          contrib: indent golang code using only tabs instead of both tabs and spaces
          Remove empty new lines at the EOF
          docs: Prefer the form "cannot" to "can not"
 ignore syntax-check for
    Jonathan Lebon (7):
          Merge pull request #220 from cgwalters/travis-stub
          OstreeSePolicy: add ostree_sepolicy_get_csum()
          commit: support editor for orphan commits
 always corrupt a regular file, not a symlink
          basic-test: commit with a non-empty subject
          small cleanups
          ostree-repo-pull: always initialize flags_i
    Krzesimir Nowak (1):
          manual: Fix a bunch of typos and docbookisms
    Simon McVittie (16):
          packaging: fix bashism in dist-snapshot target
          test-xattrs: use TAP syntax to skip test
          various tests: skip if temp directory lacks xattr support
          Symlink into tests directory
          tap-test: clean up temporary test directories as intended
          In tests that use gpg, terminate the gpg-agent after testing
          .gitignore: update
          Load g-i bindings from builddir during build-time testing
          tests/ this is a bash script, not a POSIX sh script
          Force libreaddir-rand to be a shared library
          Skip tests that run rofiles-fuse if /dev/fuse or /etc/mtab unavailable
          Probe for GNU parallel more accurately
 use G_TEST_SRCDIR, G_TEST_BUILDDIR to find resources
          test-abi: use G_TEST_SRCDIR, G_TEST_BUILDDIR
          test-xattrs: sync how this is skipped with test-rofiles-fuse
 only check whether $(pwd) is empty once
    Git-EVTag-v0-SHA512: dc5e94e15c180d424c225f302a4f07c994157750016342016a823735cecc0c1f3e47ba2fcd3a77ce91df806c1058313a6347359024efe5dd004d7fdd7f1e7335
  • upstream/2016.4
    Upstream version 2016.4
  • v2016.4
    80698543 · Release 2016.4 ·
    Release 2016.4
    There's a fair amount of stuff in this release, but the `ostree admin
    unlock` command has me the most excited.  It actually starts to take
    us all of the way back to one of the original visions of OSTree, which
    was to make it easy for people to develop/hack on the OS locally,
    making it easy to "roll back" to a known good state.
    If you found *developing* using an OSTree managed system painful, I
    think `ostree admin unlock` command goes a long way towards fixing
    that.  There is more to do here, but give it a try!
    Other notable changes:
    Alexander Larsson and Giuseppe Scrivano both worked on caching the
    `summary` file, to avoid redownloading more data than we need to just
    to detect "nothing changed".
    Colin Walters committed 'lib: Introduce versioned symbols' which is
    important for consumers of the shared library to note.
    There are updates to the manual, including a new section on writing
    buildsystems designed to use OSTree.  Expect more content like this.
    Speaking of the shared library some APIs were added so that projects
    like rpm-ostree can more precisely watch the sysroot.
    Following is a shortlog with the most significant other commits;
    thanks to all contributors!
    Alexander Larsson (4):
          rofiles-fuse: Fix permission comparison
          pull local: Don't import objects we already have
    Colin Walters (33):
          repo: Add ostree_repo_get_dfd()
          tests: Port to, make `make check` run all of the tests
          deploy: Bump the mtime on ostree/deploy after deployments finish
          lib: Add ostree_sysroot_init_osname() API, bump mtime
          lib: Add ostree_sysroot_load_if_changed() API
          docs: Add a section on writing buildsystems
          contrib/golang: Initial golang bindings
          libglnx porting: gs_fd_close -> glnx_fd_close
          (And more)
          manual: Migrate related projects wiki page into manual
          deploy: Handle a read-only /boot
          Use GSubprocess instead of GSSubprocess (libgsystem removal)
          admin: Add an `unlock` command, and libostree API
    Dan Nicholson (2):
          prune: Don't fail on partial commits
          traverse: Require variant when traversing dirtree
    Giuseppe Scrivano (12):
          ostree-repo: new public function `ostree_repo_list_refs_ext`
          refs: allow to specify multiple refs as args
          refs: add tests
          libostree: Adjust `cleanup_ref_prefix` to use ostree_repo_list_refs_ext
          refs: Add argument --list to print the full ref name
          pull: cache summary and summary.sig
          repo: use the skip summary download optimization for repo_remote_fetch_summary
          prune: delete all cached summaries files
          tests: add test for summary file caching
    Micah Abbott (1):
          docs: Cleanup Markdown
    Simon McVittie (3):
          tests/ add #!/bin/sh
          Skip test_libarchive_ignore_device_file if we cannot write xattrs
          test-libarchive: fix underlinking
    Stef Walter (1):
          Fix building without libarchive
    Git-EVTag-v0-SHA512: ed34ea35e9c64b5b48b91ca76abe6cddaf604676d4455e90da88c8d7c73d24323a8d48fa6f8d556f1cc3bec1ff8a74bc1c0793255b28a140432f677e8ef992f0
  • debian/2016.3-1
    934241a5 · 2016.3-1 ·
    ostree Debian release 2016.3-1
  • upstream/2016.3
    Upstream version 2016.3