github bootc-dev/bootc v1.16.0
Release v1.16.0

4 hours ago

bootc 1.16.0

Release cadence change

Starting with this release, bootc switches to a weekly release cadence. Patch version bumps will be the default; the minor version will be reserved for releases with notable features. See #2225.

New features

  • composefs: Transient /etc, transient root, and volatile /var — bootc now properly supports running with a transient (overlayfs) /etc, a transient root, and documents the systemd.volatile=state path for volatile /var. This is particularly useful for sealed/immutable image configurations. (#2201)

  • Unified storage update — The composefs manifest is now a GC root, replacing the legacy .imginfo sidecar files. The chain is now: bootloader entry → deployment → origin file → manifest digest → manifest → objects. Old .imginfo-based systems are still supported for backward compatibility. (#2044). This is part of heading towards declaring the composefs fully stable - a lot more to come!

  • BOOTC_EXP_EXTERNAL_CONTAINER_TOOL env override — A new experimental environment variable allows substituting an alternative binary in place of both podman and skopeo, useful for downstream projects shipping a single unified container tool. (#2192)

  • ostree-ext: Reuse prior packing layout with exclusive components — When exclusive components have already been split into dedicated layers, the prior-build packing layout is now reused, improving layer stability across rebuilds. (#2109)

Notable bugfixes

  • Fix orphaned /etc/shadow and /etc/gshadow entries before sysusers — Adds a generator that detects and removes shadow file entries left behind during the migration from nss-altfiles to systemd-sysusers, preventing fatal boot errors. (#2207)

  • install: Don't fsfreeze VFATbootc install to-filesystem no longer attempts to freeze VFAT filesystems (e.g. the ESP mounted at /boot), which do not support FIFREEZE/FITHAW. (#2196)

  • bootloader: Fix systemd-boot installs — Several issues with systemd-boot-based installs are resolved: bootctl now runs with --generic-image to avoid touching EFI variables, temporary writes that require a writable /etc are redirected, and SYSTEMD_RELAX_ESP_CHECKS=1 is set to avoid unnecessary udev lookups. (#2191)

  • composefs GC: Clean up bootloader binaries on finalize — After atomically swapping staged bootloader entries, GC now runs for BLS/UKI binaries no longer referenced by any entry. The composefs object repository is pruned on the next update/switch. (#2206)

  • Rollback fixes — Staged deployments are now removed on rollback (matching ostree behavior), and bootloader entry sorting for composefs is now correct for both systemd-boot (by sort-key) and GRUB (by filename). (#2213)

  • bootloader: Run bootupctl via chroot instead of bwrap — Avoids issues in environments where bwrap is unavailable or restricted. (#2210)

  • blockdev: Restore multipath partition number fallback — Fixes partition number detection from device path for multipath devices. (#2219)

What's Changed

New Contributors

Full Changelog: v1.15.2...v1.16.0

New Contributors

Full Changelog: v1.15.2...v1.16.0

Assets

  • bootc-1.16.0-vendor.tar.zstd - Vendored dependencies archive
  • bootc-1.16.0.tar.zstd - Source archive

Don't miss a new bootc release

NewReleases is sending notifications on new releases.