FreeBSD The Power to Serve

FreeBSD Quarterly Status Report Third Quarter 2022

Here is the third quarterly report for year 2022, with 24 reports included, which is slightly fewer than last quarter.

I notice that in the past we had quarters with many more reports: often more than 30, sometimes even more than 40. Thus I would like to encourage all of you to submit reports: reports are useful to share your work, to find help, to have more eyes reviewing your changes, to have more people testing your software, to reach a wider audience whenever you need to tell something to all of the FreeBSD community and in many other cases. Please do not be shy and do not worry if you are not a native English speaker or if you are not proficient in AsciiDoc syntax: the quarterly team will be glad to help you in whatever you need.

On the other hand, if you really do not have anything to report, then maybe you might like to join one of the interesting projects described below, or you might be inspired from one of them to do something new, thus having something to report in the future.

We wish you all a pleasant read.

Lorenzo Salvadore, on behalf of the status report team.

FreeBSD Team Reports

Entries from the various official and semi-official teams, as found in the Administration Page.

FreeBSD Core Team

Contact: FreeBSD Core Team <>

The FreeBSD Core Team is the governing body of FreeBSD.

Completed Items

New Core Team Secretary

All members of the Core Team express publicly their gratitude to Muhammad Moinur Rahman (bofh) for serving as the Core Team Secretary for the past two years.

The Core Team approved Sergio Carlavilla (carlavilla) as the new Core Team secretary.

Procedure to handle GDPR deletion request

The Core Team has reviewed the procedure to handle GDPR deletions requests with help from Foundation lawysers. The document is currently being written and will be published after completion.

New Privacy Policy

The Core Team is working closely with the FreeBSD Foundation to update the Privacy Policy to properly align with current laws and practices found on similar websites such as ours.

Bruce Evans memorial plaque

The Core Team unanimously votes to allow the memorial plaque for Bruce Evans mentioning him as co-founder of FreeBSD.

EuroBSDCon core team office hour

On Friday, September 16, the new Core Team presented at EuroBSDcon 2022 Developer Summit. The Core Team introduced themselves and talked a bit about their plans for this term. There were discussions, Q & A, and suggestions from the attendees about the details.

Commit bits

Core approved reactivating the source commit bit for Konrad Witaszczyk (def@). Right now Konrad is working at Cambridge University, where he is responsible for developing CheriBSD.

FreeBSD Foundation

Contact: Deb Goodkin <>

The FreeBSD Foundation is a 501(c)(3) non-profit organization dedicated to supporting and promoting the FreeBSD Project and community worldwide. Donations from individuals and corporations are used to fund and manage software development projects, conferences, and developer summits. We also provide travel grants to FreeBSD contributors, purchase and support hardware to improve and maintain FreeBSD infrastructure, and provide resources to improve security, quality assurance, and release engineering efforts. We publish marketing material to promote, educate, and advocate for the FreeBSD Project, facilitate collaboration between commercial vendors and FreeBSD developers, and finally, represent the FreeBSD Project in executing contracts, license agreements, and other legal arrangements that require a recognized legal entity.

Fundraising Efforts

First, I’d like to send a big thank you to everyone who gave a financial contribution to our efforts. We are 100% funded by your donations, so every contribution helps us continue to support FreeBSD in many ways, including some of the work funded and published in this status report.

We support FreeBSD in five main areas. Software development is the largest area we fund through staff developers and contractors who implement new features, support tier 1 platforms, review patches, and fix issues. You can read about some of the work we did under OS Improvements in this report. FreeBSD Advocacy is another area that we support to spread the word about FreeBSD at conferences, in presentations online and in-person, and through tutorials and how-to guides. We purchase and support hardware for the FreeBSD infrastructure that supports the work going on in the Project. Virtual and in-person events are organized by the Foundation to help connect and engage community members to share their knowledge and collaborate on projects. Finally, we provide legal support to the Project when needed and protect the FreeBSD trademarks.

Our goal this year is to raise at a minimum $1,400,000 towards a spending budget of around $2,000,000. As we enter the last quarter of 2022, our donation total sits at $167,348, so we still need your help. If you haven’t made a donation this year, please consider making one at We also have a Partnership Program for larger commercial donors. You can find out more at

OS Improvements

During the third quarter of 2022, 300 src, 36 ports, and 13 doc tree commits were made that identified The FreeBSD Foundation as a sponsor. Some of that work has dedicated report entries.

  • FreeBSD as a Tier I cloud-init Platform

  • Intel wireless towards 11ac

  • LLDB multiprocess debugging support

  • OpenStack on FreeBSD

  • Snapshots on Filesystems Using Journaled Soft Updates

