This status report is going to be a lengthy one. Due to scheduling conflicts, I was unable to get out the November status report, this one will cover the two months November - December 2025.
A large portion of my focus has been on the infrastructure, getting a build environment for the recently-created hardened/15-stable/main branch. As discussed in a previous mailing list thread[1], the 14-STABLE build infrastructure has now been migrated to 15-STABLE. We have archived the last 14-STABLE package build, which last completed on 24 Dec 2025.
We self-host nearly the entirety of our infrastructure out of my home. We have only one leased server, from the fine folks at NetActuate (previously RootBSD). This leased server hosts our main website, the hbsd-update build artifacts, and th…
This status report is going to be a lengthy one. Due to scheduling conflicts, I was unable to get out the November status report, this one will cover the two months November - December 2025.
A large portion of my focus has been on the infrastructure, getting a build environment for the recently-created hardened/15-stable/main branch. As discussed in a previous mailing list thread[1], the 14-STABLE build infrastructure has now been migrated to 15-STABLE. We have archived the last 14-STABLE package build, which last completed on 24 Dec 2025.
We self-host nearly the entirety of our infrastructure out of my home. We have only one leased server, from the fine folks at NetActuate (previously RootBSD). This leased server hosts our main website, the hbsd-update build artifacts, and the package repos. Our package repos, naturally, grow over time. Back when we started this, each package repo was at most 75GB in size. Now we’re encroaching 135GB.
We now have a 30TB NAS in the home-based infrastructure. In order to support the growth, we will be migrating the package repo to the home infra. The package repos themselves have already been migrated. The only thing left to do is adjust the various DNS entries. I plan to do that once we have a usable 15-STABLE package repo. We will update this[2] mailing list thread when the migration has completed, DNS records and all. There will likely be a little blip in HTTPS/TLS connections as we regenerate LetsEncrypt certs. There’s a delicate dance here. I plan to keep everyone informed as to when I begin and complete the process.
The 14-STABLE build server (which is now being migrated to 15-STABLE) housed two VMs:
- The OS installer/update build VM. This builds the artifacts published at https://installers.hardenedbsd.org/ and mirrors.
- The package build VM.
When we deployed that (stupendously) slow server to test its capabilities as a build server for 15-STABLE, we followed the same pattern: two separate VMs. We are going to keep the 15-STABLE OS installer/update build VM on that slow server. We’re going to power off the 14-STABLE OS build VM and increase the resources to the package build VM. This means we should be able to decrease the time it takes for that server to produce a usable package repo. Naturally, this comes at a cost of a slow build time for the OS installer/updates, but that process can tolerate **a lot** of slowness. So long as it can produce its build artifacts in less than 48 hours, I’m satisfied. It’s the package building (36,000+ packages) that takes the most resources.
I spent a lot of time in the ports tree over the past couple months. The focus was on fixing ports broken by the various hardening techniques we employ. The introduction of -Werror=format-security caused a large amount of fallout, which I have been addressing. While addressing those, I figured I might as well fix ports broken by the other techniques.
I’m working on enhancing libhbsdcontrol with better error handling. I’m hoping to have that work committed in early January 2026.
I’m hoping in January to spend some time on hbsdfw. The VM I’ve been using to build hbsdfw has been panicking when the Poudriere build finishes when building the hbsdfw packages. In Q1 2026, I plan to migrate hbsdfw from HardenedBSD 14-STABLE to 16-CURRENT. Following the hardened/current/master src branch will lighten my load in maintaining this little hobby subproject.
I need to file a bug report upstream in FreeBSD/OpenZFS to track this kernel panic. The panic happens when something during the build checks whether PaX PAGEEXEC is enabled through looking up a filesystem extended attribute. OpenZFS recently changed how filesystem extended attributes work, so it’s possible we’re hitting a unique edge case.
In January, I’m going to get two lab environments set up:
- Internal Reticulum nodes to test the Reticulum protocol and its potential for use with our censorship- and surveillance-resistant mesh network R&D.
- Internal Radicle nodes to start concerted testing to eventually replace GitLab with Radicle.
I feel somewhat down for not making more progress this year on the censorship- and surveillance-resistant networks. I’m hoping to place more emphasis on this in 2026.
In src:
-
Always build elftc-nm and elft-ar
-
TPE: Ensure user-owned vnodes are unwritable
-
ASLR: Use VMFS_NO_SPACE to map the stack
-
Add various C/C++ hardening flags:
-
-fno-delete-null-pointer-checks
-
-Werror=format-security
-
Unlock the sound mutex on error
-
Fix branch detection in release
-
Disable SafeStack for the Unbound daemon
-
Some pkgbase-related work
In ports (this is gonna be a long list (our longest to date)):
- Disable LINUX for x11/nvidia-kmod
- ftp/curl: Fixup .onion patch
- Add "general compilation hardening" USES
- Delete unneeded patch for databases/redis
- Fix archivers/zip
- Disable hardcflags for devel/m4
- Disable hardcflags for lang/gcc13
- Disable HARDCFLAGS for devel/t1lib
- Fix HARDCFLAGS errors for devel/ctags
- Disable HARDCFLAGS for archivers/unzip
- Fix HARDCFLAGS for net-mgmt/libsmi
- Disable HARDCFLAGS for x11-toolkits/open-motif
- Disable HARDCFLAGS for devel/expect
- Fix the devel/ivykis port
- Fix HARDCFLAGS for multimedia/webcamd
- Disable HARDCFLAGS for lang/gcc12
- Disable HardenedBSD features for lang/gcc14
- Disable HardenedBSD features for lang/gcc15
- Disable HardenedBSD features for lang/gcc16-devel
- Fix HARDCFLAGS for multimedia/smpeg
- Disable HARDCFLAGS for devel/elfutils
- Fix HARDCFLAGS for converters/recode
- Disable fortifysource for graphics/netpbm
- Fix hardcflags for devel/fortytwo-encore
- Fix HARDCFLAGS for graphics/libvisual04
- Disable HARDCFLAGS for devel/kBuild
- Fix HARDCFLAGS for devel/libbegemot
- Fix HARDCFLAGS for games/pmars-sdl
- Disable FORTIFYSOURCE for security/signify
- Disable HARDCFLAGS for mail/mailutils
- Fix HARDCFLAGS for devel/ta-lib
- Fix HARDCFLAGS for math/spooles
- Fix HARDCFLAGS for textproc/wv
- Fix HARDCFLAGS for databases/sqlite2
- Disable HARDCFLAGS for graphics/lensfun
- Fix HARDCFLAGS for devel/rlwrap
- Disable fortifysource for mail/opensmtpd
- Fix HARDCFLAGS for x11-toolkits/unique
- Fix HARDCFLAGS for devel/efivar
- Fix HARDCFLAGS for lang/f2c
- Fix HARDCFLAGS for textproc/scim-table-imengine
- Disable FORTIFYSOURCE and HARDCFLAGS for sysutils/fwupd-efi
- Fix HARDCFLAGS for games/libmt_client
- Disable HARDCFLAGS for games/gnugo
- Fix HARDCFLAGS for comms/rxtx
- Disable PIE and RELRO for databases/redis
- Fix build for devel/omniORB
- Fix build of security/rubygem-bcrypt_pbkdf
- Fix HARDCFLAGS for math/grace
- Fix HARDCFLAGS for audio/libbs2b
- Disable HARDCFLAGS for graphics/plotutils
- Fix HARDCFLAGS for emulators/libretro-reicast
- Add -Wformat for HARDCFLAGS
- Disable HARDCFLAGS for graphics/gracula
- Fix HARDCFLAGS for mail/spmfilter
- Add cheat support in games/ioquake3
- Fix HARDCFLAGS for print/catdvi
- Fix HARDCFLAGS for graphics/seom
- Fix HARDCFLAGS for deskutils/presage
- Fix HARDCFLAGS for graphics/alpng
- Enable SLH for games/ioquake3
- Fix -Werror=format-security bug in games/ioquake3
- Fix HARDCFLAGS for x11-toolkits/fox16
- Disable HARDCFLAGS for graphics/glslang
- Re-enable PIE and RELRO for databases/redis
- Fix HARDCFLAGS for converters/uudeview
- Fix HARDCFLAGS for textproc/gdome2
- Disable FORTIFYSOURCE for misc/mbuffer
- Disable HARDCFLAGS for archivers/unarj
- Disable FORTIFYSOURCE for misc/amanda-{client,server}
- Disable FORTIFYSOURCE for net/dante
- Fix HARDCFLAGS for archivers/sharutils
- Fix HARDCFLAGS for lang/squeak
- Disable FORTIFYSOURCE for devel/socket_wrapper
- Fix HARDCFLAGS for net/pvm
- Fix HARDCFLAGS for audio/snack
- Fix HARDCFLAGS for textproc/sgmlformat
- Fix HARDCFLAGS for cad/iverilog
- Fix HARDCFLAGS for sysutils/genisoimage
- Disable HARDCFLAGS for games/libretro-boom3
- Fix HARDCFLAGS for math/testu01
- Disable FORTIFYSOURCE for devel/pcc-libs
- Disable PIE for security/cryptlib
- Fix HARDCFLAGS for mail/addresses-goodies
- Fix build of devel/ivykis on 14-stable
- Disable HARDCFLAGS for security/pgpin
- (0x1eef) Fix grub2-bhyve build error
- Disable HARDCFLAGS for devel/cunit
- Disable FORTIFYSOURCE for editors/dte
- Disable FORTIFYSOURCE for mail/akpop3d
- Disable HARDCFLAGS for emulators/x48
- Fix HARDCFLAGS for net/osrtspproxy
- Fix HARDCFLAGS for mail/qmailmrtg7
- Fix HARDCFLAGS for print/transfig
- Disable PIE for graphics/nsxiv
- Disable FORTIFYSOURCE for devel/uid_wrapper
- Disable HARDCFLAGS for devel/cweb
- Fix FORTIFYSOURCE for multimedia/ffmpeg
- Fix build of lang/gcc14
- Fix FORTIFYSOURCE for devel/tex-libtexluajit
- Disable FORTIFYSOURCE and HARDCFLAGS for security/barnyard2
- Fix build of lang/gcc12
- Fix build of databases/arrow
[1]: https://groups.google.com/a/hardenedbsd.org/g/users/c/51IARO8noYo/m/asRq... [2]: https://groups.google.com/a/hardenedbsd.org/g/users/c/G6HbsE8DA5w/m/I4ou...