Releases: ostreedev/ostree
2021.2
Release 2021.2
This release mainly adds new APIs for file writing, which we will
use in the new ostree-rs-ext project to improve imports from tarballs.
The other feature is that rofiles-fuse now handles xattrs (but - rofiles-fuse
should be considered deprecated, see #2281 ).
There's also some more introspection API tweaks, and some testing improvements.
Thanks to all contributors!
Benjamin Gilbert (1):
docs: fix "Edit this page on GitHub" links
Colin Walters (25):
configure: post-release version bump
.lgtm.yml: Add package deps
installdeps: Drop PyYAML
tests/pull-test: Use mv -f in a few cases
cci: Update for buildroot changes
repo: Fix load_variant_if_exists to return a nullable value
repo: Ensure load_variant_if_exists sets NULL value
build-sys: Include all mkinitcpio bits
manual-tests: Fix unused variables
core: Fix lgtm.com warning about always true `if (bits > 0)`
tests: Drop openat override
tests/inst: Update ostree crate
tests/inst: Update rpm-ostree client
tests/inst: Update tokio, hyper and nix
build-sys: Remove --enable-experimental-api
core: Drop unused error handling from object stream helper
tests: Silence a gcc warning
repo: Add ostree_repo_write_regfile_inline
travis: Bump Ubuntu versions
repo: Add ostree_repo_write_symlink
repo: Add ostree_repo_write_regfile
tests: More tests for inline writing
repo: Ensure we set the size for regfile inline
Release 2021.2
configure: post-release version bump
Dan Nicholson (6):
Remove apidoc .gitignore from version control
Ensure consistent apidoc .gitignore
travis: Don't ask any debconf questions when installing packages
travis: Drop i386 Ubuntu target
travis: Correct ci_suite settings for buster
travis: Add back a 32 bit i386 build
Felix Krull (1):
lib: fix some version tags
Stefan Berger (1):
rofiles-fuse: Enable support for setting and getting xattrs
Git-EVTag-v0-SHA512: 82ed5d5fec3a782758ba89fa4e822e2c6fed33a8b47c55e3963bafb7ba8873cb62fbcb9ecc8028aae0bea516adbee83c54f781cd0ab589e785210856a6a05cd4
-----BEGIN PGP SIGNATURE-----
iQFHBAABCgAxFiEEq5KKnPjdBikJw3u93EX9WSHBPwsFAmB4l0sTHHdhbHRlcnNA
dmVyYnVtLm9yZwAKCRDcRf1ZIcE/CyNCB/4iQnRWViJrVD4jMJjLAAEpUxYTgQXA
6gFBC2yvjpgCtlKbhPyKr0MTN3s7Q0HCrurV8IILm6SO42mIq1B/W1zGON2KbBP+
Sl5iRrkBqkn5W8uIeZ4eodOzmw2FTJKs3XDWdXPctwBeswQa4DJz5JBmisF+i0Yh
AcXGq4KcPv7AkVs+qnjBCo8AJkJG/rEQouC8v1ch9sRjhHUjHxqCvP4/493XoRRk
WW4/4SxpXXGHZYA9oZiKOqG6VdDKhoFoXINN7Jei0knWB1eRF1wxoobNCr+JX7O7
E711NmRQsisD4+Imn7IPl9WoRL/v5EB/RQWkq0nw2VWUjGu7i55AyMYm
=fnyR
-----END PGP SIGNATURE-----
2021.1
Some smaller bugfixes across board; for example introspection annotations, memory leaks, pull API with depth enabled, pulls from file:///
URLs that contain whitespace, etc.
" Add configure option for unsuffixed GRUB2 commands" is notable for users of upstream grub2 (not the Fedora fork).
I hope that everyone starts using the new ostree commit --bootable
(or the new shlib API) - this injects metadata into the commit which is useful to distinguish between bootable ostree commits (ones that contain a Linux kernel) versus e.g. flatpak apps or caches.
Thanks to all contributors!
Colin Walters (28):
main: Unconditionally set up mount namespace
sysroot: Also maintain canonical boot_fd
sysroot: Handle ro /boot but rw /sysroot
repo: Move fsverity bits to ostree-repo-verity.c
repo: Make ostree_repo_create_at take nullable options
README.md: Also link apt2ostree
ci: Don't install deps if running as non-root
ci: Add new build-check-sanitized.sh
deltas: Fix leak of matches
Add --enable-sanitizers, fix `make check` with it
docs: Describe using scratch/empty deltas for initial fetches
README.md: Fix contributing link, add contact section
refs: Make ostree_repo_resolve_rev{,_ext}() use (nullable)
tests/inst: Switch to rpmostree-client from git
deploy: Add subbootversion to journal
Add an API+CLI to inject metadata for bootable OSTree commits
tests/inst: Fix lots of `cargo clippy` warnings
Merge pull request #2302 from cgwalters/tests-inst-clippy
tests/inst: cargo fmt
ci: Add a Github Action for Rust for tests/inst
Merge pull request #2303 from cgwalters/gh-actions
sysroot: Add _require_booted_deployment() API
Merge pull request #2301 from cgwalters/api-require-booted
Merge pull request #2298 from KloudJack/remove-grub2-suffix
Drop minimal rust/ library
tests/inst: Patch to use my PR for openat
Merge pull request #2309 from jlebon/pr/prefix-pull
Release 2021.1
Dan Nicholson (5):
pull: Allow disabling commit binding verification
pull: Use GNU coding style
tests: Ensure no dangling commit partials on remote depth pull
pull: Error on depth pull with missing head commit
pull: Fix local pull with depth and truncated source history
Javier Jardón (1):
README.md: Add Apertis and GNOME OS
Jonathan Lebon (3):
lib/sysroot: Add comments and debug statements around sysroot parsing
Merge pull request #2306 from cgwalters/drop-core-rust
lib/pull: Add some error-prefixing in dirtree scanning
Kenneth J. Miller (1):
Add configure option for unsuffixed GRUB2 commands
Leonardo Graboski Veiga (1):
docs: Add Torizon to related projects and OS
Luca BRUNO (4):
configure: post-release version bump
workflow/release: further refinements
templates: add release-checklist
tests/ext/destructive: enhance test logic
Phaedrus Leeds (4):
README: Fix typos of Flatpak
man: Add missing repo mode in config docs
pull: Fix some whitespace and a comment
Fix translation of file:// URIs into paths
Philip Withnall (1):
ostree-repo-pull: Fix a leak of the summary data if loading from cache
Simon McVittie (1):
test-pull-summary-sigs: Set timestamps to serve expected files
William Manley (1):
ostree commit --tree=tar: Import xattrs from tarballs
v2020.8
This release mostly contains scalability improvements and bugfixes.
Caching-related HTTP headers are now supported on summaries and signatures, so that they do not have to be re-downloaded if not changed in the meanwhile.
Summaries and delta have been reworked to allow more fine-grained fetching.
It is now possible to store deltas in detached metadata outside of summary files, so that only relevant ones can be pulled when downloading a particular commit.
In particular, deltas can now be stored in a separate directory indexed by target commit, thus grouping the subset of deltas affecting it. These indexes are updated when the summary is updated and the in-summary delta index would normally be updated.
Related to the above, a new core option has been added to drop the deltas from the summary. However, as that would break older versions looking for the deltas there, it is off by default.
Finally, this fixes several bugs related to atomic variables, HTTP timeouts, and 32-bit architectures.
Alexander Larsson (16):
deltas: Add _ostree_get_relative_static_delta_index_path()
deltas: Add ostree_repo_list_static_delta_indexes() function
deltas: Update delta indexes when updating summary
deltas: Add and document no-deltas-in-summary config option
deltas: Make ostree_repo_static_delta_reindex() public
deltas: Add CLI ops to list and reindex delta-indexes
deltas: Use delta indexes when pulling
deltas: Add tests for delta indexes
deltas: Take a shared repo lock while reindexing deltas
deltas: Set `indexed-deltas` key in the config and summary
pull: Only download summary if we need it for the pull operation
tests: Add a testcase to ensure we're not using the summary if we don't need it
Add ostree_repo_gpg_sign_data()
ostree pull: Add more g_debug spew around fetching deltas
ostree_repo_gpg_sign_data: Fix API doc argument name
pull: Don't save into cache passed in GByte summaries
Colin Walters (7):
Post-release version bump
deploy: Remove (transfer none) from fd arg
travis: Add a 32 bit build
sysroot: Fix up some GI nullable annotations
bin/checkout: Port some to new style
deployment: Add a bunch of docs and fix annotations
deployment: Ensure query_deployments_for returns nullable values
Dan Nicholson (1):
lib/deltas: Annotate from checksum as nullable
Felix Krull (1):
lib: fix GI parameter tags
Jonathan Lebon (4):
ostree-prepare-root: print st_dev and st_ino as 64-bit ints
lib/fetcher-curl: Use G_SOURCE_REMOVE instead of FALSE
lib/fetch-curl: Unref timeout source
Drop use of `volatile`
Kelvin Fan (1):
docs: Fix various typos
Luca BRUNO (5):
ci/travis: move to newer base distro
ci: run ci-release-build.sh on GitHub
workflows/release: pattern-match on PR title
Philip Withnall (5):
libostree: Add support for ETag and Last-Modified headers
lib/pull: Hook up HTTP caching headers for summary and summary.sig
tests: Add simple test for summary file caching
ostree/trivial-httpd: Add Last-Modified/ETag support
tests: Split RFC 2616 date parsing code out and add tests
William Manley (8):
ostree_repo_get_bootloader: Document transfer none
Refactor: Centralise choosing the appropriate bootloader
Refactor: sysroot.bootloader: Store enum value rather than string
Add support for explicitly requesting any specific bootloader type
Refactor `ostree_sysroot_query_bootloader`
Tests: Refactor bootloader-entries-crosscheck
2020.7
Static deltas can now be signed to more easily
support offline verification.
There's now support for multiple initramfs images;
the idea here is that one can have a "main" initramfs
image and a secondary one which represents local
configuration.
The documentation is now moved to https://ostreedev.github.io/ostree/#
A lot of preparatory cleanups to the pull code landed
for upcoming work on indexing deltas outside of the summary.
On the bugfix side, the biggest one is a fix for
an assertion failure when upgrading from systems
before ostree supported devicetree.
Also notable is that ostree no longer hardlinks zero
sized files to avoid hitting filesystem maximum
link counts.
Alexander Larsson (17):
list-deltas: Don't break on non-subdir entries
Fix leak when signing
pull: Break out _ostree_repo_save_cache_summary_file() helper
pull: Actually mmap summary files
Add and use ot_checksum_bytes helper
deltas: Break out _ostree_repo_static_delta_superblock_digest() helper
Break out the signature verification code into a helper function
fetch_summary_with_options: drop unnecessary "goto out" use
Add g_autoptr helper for pushing a thread default main context
repo_remote_fetch_summary: Use GMainContextPopDefault
Inline repo_remote_fetch_summary
Minor cleanup of _ostree_repo_remote_new_fetcher()
ostree-repo-pull.c: Extract mirrorlist generation to helper
Update the symbols files to match that we're now on 2020.6
ostree_repo_find_remotes_async: Fix leak of summary
fetch_summary_with_options: Fix n-network-retries option parsing
signatures: Fix leak in _sign_detached_metadata_append()
Colin Walters (10):
Post-release version bump
ci: Drop var mount test
deploy: Add some error prefixing around xattr setting
commit: Tighten scope of two variables
checkout: Ensure copies of unreadable usermode checkouts are readable
deploy: Remove deployment bootcsum assertion
delta: Some minor code style fixups
checkout: Don't hardlink zero sized files
libglnx: Bump to master
Release 2020.7
Frédéric Danis (12):
lib/deltas: Add inline signature for static-delta superblock
bin/static-delta: Add support to sign superblock
lib/deltas: Add signature check API for static-delta superblock
bin/static-delta: Add command to verify delta signature
lib/deltas: Support signed delta in execute_offline
lib/deltas: Support signed delta in dump
tests/delta: new tests for signed deltas
tests/libtest.sh: Add skip_without_sign_ed25519() function
tests/delta: new tests for 'ed25519' signed deltas
lib/deltas: Check signed delta in execute_offline
bin/static-delta: Add signature parameters to apply-offline
tests/delta: Add new tests for applying signed deltas
Jonathan Lebon (8):
Makefile-libostree.am: Uncomment BUILDOPT_IS_DEVEL_BUILD conditional
lib: Minor versioning related fixes
lib/bootconfig: Add support for multiple initrd keys
lib/deploy: Add deploy/stage APIs with options
lib/deploy: Add support for overlay initrds
Add Packit integration
lib/deploy: Don't leak fd when checksumming dtbs
ci: Make Packit ignore downstream patches
Phaedrus Leeds (1):
Avoid shadowing local variables
Philip Withnall (3):
lib/repo: Add mode and tombstone config options to the summary file
lib/pull: Read mode and tombstone options from summary file if possible
ostree/dump: Fix a memory leak
Timothée Ravier (7):
docs: Add Jekyll and theme config
docs: Update Index page
docs: Update Contributing and tutorial pages
docs: Move and update pages from the manual
docs: Move historical README to the docs
README: Update and mention new docs
docs: Fix URL in Jekyll _config.yml
Git-EVTag-v0-SHA512: d6f38b96bc9385bf89f347300967b53709be34d2bad9b78eecd7f5ae5c1bcadb18daca38576d65d325279d0bc77488fe49524c39114e3b2b05a7fe6eb24ac704
Release 2020.6
ostree 2020.6
One notable feature: ostree now supports /
and /boot
being on the same filesystem.
I know this has been a long time coming and often demanded - thanks to everyone
who contributed, but particularly @wmanley who even did two separate implementations to
better compare the advantages/disadvantages!
PR: #2149
Other than that it's mostly bugfixes; there is one quite important one for anyone using the readonly=true
for /sysroot
(which is still just Fedora CoreOS I suspect).
There's some improvements to the GObject Introspection metadata, some (cosmetic) static analyzer fixes, a fix for the immutable bit on s390x, dropping a deprecated bit in the systemd unit file, etc.
Thanks to everyone who contributed!
Colin Walters (11):
Post-release version bump
tests/inst: Bump to latest ostree and gtk-rs
pull: Assign idle_src variable before calling unref()
prepare-root: Remove unused variable
admin/pin: Enforce that index is a number
tests: Check the immutable bit
linuxfsutil: Pass int to ioctl, not long
tests/inst: Port to new sh-inline repo
tests/inst: Update to published sh-inline crate
Release 2020.6
Post-release version bump
Felix Krull (2):
lib: add some missing version tags
lib: mark out parameters as out parameters
Jonathan Lebon (4):
configure.ac: Set is_release_build=no
ostree-prepare-root: Fix /etc bind mount
ostree-remount: Remount /etc rw if needed
ci: Temporarily import kola test from jlebon's FCOS fork
Matt Bilker (1):
Fix mkinitcpio with newer systemd versions
Simon McVittie (1):
boot: Replace deprecated StandardOutput=syslog with journal, etc.
William Manley (2):
Refactor tests/bootloader-entries-crosscheck.py
sysroot: Support /boot on root or as seperate filesystem for syslinux and u-boot
2020.5
This release primarily fixes a regression in 2020.4 where the "readonly sysroot" changes incorrectly left the sysroot read-only on systems that started out with a read-only /
(most of them, e.g. Fedora Silverblue/IoT at least)
Link: 33eeb7b
One thing not fixed in this release that also changed in 2020.4 is that if you were shipping an OS build with device trees before proper support landed in 2020.4, you may need to "ratchet" an upgrade process. See the linked issue for ongoing discussion.
Link: #2154
There's some additions to the pull API to aid flatpak, and although it turns out those are likely to be obviated by #2167 - we will retain those options in the future.
Link: #2166
There were a few fixes to the man pages, and ostree show
now displays the parent commit.
The default dracut config now enables reproducibility.
Link: #2170
On the "feature" side, there is a new ostree admin unlock --transient
. We expect this to be a foundation for further support for "live" updates.
Link: f2773c1
Finally, various CI improvements landed - more testing of FCOS in PXE/ISO, and most notably there's a large brand new test (written in Rust) that exercises a mix of kill -9
and reboot -ff
(immediate forced reboots) while upgrading.
Benjamin Gilbert (1):
ci: test FCOS PXE and ISO install
Colin Walters (8):
Post-release version bump
remount: Still remount /sysroot writable if not configured ro
tests/repo-finder: Explicitly commit empty dir
ci: Fix ISO testing
ci: Barf on unset umask
Add "transient" unlock
tests/inst: Add destructive test framework
Release 2020.5
Jonathan Lebon (7):
app: Fix various CLI metavariable names
lib/deploy: Clean up kargs override handling
lib/deploy: Avoid shadowing variable
lib/deploy: Simplify deployment creation
lib/cleanup: Drop unnecessary GEqualFunc cast
lib/deploy: Drop unneccessary function arg
lib/deploy: Clarify comment re. staging API
João Paulo Rechi Vita (1):
dracut: Create reproducible images
Philip Withnall (2):
pull: Improve formatting of pull options in documentation
pull: Add summary-{,sig-}bytes options to ostree_repo_pull()
Stefan Agner (3):
man: add glossary to main man page
man: add missing options to the ostree-commit man page
Show commit checksum of parent, if present
Stephen Lowrie (1):
ci: add pxe-offline-install testiso scenario
2020.4
ostree 2020.4
By far the biggest change in this release is new ed25519 signing support, powered by libsodium.
See: #1233
ostree commit
gained a new --base
argument, which significantly simplifies constructing "derived" commits, particularly for systems using SELinux.
Handling of the read-only sysroot was reimplemented to run in the initramfs and be more reliable. Enabling the readonly=true
flag in the repo config is recommended.
Several bugs were fixed in locking for the temporary "staging" directories OSTree creates, particularly on NFS.
lib: Coerce flags enums to GIR bitfields changed some values to be (correctly) flags - this may show up as incompatible for GObject Introspection consumers (but not C).
A new timestamp-check-from-rev option was added for pulls, which makes downgrade protection more reliable and will be used by Fedora CoreOS.
Several fixes and enhancements were made for "collection" pulls including a new --mirror
option.
The ostree commit
command learned a new --mode-ro-executables
which enforces W^R semantics on all executables.
A new commit metadata key (OSTREE_COMMIT_META_KEY_ARCHITECTURE
) was added to help standardize the architecture of the OSTree commit. This could be used on the client side for example to sanity-check that the commit matches the architecture of the machine before deploying.
Some new tests are being written in Rust, and ostree now itself uses the Rust ostree bindings for tests; work on this is ongoing.
The pull
command learned a new --per-object-fsync
which restores the original libostree behaviour of fsync
ing each object as they are written. This makes the overall operation take much longer, but exhibits an I/O latency profile friendlier to neighbouring processes (such as databases) that also invoke fsync
. This will be used in OpenShift for example, where etcd latency is crucial.
Future work
There's a lot in the pipeline, including better handling of the /boot = /
case, static delta inline signatures, more CI work, etc.
Git shortlog
AJ Jordan (1):
Fix typo
Colin Walters (62):
main/pin: Fix usage of GError
tests: Rework tests/installed → tests/kola
tests/kola: Two test fixes
main/commit: Rework control flow to use --tree=X path
tests/pull-repeated: Bump up retries to match max fails
repo/commit: Add support for --selinux-policy-from-base
build-sys: Print libsodium status at end of configure
sign-ed25519: Convert some functions to new style
sign-dummy: Convert to current code style
signing: Remove g_debug(__FUNCTION__)
lib: Add error prefixing for sysroot load and repo open
sysroot: Reorganize sysroot load code a bit
lib: Squash two gtk-doc warnings
tests/pull-sizes: Disable xattrs everywhere
pull: Update key loading function to match error style
commit: Add --base argument
OWNERS: add d4s to reviewers
Only enable "dummy" signature type with opt-in env variable
lib/pull: Two cosmetic internal function renames
Change signature opts to include type, cleanup error handling
ci: Build minimal without libsodium too
Use `sign-ed25519` for the feature name
travis: Add some libsodium coverage
lib: Move internal binding verification API to repo.c
lib: Move pull struct definition into repo-pull-private.h
lib: Move gpg/signapi bits into ostree-repo-pull-verify.c
deploy: Add --no-merge
finalize-staged: Add ProtectHome=yes and ReadOnlyPaths=/etc
tests/staged-deploy: Cleanup initial state
signing: Add #define OSTREE_SIGN_NAME_ED25519
commit: Add --mode-ro-executables option
ostree-prepare-root: Requires=sysroot.mount
remote-add: Add --sign-verify=KEYTYPE=[inline|file]:PUBKEYREF
signing: Change API to create instances directly
tests/staged-delay.sh: New test
pull: Further cleanup signapi verification
finalize: Add RequiresMountsFor=/boot too
ci: Install kola tests
pull: Only have API to disable signapi for local pulls
ci: Test for clock skew
admin-test: Show err.txt on unexpected failure
pull: Add support for sign-verify=<list>
Move ro /sysroot bind mount of /etc into initramfs
tests/kola: Move to tests/kolainst
Add new Rust-based tests
remote-add: Default to explicit sign-verify backends
pull: Add error prefixing with specific object when parsing
bupsplit: rustfmt(*)
tests/rust: Extract a with_webserver_in helper wrapper
commit: Note in help that --base takes an argument
core: Add OSTREE_COMMIT_META_KEY_ARCHITECTURE
tests: Add a pre-signed-pull.sh test
sign/ed25519: Output failed signatures in error message
signapi: Change API to also return a success message
libostree-devel.sym: Remove nonexistent stub symbol
core: Add documentation for ostree_commit_get_timestamp()
sysroot: Remove unimplemented ostree_sysroot_lock_with_mount_namespace
tests: Port to Debian autopkgtest reboot API
tests: Add needs-internet tag for webserver bits
pull: Also append bytes written
pull: Add --per-object-fsync
Release 2020.4
Dan Nicholson (1):
lib: Coerce flags enums to GIR bitfields
Denis Pynkin (80):
Add libsodium dependency
lib/sign: initial implementation
sign: add new builtin for signing
sign: allow to sign commits from CLI
lib/sign: enable verification for pulling
tests: add test for commits sign/verification
sign: API changes for public keys and CLI keys format
builtin/sign: allow to provide the file with public keys
tests/sign: check public keys load from file
builtin/sign: remove libsodium-specific code
sign: fix unneeded objects creation
sign: fix error return for dummy module
builtin/sign: remove libsodium dependency
sign: fixes for ed25519 for loading public keys from files
sign: check signatures for pulled commits
tests/sign: add initial test for pulling
lib/sign: disable mandatory signature check
lib/sign: add support of file with valid keys for remote
lib/sign: read ed25519 public keys from well known places
builtin/sign: allow to sign with keys from secret file
tests/gpg: skip test in JS if GPG is not supported
sign: fix memory leaks and code cleanup
builtin/sign: allow to use multiple public keys for verification
lib/sign-ed25519: cleanup unneeded code
lib/sign: public API optimisation
lib/sign: allow to add keys as base64 string for ed25519
sign: use common function for loading public keys during pulling
lib/sign: minor optimisation for ed25519
lib/sign: add ostree_seign_clear_keys function
lib/sign: add revoking mechanism for ed25519 keys
builtin/sign: add option 'keys-dir'
tests/sign: check system-wide config and revoked keys
man: document `ostree sign`
bash-completion: add completion for `ostree sign`
apidoc: add API documentation for signing interface
man: document commit signing
bin/pull-local: add --sign-verify
tests/libtest: add functions for ed25519 tests
tests/sign: use library functions for ed25519 keys
tests/local-pull: test "--sign-verify" option
bin/remote-add: added "--no-sign-verify" option
tests: use option "--no-sign-verify" for adding remote
tests/sign: disable GPG for alternatively signed pull
lib/sign: allow to build with glib version less than 2.44
lib/sign: use separate public and secret keys for 'dummy'
tests/sign: add verification key for pulling with dummy
lib/sign: fix the false failure while loading keys
tests/sign: allow to start pull test without libsodium
lib/sign: new function for summary file signing
bin/summary: add signing with alternative mechanism
lib/repo-pull: verify signature on summary pull
tests/sign: new test for summary file verification
man: add signature options for ostree summary
gpg: do not fail GPG-related configuration get for remote
lib/repo-pull: change sign supporting functions
lib/repo-pull: set default for sign-verify-summary
lib/repo-pull: add signature check while fetching summary
bin/pull-local: add --sign-verify-summary
lib/sign: make dummy engine non-public
lib/sign: make ed25519 engine non-public
lib/sign: better error handling of ed25519 initialization
lib/repo-pull: return error from signing engine
lib/repo-pull: return errors from signature engines
tests/sign: added check with file and single key on pull
sign-ed25519: Convert functions to new style
sign-dummy: optimize ostree_sign_dummy_data_verify
lib/sign: convert ostree_sign_summary to new style
tests/sign: check pull failure with invalid remote options
lib/sign: return false for non-implemented functions
sign-pull: improve error handling
o...
2020.3
A quick followup to 2020.2, which introduced support
for [read-only sysroot][1] ended up breaking some of
the Fedora CoreOS tests in [coreos-assembler][2]
which in turn holds back ostree going into FCOS:
coreos/fedora-coreos-tracker#343
Now we've closed that gap and are running more of those
tests as part of our [new CI][3].
[1] 5af403b
[2] coreos/fedora-coreos-tracker#343
[3] coreos/fedora-coreos-tracker#263
Colin Walters (3):
Post-release version bump
ci: Test kola --upgrades
main: Also automatically remount rw /sysroot for `ostree pull` etc.
Jonathan Lebon (3):
ci: migrate to new coreos-ci project
ci: use `fcosKola` for running kola tests
Release 2020.3
Git-EVTag-v0-SHA512: 0032a560965e0dc2e8cd27b4324b54ca5f968a0a1f2ca67f1de7d810ac135595c034f3f5d2f8f68ef38cb0172558d0911583cd57c17cf12b1cba19ebdadf8997
2020.2
2020.1
There is now support for making the /sysroot
mount point read-only to start, and this is used by Fedora CoreOS today. This protects against a lot of accidental damage, and also generalizes and improves the previous special case handling of having /boot
read-only. One known issue is that ostree pull
is broken with this enabled, and this will be fixed.
Error-handling around GPG verification has had an overhaul. Specifically, libostree now has more specific error codes to distinguish between different verification failures. This should allow apps to have more fine-grained control over how to respond to errors. Do note that the error messages themselves have changed, and we strongly suggest that anyone relying on a specific error message string to migrate to using the API directly.
The original "archive" (split up objects) format didn't make it easy for a client system to know how much data it would be downloading. Later, static deltas were added which addressed this problem, but there are situations in which object fetches still occur. Later then support for optional sizes
metadata in commit objects was added but was never really stabilized/publicized. There were also some bugs in it. That is now completed - the sizes data is now stable. and new API was added to read it.
This release adds initial fs-verity support; it doesn't do too much today. Bigger picture it's important to understand that the vision of OSTree is to enable Linux systems that feel like they're "image based" (transactional, versioned updates, no dependency resolution client side), but also to enable things like doing commits on the client side. Today rpm-ostree supports replacing the kernel client side as a first class operation. This is crucially important to make it feel truly like a Linux system that you own. See also this blog. Having a story for how system integrity works in this model is more complicated, but we (the CoreOS team at RHT) will be continuing work on it.
A small tweak was made to have OSTree create repo structure directories and files (such as objects/
or .lock
) with group write permissions. This is useful for managing OSTree remote servers from multiple UIDs. For systems with the default umask of 0022
, this should have no effect.
We've extensively reworked CI for the upstream repo. In addition to Travis, testing is now done on top of Fedora CoreOS. Not all tests have been carried over, but expect to see more coming. This rework will also allow us to have more comprehensive tests previously not possible.
Several fixes were made to the test suite to handle the cases of systemd vs no-systemd, and systemd
is now advertised in the list of features in ostree --version
if present.
$ git shortlog --no-merges v2019.6..
Alex Kiernan (6):
test-switchroot.sh: Exclude /proc from file list
build: Expose systemd in OSTREE_FEATURES
tests: Skip /var test if running with systemd and libmount
test-switchroot.sh: Find ostree-prepare-root in installed tests
fixup! test-switchroot.sh: Find ostree-prepare-root in installed tests
build: fix systemd feature advertisement
Cole Robinson (1):
docs: Fix 'package layering' rpm-ostree link
Colin Walters (8):
Post-release version bump
finalize-staged: Use the core option parsing to load sysroot
Support mounting /sysroot (and /boot) read-only
Initial fs-verity support
Add .cci.jenkinsfile
travis: Update debian/ubuntu environments
ci: Replace PAPR with CoreOS CI
deploy: Avoid trying to change immutable state unnecessarily
Dan Nicholson (26):
lib/commit: Only set generate_sizes for archive repos
tests/sizes: Improve metadata validation
lib/commit: Fix object sizes metadata for multiple commits
lib/commit: Make size entries for existing objects
tests/sizes: Test sizes metadata with existing objects
tests/sizes: Test that sizes metadata is not reused
tests/sizes: Check duplicate file doesn't add sizes entry
libarchive: Support commit sizes metadata
core: Add OstreeCommitSizesEntry type
core: Add ostree_commit_get_object_sizes API
bin/show: Add --print-sizes option to show sizes metadata
tests/core: Really pick C.UTF-8 locale
ci/rpmostree: Bump to 2019.4
lib/gpg: Prefer declare-and-initialize style
tests/libtest: Record long GPG key IDs and fingerprints
tests/libtest: Make temporary gpghome private
tests/gpghome: Create revocation certificates for keys
tests/gpg-verify-data: Split out signature data
tests/gpg-verify-data: Empty out trustdb.gpg
tests/test-gpg-verify-result: Allow specifying signature files
lib/gpg: Add more specific OstreeGpgError codes
tests/gpg: Test ostree_gpg_verify_result_require_valid_signature
tests/gpg: Add tests for importing updated remote GPG keys
ci/flatpak: Patch GPG error assertions from OSTree
ostree/trivial-httpd: Fix --autoexit with --daemonize and --log-file
ostree/trivial-httpd: Add log message for autoexit
John Hiesey (1):
lib/commit: Include object type in sizes metadata
Jonathan Lebon (1):
lib/repo: Create repo directories as 0775
clime (1):
Update ostree-pull.xml with info about pulled refs location and access
Git-EVTag-v0-SHA512: b3907c7d53696eee789bf9be60df54385a3146347b78752212745b2f84e0429b5d50f8cb7408b2be483757893e1b65dc1eeb5c8fa1f6446efbe81efbd998e249