The other sponsored work is challenging to concisely summarize. It varies from complex new features to various bug fixes spanning the src tree. Here is a small sample to give a flavor of last quarter’s work.

  • 240afd8 makefs: Add ZFS support

    This allows one to take a staged directory tree and create a file consisting
    of a ZFS pool with one or more datasets that contain the contents of the
    directory tree.  This is useful for creating virtual machine images without
    using the kernel to create a pool; "zpool create" requires root privileges and
    currently is not permitted in jails.  makefs -t zfs also provides reproducible
    images by using a fixed seed for pseudo-random number generation, used for
    generating GUIDs and hash salts.  makefs -t zfs requires relatively little by
    way of machine resources.
  • 36f1526 Add experimental 16k page support on arm64

    Add initial 16k page support on arm64. It is considered experimental, with no
    guarantee of compatibility with userspace or kernel modules built with the
    current 4k page size. Testing has shown good results in kernel workloads that
    allocate and free large amounts of memory as only a quarter of the number of
    calls into the VM subsystem are needed in the best case.
  • 1424f65 vm_pager: Remove the default pager

    It's unused now.  Keep the OBJ_DEFAULT identifier, but make it an alias of
    OBJT_SWAP for the benefit of out-of-tree code.
  • a889a65 eventtimer: Fix several races in the timer reload code

    In handleevents(), lock the timer state before fetching the time for the next
    event.  A concurrent callout_cc_add() call might be changing the next event
    time, and the race can cause handleevents() to program an out-of-date time,
    causing the callout to run later (by an unbounded period, up to the idle
    hardclock period of 1s) than requested.
Bhyve Issue Support

The Foundation contracted John Baldwin to dedicate time to Bhyve as issues arise, especially security issues. Here is a summary of his 2022q3 work on that contract.

  • bb31aee bhyve virtio-scsi: Avoid out of bounds accesses to guest requests.

  • 62806a7 bhyve virtio-scsi: Tidy warning and debug prints.

  • 7afe342 bhyve e1000: Sanitize transmit ring indices.

  • c94f30e bhyve: Validate host PAs used to map passthrough BARs.

  • 16bedf5 pci: Add helper routines to iterate over a device’s BARs.

  • baf753c bhyve: Support other schemes for naming pass-through devices.

  • fa46f37 bhyve e1000: Skip packets with a small header.

  • e7439f6 bhyve xhci: Cache the value of MaxPStreams when initializing an endpoint.

RISC-V Improvements

At the end of the quarter, the Foundation contracted Mitchell Horne to add and improve support for RISC-V hardware. Mitchell will also perform general maintenance such as fixing bugs, handling reports, providing review for new code changes, and improving source code legibility and documentation.

Continuous Integration and Quality Assurance

The Foundation provides a full-time staff member and funds projects to improve continuous integration, automated testing, and overall quality assurance efforts for the FreeBSD project. You can read about CI activities this quarter in a dedicated entry.

FreeBSD Advocacy and Education

Much of our effort is dedicated to Project advocacy. This may involve highlighting interesting FreeBSD work, producing literature and video tutorials, attending events, or giving presentations. The goal of the literature we produce is to teach people FreeBSD basics and help make their path to adoption or contribution easier. Other than attending and presenting at events, we encourage and help community members run their own FreeBSD events, give presentations, or staff FreeBSD tables.

The FreeBSD Foundation sponsors many conferences, events, and summits around the globe. These events can be BSD-related, open source, or technology events geared towards underrepresented groups. We support the FreeBSD-focused events to help provide a venue for sharing knowledge, working together on projects, and facilitating collaboration between developers and commercial users. This all helps provide a healthy ecosystem. We support the non-FreeBSD events to promote and raise awareness of FreeBSD, to increase the use of FreeBSD in different applications, and to recruit more contributors to the Project. We are continuing to attend events both in person and virtual as well as planning the November Vendor Summit. In addition to attending and planning virtual events, we are continually working on new training initiatives and updating our selection of how-to guides to facilitate getting more folks to try out FreeBSD.

Check out some of the advocacy and education work we did last quarter:

We help educate the world about FreeBSD by publishing the professionally produced FreeBSD Journal. As we mentioned previously, the FreeBSD Journal is now a free publication. Find out more and access the latest issues at

You can find out more about events we attended and upcoming events at

Legal/FreeBSD IP

The Foundation owns the FreeBSD trademarks, and it is our responsibility to protect them. We also provide legal support for the core team to investigate questions that arise.

Go to to find more about how we support FreeBSD and how we can help you!

FreeBSD Release Engineering Team

Contact: FreeBSD Release Engineering Team, <>

The FreeBSD Release Engineering Team is responsible for setting and publishing release schedules for official project releases of FreeBSD, announcing code freezes and maintaining the respective branches, among other things.

During the third quarter of 2022, the Release Engineering Team continued providing weekly development snapshot builds for the main, stable/13, and stable/12 branches.

Additionally, the schedules for the upcoming 12.4, 13.2, and 14.0 release cycles were published on the Project website.

Sponsor: Rubicon Communications, LLC ("Netgate") Sponsor: The FreeBSD Foundation

Cluster Administration Team

Contact: Cluster Administration Team <>

