FreeBSD Finally Cuts Its Last GPL Cord — 30 Years in the Making

FreeBSD Finally Cuts Its Last GPL Cord — 30 Years in the Making

The FreeBSD project has completed what amounts to a three-decade eviction notice: with the removal of dialog from its base system, FreeBSD 16 no longer contains any GPL-licensed code. Not a line. Not a function call. Not even the goodbyes.

It’s a first among the *BSD family — OpenBSD and NetBSD still carry some GPL baggage — and it’s a milestone that quietly says something profound about what “software freedom” actually means to different parts of the open-source community.

What was dialog?

If you’ve ever installed FreeBSD, you’ve seen dialog — the text-based UI library that powers those blue-and-white installation screens where you select partitions, configure networks, and choose packages. It’s the same library that powers the apt menu system in Debian and the configuration screens in countless Linux distributions.

The problem for FreeBSD wasn’t that dialog was bad software. It was licensed under GPL, and FreeBSD’s philosophy has always been that the base system should ship entirely under permissive licences — BSD, MIT, ISC. The GPL’s copyleft requirements mean that anything linked against GPL code becomes GPL too. That’s not a bug in GPL — it’s the point. But it’s not the point FreeBSD wanted for its base system.

The long goodnight

The removal of dialog wasn’t a single commit. It was a years-long project involving at least two people who cared enough to do the work:

Alfonso Siciliano built bsddialog — a complete BSD-licensed reimplementation of the dialog interface. The project started as a replacement for the installer but grew into a full drop-in substitute. Version 1.2 of bsddialog, imported into FreeBSD in mid-2026, brought rendering and API improvements that made the final switch viable.

David Chisnall then rewrote dpv (the dialog-style progress view utility used alongside the installer) to use bsddialog instead of dialog. His LinkedIn post about the merge reads like a victory lap: “Goodbye cdialog, bsddialog.”

Before dialog, the last holdout was GNU diff3, which was replaced by a port from OpenBSD earlier this year. Before that, it was years of gradual replacement: tar became bsdtar, diff became bsddiff, and every GNU tool that made it into the base system was systematically swapped out or rewritten over three decades.

Why this matters

The BSD vs GPL debate isn’t really about which licence is “better.” It’s about different visions of software freedom. The GPL says freedom means your code stays free — no one can take it, modify it, and close it. The BSD licences say freedom means no one should tell you what to do with the code, including the people who wrote it.

FreeBSD’s insistence on a purely permissive base system means that any commercial product built on FreeBSD — pfSense firewalls, TrueNAS storage arrays, the macOS and iOS kernels underneath — carries no GPL obligations whatsoever. That’s a feature, not an accident.

This isn’t anti-GPL sentiment. It’s pro-choice. The FreeBSD ports collection still carries thousands of GPL packages, freely available for anyone who wants them. The base system just doesn’t force GPL on anyone who installs FreeBSD.

The timeline

  • 1995: FreeBSD 2.0 removes all AT&T code, establishing the pattern of licence cleanup
  • 2000s: Gradual removal of GNU tools (tar, diff, etc.) in favour of BSD alternatives
  • 2026, early year: GNU diff3 replaced by OpenBSD’s implementation
  • 2026, February: Final ticket opened to remove dialog
  • 2026, July: dialog merged out — FreeBSD 16 base system is GPL-free
  • December 2027: FreeBSD 16.0-RELEASE scheduled

FreeBSD 15 still contains dialog. The GPL-free base only lands in 16, which won’t be officially released until December 2027.

The irony

The most ironic thing about this is that the GPL has always been more popular than the BSD licences in the broader open-source world. Linux runs on GPL. The kernel that powers most of the internet is GPL. The BSDs have always been the smaller sibling — technically superior in some ways, but perpetually second fiddle to Linus’s project.

FreeBSD didn’t remove GPL code to spite the GPL. It did it because it had a different vision from the start, and it took thirty years of patient replacement to finally realise it completely.

That’s not a victory for one licence over another. It’s a reminder that open source isn’t a single ideology — it’s a spectrum, and both ends can coexist without eating each other.

Sources:
Phoronix: FreeBSD 16 Retires The Last Of Its GPL Code
Foss Force: FreeBSD 16 Cleans House — No GPL Left
FreeBSD Wiki: Replacing dialog with bsddialog
Reddit r/freebsd: Discussion thread