Tags: 14rcole/ostree
Tags
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 mender.io 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/test-libarchive.sh: add more test tests/test-libarchive-import.c: add tests OstreeRepo: add extensions directory ostree_repo_write_commit: add missing docstring arg configure.ac: 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 libtest.sh Link libreaddir-rand to libdl autogen.sh: rely on VPATH for submodules' Makefile-*.am.inc 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 libtest.sh 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
Release 2016.5 This release is the first one where the git repository is now canonically [on Github](https://github.com/ostreedev/ostree). The [CONTRIBUTING.MD](https://github.com/ostreedev/ostree/blob/master/docs/CONTRIBUTING.md) 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](https://anonscm.debian.org/git/collab-maint/ostree.git) 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](https://ostree.readthedocs.org/en/latest/manual/repository-management/). Gatis Paeglis introduced a [smaller GRUB2 generator](ostreedev#228) 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): pull: Add OSTREE_REPO_PULL_FLAGS_UNTRUSTED flag 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/CONTRIBUTING.md: 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/libreaddir-rand.so rule use AM_V_GEN Use git.mk 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" cfg.mk: ignore syntax-check for git.mk Jonathan Lebon (7): Merge pull request ostreedev#220 from cgwalters/travis-stub OstreeSePolicy: add ostree_sepolicy_get_csum() commit: support editor for orphan commits test-pull-untrusted.sh: 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 libreaddir-rand.so 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/admin-test.sh: 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 libtest.sh: 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 libtest.sh: only check whether $(pwd) is empty once Git-EVTag-v0-SHA512: dc5e94e15c180d424c225f302a4f07c994157750016342016a823735cecc0c1f3e47ba2fcd3a77ce91df806c1058313a6347359024efe5dd004d7fdd7f1e7335
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 glib-tap.mk, 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/admin-test.sh: 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
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
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: https://ostree.readthedocs.org/en/latest/ 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, etc. 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
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
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
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
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
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; see https://lists.clearlinux.org/pipermail/dev/2015-August/000038.html 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 useful. Git-EVTag-v0-SHA512: 6dd75187dd67fd0dd53c7c06bbf0ef2cd5991819af4f5bd234c4b39dbdb7ae4c1a5b6c578e7acaa63fdecfc6e5df2eb9c7830021931b56528870cb6a37a834be
PreviousNext