FreeBSD Cluster Administration Team members are responsible for managing the machines the Project relies on to synchronise its distributed work and communications. In this quarter, the team has worked on the following:

  • Added additional storage to the CI system. It will help store more artifacts.

  • VuXML deployed in all official mirrors. It speeds up the pkg audit functionality.

  • A new (and additional) monitoring system is in place.

  • A few old and faulty machines were decommissioned.

  • Moved several services to newer hardware.

  • Regular cluster-wide software upgrades

  • Regular support for user accounts

  • Regular disk and parts support (and replacement) for all physical hosts and mirrors.

Work in progress:

  • git infra: Add --filter support.

  • Work with the PowerPC team to improve the package builders, universal, and reference machines.

  • Site audit at our primary site: inventory of spares and other miscellanea occupying space in our cabinets.

  • Discussions with Juniper about a donation of new switches for our primary site.

  • Plan for a large scale network upgrade at our primary site.

  • Cluster refresh (more extended project). Most cluster machines are running FreeBSD 13-STABLE or 14-CURRENT as of 2022-09-30. Only a handful of machines are still on FreeBSD 12-STABLE.

We are looking for an additional full mirror site (five servers) in Europe. See generic mirrored layout for our needs. Offers of additional single-server mirrors are always welcome too, especially in Europe.

Continuous Integration

Contact: Jenkins Admin <>
Contact: Li-Wen Hsu <>
Contact: freebsd-testing Mailing List
Contact: IRC #freebsd-ci channel on EFNet

The FreeBSD CI team maintains the continuous integration system of the FreeBSD project. The CI system checks the committed changes can be successfully built, then performs various tests and analysis over the newly built results. The artifacts from those builds are archived in the artifact server for further testing and debugging needs. The CI team members examine the failing builds and unstable tests and work with the experts in that area to fix the code or adjust test infrastructure.

During the third quarter of 2022, we continued working with the contributors and developers in the project to fulfill their testing needs and also keep collaborating with external projects and companies to improve their products and FreeBSD.

Important completed tasks:

Work in progress tasks:

  • Designing and implementing pre-commit CI building and testing (to support the workflow working group)

  • Designing and implementing use of CI cluster to build release artifacts as release engineering does

  • Testing and merging pull requests in the FreeBSD-ci repo

  • Simplifying CI/test environment setting up for contributors and developers

  • Setting up the CI stage environment and putting the experimental jobs on it

  • Organizing the scripts in freebsd-ci repository to prepare for merging to src repository

  • Updating documents on wiki

Open or queued tasks:

  • Collecting and sorting CI tasks and ideas

  • Setting up public network access for the VM guest running tests

  • Implementing use of bare-metal hardware to run test suites

  • Adding drm ports building tests against -CURRENT

  • Planning to run ztest tests

  • Adding more external toolchain related jobs

  • Improving maturity of the hardware lab and adding more hardware for testing

  • Helping more software get FreeBSD support in its CI pipeline (Wiki pages: 3rdPartySoftwareCI, HostedCI)

  • Working with hosted CI providers to have better FreeBSD support

Please see freebsd-testing@ related tickets for more WIP information, and don’t hesitate to join the effort!

Sponsor: The FreeBSD Foundation

Ports Collection

Contact: René Ladan <>
Contact: FreeBSD Ports Management Team <>

The Ports Management Team is responsible for overseeing the overall direction of the Ports Tree, building packages, and personnel matters. Below is what happened in the last quarter.

Currently there are just over 30,500 ports in the Ports Tree. There are currently just under 2,800 open ports PRs of which 750 are unassigned. The last quarter saw 9,137 commits by 151 committers on the main branch and 589 commits by 61 committers on the 2022Q3 branch. Compared to two quarters ago, this means a slight increase in the number of ports, but also a slight increase in the number of (unassigned) ports PRs and a slight decrease in the number of commits made.

In the last quarter, we welcomed Felix Palmen (zirias@) as a new ports committer, welcomed back Akinori MUSHA (knu@), and said goodbye to Olli Hauer (ohauer@). We also welcomed Luca Pizzamiglio (pizzamig@) as an official member of portmgr.

Some large changes in the Ports Tree were made during the last quarter:

  • "Created by" lines have been removed from the top of each Makefile, as a lot of those were outdated.

  • WWW: has been moved from each pkg-descr into each Makefile as a variable; the below write-up is from Stefan Eßer (se@) who did the work:

The description of a port’s functionality should end with the URL of a web page that provides further information, such as best practices for usage or configuration. This information can be displayed with pkg query -e for installed packages or pkg rquery -e for available packages. The URL used to be appended to the end of the ports' pkg-descr files, with the prefix "WWW: ", so that tools could extract the URL from the description. Over time, many of these URLs have become stale, since port updates generally change only the Makefile, not the pkg-descr file. By moving the definition of these URLs into the Makefiles, maintainers are more likely to update the URL along with other port changes, and tools have easier access to them. The URLs are now assigned to the WWW macro in the Makefile and can be queried with make -V WWW in the port directory. Tools that process the description contained in the package files still work because the "WWW: " lines at the end are generated from the WWW values in the Makefiles.

