FreeBSD 15.0 Planning
===
# :heavy_check_mark: Completed
Things that have been committed to the tree.
| Thing | Owner | Committed / Review / Patch |
| -- | -- | -- |
| arm64 Branch Target Identification | andrew | [d09a64e15d8f](https://cgit.freebsd.org/src/commit/?id=d09a64e15d8fad6588b9aad62979f20afa8441df) |
| arm64 bhyve | andrew | [47e073941f4e](https://cgit.freebsd.org/src/commit/?id=47e073941f4e7ca6e9bde3fa65abbfcfed6bfa2b) |
| single step AMD CPUs in bhyve | jhb Bojan | [e3b4fe645e50](https://cgit.freebsd.org/src/commit/?id=e3b4fe645e50bfd06becb74e52ea958315024d5f), [ca96a942cafb](https://cgit.freebsd.org/src/commit/?id=ca96a942cafb58476e10e887240e594e7923a6e8) |
| DDB pretty-print with CTF | markj Bojan | [c21bc6f3c242](https://cgit.freebsd.org/src/commit/?id=c21bc6f3c2425de74141bfee07b609bf65b5a6b3) |
| Cross kldxref | jhb | [0299afdff145](https://cgit.freebsd.org/src/commit/?id=0299afdff145e5d861797fe9c2de8b090c456fba) |
| copy_file_range(2) in install(1) | mmatuska | [5a50d52f112a](https://cgit.freebsd.org/src/commit/?id=5a50d52f112a86ebd0696da6564c7c7befa27f5d) |
| NVMe-oF/TCP | jhb | [a8089ea5aee5](https://cgit.freebsd.org/src/commit/?id=a8089ea5aee578e08acab2438e82fc9a9ae50ed8) |
| per-file nullfs | dfr | [521fbb722c3](https://cgit.freebsd.org/src/commit/?id=521fbb722c33663cf00a83bca70ad7cb790687b3) (doesn't support sockets) |
| Port of the 9p filesystem | dfr | [e97ad33a89a7](https://cgit.freebsd.org/src/commit/?id=e97ad33a89a78f55280b0485b3249ee9b907a718) |
| NVMe Reset / Recovery Improvements | imp | [aa41354349c1](https://cgit.freebsd.org/src/commit/?id=aa41354349c16ea7220893010df78b47d67d0f74) |
| don't ship OpenSSL FIPS | gtetlow | [86dd740dd73a](https://cgit.freebsd.org/src/commit/?id=86dd740dd73aa88477ff450b2359abda1ad68534) |
| arm64 SVE | andrew | [332c426328db](https://cgit.freebsd.org/src/commit/?id=332c426328dbb30a6b2e69d9b1e8298d77d85bd1) |
| AMD IOMMU driver | kib | [0f5116d7efe3](https://cgit.freebsd.org/src/commit/?id=0f5116d7efe33c81f0b24b56eec78af37898f500) |
| SO_SPLICE | Klara / markj | [a1da7dc1cdad](https://cgit.freebsd.org/src/commit/?id=a1da7dc1cdad8c000622a7b23ff5994ccfe9cac6) |
| riscv64 bhyve | br | [d3916eace506](https://cgit.freebsd.org/src/commit/?id=d3916eace506b8ab23537223f5c92924636a1c41) [7ab1a32cd43c](https://cgit.freebsd.org/src/commit/?id=7ab1a32cd43cbae61ad4dd435d6a482bbf61cb52) |
| Updates to syscall table generation in Lua (libification of makesyscalls.lua) | brooks | [9ded074e875c](https://cgit.freebsd.org/src/commit/sys/tools/syscalls?id=9ded074e875c29cb92d5f643801990d7bb23cca4) |
| arm64 support for gve(4), needed by arm64 instance of GCE | delphij, kibab (lwhsu's pushing them)| [54dfc97b0bd9](https://cgit.freebsd.org/src/commit/?id=54dfc97b0bd99f1c3bcbb37357cf28cd81a7cf00)|
| Removed ACPI-safe timer | cperciva | [00d061855deb](https://cgit.freebsd.org/src/commit/?id=00d061855deb93df5d709c8a794985ebb55012f8)|
| Removed support for swapping out kernel stacks | markj | [6aa98f78cc6e](https://cgit.freebsd.org/src/commit/?id=6aa98f78cc6e527b801cabddf6881ab5c9256934) |
| Removed armv6 | imp/manu | [7818c2d37c2c](https://cgit.freebsd.org/src/commit/Makefile?id=7818c2d37c2c600fc9ad6f2a0951e50dd21b17c8) |
# :airplane: Have
Things that already exist out of tree and can be upstreamed in the next 2 years / before the next release (perhaps needing work to get to an upstreamable state)
| Thing | Owner | Committed / Review / Patch |
| -- | -- | -- |
| copy_file_range() in mv(1) | pjd | [D45243](https://reviews.freebsd.org/D45243) |
| better copy_file_range() fallback/wrapper | pjd | [D45243](https://reviews.freebsd.org/D45243) |
| amd64/arm64 rescue kernel | markj / Klara | draft [D47358](https://reviews.freebsd.org/D47358) |
| iovec wrappers | brooks | |
| Hardware watchpoints in bhyve guests | jhb Bojan | |
| Inline function tracing with dtrace | markj Christos | |
| GSoC: squashfs | chuck | |
| Improvments to Powerd on multicore laptops | cperciva | (talk to gallatin@) |
| Assorted CHERI pre-reqs (ABI bits) | brooks | [cade8f6c118f](https://cgit.freebsd.org/src/commit/?id=cade8f6c118f304eb7c91a1d423b4a97ee466284) |
| Hierarchical ratelimits in ZFS | pjd | [ZFS pull request 16205](https://github.com/openzfs/zfs/pull/16205) |
| simple library ABI checker | brooks | prototype [D44271](https://reviews.freebsd.org/D44271) |
| Graphical installer | khorben | [D44279](https://reviews.freebsd.org/D44279) [D44670](https://reviews.freebsd.org/D44670) [D44671](https://reviews.freebsd.org/D44671) [D44672](https://reviews.freebsd.org/D44672) [D44673](https://reviews.freebsd.org/D44673) [D44674](https://reviews.freebsd.org/D44674) [D45000](https://reviews.freebsd.org/D45000) |
|bhyve direct Linux loader|robn|(see [post to freebsd-virtualization](https://lists.freebsd.org/archives/freebsd-virtualization/2024-May/002112.html))|
# 🚧 In Progress
| Thing | Owner | Status |
| -- | -- | -- |
| certctl rewrite | des | [D42320](https://reviews.freebsd.org/D42320) |
| DRM back in base | manu | 90% done |
| devd events for disk errors additional info | imp | 75% |
| Modularize default TCP stack | jtl | Code done; needs UX support to make it easy for users to use |
| UnionFS that actually works! (overlayfs) | olce | Starting (roadmap exists) |
| Standards-compliant, practical scheduling priorities | olce | 75% |
| rootless bhyve | markj | in progress
| kboot support for amd64 | imp | Late Summer 2024 80% |
| Lua 5.4.7 update for flua and boot loader | imp | release in coming weeks, looks "boring" |
| Integrate loader command line editing from my GSoC student's code | imp | git rebased branch available, need assistance |
# 💸 Need
Things that someone needs in the next two years to support a product or service
| Thing | Owner | Committed / Review / Patch / Status |
| -- | -- | -- |
| new ELF kernel dump format | jhb markj | |
| bsdinstall support for pkgbase | emaste manu? | |
| Integrate pkgbase into release and so processes | re, so | can we please have a makefile per package|
| pkg groups | bapt | |
| Poudriere support for toolchain-less jails | allanjude | |
| External toolchain support | brooks | |
| Pre-commit CI src, doc | lwhsu imp bofh | `make ci` WIP. Need to integrate with oth|
| Improve `make ci` to make it useful for committers | imp, bofh| |
| Improve `make ci` to make it useful for things like landing github pull requests | imp | |
| Pre-commit CI ports | lwhsu will check with bapt and decke | bofh seems have some PoC|
| Universal Flash Storage driver | loos | Needed for some embedded deploys, but more universal in the future. Coming to Intel platforms soon. Also useful for LinuxBoot. |
| DTrace's `-C` (capital C) to work again | antranigv, markj | PR not submitted yet, just run `dtrace -c` and see many include |
| Refined bsd-user support for release process | imp, dfr, cperciva | 32 on 64 issues, update very old qemu-bsd-user-static port |
| refine bsd-user binfmt etc to be jail friendly | cperciva, imp | Colin would like to have per-jail settings for these things |
| bsd-user + poudriere support for RISCV | imp, mhorne, jrtc27 | Package building totally broken, but basic stuff works, needs work so we can have riscv pacakges again |
| github runner for pull requests | imp | Possible ways out of cirrus-ci hole |
| github actions for quality of experience for external contributors | imp | Need help here |
| S0ix low idle | obiwac, jhb | |
| Native inotify(2) | tcberner | Many ports need this |
| What OpenSSL version should 15.0 ship with | gtetlow | run newer version in main to get soak time |
# 🥺 Want 🙏
Things that would be nice to have but aren't critical
| Thing | Owner | Committed / Review / Patch / Status |
| -- | -- | -- |
| cleanup `make -s` | jhb | clean up warnings and keep it under control 🔥 |
| TPM support (GELI, ZFS) | allanjude tsoome | -- |
| ZFS encrypted boot support | tsoome allanjude | UEFI only |
| smbfs replacement (v2 or better)| emaste jhixson | -- |
| virtio-fs | ??? asomers | imp says patches exist |
| Streamlined installer (single disk, better defaults, i.e. mash enter until done) | emaste brd | |
| extend per-file nullfs for sockets/fifos | dfr | |
| more container support (OCI) | dfr | need volunteers. Containerd port needs maintainer. Official images/repo |
| MINIMAL kernel | imp | in progress |
| Boot loader support for devmatch | imp manu | PCI and USB |
| rewrite config(8) (in lua?) | imp kevans | |
| merge devmatch and devd (lib-ification) | imp | meena would like to help with this |
| scheduler and VFS documentation coverage | mhorne, olce | |
| Scheduling on non-uniform cores (P, E) | olce | I think others are interested |
| finish kernel doc (man section 9) audit | mhorne | |
| reduce the GIANT hacks | jhb imp | |
| Better i18n support for vt(4) (CJK fonts, unicode fonts display (i.e., emoji), input method)|fanchung| Have a [IME PoC](https://wiki.freebsd.org/SummerOfCode2021Projects/InputMethodInFreeBSDVirtualTerminal) in GSoC'21 |
| tarfs as root | imp | |
| overlayfs (for tarfs) | Klara / allanjude | |
| Support for rust in the kernel | brooks | |
| Support for rust in userland | brooks | |
| netlink for ZFS (zfsd/zed) | allanjude | |
| netlink to replace devd socket | bapt | has Kernel part |
| UCLification of login. conf | meena | allanjude has the beginnings of a patch: [D25365](https://reviews.freebsd.org/D25365) |
| libxo for remaining network tools | meena |can I ask people ping phil@ on proposed new tags |
| hierarchical dynamic login classes | ngor, meena | |
| Remove MAC "label" limitations | allanjude des | use OSD? Build on bapt's per-jail mechanism used for mac_do |
| PID namespaces for jails | pjd dfr allanjude | which other namespaces might you want? |
|Import dhcpcd into base|| Initial (dated) version here: [D22012](https://reviews.freebsd.org/D22012)|
| netlink access to jail vnet | dfr | |
| ability to wire file content in memory while hashing | sjg (wants) | for mac_veriexec |
| update flua to have more standard bindings, more 'common' bindings and some FreeBSD system calls. | markj, imp | boot loader also uses Lua, so some care is needed here. |
| priv(1) | pjd | ability to reduce process' privileges |
| rctl | dfr, pjd? | current rctl does not work well for resource limiting jails |
# 🗑️ Axe Candidates 🪓
Things we might like to deprecate. Further discussion may be required to reach consensus.
| Thing | Owner | Committed / Review / Patch |
| -- | -- | -- |
| Firewire 🔥 | imp | later rather than sooner (do we strip out disk support sooner has a GIANT locked CAM driver) |
| i386 kernel | imp | timing? |
| powerpc, powerpcsce kernel| imp | |
| PS3 🎮| imp | nobody uses (we need ps5 port!)|
| powerpc64, powerpc64le (whole powerpc platform) | | https://bugs.freebsd.org/271826 FreeBSD is disastrously slow on PowerMac G5... |
| SoC support review | imp/manu/mhorne | |
| ftpd | allanjude | |
| Remove consumers of DES | des?
| sendmail 📮 | bapt? | |
| bootloader forth support 🔪 | imp/stevek | |
| warn if booting installer in EFI, but requesting BIOS install | | |
| NIS server components | ~~des?~~ | Still using so please add to ports (chuck) |
| publicwkey(5) | manu | [D30683](https://reviews.freebsd.org/D30683) [D30682](https://reviews.freebsd.org/D30682) |
| targ(4) CAM target driver | imp | |
| fingerd | ?? | meena would like to volunteer for this |
| 3dfx(4) & `*_isa` | jhb | |
| syscons(4) (deprecation at least) | emaste / manu | |
| review ethernet drivers (100mbps, obscure 1/10 gbps) | brooks | |
| review CAM drivers (pms(4),hpt*, siis, mvs, etc) | imp | |
| freebsd-update | cperciva | once pkgbase is ready |
| 32bit platforms (kernels, keep compat32) | jhb | |
| arm\*soft removal (support for building a full soft system, which is all that remains after I removed the libsoft hack builds and ld.so support) | imp | |
| support for !SMP amd64 kernels | markj | consensus? +1 +1 |
# Legend
| Symbol | Meaning |
| -- | -- |
| ?? | Status is in question |
| !! | Needs a new owner |