Skip to content

Releases: ostreedev/ostree

v2024.5

14 Mar 17:51
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2024.4...v2024.5

v2024.4

23 Feb 21:23
Compare
Choose a tag to compare

What's Changed

  • Release 2024.3 by @cgwalters in #3172
  • rofiles-fuse: Check fsverity flag for copyup by @cgwalters in #3175
  • tests: Use long key IDs by @teythoon in #3178
  • docs: Add webrick dependancy for building site locally by @ericcurtin in #3179
  • tests: Use long key IDs, I found another one by @teythoon in #3180
  • README: Add Red Hat In-Vehicle Operating System by @ericcurtin in #3181
  • workflow/docs: Update to actions/checkout@v4 & dependabot: Update github-actions weekly by @travier in #3176
  • test-admin-deploy-var: Don't rely on OSTREE_FEATURES by @smcv in #3184
  • deploy: Don't fail if loading composefs configuration fails due to mi… by @alexlarsson in #3189
  • ostree-prepare-root: Amend comment about shared mounts by @rborn-tx in #3186
  • Docs fixes & SPDX identifiers uniformisation by @travier in #3185
  • prepare-root: Disallow hotfixes if using signed composefs images by @alexlarsson in #3194
  • generator: Fixes for Android Boot environment by @ericcurtin in #3192
  • sysroot: Reword comment and use gboolean over bool, error handling by @ericcurtin in #3195

New Contributors

Full Changelog: v2024.3...v2024.4

v2024.3

14 Feb 00:49
Compare
Choose a tag to compare

New features and notable changes

This release changes how /var works (again):

The mount setup also had a semantic change for those enabling root.transient:

  • prepare-root: Switch to a tmpfs for transient root by @cgwalters in #3173

Also related to prepare-root, it is now recommend to enable composefs by simply configuring ostree-prepare-root.conf and not the ex-integrity.composefs variable:

  • deploy: Honor prepare-root.conf at deploy time for composefs by @cgwalters in #3165

Other changes

New Contributors

Full Changelog: v2024.2...v2024.3

2024.2

08 Feb 19:43
Compare
Choose a tag to compare

What's Changed

New features

The ostree admin pin command learned more human-consumable verbs:

  • admin/pin: Add commands to pin booted, pending and rollbacks deployments by @ericcurtin in #3146
  • generator: Exit if there's no /run/ostree by @cgwalters in #3147

Bugfixes

  • deploy: Ignore sockets, fifos in /etc/ during merge by @yummypeng in #3143
  • grub2-15_ostree: Graceful exit if /etc/default/grub doesn't exist by @travier in #3150
  • Track deployment root/inode from prepare root by @cgwalters in #3164

Other changes

New Contributors

Full Changelog: v2024.1...v2024.2

2024.1

21 Jan 16:02
Compare
Choose a tag to compare

New features

There are two major new APIs around configuring mutability and persistence of the root filesystem.

First, OSTree gained support for a new root.transient flag that makes / an overlayfs that is persistent across reboots but not across upgrades. This makes the system behave a bit more similarly to e.g. Docker and following tools such as podman and Kubernetes.

There is a different approach in the (still classified as experimental) ostree-state-overlay@.service unit:

This approach instead allows operating systems or downstream builders to choose to apply persistent merge semantics to specific targeted directories (e.g. /opt).

Notable bugfixes

  • prepare-root: Fix composefs + ostree admin unlock --hotfix compat by @cgwalters in #3129
  • lib/deploy: Round to block size in early prune space check by @jlebon in #3130

Other misc changes

New Contributors

Full Changelog: v2023.8...v2024.1

2023.8

06 Dec 16:13
Compare
Choose a tag to compare

This release stabilizes "deployment finalization locking" which
is very useful for automatic update workflows.

  • sysroot: Stabilize deployment finalization, add API by @cgwalters in #3090

There's a new post-copy command which may be useful for build
systems that generate a filesystem tree outside of ostree:

The commit logic started using reflinks (if available) which
can be a big speedup.

System root and bootloader:

Finally, ostree now ships a tmpfiles.d fragment which copies from /usr/share/factory/var to /var
by default:

v2023.7

20 Oct 16:47
Compare
Choose a tag to compare

A variety of things here. I think the new support for a "transient etc"
will be appreciated in many places. Note that to work with SELinux
the build system side needs to ensure the labels on /usr/etc match /etc.