During EuroBSDCon, portmgr@ had a discussion about improving the situation for kernel module packages. Various possibilities have been discussed.

The following happened under the hood:

  • one new USES, "vala", was added.

  • The default version of Go got bumped to 1.19

  • CMake is now a meta-port

  • Initial support for Qt 6 was added, at version 6.3.2

  • Vim no longer installs a system-wide vimrc

  • A number of major ports got updated:

    • pkg 1.18.4

    • Chromium 106.0.5249.91

    • Firefox 105.0.1

      • Firefox ESR 102.3.0

    • KDE Applications 22.8.1

    • KDE Frameworks 5.98

    • Rust 1.63.0

    • SDL 2.24.0

    • Xorg server 21.1.4 (overhaul)


Projects that span multiple categories, from the kernel and userspace to the Ports Collection or external projects.

OpenStack on FreeBSD

Contact: Chih-Hsin Chang <>
Contact: Li-Wen Hsu <>

OpenStack is an open-source cloud operating system for different types of resources like virtual and bare-metal machines. Users can spawn FreeBSD instances on the open cloud platform, but it is not currently possible to run OpenStack control plane on FreeBSD hosts. The goal of this project is to port key OpenStack components so that FreeBSD can function as an OpenStack host.

Academic and industrial research groups have been evaluating CHERI-enabled Morello boards since mid-2022. A resource orchestration platform like OpenStack can improve the speed and cost of provisioning, managing, and recycling those boards.

Starting in January 2022, Chih-Hsin Chang has been working to port several OpenStack components to run on FreeBSD, including:

  • Keystone (identity service)

  • Glance (image service)

  • Placement (resource tracking and inventory service)

  • Neutron (networking service)

  • Nova (compute service)

Some of the items are still under heavy development. For instance, due to the design of Neutron, the DHCP servers are placed inside Linux network namespaces. It is necessary to find an alternative, e.g. vnet, on FreeBSD and adapt it. Most of the time the porting strategy is to make as small of an impact as possible by working around obstacles. But something like oslo.privsep deserves a true porting. oslo.privsep is rooted in Linux capabilities to do the privilege separation work. Right now we just bypassed any Linux capabilities-related operation inside oslo.privsep. So there is plenty of hackish spots in the source code and configurations currently. All of these along with the building and installation steps will be collected in the project repositories.

In Q4 Chih-Hsin plans to focus on porting Neutron and Nova in order to complete the VM lifecycle operations. The highlights include:

  • DHCP integration

  • FreeBSD bridge driver/agent

  • Bhyve + Libvirt integration

Sponsor: The FreeBSD Foundation

FreeBSD as a Tier 1 cloud-init Platform

Contact: Mina Galić <>

cloud-init is the standard way of provisioning servers in the cloud. Unfortunately, cloud-init support for operating systems other than Linux is rather poor, and the lack of cloud-init support on FreeBSD is a hindrance to cloud providers who want to offer FreeBSD as a Tier 1 platform. To remedy the situation, this project aims to bring FreeBSD cloud-init support on par with Linux support. The broader plan is to lift support across all BSDs.

The project deliverables include completing an extraction of certain networking classes, implementing ifconfig(8) and login.conf(5) parsers, implementing IPv6 configuration, creating devd.conf(5) rules for Azure, and FreeBSD Handbook documentation about productionizing FreeBSD.

On the way there, any BSD-related bugs found in modules and documentation will also be fixed.

People interested in helping with the project can help with testing new features and fixes through net/cloud-init-devel, which will be updated on a weekly basis. Further, people with access to, and experience with, OpenBSD and NetBSD are also highly welcome to help.

Sponsor: The FreeBSD Foundation


Changes affecting the base system and programs in it.

bhyve debug server enhancements

link: Wiki project page
link: Differential
Contact: Bojan Novković <>

The goal of this project was to enhance the functionality of bhyve’s debug server. Several existing features related to single-stepping are tied to Intel-specific VM mechanisms, which severely impairs bhyve’s debugging functionality on other x86 platforms. The first goal dealt with extending single-stepping support to AMD hosts. The second goal was to add support for hardware watchpoints using the guest OS’s hardware debugging registers.

The project was carried out under Google’s Summer of Code program and was finished around the end of July. The project’s wiki also contains detailed documentation regarding several implemented mechanisms.

The changes can be summarized as follows:

  • Support for placing software breakpoints inside virtual machines on AMD platforms,

  • Support for single-stepping virtual machines on AMD platforms,

  • Support for placing hardware watchpoints inside virtual machines on Intel and AMD platforms.

Any feedback, comments and discussions are welcome and would be greatly appreciated.

Sponsor: Google Summer of Code

Rewrite of pjdfstest

