Skip to content
Tags give the ability to mark specific points in history as being important
  • 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
  • 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
  • v2016.3
    3d7098bc · Release 2016.3 ·
    Release 2016.3
    This is a quick followup to the previous release.  The build was broken
    with `-Werror=format` on 32 bit - we didn't have any 32 bit CI, a problem
    which I'll be remedying in the future.
    There was also a regression with static delta offline execution as used
    by xdg-app.
    Besides that, Alex discovered that our handling of endianness in static
    deltas was wrong - we tried to canonicalize everything to big endian,
    but the size was missing.
    Newly generated deltas will now have an endianness marker which we
    will honor.  For older deltas, we'll apply some heuristics which in my
    testing work well (basically if the delta sizes are in exabytes,
    that's probably byteswapped).
    Alexander Larsson (2):
          deltas: Fix regression in ostree_repo_static_delta_execute_offline
          rofiles-fuse: Handle operations on the root
    Colin Walters (8):
          libarchive: Fix a 32 bit format warning
          lib: Two more compiler warning fixes
          deltas: Fix some more 32 bit warnings
          deltas: Include an endianness marker
          deltas: Use endianness marker when parsing
          deltas: Heuristically detect endianness for older deltas
          deltas: Add a compression size heuristic for endianness detection
    Git-EVTag-v0-SHA512: 3517badace5a6d43c156cce2e1dcdcef7f2caa5afe702608fc37bf81146b016d7df7c13f9b637d92be6371decefb6162eb84ccb4278fef2d5a58773b83989354
  • v2016.2
    f4d494a0 · Release 2016.2 ·
    Release 2016.2
    First, this release has us start taking documentation more seriously.
    The man pages and API doc are unchanged, but the "manual" has moved out
    of gtk-doc, been converted to Markdown for use with `mkdocs`.
    This is available at:
    The static delta design documents are moved into the manual as well.
    Look for more updates here in the future around things like designing
    build systems, managing repositories, more implementation details,
    Speaking of static deltas, there is now support in the pull API (and
    command line) for showing how much content data would be downloaded
    (and used uncompressed).  This is intended for use with OS updater
    command lines and GUIs (like Cockpit).
    Another notable change is that we've merged in a FUSE utility called
    `rofiles-fuse`.  This doesn't itself depend on OSTree, nor does OSTree
    depend on it, but they're very useful together.  Specifically, if one
    is designing a build system that uses OSTree, or running the
    equivalent of RPM `%post` scripts, `rofiles-fuse` can help ensure that
    the build process doesn't mutate any of the hardlinks.  Though this
    can also be addressed through container runtimes, not all systems are
    ready to expose container features to unprivileged users.
    There is also some improvements in underlying infrastructure for
    supporting import and export of Docker images.  The primary changes
    here are better tar support, and OSTree now understands "whiteout"
    files, and optionally processes them during checkout.
    Besides this, there are various bugfixes, including a notable one to
    fix use of client side TLS certificates.
    Thanks to all contributors!
    $ git shortlog v2016.1..
    Alexander Larsson (1):
          build: Use threadsafe GPGME
    Colin Walters (38):
    Giuseppe Scrivano (2):
          diff: do not traverse parent commits
          build: 'make clean' removes parse-datetime.c
    Joaquim Rocha (1):
          build: Link ostree with libarchive
    Jonathan Lebon (1):
          ostree-sysroot: add debug option to help testing
    Matthew Barnes (1):
          fetcher: Fix hung GTlsInteraction
    Git-EVTag-v0-SHA512: 3f8357c770694c13b9ed5442a0bba69fda8a82b20b6a42b5853d7702315f3cd28304b5214c2f3babfb66199d04cbd5c8ca520524e3c1417224c59a32dadd7df4
  • v2016.1
    587fc5a5 · Release 2016.1 ·
    Release 2016.1
    Notable commits:
    * Alexander Larsson contributed changes to better isolate concurrent use of
      OSTree pulls into the same repository:
          repo: Use per-transaction staging dir
          repo: Allocate a tmpdir for each OstreeFetcher to isolate concurrent downloads
    * Colin Walters added two new APIs that make it easier to optimize
      committing new trees from previously generated content:
          repo: Expose dfd-relative mtree writes as public API
          repo: Add APIs for devino optimization between checkout -> commit
      and contributed build fixes as well as internal optimizations for deployment writing.
    * Giuseppe Scrivano enhanced the prune command:
          prune: add new flag --static-deltas-only
    * Jonathan Lebon made `grub2-mkconfig` work reliably when *not* run by OSTree:
          grub2_generate: load sysroot before using it
    * Matthew Barnes added a new remote command:
          remote: Add "ostree remote summary" command
      and contributed several other cleanups inside the HTTP fetcher.
    Git-EVTag-v0-SHA512: d878898cbb3058fa168fbc193926c89cafbe28c2329f1757cf1cf452f3fd11a9da436978cee66010edb96f215ebc119efbdc7506058098805585d89b9a457f66
  • v2015.11
    6335dadb · Release 2015.11 ·
    Release 2015.11
    This releases fixes an important regression in v2015.10 where `ostree
    commit` would write invalid timestamps.
    There is one user-visible change in that `ostree remote refs`
    now prints the remote name, for convenient copy/paste.
    Colin Walters (2):
          gpg-verifier: Fix compiler warning
          Release 2015.11
    Matthew Barnes (7):
          repo: Never delete .commitmeta files
          trivial-httpd: Avoid SoupBuffer when there's no content
          glnx: Update from master
          fetcher: Remove "sending_messages" hash table
          fetcher: Remove "total_requests" counter
          remote: Print full refspec in "ostree remote refs"
          repo: Fix backwards timestamp in ostree_repo_write_commit()
    Git-EVTag-v0-SHA512: d20ca561036e517b5c05e3bdc88c171b174cd7a66c2929e95466c6091a20ec36b9886681e9e9be5d2a798b3b3f2dfc886dd9fc324073c6bafba29e08bbf9e202
  • v2015.10
    2d0a381e · Release 2015.10 ·
    Release 2015.10
    Matthew Barnes reworked the fetcher to better support fetching commit
    history.  This was groundwork for feature work in rpm-ostree to
    support deploying specific commits by version.
    John Hiesey fixed several important bugs in the static deltas code,
    such as ensuring we correctly handle errors from decompression.
    Giuseppe Scrivano introduced the concept of a "tombstone" for a commit
    that signifies the commit was explicitly deleted on the server side.
    The idea here is that an OS vendor may want to have a CI/CD branch but
    not keep all history, and this way clients can detect that history was
    intentionally truncated.
    Following on that, Giuseppe also improved the `prune` commit to
    support relative dates with `prune --keep-younger-than=DATE`.
    Alexander Larsson introduced "single file" static deltas.  He plans to
    use these in xdg-app for convenient *initial* application downloads.
    This could also be useful for base OS downloads, e.g. Anaconda
    kickstart and the like.
    Daniel Drake:
        prepare-root: set up /boot bind-mount for single partition systems
    Colin Walters fixed a few bugs, most notable is an embarassing one
    where the `ostree init-fs` command used the wrong permissions for
    `/tmp`.  This only bit people not using tmpfs-for-tmp and hence wasn't
    noticed for a while.
    Gatis Paeglis:
        Don't require /boot/uEnv.txt for u-boot support
    Leandro Santiago:
          commit: Improve variable name
    Thanks to all contributors!
    Git-EVTag-v0-SHA512: 9fb84fac014fb4c8b9f2853334675c13e9f24fec9ee30bc709f982eeb7dd3c9094cd74f589dfea6da852eb82678a5e694af81e20b1a6c7d51f5f6d5bed5f0cd5
  • v2015.9
    bb14a336 · Release 2015.9 ·
    Release 2015.9
    There aren't any major new features, but this release has some notable
    bugfixes.  For example, 2015.8 broke xdg-app due to an internal
    change in how mainloop contexts were handled for pull - that's now fixed.
    Another notable change is a new API `ostree_sysroot_prepare_cleanup()` which
    is now used by `ostree admin deploy`.  What this enables is to do:
    ostree pull repo:$commitid
    ostree admin deploy repo:$commitid
    Before this, `admin deploy` would prune the repository, removing the
    un-referenced commit.
    In other words, you can now more easily pull the exact (possibly
    older) commit you want and deploy it.
    New contributors:
     - Leandro Santiago
     - Gatis Paeglis
    Bugfixes from:
     - Alexander Larsson
     - Colin Walters
     - Giuseppe Scrivano
     - Matthew Barnes
    Git-EVTag-v0-SHA512: d528475ccdc65a882cdda8d2a5f9b1925a599d65b51207e2dace4a4a3ea14a71d5f1dc6803077d1b62b51ac7b03816b249a982d8da074ddbe198accd8476c341
  • v2015.8
    5a4b87b1 · Release 2015.8 ·
    Release 2015.8
    There are some important bugfixes in this release for users who do
    multiple `ostree_repo_pull()` inside a single process lifetime, which
    is necessary for use by daemons.
    Yet more fixes continue to land for static deltas.  I'm still not
    ready to declare them stable - it's clearly a case of the last 20%
    being 80% of the work.  Something that's on my radar again is bsdiff;
    Beyond that there is some neat new work on a command line (and API)
    for inspecting remote repositories without downloading the content.
    For OS vendors which provide multiple branches, this should be quite
    Git-EVTag-v0-SHA512: 6dd75187dd67fd0dd53c7c06bbf0ef2cd5991819af4f5bd234c4b39dbdb7ae4c1a5b6c578e7acaa63fdecfc6e5df2eb9c7830021931b56528870cb6a37a834be
  • v2015.7
    44e7e59d · Release 2015.7 ·
    Release 2015.7
    ExtendedVerify-SHA256-archive-tar: ec5404976139d567ece1805a8441fea50bd9e7cd6ab3f9a87ca1bd6655b5d61c
    ExtendedVerify-git-version: git version
  • v2015.6
    178d8ff1 · Release 2015.6 ·
    Release 2015.6
    ExtendedVerify-SHA256-archive-tar: c0f802e39ee060124812a642b40dbffd6beaabfa64e4d24d3d3fb57e2c6eeb61
    ExtendedVerify-git-version: git version
  • v2015.5
    bc5c9fca · Release 2015.5 ·
    Release 2015.5
    ExtendedVerify-SHA256-archive-tar: a7ee475ce7d34000ded28948fd7040e28277fb0068e344deb9857873d54de715
  • v2015.4
    f89032f5 · Release 2015.4 ·
    Release 2015.4
    ExtendedVerify-SHA256-archive-tar: 91321dca420d119a2c0447242ed856b8ff99b25af993637ed3b72a61f06fa1b2
  • v2015.3
    94e2ac02 · Release 2015.3 ·
    Release 2015.3
  • v2015.2
    a22eca38 · Release 2015.2 ·
    Release 2015.2
  • v2015.1
    a9532bc3 · Release 2015.1 ·
    Release 2015.1
  • v2014.13
    fd07a6a8 · Release 2014.13 ·
    Release 2014.13
  • v2014.12
    f8a3d82d · Release 2014.12 ·
    Release 2014.12
  • v2014.11
    a4d82ab6 · Release 2014.11 ·
    Release 2014.11
  • v2014.10
    bcf40b49 · pull: Add depth support ·
    Release 2014.10