FreeBSD 15.2-BETA2 Is on the Way – Changes since BETA1

The FreeBSD 15.2 release cycle has reached its second beta. Release Engineering Lead Colin Percival announced on the developers list that releng/15.2 is about to be marked BETA2, with builds starting shortly afterwards. The start may slip a little past midnight: the stable/15 snapshot builds had to be restarted and need to finish first, and the kmods_quarterly_2 builds are still running.

A fair number of changes landed in the week since BETA1. Here is what went in, grouped by area.

SSH and post-quantum host keys

This is the change most users will notice. OpenSSH in base moves forward through 10.5p1, 10.6p1 and 10.6p2, and the rc scripts now generate ML-DSA-44 and Ed25519 host keys by default. ML-DSA is the lattice-based signature scheme standardised by NIST as FIPS 204, so a freshly installed 15.2 system will come up with a post-quantum host key next to the classical one.

  • OpenSSH: update to 10.5p1, 10.6p1, 10.6p2 (emaste)
  • rc: generate ML-DSA44/Ed25519 host keys by default (jlduran / emaste)
  • ssh: use the defaultkey sentinel for the ML-DSA-44 default host key (emaste)

Virtualization: bhyve, vmm and virtio

  • bhyve: treat BAR registration failures as non-fatal (markj)
  • vmm: add a bulk TMR reset hook for Intel APICv (dch)
  • vmm: skip TMR rebuilds for edge-to-edge IOAPIC writes (dch)
  • virtio_pci_modern: enable virtqueues before completing attach (kevans)
  • virtio_random: defer the first enqueue until after DRIVER_OK (kevans)

The two virtio fixes are about initialisation ordering, which matters for FreeBSD running as a guest. The vmm changes touch interrupt handling on Intel hosts with APICv.

Kernel, filesystems and networking

  • inotify: open the target directory when adding a watch (markj)
  • amd64: make hw.splitlock_force adjustable at runtime (kib)
  • mqueuefs: set *a_eofflag in VOP_READDIR (delphij)
  • linux: bound native getdents and getdents64 batches (kevans)
  • TCP RACK: fix RSM computation for TCP Fast Open (tuexen)

Userland, libraries and installer

  • msun: fix nextafter*() and nexttoward*() behaviour for the MAX value (kargl / fuz)
  • bsdinstall: set TMPDIR in the pkgbase install (cperciva)
  • contrib/bc: remove the vs sub-directory (se / cperciva)
  • i2ctinyusb: do not list i2ctinyusb.c twice in SRCS (delphij)
  • pkg 2.9.2 is in the 2026Q4 ports branch (bapt)

How changes reach releng/15.2

The merge process is the one re@ has used for the past year. Developers do not push to the release branch themselves. They send a request to re@, and the release engineer decides whether to cherry-pick the commit. Unless Colin asks otherwise, only members of re@ and secteam@ push to releng/15.2. The criteria for requests are in the change request guidelines, and known problems are tracked on the 15.2 issues page.

If you have work in progress that should be in 15.2-RELEASE, tell re@ now. Three weeks remain before the release build.

Schedule

MilestoneDate
Ports quarterly branchOctober 1, 2026
Reminder emailOctober 9, 2026
stable/15 slushOctober 23, 2026
doc/ tree slushOctober 30, 2026
releng/15.2 branchNovember 6, 2026
BETA1 build startsNovember 6, 2026
BETA2 build startsNovember 13, 2026
doc/ tree tagNovember 13, 2026
BETA3 build startsNovember 20, 2026
Ports package buildsTBD (before November 27)
RC1 build startsNovember 27, 2026
RELEASE build startsDecember 4, 2026
RELEASE announcementDecember 8, 2026

Support lifetimes

  • 15.1-RELEASE end of life: March 31, 2027
  • 15.2-RELEASE end of life: September 30, 2027
  • stable/15 branch end of life: December 31, 2029

Anyone on 15.1 has until the end of March 2027 to move to 15.2.

Help test

Betas exist to be broken. If you run FreeBSD in a VM, on EC2 or on spare hardware, BETA2 is a good one to try, since it carries the new SSH host key defaults and the virtio attach fixes. Check that your SSH clients and configuration management cope with the new host key type, and report anything that looks wrong on Bugzilla or to re@ before RC1 on November 27.


Leave a Reply

Discover more from /root

Subscribe now to keep reading and get access to the full archive.

Continue reading