Another important change is that the ostree HTTP layer now retries requests
by default; this closes a very longstanding RFE.

Also on the pull side, a longstanding bug was fixed where we'd still
try to fetch "loose" objects even when we were doing a delta pull.

There's a variety of clang-analyzer fixes (some false positives, some real
memory leaks, etc).

Even more in the below log; thanks to all contributors!

What's Changed

New Contributors

Full Changelog: v2023.6...v2023.7

2023.6

25 Aug 15:17
Compare
Choose a tag to compare

signing: ed25519 can now be backed by openssl

If ostree is compiled with OpenSSL support (as it is on e.g. Fedora derivatives), this also enables an OpenSSL-backed implementation of the ed25519 signature support. Previously, this required libsodium - which can still be used if desired instead of openssl.

composefs changes

Now enabled at build time (but disabled at runtime) by default

On systems with sufficiently new glibc and fsverity, ostree enables support for composefs at build time. It continues to be disabled by default at runtime.

composefs now supports signature verification

There is support for an "initramfs root binding key" that can be injected into the initramfs, and used to verify the ostree commit (including its embedded composefs checksum). One suggested model is to follow how e.g. Fedora signs kernel modules with a transient throwaway key. For more, please see the ostree/composefs doc.

Note that composefs continues to be classified as experimental.

Configuration format has changed

The old ot-composefs kernel argument is no longer honored in favor of a configuration file that should be present in the initramfs.

ostree-prepare-root other changes

  • A new configuration file in the initramfs is honored: /etc/ostree/prepare-root.conf
  • This configuration file can also specify the readonly-sysroot default, which is now recommended
  • Improved Android Boot support
  • The sysroot.readonly flag can now also be configured from here, and this is recommended
  • /run/ostree-booted is now non-empty, and contains serialized state (this is an implementation detail)
  • Several preparatory code cleanups for other changes
  • ostree-prepare-root has a new man page which documents the previous state, along with the above

ostree admin set-default

A long-overdue CLI verb to change the default deployment for the next boot.

sysroot other bugfixes and changes

  • It is now supported to have /usr/etc with an empty /etc. This is preparatory for supporting a transient /etc.
  • Finally fixed the global sync timeout at shutdown
  • Increased verbosity of changes
  • ostree admin deploy now honors --stateroot as we prefer that term over --os

trivial-httpd

The remnants of the deprecated ostree trivial-httpd CLI are now completely gone.

Alexander Larsson (8):
      tests: Fix composefs test
      sign-ed25519: Drop some uses of libsodium
      sign-ed25519: Implement sign and verify using openssl
      CI: Enable --with-crypto=openssl on debian testing to test openssl signatures
      libotutil: Link to crypto libs
      ostree-prepare-root: Validate ed25519 signatures when requested
      Read composefs configuration from initrd instead of commandline
      prepare-root: Only support base64 formated public key files

