Releases: ostreedev/ostree
2019.6
Nothing major in this release, but we have some
bigger stuff outstanding and ready to merge, so I
want to get this release out so that work will
have time to stabilize.
A few build/CI fixes. A new progress API which
will be used by flatpak (and can be used by others).
Finally, we also avoid reordering kernel arguments.
Thanks to all contributors!
git shortlog --no-merges v2019.5..
Alex Kiernan (5):
tests/core: Fallback to en_US.UTF-8 locale
tests: Handle EPIPE failures when head terminates
tests/core: Assume C.UTF-8 if locale isn't found
tests: Avoid musl failure with `cp -a`
build: create tests directory for split builds
Colin Walters (6):
Post-release version bump
lib/keyfile: Treat "group not found" the same as "key not found"
Bump libglnx
tests/repo-finder: Run realpath() on /tmp
pull: Add support for basic auth
Release 2019.6
Philip Chimento (2):
Bump version in symbols file
libostree: Add ostree_async_progress_copy_state()
Ricardo Salveti (1):
Makefile: declare ostree_boot_SCRIPTS and append values
Robert Fairley (1):
lib/kernel-args: Store kernel args as key/value entries
Sam Thursfield (1):
README.md: Tweak text about BuildStream
Stefan Agner (1):
Avoid race condition when building outside of source tree
Git-EVTag-v0-SHA512: 915ebfe9501a74ca86a3b3aceafad352f4730fb148cc1874f2e49c7076fa1a948049fe9bd96b081502995b56096892a7405f5628f4e2e749bfaed2f35136f42a
2019.5
Mainly in this release:
- We discovered that CLang has a static analyzer
scan-build
;
it found some small memory leaks so far, otherwise mostly
noise, but we haven't dug through all the errors yet. - Gained a new zipl (s390x bootloader) backend
- Install the
.hmac
files needed for FIPS mode in/boot
too
This is also the first release where we switched to using
the OpenShift Prow as a merge bot, though a lot more CI work
is pending.
Alex Kiernan (5):
Always enable trivial-httpd for tests
Gate ostree-trivial-httpd on BUILDOPT_TRIVIAL_HTTPD
Revert "Gate ostree-trivial-httpd on BUILDOPT_TRIVIAL_HTTPD"
Revert "Always enable trivial-httpd for tests"
tests/export: Guard with check for libarchive
Colin Walters (25):
ci: Honor ARTIFACTS environment variable
ci: Make ${ARTIFACTS} directory
OWNERS: New file
libostree: Add an assert to pacify clang-analyzer
repo: [scan-build] Initialize a variable
sysroot: [scan-build]: Remove a dead assignment
sysroot: [scan-build] Remove a dead assignment
repo: [scan-build]: Mark a variable used
libotutil: Port keyfile-utils.c to new style
ci: Skip all yum operations if SKIP_INSTALLDEPS is set
commit: [scan-build] Remove a dead assignment
tree-wide: [scan-build]: Add some asserts that pointers are non-NULL
prune: [scan-build] Initialize a variable
bootloader: Add a zipl bootloader backend
ci: Trim PAPR config to drop required flag
tree-wide: [scan-build] Fix some dead stores
lib/repo: [scan-build] Quiet a dead store warning
lib/pull: [scan-build] Silence a dead store warning
tests: Port keyfile test to new style
lib: Port variant-builder.c to new style
tests: [scan-build] Initialize a variable
lib/checksum-utils: Use g_memdup()
build-sys: Cleanup handling for trivial-httpd-cmdline
Revert "grub2: Exit gracefully if the configuration has BLS enabled"
Release 2019.5
Dan Nicholson (1):
repo: Stop using deprecated G_GNUC_FUNCTION
Javier Martinez Canillas (1):
grub2: Exit gracefully if the configuration has BLS enabled
Jonathan Lebon (6):
Post-release version bump
configure.ac: Add more details on how to do a release
src/libotutil: Fix strv memory leak
lib/pull: Avoid calling destroy on unref'ed GSource
lib/pull: Tweak update_timeout logic again
lib/deploy: Also install HMAC file into /boot
Umang Jain (1):
async-progress: Plug memory leak while destroying GSource
Git-EVTag-v0-SHA512: 395f281ee8286eb6d22c215abc5146e1f27ecba6b120abee045d178150ea2116dd87e0e82b2d9ef4c150dec719716ae0d2583e5a1f9f38cb790fa81f55867e70
-----BEGIN PGP SIGNATURE-----
iQFHBAABCgAxFiEEq5KKnPjdBikJw3u93EX9WSHBPwsFAl25+TwTHHdhbHRlcnNA
dmVyYnVtLm9yZwAKCRDcRf1ZIcE/C3eFB/42VTlOWGei+VhTY7NmpuX8I28YKS/m
/OznhgDw1CPoUVzTT35oMAbD67ufZAN5vRdlBi/Liw1w1a867hVA2t+sEPNp/BiJ
hcdzLCGlUR1KRlpKKqiMPjzrWGdB9J9f1a2w8BPJ0FTUfXsnoVgbBJLkSVJ0ws0o
/FvHrzZl4BoIGhqMRsiK/+xOU+TyCqT6/7x8Iah4spBFoPWz2c7CHC6zfXBN+6h/
o14+PHDAx8V4WFvyFSDHrvE447YXX/r09zPDa1s2qSIduszWcZsh0WcAG5X/lxbi
taFA7MzOL28M6OgnQcUuxOVThAcxfvV3XuGqo1L+hRAKF1Fllw6bYlpd
=2M+V
-----END PGP SIGNATURE-----
v2019.4
This is mostly a bugfix release. Notably, the 2019.3 release caused some issues
related to the gpg-agent code spewing messages on the terminal. Additionally,
Fedora 31 users have hit upon issues with ostree-finalize-staged.service
running too late to be able to write back its logs to the journal. This then
confused rpm-ostree
after reboot, because it looks at the previous boot's
journal for this message.
The biggest feature-ish change is support for a partial commit "reason" so that
after ostree fsck --delete
was used, subsequent ostree fsck
will continue to
report an error. This should be used by higher level tools that want to do
"fsck and repair". It's likely at some point that "fsck and repair" logic will
move down into the libostree core as well.
There are ongoing efforts to port Fedora CoreOS to s390x: one fix landed here to
add the deployment prefix to BLS entries since it's what the zipl
bootloader
expected.
Special thanks to first-time contributors Benjamin Gilbert and Jason Wessel!
Benjamin Gilbert (1 PR, 1 commit)
prepare-root: remember to remove /sysroot.tmp (#1919)
Colin Walters (4 PRs, 4 commits)
Post-release version bump (#1902)
sysroot: Add a clearer error if /boot/loader isn't found (#1905)
ci: Add prow/ subdirectory with Dockerfile (#1906)
fsck: Fix version in docs, tweak error text (#1918)
Dan Nicholson (3 PRs, 3 commits)
lib/gpg: Only show gpg-connect-agent stderr on failures (#1908)
lib/gpg: Don't kill gpg-agent on newer gnupg (#1915)
lib/gpg: Use g_spawn_sync to kill gpg-agent (#1917)
Jason Wessel (1 PR, 2 commits)
PR: #1910
fsck: Add test for --delete corruption, fix repair, and partial commit checks
fsck: Implement a partial commit reason bitmask
Javier Martinez Canillas (2 PRs, 3 commits)
lib/bootconfig-parser: Always include deployment index in BLS title (#1911)
PR: #1904
lib/bootconfig-parser: Write BLS fragment fields in a deterministic order
lib/bootconfig-parser: Remove support to preserve comments in BLS files
Jonathan Lebon (2 PRs, 3 commits)
boot/finalize-staged: Run after systemd-journal-flush.service (#1926)
Release 2019.4 (#1927)
Philip Withnall (1 PR, 1 commit)
lib/repo-pull: Add more debugging on pull failure (#1925)
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)