Back in 2007, Pawel Jakub Dawidek <> wrote pjdfstest, a POSIX file system conformance test tool. He originally wrote it to validate the port of ZFS to FreeBSD, but it has subsequently been used for other file systems and other operating systems.

This year, Sayafdine Said <> rewrote it under Google’s sponsorship. The new version has several improvements:

  • More configurable, for better use with other file systems.

  • Much faster, largely thanks to said configurability.

  • Better test case isolation, making failure easy to debug.

  • No longer requires root privileges for all test cases.

  • Test cases can be run in a debugger.

  • More maintainable, less duplication.

There are still a couple of lingering PRs to complete, but we expect to wrap those up and add pjdfstest to the ports collection soon. From there, it will be used both by /usr/tests for ZFS and UFS, and by external developers for other file systems.

Sponsor: Google Summer of Code

Ongoing work on LLDB multiprocess debugging support

Contact: Kamil Rytarowski <>
Contact: Michał Górny <>

According to the upstream description, "LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler."

FreeBSD includes LLDB in the base system. The previous sponsored projects improved LLDB, to make it a credible debugger for the base system, although it still has a few limitations compared to the contemporary versions of GNU GDB. This project started in April 2022. It aims to implement full support for debugging multiple processes simultaneously.

At the start of the project, LLDB featured very limited support for multiprocess debugging. Currently, the server is already able to monitor multiple processes using the multiprocess extension to the GDB Remote Serial Protocol. The work on implementing the client-side counterpart for this protocol is ongoing.

Once the project is finished, LLDB will be able to trace an arbitrary number of forked processes simultaneously (equivalent to GDB’s detach-on-fork off).

Sponsor: The FreeBSD Foundation

DTrace: Instruction-level dynamic tracing

Contact: Christos Margiolis <>
Contact: Mark Johnston <>

kinst is a new DTrace provider that allows for arbitrary kernel instruction tracing.

The provider is currently implemented only for amd64, but we plan to port it to other architectures in the future as well.

kinst probes are created on demand by libdtrace, and a probe can be created for nearly every instruction in the kernel. Probes take the form of:


where "module" is the kernel module containing the named function, "function" is the kernel function to be traced, and "offset" is the offset to a specific instruction. Omitting "offset" causes all instructions in the function to be traced. Omitting "module" causes DTrace to search all kernel modules for the function.

For example, to trace the second instruction in amd64_syscall(), first determine the offset of the second instruction:

# kgdb
(kgdb) disas /r amd64_syscall
Dump of assembler code for function amd64_syscall:
   0xffffffff809256c0 <+0>:     55      push   %rbp
   0xffffffff809256c1 <+1>:     48 89 e5        mov    %rsp,%rbp
   0xffffffff809256c4 <+4>:     41 57   push   %r15

The offset is 1. Then, to trace it:

# dtrace -n 'kinst::amd64_syscall:1'

A new "regs" keyword was also added to the D language, providing read-only access to CPU registers at the point where the probe fired. For example, to trace the contents of the frame pointer (register %rbp on amd64) when the kinst::amd64_syscall:1 probe fires:

# dtrace -n 'kinst::amd64_syscall:1 {printf("0x%x", regs[R_RBP]);}'

kinst works similarly to the FBT (function boundary tracing) provider in that it places a breakpoint on the target instruction and hooks into the kernel’s breakpoint handler. It is more powerful than FBT since it can be used to create probes at arbitrary points within a function, rather than at function boundaries. Because kinst has to be able to trace arbitrary instructions, it does not emulate most of them in software but rather causes the traced thread to execute a copy of the instruction before returning to the original code.

Planned future work includes porting kinst to additional platforms, especially arm64 and riscv, and developing tooling that can use kinst to trace calls to inline functions using the kernel’s debugging symbols.

Sponsor: Google, Inc. (GSOC 2022)


Updates to kernel subsystems/features, driver support, filesystems, and more.

ENA FreeBSD Driver Update

Contact: Michal Krawczyk <>
Contact: David Arinzon <>
Contact: Marcin Wojtas <>

ENA (Elastic Network Adapter) is the smart NIC available in the virtualized environment of Amazon Web Services (AWS). The ENA driver supports multiple transmit and receive queues and can handle up to 100 Gb/s of network traffic, depending on the instance type on which it is used.

Completed since the last update:

  • Upstream of the ENA driver v2.6.0 and v2.6.1, included:

    • Fix for the performance degradation after reset issue on 6-gen instances,

    • Fix of the false netmap assertions with KASSERT enabled,

    • Code cleanup and style fixes,

    • Logging improvements,

    • Fix to the retrieval of the ENI metrics.

Sponsor: Inc

wtap(4) enhancement

Contact: En-Wei Wu <>
Contact: Li-Wen Hsu <>
Contact: Bjoern A. Zeeb <>