Colin Walters (84):
      tests/transactionality: Port a bit to xshell
      tests: Drop unused alias
      tests: Enable mtime test
      docs: Update user and group section
      Separate prepare-root static path
      prepare-root: Link to glib
      configure: post-release version bump
      Drop "ostree trivial-httpd" CLI, move to tests directory
      fetcher: Always open tmpfiles in repo (except on FUSE)
      show: Add --print-hex
      build-sys: Add libsodium to OT_DEP_CRYPTO
      Factor out a libotcore
      build: Drop `make syntax-check`
      Add an internal constant for the composefs image name
      prepare-root: Use otutil and g_print
      prepare-root: Drop unused verity flag querying
      sysroot: Add some error prefixing for bootversion
      prepare-root: Use constant for ed25519 signature
      prepare-root: Add metadata for composefs to `/run/ostree-booted`
      remount: Don't overwrite /run/ostree-booted
      remount: Use new metadata in `/run/ostree-booted` for composefs
      prepare-root: Drop dead `pivot_root` code
      Use /run/ostree-booted metadata for sysroot-ro state passing
      man: Add ostree-prepare-root
      mount: Fix gcc -fanalyzer warning for parsing androidboot.slot_suffix
      build-sys: Enable composefs at *build time* by default
      prepare-root: Refactor composefs config handling
      commit: Add `--sign-from-file`
      tests: Remove dead references to "SEED"
      sign-ed25519: More verbose errors for invalid length
      sign-ed25519: Add some comments for data structure
      sign-ed25519: Don't set sk unless we've validated it
      generator: Deduplicate ostree= karg parsing
      prepare-root: Drop code mounting `/proc`
      prepare-root: Drop more dead code
      Add an always-on `inode64` feature
      composefs: Use lowerdir in /run
      generator: Stop creating `/run/ostree-booted`
      src/generator: Move all logic into libostree-1.so
      kernel-args: Move private functions out of public header
      sysroot: Add a bit more error prefixing
      repo: Clarify when we fail to parse a remote
      prepare-root: Introduce `ostree/prepare-root.conf`
      prepare-root: Default sysroot.readonly=true if composefs
      prepare-root: Don't parse target root when composefs enabled
      tree-wide: Consistently `(void)g_variant_lookup()`
      core, switchroot: Harden a bit against `g_variant_get_data() == NULL`
      checksum-utils: Add an assertion that `buf != NULL`
      deploy: Be way more verbose about what we're doing
      tests/destructive: Turn off global sync()
      deploy: Support an empty `/etc` and populated `/usr/etc`
      composefs: Only call `_get_symlink_target()` on symlinks
      os-init: Create a mount namespace
      Add `admin set-default`
      More fully drop `trivial-httpd` entrypoint
      deploy: Fix mutex locking for global sync timeout
      README.md: Drop dead mailing list, link to GH discussions
      prepare-root: Use declare-and-initialize
      prepare-root: Check for empty string, not strlen > 0
      prepare-root: Use ptrarray, not linked list
      switchroot,generator: Only read /proc/cmdline once
      deploy: Add some error prefixing
      prepare-root: Minor clarifications
      repo: Bump lock timeout to 5 minutes
      Add `ostree admin stateroot-init` as alias for `os-init`
      admin-deploy: Add `--stateroot` as alias for `--os`
      admin: Port to c99 style
      remote-add: Port to c99 style
      lzma: Port to C99 style
      checkout: Port to C99 style
      cli/set-origin: Port to C99 style
      tests/destructive: Port more to xshell
      build-sys: Disable composefs on too-old Linux headers
      tests: Add otcore unit tests
      tests/inst: Update to latest ostree-ext
      cmd/init: Port to C99 style
      cmd/grub2-generate: Port to C99 style
      Move prepare-root karg helpers into otcore, add unit tests
      deploy: Add bootloader-naming-2 opt-init
      ci: Add c9s build
      build-sys: Look for both linux/mount.h and sys/mount.h
      build-sys: Really fix composefs check
      Release 2023.6
      configure: post-release version bump

Eric Curtin (6):
      android-boot: Remove dependency on ostree= karg, use androidboot.slot_suffix=
      Remove steal_pointer and steal_pointer_impl as we link in glib now
      bootloader: fold all Android Bootloader specific logic into prepare-root
      prepare-root: On a non-A/B androidboot system, boot system slot a
      prepare-root: Changes made to find_proc_cmdline_key
      prepare-root: If composefs is configured as "maybe" don't fail

dependabot[bot] (5):
      build(deps): bump composefs from `412cb5e` to `ac729b5`
      build(deps): bump composefs from `ac729b5` to `1704f82`
      build(deps): bump libglnx from `07e3e49` to `c02eb59`
      build(deps): bump composefs from `1704f82` to `a6e827d`
      build(deps): bump composefs from `a6e827d` to `1aed878`

samcday (1):
      docs: update boot loader spec link

2023.5

30 Jun 19:14
Compare
Choose a tag to compare

This is a bugfix release for the recent 2023.4.

Key bugs fixed

  • Revert "fetcher: Always open tmpfiles in repo location" by @cgwalters in #2901
  • Fix return value of generator on non-ostree systems by @cgwalters in #2911

Other changes

Full Changelog: v2023.4...v2023.5

2023.4

20 Jun 17:27
Compare
Choose a tag to compare

Notable bugfixes

  • commit: fix ostree deployment on 64-bit inode fs by @aospan in #2874

This is a simple patch that is a candidate for backporting to e.g. stable distribution/OS versions of ostree.

New features

composefs

See the documentation.

ostree=aboot for Android Boot

HTTP/pull fixes

  • ostree-fetcher-curl: explicitly use HTTP1.1 when HTTP2 is disabled by @daissi in #2886
  • Increase the metadata size limit to 128MB by @barthalion in #2865
  • fetcher: Always open tmpfiles in repo location by @cgwalters in #2875

Other changes

New Contributors

Full Changelog: v2023.3...v2023.4