1 1.4 nia $NetBSD: licensing,v 1.4 2026/05/14 12:24:57 nia Exp $ 2 1.1 nia 3 1.1 nia NetBSD Licensing 4 1.1 nia ================ 5 1.1 nia 6 1.1 nia In an ideal world, the entire of NetBSD should be available under 7 1.1 nia simple permissive software licenses. The 2-clause BSD license is 8 1.1 nia recommended for new contributions. 9 1.1 nia 10 1.1 nia Background: GPL in base 11 1.1 nia ----------------------- 12 1.1 nia 13 1.1 nia In the 1990s, the BSD developers at CSRG realized their toolchain was 14 1.1 nia falling behind alternatives. One of the reasons for this was Sun 15 1.1 nia choosing to lock their compiler behind a paywall - as a result, Sun's 16 1.1 nia users went out in search of freeware alternatives. They found GNU's GCC, 17 1.1 nia and immediately formed a new community around improving it. 18 1.1 nia Eventually, various GNU tools found their way into BSD. 19 1.1 nia 20 1.1 nia We would like to eliminate the use of the GNU General Public License 21 1.1 nia in the base system. This provides a number of advantages: less worrying 22 1.1 nia about license compatibility, easier sharing of code between NetBSD 23 1.1 nia components, less likelihood of being sued for redistributing NetBSD 24 1.1 nia binaries, less legalese and need for lawyers to interpret it, 25 1.1 nia and an overall reduction in GNU info pages. 26 1.1 nia 27 1.1 nia As a general rule, most GPL code in NetBSD provides programs that 28 1.1 nia are "nice to have", but not fully essential for a working system, 29 1.1 nia so redistributors have an option to remove or replace them. 30 1.1 nia 31 1.1 nia For example, some NetBSD ports can be built using Clang as the 32 1.1 nia toolchain instead of GCC (see mk.conf(5), HAVE_LLVM). 33 1.1 nia 34 1.4 nia GPL code lives under the following directories to ensure clean 35 1.1 nia separation: 36 1.1 nia 37 1.1 nia * src/external/gpl2 38 1.1 nia * src/external/gpl3 39 1.1 nia * src/sys/external/gpl2 40 1.1 nia 41 1.1 nia Background: Advertising clause 42 1.1 nia ------------------------------ 43 1.1 nia 44 1.1 nia At some point, Berkeley added the following clause to their license 45 1.1 nia for the free parts of BSD UNIX: 46 1.1 nia 47 1.1 nia * 3. All advertising materials mentioning features or use of this software 48 1.1 nia * must display the following acknowledgement: 49 1.1 nia * This product includes software developed by [copyright holder]. 50 1.1 nia 51 1.1 nia With time, this clause came to be seen as onerous: there is already 52 1.1 nia a requirement to credit copyright holders in the documentation of 53 1.1 nia redistributions, and it's very difficult to enforce. At various points, 54 1.1 nia distributing NetBSD required including hundreds of "This product 55 1.1 nia includes software developed [...]" statements. It also makes it more 56 1.1 nia complicated to include NetBSD code in projects under other licenses. 57 1.1 nia 58 1.1 nia Berkeley removed the advertising clause in 1999, and clarified their 59 1.1 nia stance against including it in 2012. However, there are lots of 60 1.1 nia instances where it has been copy and pasted by other people and 61 1.1 nia organizations. Therefore, its removal from NetBSD is mostly a social 62 1.1 nia challenge. 63 1.1 nia 64 1.1 nia Technical priorities 65 1.1 nia -------------------- 66 1.1 nia 67 1.1 nia The directory under external/gpl2 contains several programs that 68 1.1 nia could be replaced. Most of them are quite old versions now, chosen 69 1.1 nia to avoid GPLv3: 70 1.1 nia 71 1.3 nia * diffutils - Replaced with FreeBSD-derived diff(1). MKBSDDIFF is now 72 1.3 nia the default. 73 1.1 nia * grep - Could be replaced with FreeBSD grep(1). Someone needs to 74 1.1 nia compare the performance. Other grep implementations in C likely 75 1.1 nia exist. A MKBSDGREP option exists, but the copy is probably old. 76 1.1 nia * rcs - Supposedly OpenBSD developed a compatible replacement. 77 1.1 nia * xcvs - Priority for removal as we transition away from CVS. 78 1.1 nia * groff - Mostly replaced by mandoc(1), although some non-manual use 79 1.1 nia cases (e.g. distrib/notes) continue to rely on groff. Optional - 80 1.1 nia a MKGROFF option exists. Such files could also be converted to 81 1.1 nia plain text. 82 1.1 nia * send-pr - Part of our infrastructure, but basically optional - 83 1.1 nia alternatives like the gnats web interface exist. 84 1.1 nia * gawk - Needed only by other GNU software? 85 1.1 nia * gmake - Needed only by other GNU software. 86 1.1 nia * texinfo - Needed only by other GNU software. 87 1.1 nia 88 1.1 nia The directory under sys/external/gpl2 mainly contains device tree 89 1.1 nia sources, providing platform definition files for embedded system 90 1.1 nia boards. Removing this would break a lot of platforms. 91 1.1 nia 92 1.1 nia The directory under external/gpl3 only contains toolchain-relevant 93 1.1 nia files, and can be mostly avoided with HAVE_LLVM=yes and elftoolchain. 94 1.1 nia 95 1.1 nia Social and legal tasks 96 1.1 nia ---------------------- 97 1.1 nia 98 1.1 nia A list of advertising clauses that still apply can be found in: 99 1.1 nia 100 1.1 nia src/distrib/notes/common/legal.common 101 1.1 nia 102 1.1 nia This file should be kept in sync as copyright holders are contacted. 103 1.1 nia 104 1.1 nia There are several high-priority targets for the removal of the 105 1.1 nia advertising clause: 106 1.1 nia 107 1.1 nia * Lawrence Berkeley Laboratory advertising clauses are very widespread. 108 1.1 nia It is unclear whether Berkeley granted permission to remove such 109 1.1 nia clauses (FreeBSD apparently think so). Berkeley should be contacted 110 1.1 nia for clarification. 111 1.1 nia * Harvard University 4-clauses licenses are widespread, and it's 112 1.1 nia possible someone knows an insider who could accelerate the process 113 1.1 nia of getting permission to fix them. 114 1.1 nia * Wasabi Systems copyrights are very widespread in NetBSD. They were 115 1.1 nia "the NetBSD company" of their time. It is unclear who currently owns 116 1.1 nia Wasabi Systems' intellectual property. Someone should figure this out, 117 1.1 nia or we should use Foundation funds to acquire it. 118 1.2 nia * 4-clause BSD licenses are also found in the tree belonging to 119 1.3 nia Cisco (primarily in SCTP code). It's also possible someone knows an 120 1.3 nia insider who could accelerate the process. 121 1.1 nia 122 1.1 nia Otherwise, the social and legal tasks mostly involve trying to find 123 1.1 nia old contributors' current email addresses, and asking them for 124 1.1 nia permission to relicense. This strategy has been somewhat successful, 125 1.1 nia and should be completed before doing so is no longer possible. 126