wtap(4) is a net80211(4) Wi-Fi simulator introduced by Monthadar Al Jaberi <> and Adrian Chadd <> in 2012. It originally supported 802.11s mesh mode and was used for verification. During the 2022 Google Summer of Code, En-Wei had been working on bringing sta, hostap, adhoc and monitor modes to it. The work also covers adding basic tests for net80211(4) with wtap(4), written in atf(7).

For more details, please check the project wiki page.

Sponsor: Google Summer of Code Sponsor: The FreeBSD Foundation

Intel wireless towards 11ac

Contact: Bjoern A. Zeeb <>

The ongoing project aims to support the latest Intel wireless chipsets on FreeBSD using LinuxKPI compat code backed by native net80211 and kernel code. In addition work is on the way to support 11n and 11ac standards in the LinuxKPI 802.11 compat code and fill gaps for mostly 11ac in the native net80211 wireless stack.

For the Intel iwlwifi wireless driver there were no major updates in the last months. We updated the firmware to the latest publicly available version and fixed some of the most visible bugs. Work is also on the way to support the D3 power saving code.

LinuxKPI compat code also got some improvements and fixes which at times were only observable on certain generations of iwlwifi chipsets.

Changes in net80211 and LinuxKPI compat code for 11n and 11ac have little public visibility so far in order to not break basic support. Updates to constants based on newer 802.11 standards and other changes without user-visible effect were merged, and functional changes will follow in the coming months, initially hidden behind compile-time or runtime options.

Improvements and updates were largely merged back to stable/13 for the benefit of the users tracking this branch and to help with more testing.

For the latest state of the development, please follow the freebsd-wireless mailing list and check the wiki pages.

Sponsor: The FreeBSD Foundation

More wireless updates

Contact: Bjoern A. Zeeb <>

Currently development is mostly driven by Intel’s iwlwifi driver again (see other report). As the saying goes ''each one helps the other'' so has work on Realtek’s rtw89 driver helped find a bug in LinuxKPI bothering iwlwifi users. For this status report the topic is mostly more drivers, which do need more LinuxKPI support.

Various work in progress:

  • Realtek’s rtw88 PCI is in-tree as-is and after a fruitful discussion with Hans Petter Selasky at EuroBSDCon work on LinuxKPI USB support for the rtw88 USB WiFi dongles will continue.

  • Realtek’s rtw89 driver was committed to main but is not connected to the build yet. Scanning already works but packets are not yet passing. Having the driver in-tree already eased testing for users having that chipset in order to identify more unimplemented LinuxKPI bits (some of which will help the other drivers as well) and reduced work for me.

  • The next drivers to probably hit the tree will be based on MediaTek’s mt76 driver (for 7921 and 7915) which I have compiling and started testing.

  • Based on requests I am also working on ath11k to support STA mode given some vendors seem to ship Laptops with those chips.

While some of this clearly benefits from work sponsored by The FreeBSD Foundation for iwlwifi and newer standard support, a lot of this is just free-time work. If you are interested in any of these drivers I would greatly appreciate if some more hands would help with one or the other. This could be regularly testing updates to main, writing documentation and updating wiki pages, tracking PRs, trying out patches, helping with work on individual LinuxKPI bits with or without 802.11 work, or simply debugging problems with individual drivers and/or chipsets. If you are interested in helping with any one of the above, please drop me an email.

For the latest state of the development, please follow the freebsd-wireless mailing list and check the wiki pages (as soon as they exist).

Enabling Snapshots on Filesystems Using Journaled Soft Updates

Contact: Kirk McKusick <>

This project will make UFS/FFS filesystem snapshots available when running with journaled soft updates.

The UFS/FFS filesystem has the ability to take snapshots. Because the taking of snapshots was added after soft updates were written they were fully integrated with soft updates. When journaled soft updates were added in 2010, they were never integrated with snapshots. So snapshots cannot be used on filesystems running with journaled soft updates.

Snapshots became less important with the support for ZFS on FreeBSD since ZFS can take snapshots quickly and easily. However there remain two instances where UFS snapshots are still important. The first is that they allow reliable dumps of live filesystems which avoids possibly hours of down time. The second is that they allow the running of background fsck. Similar to the need for scrub in ZFS, fsck needs to be run periodically to find undetected disk failures. Snapshots allow fsck to be run on live filesystems rather than needing to schedule down time to run it.

This project has two milestones:

  1. enable snapshots when running with journaled soft updates and ensure that they can be used for doing background dumps on a live filesystem. This milestone should be completed by the end of 2022.

  2. extend fsck_ffs to be able to do a background check using a snapshot on a filesystem running with journaled soft updates. This milestone is expected by Q3 of 2023.

Sponsored by: The FreeBSD Foundation


Updating platform-specific features and bringing in support for the new hardware platform.


Contact: Colin Percival <>

Firecracker is an open source "microVM" developed by Amazon Web Services; it is designed for the needs of "serverless" compute environments and has a particular focus on security and minimalism.

