Releases: ostreedev/ostree
2019.3
A lot of changes since the last release. On the feature side,
probably the biggest is we've made public the internal API
for kernel arguments, which rpm-ostree now uses.
Other things include a new --modern
switch for init-fs
,
better support in pull
for downgrade protection, better
use of mmap
, support for committing archives (tarballs)
from stdin, etc.
Finally, libostree now supports being built without GPG,
which is an important preparatory piece for introducing
an alternative signature system - look for more work
on that soon.
Thanks to all contributors!
Allen Bai (1 PR, 1 commit)
lib/kargs: Make API public and upstream new rpm-ostree APIs (#1869)
Allen Bai (1 PR, 1 commit)
lib/util: Fix segfault when validating filename (#1868)
Colin Walters (4 PRs, 4 commits)
Add OSTREE_BUILT_FEATURES to ostree-version.h (#1890)
admin/init-fs: Add a --modern switch (#1894)
README.md: Rework "projects using" section (#1895)
Release 2019.3 (#1902)
Dan Nicholson (5 PRs, 16 commits)
bin/refs: Allow overwriting existing ref (#1870)
PR: #1799
tests: Always cleanup gpg-agent when exiting
tests/libtest: Allow appending actions to be run on EXIT
lib: Kill GPG agent when cleaning up tmp homedirs
lib/gpg: Add helper to kill GPG agent
PR: #1872
tests/test-gpg-signed-commit: Test more key states
tests/libtest: Allow specifying GPG homedir to cleanup
lib/gpg: Show if GPG key has been revoked
lib/gpg: Show information for expired keys
lib/gpg: Factor out expiration timestamp formatting
PR: #1884
tests/sizes.js: Fix byte array unpacking
tests/sizes: Fix call to commit_transaction()
PR: #1892
ci/rpmostree: Bump to 2019.3
lib/kargs: Don't expose OstreeKernelArgs autoptr cleanup on old glib
tests/gpg: Skip tests when subkeys can't be expired
tests/gpg: Use exit hook to kill agent in temporary GPG homedir
Daniel Drake (1 PR, 1 commit)
lib/deploy: handle FIFREEZE ENOSYS failure (#1901)
Denis Pynkin (1 PR, 9 commits)
PR: #1889
tests/test-repo-finder-mount: skip some tests if GPG is not supported
tests/gpg: fix GPG-dependent shell tests if no GPG support
tests/gpg: fix the check of GPG support
gpg: add dummy public interface
lib: rename common sign/verification functions and variables
gpg: conditionally build GPG-related code for sign/verification
build: Conditionally build the GPG-related tests
build: Conditionally build GPGME-related sources
build: Add conditional use of GPGME
Felix Krull (2 PRs, 6 commits)
README: update link to ostree-rs (#1860)
PR: #1861
lib: add parameter annotations for sysroot_load_if_changed
lib: add some missing (out) annotations
lib: fix up some nullability annotations
lib: add minimum version to various symbols based on libostree-released.sym
lib: fix doc comment for ostree_repo_get_min_free_space_bytes
Jonathan Lebon (3 PRs, 4 commits)
Post-release version bump (#1844)
bin: Better handle -- (#1899)
PR: #1891
lib/pull: Rename variable for clarity
lib/pull: Allow downgrade protection with overrides
Matthew Leeds (1 PR, 1 commit)
lib/repo: Improve docs for get_min_free_space_bytes() (#1879)
Philip Withnall (1 PR, 1 commit)
ostree-repo-finder: Clarify immutability after construction (#1863)
Rafael Fonseca (2 PRs, 2 commits)
admin: allow multiple args for pin subcommand (#1874)
lib/kargs: add missing function to symbol-versioning table (#1883)
Richard Hughes (1 PR, 1 commit)
lib: mmap the summary to reduce RSS in clients (#1856)
Robert Fairley (4 PRs, 8 commits)
ci: Split out installdeps.sh from build.sh (#1865)
lib/util: Drop unneeded ot-tool-util.h includes (#1876)
PR: #1857
lib/fetcher-util: Use GIOErrorEnum instead of GIOError
tests: Drop unused variable
PR: #1871
ci/flatpak: Bump FLATPAK_TAG to 1.4.1
Makefile-libostree.am: Work around clang issues with g-ir-scanner
ci/build-check: Remove unused-command-line-argument diagnostic
ci: Use Fedora 29 artifacts
Tristan Cacqueray (3 PRs, 3 commits)
docs: fix switchroot source link (#1849)
docs: fix missing as typo (#1850)
prepare-root: remove ignored MS_MGC_VAL flag (#1851)
Tristan Van Berkom (1 PR, 4 commits)
PR: #1862
tests: Test committing archives from stdin
man: Document ability to commit archives from stdin
bin/commit: Support committing archives from stdin
lib/commit: Added new ostree_repo_write_archive_to_mtree_from_fd()
Git-EVTag-v0-SHA512: 0033fb6c93a0aed1518c93ac8ba153862da38e06e1e24fcae910121e36298295dff76cd7a38720e8ffa1c1899cdffd867ecd5350d9582b618eedd6172d6f5b8f
-----BEGIN PGP SIGNATURE-----
iQFHBAABCgAxFiEEq5KKnPjdBikJw3u93EX9WSHBPwsFAl1e6b8THHdhbHRlcnNA
dmVyYnVtLm9yZwAKCRDcRf1ZIcE/CzMmCACNW20+T+ttvo0gl+vQMaWBBLQXbCKg
qKyXuEXquKUXGOwq4Ke3tz+cB26QWmAT2A+aX6BzBgJrVq2xMZvjoAabHr8/sP3m
4Qql/fqBjKWhQPwxU/fwWxCD4zgdQgDBSLgXSQTnGCTG5uN40PQhAv084A9SiSVJ
1XDPg9pNvXUmvti6N3BKZtOd00qPd2IJb+G/OT+d87RYyviRdsXXI1LpOuz2KvzF
pcAZE1fTB3dLaiFuzSJVv7Du9rvVT39gaArZdJXKwL2eNkTzeAucIBLub6R5YRas
WWOs+K/vb+CrxsSkuuV7ynnK79r+2ZN37Sz3lOQ6oAE+BJjIsp8mwD0S
=/3eX
-----END PGP SIGNATURE-----
2019.2
It's been some time since the last release, so this is a slightly larger
one! There's lots of new features, and a few bug fixes. Some highlights
below.
New features:
- A new
sysroot.bootloader
key was added to be more explicit about
which bootloader OSTree should use. Notably anone
value is
supported, in which OSTree is solely responsible for writing the BLS
entries. This can then be used by bootloaders like GRUB2, which now
supports BLS natively. (#1814) ostree config
now supports theunset
command to unset a key from
the OSTree repo config (#1743)ostree remote add
now supports the--force
flag to replace a
remote of the same name if it exists (#1166)ostree-prepare-root
now logs a structured journal message after
finding the deployment to which to pivot. This can be used by
higher-level apps like RPM-OSTree to build a history of the
deployments the machine was booted into. (#1842)- The staging API now supports a lockfile which prevents finalization at
shutdown. This is intended to be used in systems like Fedora CoreOS,
which needs more fine-tuned control between staging a deployment,
and setting it as the default deployment on reboot. (#1841) ostree static-delta show
now prints theFrom
andTo
commits for
which the delta was generated (#1823)
Bug fixes:
- Make looking up collection-refs similar to how regular refs are looked
up, i.e. first in the transaction, then in the current repo, and then
in the parent repo (#1821) - Don't include the OSTree commit version number twice in the boot menu
title. This affected at least Fedora-based systems composed with
RPM-OSTree'smutate-os-release
. (#1829) - Activate
ostree-finalize-staged
earlier; this should hopefully make
deployment finalization more reliable by running it later in the
shutdown sequence, when less services are running (#1840) - Run
grub2-mkconfig
on the filesystem tree of the pending deployment,
rather than the previously deployed tree. This was a corner case where
the deployment failed if a previous deployment did not exist, on
systems where grub.cfg is used. (#1831)
As always, thanks to all the contributors!
Colin Walters (5 PRs, 8 commits)
Post-release bump (#1800)
static-delta: Change `show` to display from/to commits (#1823)
prepare-root: Fix compilation with --with-static-compiler (#1846)
PR: #1803
lib/commit: Don't set user.ostreemeta for bare → bare-user-only imports
lib/commit: Set xattr on correct fd for bare-user → bare-user imports
lib/commit: Fix bare → bare imports
PR: #1806
ci/rpmostree: Bump to 2019.1
ci/rpmostree: Fix use of `fatal`
Dan Nicholson (1 PR, 3 commits)
PR: #1166
remote-add: Add --force option to add or replace remote
man: Document remote add --if-not-exists option
repo: Add OstreeRepoRemoteChange replace operation
Jeremy Bicha (1 PR, 1 commit)
tests: Update for glib 2.59.2 (#1818)
Jonathan Lebon (6 PRs, 9 commits)
lib/deploy: Don't include version twice in bootmenu title (#1829)
boot: Activate ostree-finalize-staged even earlier (#1840)
ostree-prepare-root: Log journal message after finding deployment (#1842)
Release 2019.2 (#1844)
PR: #1841
lib/deploy: Support locking deployment finalization
lib/deploy: Write to journal if nothing to finalize
lib: Add ot_journal_* helper macros
PR: #1843
lib/sysroot: Match deployment /usr mode for overlay
lib/sysroot: Call `chmod` on overlay dirs when unlocking
Laurent Bonnans (1 PR, 1 commit)
lib/repo: fix leak of `bootloader` field (#1837)
Matthew Leeds (11 PRs, 17 commits)
tests: Don't skip collection-based summary test (#1804)
lib/repo-pull: Allow the keyring remote to be overridden (#1810)
lib/repo-pull: Fix docs for n-network-retries option (#1812)
lib/repo: Fix Since: annotation for REMOTE_CHANGE_REPLACE (#1813)
tests: Remove unused includes in libostreetest.c (#1815)
man: Document ostree --version (#1820)
lib/repo-refs: Resolve collection-refs in-memory and in parent repos (#1821)
lib: Check for http_proxy being the empty string (#1835)
PR: #1743
ostree/config: Check for too many args
man/ostree-config: Consistently use GROUPNAME placeholder
ostree/config: Use g_autoptr instead of goto
ostree/config: Add an "unset" operation
PR: #1825
lib/repo-refs: Allow resolving local collection-refs
lib/repo-refs: Add a flag to exclude listing from refs/mirrors
lib/repo-refs: Fix resolving collection-refs
PR: #1834
tests: Put a regex in quotes
tests: Escape periods when appropriate
Micah Abbott (1 PR, 1 commit)
README: add note about Liri OS (#1802)
Robert Fairley (3 PRs, 9 commits)
PR: #1814
Add sysroot.bootloader repo config key
libotutil: Rename to ot_keyfile_get_string_list_with_separator_choice()
tests/test-config: Remove extra space
ostree-grub-generator: Comment wording fix
(and 1 commit from other author)
PR: #1831
grub2: Generate config from pending deployment
tests/test-admin-deploy-none: Split grub.cfg directory and file creation
tests/test-admin-deploy-none: Update comment for #1774 status
PR: #1839
tests/test-config: Fix regex causing Debian test failure
travis: Update to Debian Stretch
Robert Fairley (1 PR, 1 commit)
PR: #1814
libotutil: Add ot_keyfile_get_value_with_default_group_optional()
(and 4 commits from other authors)
2019.1
This is the first libostree release of 2019; no big changes, just a collection of smaller
features and bugfixes.
On the features side, a good example is:
lib/repo: Search a list of paths in gpgkeypath for gpg keys
from PR #1773 - this will be useful for Fedora which rotates GPG keys
across releases.
Another feature is grub2: add support for devicetree
from PR: #1790
lib/kargs: allow empty-list arguments
i.e. PR #1785 is between a
bugfix and feature - it ensures libostree supports "empty list" kernel
arguments.
There's also some ongoing work to have libostree be a "backend"
for OCI/Docker container storage; checkout: honor opaque checkouts
in PR #1486 is part of that.
pull: If built with --disable-http2, allow enabling via http2=1
from
PR #1798 will allow people to more easily play with HTTP2 if
it's disabled by default.
Thank you to all contributors!
Alexander Larsson (1 PR, 1 commit)
Fix leak in ostree_content_stream_parse() (#1784)
Colin Walters (6 PRs, 8 commits)
lib/commit: Try checksum+hardlink for untrusted local same-uid repos (#1776)
Update libglnx (#1781)
ci/papr: Drop insttests (#1783)
pull: If built with --disable-http2, allow enabling via http2=1 (#1798)
PR: #1766
ci: Add `dist-then-build` target to catch missing `EXTRA_DIST`
build-sys: Dist ostree-finalize-staged.path
PR: #1800
Post-release bump
Release 2019.1
Giuseppe Scrivano (1 PR, 1 commit)
checkout: honor opaque checkouts (#1486)
Jonathan Lebon (7 PRs, 7 commits)
bin/refs: Disallow creating broken aliases (#1768)
bin/pull-local: Add --commit-metadata-only (#1769)
lib/commit: Copy user.ostreemeta only for bare-user (#1771)
lib/commit: Add devino_cache_hits to txn stats (#1772)
bin/pull: Add URL metavar for --url switch (#1782)
boot/grub2: Add some more explanation in ostree-grub-generator (#1791)
PR: #1761
ostree/main: Wrap `Version` in `--version` in quotes
(and 1 commit from other author)
Luca Bruno (1 PR, 1 commit)
lib/kargs: allow empty-list arguments (#1785)
Matthew Leeds (1 PR, 1 commit)
lib/repo: Clarify docs for importing w/ trust (#1777)
Matthias Clasen (1 PR, 2 commits)
PR: #1788
Fix a small leak in ostree_repo_remote_list_collection_refs
Fix a small leak in ostree_repo_pull_with_options
Rafael Fonseca (2 PRs, 2 commits)
admin/status: Correctly check GPG signature (#1787)
admin/status: test GPG signature check (#1797)
Ricardo Salveti (1 PR, 1 commit)
grub2: add support for devicetree (#1790)
Sinny Kumari (1 PR, 1 commit)
atomic-upgrades doc: fix example url to fetch a ref checksum (#1795)
Umang Jain (3 PRs, 3 commits)
lib/repo-commit: Relax min-free-space check in prepare_transaction() (#1779)
man/ostree.repo-config: Update min-free-space-* docs (#1786)
PR: #1761
Post-release version bump
(and 1 commit from other author)
rfairley (1 PR, 1 commit)
lib/repo: Search a list of paths in gpgkeypath for gpg keys (#1773)
2018.9
https://github.com/ostreedev/ostree/releases/tag/v2018.9
It's been two months since our last release, so this one is slightly
larger than usual (the ~monthly cadence). It's mostly bugfixes
again, although there were some API additions and new
configuration options.
These new features are things like:
- Allow disabling pulling from LAN/USB/Internet (#1758)
- lib/repo: Add an API to get min-free-space-* reserved bytes (#1715)
- OstreeMutableTree: add _remove method (#1724)
- repo: Add a checkout option to not hardlink zero-sized files (#1752)
On the bugfix side, nothing major; we have the usual small memory
leak fixes (yeah, we use GCC autocleanups, but still, this is C).
Beyond that, good examples of bugfixes are:
- finalize-staged: Bump timeout to 5 minutes (#1755)
- deploy: Fix removing /var/.updated with separate /var mount (#1730)
- src/ostree: Don't delete refs having aliases (#1749)
One notable change in this release is the initrd service
ostree-prepare-root.service
now runs earlier in the boot process.
This shouldn't actually affect OSes, unless there's extended logic
in the initrd that integrates tightly with OSTree. The use case for this is
better integration with Ignition, which will be used in Fedora CoreOS.
PR: #1759
Another systemd related change is the introduction of a path unit:
ostree-finalize-staged.path
. This allows the service of the same name
to be path activated instead of explicitly started at deployment staging time.
This release however does not yet rely on this mechanism to give time for
packagers and integrators to adapt to the new unit (e.g. by enabling it in
the systemd presets). A future release will require this.
Note that deployment staging is still not the default for libostree, although
at least rpm-ostree now unconditionally uses staging, and while it
generally worked well, we hit issues with people using slower hard drives,
hence the increase in timeout in PR #1755 .
PR: #1740
Another change to call out is:
lib/commit: Don't chown objects to repo target owner (#1754)
We previously had incomplete support for a process running as uid 0
writing to a repository owned by a non-zero uid, but it was never finished.
This will likely be revisited at a later time.
We also merged:
lib/grub2: Support Debian-style grub.cfg path (#1714)
from a new contibutor (thanks Felix!). Who incidentally also
posted recently about new Rust bindings:
https://mail.gnome.org/archives/ostree-list/2018-October/msg00000.html
https://crates.io/crates/libostree
Thanks a lot to all contributors!
Colin Walters (12 PRs, 13 commits)
Post-release version bump (#1705)
deploy: Fix removing /var/.updated with separate /var mount (#1730)
lib/commit: Don't copy xattrs for metadata objects (#1736)
lib/progress: Fix leak of GSource (#1741)
Only verify OSTREE_MAX_METADATA_SIZE for HTTP fetches (#1744)
rofiles-fuse: Improve error message for failure to open root (#1747)
repo: Add a checkout option to not hardlink zero-sized files (#1752)
checkout: Support --union-identical and --force-copy{,--zerosized} (#1753)
finalize-staged: Bump timeout to 5 minutes (#1755)
remount: Refactor to helper function instead of loop (#1760)
README: Add bindings section (#1762)
PR: #1757
sysroot: Add error prefixing to deployment parsing
sysroot: Update some code to use fstatat_allow_noent API
Dan Nicholson (1 PR, 1 commit)
lib/commit: Don't chown objects to repo target owner (#1754)
Felix Krull (1 PR, 1 commit)
lib/grub2: Support Debian-style grub.cfg path (#1714)
Jonathan Lebon (7 PRs, 12 commits)
ci: Disable f28-rpmostree for now (#1727)
ci: Bump rpm-ostree tag to 2018.8 (#1728)
boot: Add ostree-finalize-staged.path (#1740)
lib/mutable-tree: Port to new style (#1742)
PR: #1732
lib/fetcher-curl: Prefix fatal errors with full URL
lib/fetcher-curl: Drop unnecessary check
lib/fetcher-util: Mark journaled msgs as LOG_ERR
PR: #1750
lib/sysroot-deploy: Write to journal when finalizing
boot: Add Documentation= lines to services
boot: Remove [Install] from ostree-finalize-staged
PR: #1759
ostree-prepare-root.service: Run earlier in initrd
ostree-prepare-root.service: Use RemainAfterExit=yes
Laurent Bonnans (1 PR, 1 commit)
lib/fetcher: Fix some memory leaks in curl fetcher (#1716)
Matthew Leeds (10 PRs, 14 commits)
avahi: Be robust to missing refs in peer summaries (#1717)
lib/repo: Clean up OstreeRepo docs (#1725)
lib/repo: Define a metadata key, ostree.deploy-collection-id (#1726)
create-usb: Always use archive mode (#1733)
create-usb: Add a --commit option (#1735)
bash-completion: Fix --repo autocomplete (#1745)
man/create-usb: Don't recommend summary updates (#1746)
PR: #1737
man/ostree.repo-config: Document locking options
lib/repo: Fix minor mistake in locking docs
lib/repo: Allow disabling lock timeout
PR: #1758
lib/repo-pull: Disable LAN updates by default
Allow disabling pulling from LAN/USB/Internet
PR: #1763
Rename core.repo-finders to core.default-repo-finders
lib/repo-pull: Add an explanatory comment
Robert McQueen (1 PR, 1 commit)
OstreeMutableTree: add _remove method (#1724)
Sinny Kumari (1 PR, 1 commit)
src/ostree: Don't delete refs having aliases (#1749)
Umang Jain (3 PRs, 6 commits)
Release 2018.9 (#1761)
PR: #1715
lib/repo: Ensure min-free-space* config value doesn't overflow
Add tests for ostree_repo_get_min_free_space_bytes
lib/repo: Add an API to get min-free-space-* reserved bytes
PR: #1722
tests: Update tests for ostree_repo_get_min_free_space_bytes()
lib/repo: Separate min-free-space-* calculation from transaction codepath
Git-EVTag-v0-SHA512: 7d4337f3b58ddd13c825eb80c0e39ebd5f4db1368a34ba6a037264c9941b373ba594a7b9f3ac63cb85e64f475bf5589001032a7ba6da371a2c76a336b4c89c85
2018.8
This release is pretty much all minor bugfixes: memory leaks,
fixing error messages and docs, handling a race condition
on pull with summary updates. There's one new feature (noted below),
and we also gained a new contributing tutorial:
https://mail.gnome.org/archives/ostree-list/2018-August/msg00005.html
Thanks to Robert Fairley and Cheryl Fong!
The one bugfix I want to call out explicitly is:
ostree-remount.service: RemainAfterExit=yes
PR: #1697
It's surprising it took us so long to find and fix this; I've seen
occasional boot failures that I believe trace down to this problem.
The behavior of systemd units of Type=simple without RemainAfterExit=yes set
is rather nonsensical; I may try to push to have a warning emitted
upstream if such a unit is a dependency of another.
And the one new feature is the auto-update-summary
config option
for repositories. For more information, see the docs and
PR: #1681
Thanks to all contributors!
Alexander Larsson (3 PRs, 3 commits)
Fix leak in ostree_repo_list_collection_refs (#1700)
ostree_repo_static_delta_generate: Fix leak (#1701)
ostree_repo_pull_from_remotes_async: Fix leak of options (#1702)
Colin Walters (3 PRs, 3 commits)
lib/pull: Fix minor memleak in error path (#1684)
ostree-remount.service: RemainAfterExit=yes (#1697)
Release 2018.8 (#1705)
Dan Nicholson (1 PR, 5 commits)
PR: #1698
repo: Add OSTREE_REPO_TEST_ERROR=invalid-cache env var
tests: Test for recovery from corrupted summary cache
lib/pull: Fetch summary if cached version doesn't match signature
lib/pull: Add debug message when loading summary from cache
tests: Add tests for remote summary update races
Jonathan Lebon (4 PRs, 10 commits)
ci: Bump rpm-ostree tag we build for tests (#1708)
PR: #1692
lib: Fix some logic/error-checking code
lib: Fix some minor memory leaks
lib: Check for NULL pointers in some more places
PR: #1693
lib/commit: Only auto-update summary if refs were written
lib/config: Deprecate commit-update-summary option
lib/config: Rename change-update-summary to auto-...
lib/refs: Use GLNX_HASH_TABLE_FOREACH_KV helper
PR: #1710
ostree/config: Delete rogue printf and tweak help
man/config: Keep cmdsynopsis for GROUP.KEY version
Matthew Leeds (4 PRs, 5 commits)
man/ostree.repo-config: Update min-free-space-* docs (#1687)
lib/repo-commit: Fix min-free-space error message (#1691)
lib/repo-pull: Use correct keyring for dynamic remotes (#1695)
PR: #1681
config: Add a core/change-update-summary option
lib/repo: Take exclusive lock while generating summary
Philip Withnall (1 PR, 1 commit)
lib/repo-pull: Prefer object pull over from-scratch delta if ref exists (#1709)
Robert Fairley (2 PRs, 2 commits)
docs: Add Contributing Tutorial to Mkdocs pages (#1711)
PR: #1694
docs: Add contributing tutorial
(and 1 commit from other author)
Sinny Kumari (1 PR, 1 commit)
src/ostree: Add --group option to ostree config (#1696)
Stefan Agner (1 PR, 1 commit)
Avoid race condition in case tests directory does not exist (#1704)
Umang Jain (1 PR, 1 commit)
Post-release version bump (#1683)
Will Thompson (1 PR, 1 commit)
repo: remove outdated note from write_config() docs (#1707)
Will Thompson (1 PR, 1 commit)
man/ostree.repo-config: improve min-free-space-* docs (#1706)
bubblemelon (2 PRs, 2 commits)
bin/refs: Clarify --create error message (#1690)
PR: #1694
docs: Add detail to CONTRIBUTING.md and link to tutorial
(and 1 commit from other author)
Git-EVTag-v0-SHA512: cb84a0dc71f917fc9fa715531e3154a23e861bf1e4223caf6c34e16461c7830a383bb9f090963eaaeaeb3c449434be7cf4246e63c15d5a2d5c7da101568f52e3
2018.7
I've said this before but the regular variety of contributors to libostree
makes me very happy - part of the reason I like working on Free Software
is collaborating with smart people around the world! Thanks to all of you!
There's no one major feature in this release, but we have a variety
of improvements and bugfixes.
The addition of min-free-space-size
in the previous release caused
issues with older libostree/flatpak interacting with it. We now tolerate
both min-free-space-size
and min-free-space-percent
being set for
compatibility.
PR: #1685
The way libostree writes bootloader spec snippets has changed to
have the version number first, aiding sorting. It turns out some BLS
implementations order via filename. This is preparatory work for more
directly adopting the BLS in Fedora (and I for one will not miss grub2-mkconfig
and particularly os-prober)!
libostree became significantly smarter about handling "recommitting" content,
such as ostree commit --tree=ref=foo -b bar
; it's now nearly free, and this
can be extended to very quickly "union" or merge different refs into a unified
whole. See the discussion in:
PR: #1643
There are two fixes for staged deployments (still not the default), but
we're aiming to do that by default in rpm-ostree soon, and that's shaking
out some remaining issues (for example, the API didn't support overriding
kernel arguments correctly).
Another notable bugfix is for separate /var partition, which we regressed
in 2018.6 as part of working on Ignition integration.
PR: #1668
Thanks again to all contributors!
Alex Kiernan (2 PRs, 2 commits)
boot: Use emergency.target, not emergency.service (#1665)
switchroot: Move late /run/ostree-booted creation to ostree-system-generator (#1675)
Alex Kiernan (2 PRs, 2 commits)
build: Use ostree_prepare_root_CPPFLAGS for ostree-prepare-root (#1670)
switchroot: Fix typo in comment ENINVAL => EINVAL (#1676)
Colin Walters (9 PRs, 9 commits)
sysroot: Reject attempts to pin the staged deployment (#1660)
ci/flatpak: Fix to use built ostree version (#1662)
deploy: Retain staged by default (#1672)
deploy: Fix overriding kernel args for staged deployments (#1677)
build-sys: Link with gpg-error directly (#1679)
Update libglnx (#1680)
ci: Mark insttests as not required (#1686)
PR: #1652
ci: Workaround getfedora.org/atomic_qcow2_latest being 404
(and 1 commit from other author)
PR: #1668
tests/installed: Add var-mount.yml destructive test
(and 2 commits from other authors)
Emmanuele Bassi (1 PR, 1 commit)
Add a check for gpg-error via pkg-config (#1682)
Javier Martinez Canillas (2 PRs, 2 commits)
ostree-grub-generator: sort BLS files by version instead of alphabetically (#1653)
deploy: Change BootLoaderSpec filenames so they can be used for sorting (#1654)
Jonathan Lebon (2 PRs, 3 commits)
PR: #1652
tests/installed: Wait a bit more for http.server
(and 1 commit from other author)
PR: #1668
tests/installed: Add NOTE when re-using RPMs
switchroot: Fix regression for separately mounted /var
(and 1 commit from other author)
Marcus Folkesson (2 PRs, 2 commits)
ci: exclude 'lib' from libsoup configure option (#1661)
build: add ostree-soup-* to build process when configured with avahi (#1666)
Matthew Leeds (2 PRs, 2 commits)
man/ostree.repo-config: Document collection-id (#1646)
create-usb: Tweak docs for --destination-repo (#1656)
Philip Withnall (1 PR, 1 commit)
lib/repo-commit: Abort a transaction if preparing it fails (#1647)
Robert Fairley (2 PRs, 3 commits)
tests: Run network retries test for many retries directly (#1673)
PR: #1669
ostree/pull: Add network-retries command line option
tests: Move assert_fail function to tests/libtest.sh
Simon McVittie (2 PRs, 2 commits)
avahi: Fail immediately if we can't talk to D-Bus or Avahi (#1639)
OstreeRepoFinderConfig: Fix guint/gsize confusion (#1641)
Umang Jain (6 PRs, 9 commits)
lib/repo: Minor fixes around min-free-space (#1663)
Release 2018.7 (#1683)
lib/repo: Allow min-free-space-size and -percent to co-exist (#1685)
PR: #1602
lib/repo: Cleanup current boot's staging dir min-free-space-* checks are hit
lib/repo: cleanup_tmpdir should be executed after releasing lock file
PR: #1614
tests: Add tests for space checks during deltas codepath
lib/repo: Enforce min-free-space-* size check for regfiles in deltas
PR: #1671
lib/repo-commit: Factor out min-free-space-size error reporting
repo: Reword min-free-space-size option's error strings
William Manley (4 PRs, 7 commits)
ostree repo commit: Speed up composing trees with `--tree=ref` (#1643)
tests: Save corefiles back to tests/ directory if one exists (#1657)
PR: #1645
OstreeMutableTree: Document ostree_mutable_tree_ensure_dir
OstreeMutableTree: Document each private member of `OstreeMutableTree`
Add test for composing trees in different ways
PR: #1655
OstreeMutableTree: Invalidate parent contents checksum when metadata changes
OstreeMutableTree: Refactor: Add `parent` pointer
v2018.6
This release includes the final merge of the previously "experimental" API
for peer-to-peer discovery/download. This is currently supported by Flatpak
and the EndlessOS updater. One use case for example that this improves
is the "update via USB stick" case; you'll need to set collection IDs, and
have your update system use the repo finder API. (Today ostree admin upgrade
doesn't). Thanks a lot to Endless for all of their work on this!
PR: #1596
libostree learned how to retry HTTP requests on transient network errors.
By default, requests on such errors are now retried 5 times.
PR: #1594
There is also now a new "min-free-space-size" config option. This is similar
to the "min-free-space-percent" option but instead takes absolute values, such
as "1GB" or "10MB".
PR: #1616
The original systemd design for ConditionNeedsUpdate=
didn't quite work
with libostree, but Endless wrote a fix and had been shipping it for a while.
That's now been merged: deploy: Delete .updated file from /etc and /var on new deployments
Part of the reason this came up now is we're planning to change rpm-ostree
to switch to systemd-sysusers: coreos/rpm-ostree#49
And today sysusers uses ConditionNeedsUpdate=
. Once we make
the switch in rpm-ostree and test it out I'd recommend other operating
systems follow (and not use nss-altfiles). And if you've already made the switch,
let us know!
PR: #1631
We're working on using https://github.com/coreos/ignition for Fedora CoreOS,
which means integrating it with libostree. As both run in the initramfs,
we added a simple change to ensure /var
is mounted. A future enhancement
here will likely involve handling custom /var
mounts too.
PR: #1617
There are a variety of other changes, like fsck --all
, having u-boot support devicetree,
etc.
Thanks to all contributors!
Alexander Larsson (2 PRs, 3 commits)
ostree_repo_resolve_rev: Resolve refs set in the transaction (#1624)
PR: #1591
fsck: Add --all to print all corrupted object
fsck: Include the commits that contain the corruption in errors
Andrea Galbusera (1 PR, 1 commit)
u-boot: add support for devicetree (#1590)
Arnaud Rebillout (1 PR, 1 commit)
docs: var/local -> var/usrlocal (#1588)
Colin Walters (4 PRs, 8 commits)
Post-release version bump (#1586)
lib/archive: Tell g-ir-scanner to ignore the private libarchive bits (#1629)
PR: #1566
lib/sysroot: Add wrapper API to prune system repository
lib: Add a public helper method for pruning to find all ref'd commits
PR: #1632
tests/installed: Add a free-space success path test
lib/repo: Do free space math under lock in error path
lib/repo: Rename free_space_size variable to free_space_mb
lib/repo: Fix double-set-error in min-free-space-size code
Dan Nicholson (1 PR, 1 commit)
deploy: Delete .updated file from /etc and /var on new deployments (#1631)
Jan Tojnar (1 PR, 1 commit)
tests: Fix locale detection (#1611)
Jonathan Lebon (4 PRs, 6 commits)
ci: Add .papr-ex.yaml (#1587)
.gitmodules: Update URL for libglnx (#1604)
switchroot: Allow letting ostree-prepare-root mount /var (#1617)
PR: #1601
ci: Drop gpgme and libgcrypt hacks
ci: Bump to f28, except flatpak
ci: Stop layering oci-kvm-hook
Matthew Leeds (8 PRs, 15 commits)
bash-completion: Don't add a space after files and directories (#1598)
Update libglnx to get g_autoptr backports (#1603)
admin: Fix list of subcommands in help and manpage (#1621)
lib/prune: Don't modify dirent->d_name in place (#1627)
PR: #1596
lib: Fix building against old glib versions
Make P2P API public (no longer experimental)
PR: #1605
Fix building P2P code against old glib versions
find-remotes: Fix unused variable warnings
Allow compiling OstreeRepoFinderAvahi without libsoup
Allow compiling with experimental API but without curl/soup
PR: #1607
ci: Use master branch as flatpak tag
ci: Bump flatpak build to F28
PR: #1615
tests: Add test for including ostree.h
Fix building against old glib versions
Revert "lib: Fix building against old glib versions"
Philip Withnall (4 PRs, 16 commits)
lib/repo-commit: Delay propagation of errors from abort_transaction() (#1626)
PR: #1594
lib/fetcher: Factor out HTTP status code handling from soup and curl
lib/repo-pull: Add some missing assertions for progress statistics
tests: Test pull behaviour when network timeouts occur
ostree/trivial-httpd: Add --random-408s command line option
lib/fetcher-soup: Map more SoupStatus codes to known GIOErrors
lib/repo-pull: Support retrying requests on transient network errors
PR: #1599
lib/repo-pull: Factor out enqueue function for FetchStaticDeltaData
lib/repo-pull: Factor out enqueue function for FetchObjectData
lib/repo-pull: Factor out enqueue function for ScanObjectQueueData
lib/repo-pull: Rename a variable
lib/repo-pull: Factor out free function for FetchDeltaSuperData
lib/repo-pull: Use GCC `?:` ternary shortcut where appropriate
lib/repo-pull: Use values from struct in enqueue_one_object_request()
PR: #1600
lib/repo-pull: Support retries for delta superblocks
lib/repo-pull: Support queuing delta superblock requests
Umang Jain (1 PR, 1 commit)
lib/repo: Add min-free-space-size option (#1616)
2018.5
This release has a number of features, as well as the usual
collection of bugfixes (none critical). On the host management
side, we landed a design to do "staged" deployments. There's
some more information in the issue.
I've seen many, many people hit the "where did my changes in /etc go"
problem, and this will go a long way towards addressing that. We
believe the design is fairly good, and the new public API should
be considered stable. However, the ostree admin
commandline only
uses it with an experimental OSTREE_EX_STAGE_DEPLOYMENTS=1
. Please
try this out - the plan is to eventually make this the default.
Today rpm-ostree gained a config file option to enable it
persistently in this PR.
Another notable feature is that upon encountering an error, fsck
will now mark the commits which contain that object as "partial", which
in turn means that a future ostree pull
will re-download the objects.
This makes recovering from corruption much easier. As part of this
work, an API was added which can traverse the tree and gather parent pointers.
More information in this PR.
Finally on the feature side, we have enabled repository locking by default.
This uses file locks and is hence for multiple process exclusion. For example,
EndlessOS today has both flatpak and their host updater writing to the system
repository. Currently, the locking only applies for commit and prune operations,
which are the most common sources of concurrency issues. This will
be extended over time. If you want to disable locking, set locking=false
in the repository configuration.
More information in this PR.
Bugfixes are mostly things like a fix for flatpak on filesystems which
implement reflinks, some memory leaks squashed in the commit path. And
the fix in PR 1537 is
fairly notable as it avoids ugly behavior incorrectly scanning all files
in newly-created repositories that didn't have the legacy uncompressed-objects-cache
directory.
Additionally there are test suite improvements, documentation patches.
The tests are all now fully Python 3 compatible.
Thanks to all contributors!
Alexander Larsson (3 PRs, 4 commits)
Don't write to parent repo (#1524)
pull: Don't save summary to cache before validating signatures (#1529)
PR: #1533
fsck: Mark commits with missing or deleted object partial
lib/repo: Add ostree_repo_traverse_commit_union_with_parents
Colin Walters (30 PRs, 44 commits)
Add concept of "staged" deployment (#1503)
lib/deltas: Some misc declare-and-initialize porting (#1511)
Post-release version bump (#1512)
tests: Merge installed/ and fedora-str/ directories (#1513)
lib/deploy: Port final bootconfig writing to new style (#1515)
tests/installed: Fix TESTS= being empty (#1516)
ci: Drop patches when building RPM (#1530)
switchroot: Don't log if running as pid1, minor code style cleanups (#1531)
lib/sysroot: Move staged into deployment list, rework handling (#1539)
README.md: Fix docs link to COPYING (#1554)
lib/repo: Enable locking by default, but drop external API (#1555)
deploy: Return staged deployment (#1559)
repo: Add checksum to error message opening unreadable object (#1564)
lib/deploy: Do post-ops when removing staged commit (#1570)
deploy: Use fdatasync() for new kernel/initramfs by default (#1571)
lib: Use `Locking:` term in docs (#1572)
tests: Tweak staged-deploy test to be faster (#1573)
README: Tweak licensing description (#1574)
tests: Fix installed tests more (#1577)
ci: Drop str hotpatch (#1582)
ci: Switch libgcrypt URL (#1584)
Release 2018.5 (#1585)
PR: #1514
lib/deploy: Split /etc merge into two stages
lib/deploy: Set kargs in one place
PR: #1535
tests/installed: Move tasks into tasks/ directory
tests: Better error message if target is not a symlink
sysroot: Split out a helper function to delete a deployment dir
tests/installed: Move auto-build logic to playbook-run.sh
bin: Hide `admin instutil` command
PR: #1538
deploy: Clean up bootserial assignment function
sysroot: Clean up origin loading function
deploy: Silently do nothing if passed same set of deployments
PR: #1548
tests: Disable itest-pull.sh since it is too slow
tests: Lower retry timeout to 5s
fsck: Only print "marking commit partial" once
tests/installed: Make reboot task less racy
(and 1 commits from other authors)
PR: #1558
bin/deploy: Avoid loading merge deployment kargs unless necessary
lib/deploy: Fix staged deployments with no kargs
PR: #1567
deploy: Don't prune repo at finalization time by default
bin/admin-cleanup: Port to decl-and-initialize style
PR: #1568
lib/deploy: Throw an error if trying to stage when not ostree-booted
lib/sysroot: Maintain one variable for "root is ostree booted"
PR: #1583
lib/sysroot: Add OSTREE_EX_STAGE_DEPLOYMENTS environment variable
tests/installed: Disable all rpmmd repos
Giuseppe Scrivano (1 PR, 1 commit)
commit, payload-reflink: do not write to the parent repo (#1525)
Jonathan Lebon (12 PRs, 16 commits)
ci: turn gating back on for most testsuites (#1536)
ci: use gpgme scratch build to workaround issues (#1540)
ci: Temporary libgcrypt workaround for older kernels (#1547)
ci: mark some ci testsuites as required again (#1552)
ci: drop BDB1539 workaround (#1553)
libglnx: Bump to fix F28 compilation (#1580)
docs: Add "Hello World" example (#1581)
PR: #1546
tests: Port the last python2 script to python3
tests/installed: Prefer python3 over python2
PR: #1548
tests/installed: increase async retries to 500
(and 4 commits from other authors)
PR: #1556
lib/deploy: Also compare deployment csum versions
lib/deploy: Factor out function to get deployment kargs
PR: #1560
man/ostree-init: Briefly describe various modes
man/ostree: Document --repo option a bit more
PR: #1575
lib/commit: Fix function name typo in docstring
lib/deploy: Add semi-colon in post-deployment msg
Matthew Leeds (8 PRs, 11 commits)
lib/repo: Add timestamps to OstreeRepoFinderResult (#1518)
lib/repo-pull: Document all options in pull_from_remotes_async (#1519)
tests: Fix unit test for ref-binding metadata (#1520)
lib/repo-pull: Improve error message when no summary is found (#1522)
lib: Fix a few comments (#1526)
lib/repo-pull: Rename a variable for clarity (#1528)
PR: #1521
libotutil/checksum-utils: Fix memory management
lib/commit: Fix a memory leak of OtChecksum
PR: #1543
man: Add man page for create-usb
create-usb: Update summary in destination repo
tests: Fix typo in unit test
Owen W. Taylor (1 PR, 1 commit)
Don't scan uncompressed_objects_dir if it doesn't exist (#1537)
Sam Spilsbury (1 PR, 1 commit)
avahi: Don't complain with g_warning if the daemon wasn't running (#1542)
Simon McVittie (1 PR, 1 commit)
build: Don't distribute Bison-generated parser in dist tarballs (#1563)
Tobias Mueller (1 PR, 1 commit)
repo: handle GPG_ERR_AMBIGUOUS_NAME in sign_data (#1579)
Git-EVTag-v0-SHA512: a36ec85eaed518e9808fd572e801156171c8b7c8f043b5d151492ff94544e6d2a1fd2104de848605a32630b778739452500127e90ead78e29c405b20e1b97cca
2018.4
A quick turnaround after 2018.3 to include one main PR: #1508
"switchroot: Ensure /run/ostree-booted is created even without initramfs"
This fixes ostree when booting without an initramfs. Thanks to @akiernan for the
bug report and helping review the fix! I'm working on enhancing the test suite,
which will help in adding some coverage here.
Colin Walters (6 PRs, 10 commits)
Post-release version bump (#1506)
ci/papr: Fix artifacts (#1507)
switchroot: Ensure /run/ostree-booted is created even without initramfs (#1508)
lib/deltas: Squash some GCC maybe-uninitialized warnings (#1510)
Release 2018.4 (#1512)
PR: #1509
tests/payload-link: Just test a single duplicate object
tests: Small tweaks for local iteration
tests/installed: Use temporary directories more consistently
tests/str: Verify standard-test-roles is installed
tests/str: Rework sysinstall-tests to be an entrypoint
Git-EVTag-v0-SHA512: ad47f2566b56f852982235224bc5256f1ac682da78579998b6ebcef719691c9dc2d9987691ee98730c7776da48c7ff50b02f55cbf5e7355a12627cb2843dcf51
-----BEGIN PGP SIGNATURE-----
iQFHBAABCgAxFiEEq5KKnPjdBikJw3u93EX9WSHBPwsFAlq0IgQTHHdhbHRlcnNA
dmVyYnVtLm9yZwAKCRDcRf1ZIcE/C2tDB/9daUpx5+lMfTBnBZdvHopnkmd1XaKS
zCeg813L54BxrmReUeRAZWjTmizqd+yQJoxkA/ioTkERH3H1p3VI6EoaeerSfukc
tFytvX11KNTk9ereBC1zg8eC5jLePMO1XHyrNi2TZ7F4da8sWQ8SJ8JiJFnlkZ+d
PagsZxPFN/7l2P8IczB+9wsYY155xDFNW1lWHA3Gm9hcvsl0gehy+VOJcB79CyX+
9nEPhurN+L6AAU9l6ECVUiY1zCYxvsoXduHEj9KlieK+exkbNsc0Ho4EEk3xd+HB
iv3vexsSFUvtQZBuq16/G4+Dv8SHwTGGuc8cP6MLHXlPMrTXyECjOZOp
=zaOP
-----END PGP SIGNATURE-----
2018.3
Keeping up with our ~monthly cadence. A variety of contributors here again, it's
great to see! There's two notable features, and a variety of non-critical bugfixes.
On the features side we have:
sysroot: Add concept of deployment "pinning" 📌
(#1464)ostree: introduce PAYLOAD_LINK object type
(#1443)
(EDIT: Also lib/fetcher: Allow clients to append to User-Agent
(#1496))
By default libostree prunes older deployments; the pinning feature allows you to
explicitly retain them until unpinned. This is useful for major version updates.
The PAYLOAD_LINK
functionality allows libostree to do content-based
deduplication. Previously, if e.g. a file changes in metadata (mode, owner,
xattrs such as SELinux labels), we can't make a plain Unix hardlink, and hence
by default end up with a new copy on disk. However, the Linux kernel has
standardized "reflinks" and some filesystems support them, including modern
versions of XFS. When reflinks are available, this functionality causes
libostree to compute a content-only payload, and when importing an object, if it
matches in content with an existing object, to use reflinks to deduplicate, while
using different inodes.
Finally, the HTTP User-Agent API is intended for higher level tools linking to libostree where one wants to expose the app version as well.
Beyond that, as mentioned above we have a variety of non-critical fixes such
as memory leaks, test suite improvements, correctly printing the "would be pruned"
size when using prune --no-prune
, etc.
Thanks to all contributors!
Colin Walters (15 PRs, 20 commits)
build-sys: Post-release version bump (#1455)
ci: Rework installed tests to use Fedora Standard Test interface (#1462)
bash-completion: Remove `admin` completions (#1468)
prune: Error if --static-deltas-only without --delete-commit (#1482)
lib/repo: Do account for size with prune --no-prune (#1483)
docs/prune: Document that --static-deltas-only isn't that useful (#1484)
repo/refs: Clean up error prefixing (#1485)
tests/str: Rework invocation (#1493)
tests: Avoid generating lots of output in itest-payload-link (#1494)
lib/deploy: Port various functions to declare-and-initialize (#1499)
main, status: Factor out deployment printing into helper (#1504)
Release 2018.3 (#1506)
PR: #1464
sysroot: Add concept of deployment "pinning" 📌
sysroot: Add API to clean up transient keys in origin files
sysroot: Bump mtime when writing an origin file
PR: #1497
sysroot: Rework how we find booted deployment
sysroot: Track whether /run/ostree-booted exists
lib/deploy: Port deployment checkout func to new style
PR: #1505
lib/deploy: Have internal origin writing API take sepolicy
lib/deploy: Use in-function error prefixing more
Giuseppe Scrivano (1 PR, 3 commits)
PR: #1443
commit: add logic for .payload-link
ostree: introduce PAYLOAD_LINK object type
ostree-repo-private: remove declaration for _ostree_repo_find_object
Jeremy Hiatt (1 PR, 1 commit)
lib/repo: Fix multi-signature support when generating summary files (#1489)
Joaquim Rocha (1 PR, 1 commit)
pull: Ignore the cancellable when aborting a transaction (#1492)
Jonathan Lebon (2 PRs, 2 commits)
lib/fetcher: Allow clients to append to User-Agent (#1496)
lib/core: Support <remote>: syntax when listing refs (#1500)
Jonathan Lebon (1 PR, 1 commit)
lib/sysroot: Fix retrieving non-booted pending deployment (#1472)
Luca Bruno (1 PR, 1 commit)
rust/bupsplit: minor idiomatic fixes (#1502)
Matthew Leeds (6 PRs, 6 commits)
lib/repo-finder-mount: Fix path to flatpak repo (#1471)
lib/repo-finder-mount: Update comment about paths (#1473)
lib/repo-pull: Fix free function for hash table (#1474)
lib/remote: Fix memory leak (#1476)
lib/repo-finder-mount: Improve debug message (#1477)
lib: Fix memory leaks of OstreeRemote (#1478)
Rasmus Thomsen (1 PR, 1 commit)
configure: add option for libsystemd (#1490)
Simon McVittie (2 PRs, 5 commits)
Use Python 3 for tests (#1463)
PR: #1457
tests/bootloader-entries-crosscheck: Use Python 3-friendly sorting
test-concurrency: Explicitly use floor division
test-concurrency: Replace range with xrange
test-concurrency: Use Python 3 syntax for octal
Git-EVTag-v0-SHA512: 00afcacb0ad3b8c2c42c2d3e44e1c807a0dbb65beb2ba888ceab459c603d8c1e5ef380abb0a77c02eacba839b0a3b6138a92a0f05e4c2bfe04eeefe41081e6bf
-----BEGIN PGP SIGNATURE-----
iQFHBAABCgAxFiEEq5KKnPjdBikJw3u93EX9WSHBPwsFAlqyj8ITHHdhbHRlcnNA
dmVyYnVtLm9yZwAKCRDcRf1ZIcE/C3p2CACNSfFslraxxBLtJxR6hWnz1r7g1m+N
7v6UdXPLHNOZ85EPV6x9M35on1rVgFCPofwU/nX6yn+QDJV0IyRfKOonqfb7gIDv
jB7r0+bpxHDJXPfCdkTGeZIo7gsnuaerqIlNGSAjinLem0p+w569PD2a5rzQEkym
yLg4cD9ib0MlNINNrH+/jyVJ6da4+yLF2jQ91NNnu1v2HzBzfuyGPVI6T7+1Nx9I
GRzqe2vcZsWLQwnaBHJ5GVXZQSlgzPDqdI3Q/uTW7kG4OD2Qw4TYKw9PsfXzBHLg
GWsWrxoR0A4gFsSQe0xYhTi88Sq5zZNehLEN/5gEwZMqB6yvkl6J3Nie
=K4BR
-----END PGP SIGNATURE-----