GPL Software in the Base System
One of the ongoing goals for the FreeBSD base system is a migration to modern, copyfree or at least more permissively licensed components. This page aims to summarise the aged or unmaintained GPL components in the base system, potential replacements, and progress.
Unowned Components
The following may have potential replacements but integrating them is not yet planned. If you are looking for a project, please evaluate how feasible the replacement is, or if there are any other alternatives.
Name |
Potential Replacement |
Comment |
gcov (kernel) |
|
sys/gnu/gcov https://cgit.freebsd.org/src/commit/?id=5426539c71df582dc62bc9964255f0e83648af64 |
bwn (kernel) |
|
sys/gnu/dev/bwn |
Works in Progress
Staged
These components are ready or nearly to be removed, waiting on additional testing or an agreed-upon schedule.
Name |
Replacement |
Review |
Comments |
Responsible |
Copyfree Migration
The process of migrating these components to a copyfree alternative is in underway - perhaps some CPU architectures still need to be switched over, or more work needs to be done before the default can be changed.
Name |
Potential Replacement |
Percent Complete |
Comment |
Responsible |
dialog |
|
LGPL. WITHOUT_DIALOG added in r306375 but removes bsdinstall, bsdconfig, dpv, spkrtest |
|
Under Investigation
These components do not yet have a committed plan in place.
Name |
Potential Replacement |
Percent Complete |
Comment |
Responsible |
diff3 |
OpenBSD diff3 |
40% |
See GSoC 2012: BSD-licensed Text-Processing Tools and GSoC 2010: BSD-licensed Text-Processing Tools |
bapt@ |
Sunset Components
The following are dependencies of other components, and will be removed when all dependent components are removed.
Name |
Comment |
Ports Impact |
Reviews / Call for Testing
These changes are available for review and testing:
Description |
Review Link |
Retire WITHOUT_ELFCOPY_AS_OBJCOPY option |
|
Disconnect objdump from the build |
|
Switch to LLVM libgcc_eh, libgcc_s |
Ports exp-runs are requested for these changes:
Description |
Exp-run link |
Remove /usr/bin/as |
|
Remove /usr/bin/objdump |
|
lld as /usr/bin/ld |
|
LLD_BOOTSTRAP on i386 |
Notes
Completed
Name |
Comment |
addr2line |
Switched to ELF Tool Chain in r276796 |
ar |
Replaced with one based on libarchive |
as (binutils) |
Removed in r361880 after addressing ports and using Clang IAS universally |
bc |
GNU version replaced with OpenBSD's bc |
c++filt (binutils) |
Switched to ELF Tool Chain in r282285 |
cpio |
Replaced with bsd-cpio |
crt |
Switched to bespoke 1-Clause replacement by default in r340841 |
cvs |
Removed in r251794 |
diff |
Switch to a BSD licensed version in r317209 |
diff3 |
Imported from OpenBSD in r318888 |
dtc |
Switched to BSDL dtc, GPL dtc removed in r358468 |
gdbtui |
Removed from base in r328925 |
gcc |
Removed from base in r358454 |
gcov |
llvm-cov installd as gcov in r340289 |
gdb |
disabled by default as of r36844, pending removal1 |
gnu-sort |
Replaced with bsdsort, and removed in r241511 |
gperf |
Removed from base in r358454 |
grep |
Replaced with bsdgrep in r368439, removed in 47d1ad2413da |
groff |
Removed in r319664 |
ident |
Replaced by a bsd licensed version in r285890 |
ld (binutils) |
Replaced with LLVM's lld, removed as of r359376 |
libf2c |
Was unused, removed in HEAD in r212592 |
libgcc |
Replaced by a combination of compiler-rt and LLVM libunwind in r308308 |
libgnuregex |
Removed from base in 47d1ad2413da |
libgomp |
Removed from base in r358454 |
libobjc |
libobjc2 is MIT licensed, but in the absence of any Objective-C code in base it was removed |
libodialog |
Remaining libodialog users (tzsetup, sade) converted to new libdialog |
libreadline |
Removed from base in r328928 |
libssp |
Replaced with libc rebuilt for libssp in r356356 |
libstdc++ |
libc++ was imported and newer versions of libstdc++ are available in the ports tree |
lmc(4) |
Retired in r333144 |
nm |
Switched to ELF Tool Chain in r276796 |
objcopy |
Switched to ELF Tool Chain in r296096, backwards compat removed in r306649 |
objdump |
Retired in r360698 |
patch |
Replaced with an enhanced variant of Larry Wall's patch from the other BSDs |
ranlib |
Replaced with one based on libarchive |
rcs |
Removed from base in r307351 |
readelf |
Switched to ELF Tool Chain in r280859 |
reiserfs |
Removed in r300062 |
sdiff |
Switch to a BSD compatible version in r298823 |
send-pr |
Obsoleted by Bugzilla migration |
size |
Switched to ELF Tool Chain in r276796 |
strings |
Switched to ELF Tool Chain in r276796 |
strip |
Switched to ELF Tool Chain in r276796 |
texinfo |
Removed in r268496 |
[z|bz|xz|lz]grep |
replaced by a BSD licensed script in r332993 |