Starting in June 2022, Colin Percival has been working to port FreeBSD to run in the Firecracker environment, with significant assistance from other FreeBSD developers. As of this quarterly report, a set of patches are pending review which collectively add the needed support to make FreeBSD functional in a patched version of Firecracker.

In Q4 Colin intends to finish committing the relevant patches to FreeBSD, release a kernel and disk image so other FreeBSD users can experiment with Firecracker, and update and merge Firecracker patches which add PVH boot support (used by FreeBSD).

This work has already produced "spinoff" benefits in revealing ways to speed up the FreeBSD boot process; due to its low overhead and minimal environment, Firecracker is an excellent context to work on this.

This work is supported by Colin’s FreeBSD/EC2 Patreon.


Noteworthy changes in the documentation tree, manual pages, or new external books/documents.

Documentation Engineering Team

Contact: FreeBSD Doceng Team <>

The doceng@ team is a body to handle some of the meta-project issues associated with the FreeBSD Documentation Project; for more information, see FreeBSD Doceng Team Charter.

During the last quarter:

  • 0mp@ stepped down as Doceng’s Secretary, fernape@ joined as the new Secretary. Doceng would like to thank 0mp@ for his service.

  • eadler@'s doc bit was taken in for safekeeping per his request.

  • A git commit message template was added for the doc repository.

Items pending and in the discussion:

  • Remove outdated translations from the Website and Documentation portal.

FreeBSD’s Documentation Project Primer

Porter’s Handbook:

FreeBSD Translations on Weblate

Q3 2022 Status
  • 12 languages

  • 148 registered users

    • Gasol Wu joined the Chinese translation team.

    • Alvaro Felipe Calle joined the Spanish translation team.

  • Chinese (Simplified) (zh-cn) (progress: 8%)

  • Chinese (Traditional) (zh-tw) (progress: 4%)

  • Dutch (nl) (progress: 1%)

  • French (fr) (progress: 1%)

  • German (de) (progress: 1%)

  • Indonesian (id) (progress: 1%)

  • Italian (it) (progress: 4%)

  • Norwegian (nb-no) (progress: 1%)

  • Persian (fa-ir) (progress: 3%)

  • Portuguese (pt-br) (progress: 16%)

  • Spanish (es) (progress: 15%)

  • Turkish (tr) (progress: 2%)

We want to thank everyone who contributed, translating or reviewing documents.

Please, promote this effort in your local user group, we always need more volunteers.

FreeBSD Manual Pages Portal

Contact: Sergio Carlavilla <>

The Manual Pages Portal has been redesigned to use mandoc(1) for rendering. A portal preview is available. Feedback has been collected and addressed where possible. There are some remaining non-blocking issues. Doceng@ would like to move forward with the migration to this new portal.

Thanks to all of those who reviewed it and provided feedback.

FreeBSD Website Revamp - WebApps working group

Contact: Sergio Carlavilla <>

Working group in charge of creating the new FreeBSD Documentation Portal and redesigning the FreeBSD main website and its components. FreeBSD developers can follow and join the working group on the FreeBSD Slack channel #wg-www21. The work will be divided into four phases:

  1. Redesign of the Documentation Portal

    Create a new design, responsive and with global search. (Complete)

  2. Redesign of the Manual Pages on web

    Scripts to generate the HTML pages using mandoc. (Complete)

  3. Redesign of the Ports page on web

    Ports scripts to create an applications portal. (Work in progress)

  4. Redesign of the FreeBSD main website

    New design, responsive and dark theme. (Not started)


Changes affecting the Ports Collection, whether sweeping changes that touch most of the tree, or individual ports themselves.

Calendar-data: License added

Contact: Stefan Eßer <>
Contact: Lorenzo Salvadore <>
Contact: Warner Losh <>

The port deskutils/calendar-data contains calendar files for the BSD calendar program and is maintained by se@. The data for this port lives in a GitHub repository, which at the moment is maintained mainly by salvadore@.

About two years ago, the calendar files in the base repository were removed from there and a new repository was created on GitHub; see also this Phabricator review about the creation of the associated port. This improvement allows calendar files to be updated independently from the base system.

Unfortunately, when the repository was created, it was forgotten to add a license to it. The issue has been solved this quarter with this pull request submitted by salvadore@ and merged by imp@. Since the data originally came from the src repository, the same licence applies. If in the past you have contributed to the calendar files with different licensing assumptions, please inform us so that we can license your contributions accordingly or remove them.

KDE on FreeBSD

Contact: Adriaan de Groot <>

The KDE on FreeBSD project packages the software from the KDE Community, along with dependencies and related software, for the FreeBSD ports tree. The software includes a full desktop environment called KDE Plasma (for both X11 and Wayland) and hundreds of applications that can be used on any FreeBSD machine.

The KDE team (kde@) is part of desktop@ and x11@, building the software stack to make FreeBSD beautiful and usable as a daily-driver graphics-based desktop machine. The notes below describe mostly ports for KDE, but also include items that are important for the entire desktop stack.

Qt6 Landed

The big news in the KDE ports is not directly KDE-related. Qt6 has landed, which prepares us for the next generation of Qt-based applications.

It is now possible to have USES=qt:6 to select the new Qt version. Some ports have been flavorized to make use of the new version.

KDE itself is not affected: the upstream work on KDE Frameworks for Qt6 is not yet completed. Most of the KDE Frameworks will compile with Qt6, but that is not important for FreeBSD ports yet. With devel/qt6 you get Qt 6.4.0, released at the end of the quarter.

KDE Stack

KDE Gear releases happen every quarter, KDE Plasma updates once a month, and KDE Frameworks have a new release every month as well. These (large) updates land shortly after their upstream release and are not listed separately.

  • KDE Frameworks 5 is now at version 5.98 (latest monthly release from September 2022).

  • KDE Gear is now version 22.08.1 (update for September 2022).

  • KDE Plasma is now version 5.24.6 (update for July 2022).

Note that KDE Plasma 5.25 has been released upstream, but is waiting on fixes before it can land in the ports tree (for example, this KActivityManager bug in KDE’s bug-tracker).

GCC: New maintainer, GCC 12.2 and more

Contact: <>
Contact: Lorenzo Salvadore <>

  • salvadore@ adopted all existing ports corresponding to supported versions of gcc, namely: lang/gcc10, lang/gcc11, lang/gcc11-devel, lang/gcc12, lang/gcc12-devel and lang/gcc13-devel. At the moment -devel ports are updated weekly, unless a build failure makes it impossible. Of course, in the latter case, the build failure is fixed and/or reported upstream as soon as possible.

  • GCC 12.2 has been released. Traditionally, FreeBSD waits for the release of the second minor version of GCC to use it as default GCC version, so that most of the software needing to be compiled with GCC has already been ported to the latest major version. Thus, work has started to update the default GCC version to version 12. Thank you very much to antoine@ who has already run the first exp-run and to all the contributors, maintainers and committers involved in the process.

  • Discussion about LTO keeps going with many different points of view. If interested, you can read the latest contributions to the topic: lang/gcc11: Needs build time warning for /tmp consumption and lang/gcc11: build gets stuck. Reminder: LTO_BOOTSTRAP is an option enabled by default. If you build the port on your machine and its resources consumption is not acceptable, disabling this option will get you a lighter compilation.

  • jbeich@ submitted a patch to expose non-default -stdlib=libc++ support, which has been successfully committed to all relevant ports (gcc >= 11). link:

  • diizzy@ refreshed the mirrors list in the MASTER_SITE_GCC variables, also removing ftp mirrors. The main GCC site is used as fallback. link:

  • Help is still needed with these three changes to work through with upstream GCC (requires expertise with the GCC sources and upstream, not with the ports framework):

sysutils/lsof major upgrade

Larry Rosenman <>

sysutils/lsof had a major upgrade to no longer look in /dev/kmem for data, and to use the userland API. This took a long time to hit the tree, but is finally done. It fixes lsof(8) to work with ZFS again for the first time since 13.0-RELEASE.

This will make maintenance much easier going forward.

To the kernel folks: if you make changes that break lsof, please submit a GitHub pull request to Please test any changes to the interfaces that lsof uses and make sure they still work. These all should be userland interfaces now, but please test.

My thanks to Warner Losh <>, Mateusz Guzik <>, and Ed Maste <> for help getting this major change landed.

Third Party Projects

Many projects build upon FreeBSD or incorporate components of FreeBSD into their project. As these projects may be of interest to the broader FreeBSD community, we sometimes include brief updates submitted by these projects in our quarterly report. The FreeBSD project makes no representation as to the accuracy or veracity of any claims in these submissions.

Containers and FreeBSD: Pot, Potluck and Potman

Contact: Luca Pizzamiglio (Pot) <>
Contact: Stephan Lichtenauer (Potluck) <>
Contact: Michael Gmelin (Potman) <>

Pot is a jail management tool that also supports orchestration through Nomad.

During the last quarter, pot 0.15.3 was released. It contains a number of improvements like mount-out to remove or unmount a previously mount-in folder or filesystem, signal and exec commands, better jail lifecycle handling, and many bug fixes.

A new version of the Nomad driver, nomad-pot-driver 0.9.0, was also released with signal and exec support and stability fixes.

Potluck aims to be to FreeBSD and pot what Dockerhub is to Linux and Docker: a repository of pot flavours and complete container images for usage with pot and in many cases Nomad.

Since the last status report, many changes were committed, including many fixes and improvements to core images like grafana, postgresql-patroni or loki. Additionally, all images have been rebuilt for FreeBSD 13.1 and 12.3 and to include the current quarterly versions of the packages being used.

Last not least, Luca held the pot implementation and ecosystem talk How far a naive FreeBSD container implementation can go at EuroBSDCon 2022.

As always, feedback and patches are welcome.

Last modified on: October 20, 2022 by Lorenzo Salvadore