Use a BSD style license for your Open Source Project (2021)
docs.freebsd.org
docs.freebsd.org
The claim that GPL benefits large companies that want to maintain monopolistic market power is not supported by several developments in the years up till today. Intel’s stealth computer that runs inside of yours called the Intel Management Engine is running Minix, a non-GPL OS. Apple’s macOS/iOS/iPadOS is non-GPL. Sun’s Solaris was open sourced under CDDL, not GPL. Microsoft’s VS Code is not under GPL either.
[1] https://web.archive.org/web/20080201042548/http://alumni.cse...
It's also blatantly the exact opposite of what companies have always done, back to the early days of BSD Unix, which is use software licensed under simple, permissive terms to base proprietary codebases off of. Them making that claim must be in bad faith, given how absolutely contrary it is to reality how it directly attacks a reason people don't use those kinds of licenses.
I could bring up how proprietary software companies go out of their way to insult the GPL by calling it "viral" but the breathtaking dishonesty of that argument alone makes my case for me.
Eh?
For a lot of my projects I don't care who uses it; I wrote it for my own reasons and if it's useful for anyone else, including corporations, that's fine with me. Other people can make different decisions on that, but this is mine. Integrating GPL, however, makes it a "GPL project" and makes it harder to use in some contexts because derivative software will have to be GPL as well, which why I'd rather not integrate GPL for these projects.
So it certainly "spreads" to other pieces of the software if integrated; i.e. it's "viral" (although I don't really like that term as it comes off as rather dismissive). All of this is kind of the very purpose of copyleft.
I'm willing to say it -- the reason this narrative has so much purchase is that the FSF wants the GPL to be "viral" via its "interpretations" of its own license. If you don't want people to think you're part of the loony fringes, stop hanging out at the loony fringes.
As to whether the GPL actually is legally "viral", I have my doubts. I think the reason you actually don't see the FSF, SFLC, SFC in court is they think they've already lost at the fringes. The last several years of copyright law has been very, very hostile to any of the legal arguments they might make, say, re: dynamically linking modules. Credibility-wise they'd be wiped out. So, they keep soldiering on, pretending to man the battlements day after day.
https://en.wikipedia.org/wiki/Free_Software_Foundation,_Inc....
> Free Software Foundation, Inc. v. Cisco Systems, Inc. was a lawsuit initiated by the Free Software Foundation (FSF) against Cisco Systems on December 11, 2008 in the United States District Court for the Southern District of New York.[1] The FSF claimed that various products sold by Cisco under the Linksys brand had violated the licensing terms of many programs on which FSF held copyright, including GCC, GNU Binutils, and the GNU C Library. Most of these programs were licensed under the GNU General Public License, and a few under the GNU Lesser General Public License.
[snip]
> On May 20, 2009 the parties announced a settlement that included Cisco appointing a director to ensure Linksys products comply with free-software licenses, and Cisco making an undisclosed financial contribution to the FSF.[9][10]
Cisco wouldn't settle if it could win.
Even more:
https://opensource.stackexchange.com/questions/11452/have-th...
Yikes.
> Cisco wouldn't settle if it could win.
Of course you're right. No company would ever settle a suit it could win, after spending hundreds of thousands on attorneys fees, and going through discovery. /s
Note: I think Cisco was clearly in the wrong here. I think the GPL was enforceable in this instance. I just think don't the more loony claims (a dynamically linked module automatically creates a derivative work) at the fringes make much sense re: copyright law.
If you're telling the truth, back up your assertions. I've backed up mine.
> it could win after spending hundreds of thousands on attorneys fees.
You don't think Cisco has attorneys on retainer?
If the BSD zealots have to resort to dishonesty, people shouldn't trust them.
Also, I can't respond anymore, for some reason. I don't appreciate your trying to obfuscate what we were talking about (the enforceability of the GPL) or making it seem like settling isn't a victory.
You'll have to tell me what we are we arguing about? Dynamic linking? The viral-ity of a license? Whether the GPL is enforceable? You're kinda all over the map.
> You don't think Cisco has attorneys on retainer?
Sure, but a retainer doesn't cover all your legal bills. You may pay a modest retainer for the availability of a certain firm/attorney, but it never covers the bulk of litigation, which is extremely expensive.
> If the BSD zealots have to resort to dishonesty, people shouldn't trust them.
Absolutely not a BSD zealot. More of an MPL2 man for my personal projects. Usually happy to contribute to any OSI approved licensed project though!
CDDL is a similarly copyleft license, though.
The argument that the essay appears to be making is that large companies want to establish themselves as monopolies by requiring that competing forks publish their changes, incorporating the good changes, and outgunning them on overall development effort. My reading is that the CDDL would not force forks to publish the source code for changes that are made to non-CDDL source files.
It was a pragmatic and useful decision at the time that's become rather frustrating with ugly workarounds of dubious legality ("GPL condom"). I wish Sun had written in a GPL-compatibility clause similar to the copyleft EUPL.
But apparently kept the same license?
>> Most of the existing code is licensed under the CDDL and we expect new code will generally be under this license as well.[0]
Not saying it's wrong, but it's fantastically poorly written.
E.g. why can users of GPL stuff not just fork, just like BSD?
Why can't someone take abandoned GPL and run with it?
"projects using licenses like the GPL… live under constant threat of having someone take over the project by producing a better version of the code and doing it faster than the original owners."
And BSD doesn't? Cough, open, net, FreeBSD.
A GPL-licensed project can be forked. But, if you release work that uses or is derived from the GPL-licensed project, among other things:
1. you must include or make easily available the source code for your derived work.
2. roughly speaking, the license of your derived work cannot be less free than the GPL license (i.e. cannot infringe on rights granted by the original GPL license).
Releasing work derived from a BSD-licensed project does not have these requirements.
References: https://en.wikipedia.org/wiki/GNU_General_Public_License#Ter...
(edit: and on second glance, sorry, it seems like these details aren't really that relevant to the point of your questions.)
"projects using licenses like the GPL… live under constant threat of having someone take over the project by producing a better version of the code and doing it faster than the original owners."
Yeah, I don't understand what the article is trying to say. Honestly the above seems like a good thing.
Particularly for more niche projects, it depends not only on a party with the same use case and licensing needs as the original author stumbling across it, but also having the skill and will to take it over and judging that it's better to do that than to start from scratch. There's so many funnels there I wouldn't be surprised if for many projects only a single-digit number of people match that description.
Because it doesn't make any sense to me.
And it doesn't make sense to me either.
* Use BSD/MIT for a utility. You want the utility to be universally available, and included into larger systems to make them more useful and compatible to each other. A compression library, a file format, a single-purpose program like sshd would benefit from a permissive license.
* Use GPL for a platform. If your stuff allows to build things based on it, if it is intended to serve as a backbone and a foundation, protect if from being grabbed by proprietary hands. Instead, make it safe for participants large and small (but especially large) to contribute to it openly without fear that somebody else would grab their contribution and turn it into a proprietary fork. Something like an OS kernel, or a desktop environment, or an application / database / etc server, or a compiler, may benefit from being released under GPL.
I don't have a strong opinion about programming languages: as long as the toolchain is open-source under whatever license, it usually thrives on its own merits, not due to licenses prodding its use one way or another. The language specification of course needs to be open for re-implementation, and the standard library should be licensed so that it could be included in closed-source projects.
Dual licensing (copyleft + paid commercial) is also a reasonable option.
I would not release on MIT or BSD. Apache2 is not that different, but at least has a patent clause. With MIT/BSD you are in "let's just hope" territory.
Letting others change your license is saying you don't care about your work, but that's just my feeling.
Each project has its own target, and should chose the licenses accordingly, but I don't see reason for bsd/mit over apache.
My rule of the thumb is:
* apache for software that needs to be linked to proprietary
* LGPL for other library
* AGPL/GPL depending on your stance on network connectivity, and if you don't care about scaring companies that don't read licenses. (funny how EULA are ok for those companies though)
I would also like to see git hosting software (github, gitlab, gitea...) provide a checkbox to only accept contributions from people who agree on a CLA, and developers would only need a checkbox to agree to it.
Otherwise you are going to be stuck with GPL2 like linux, and you can't fix things that might make sense in your environment, both as being more restrictive, and being less restrictive. People can always fork if you do bad things anyway.
Please consider at least adding an exception that allows this combination, like "Apache-2.0 WITH LLVM-Exception".
Also note that the document never takes into account the needs of the eventual user of the appropriately licensed software, but only ever its (or other) developer(s).
As a user, I definitely prefer to use a copylefted program. This means that I am guaranteed to enjoy the four software freedoms; in particular, I can look at how the program works and I can change its behavior, or hire a programmer to change it.
A non-copylefted program, however, may be distributed by some middleman that deprives me of this freedom. Even if the original developer of the program shared it under a free-software licence, it can be re-packaged as a non-free wrapper. This is impossible with copyleft licenses. Thus, even if copyleft "imposes" some mild restrictions to developers, it is certainly very liberating to users! Notice that the only "restriction" imposed to developers is that they cannot re-package a copylefted program so that it becomes un-free.
Okay. Good for you. As a user who likes to combine software ideas, I don't want my work or inspiration to be tainted by a work that would try to restrict my work in the future.
You are free to enjoy what your freedoms and I am free to enjoy mine.
Just because you don't actively develop something doesn't mean that you won't find the economy and wider options and market forces it provides useful.
> The distinction is 100% about what a future developer can do or not do.
I pointed out that this was incorrect.
> But I don't think they should require other software creators to release under the same license.
So you think end-user-hostile software is fine. I guess we disagree.
On the other hand, there's a reason Google forbids even spelling the letters AGPL, because then they might have to give you the source code. Copyleft doing exactly what it's supposed to do.
So when i sit in a car (service) i don't use the Street (below the service)?
But you are right, and that's exactly why the GPL is NOT preventing Closed-source software per se.
Edit: I have no idea whether Google has contractors in such areas. I worked for a company of equal size many years ago and we had contractors everywhere. It was a massive bureaucracy to get access rights for what they needed to do their work, but in the end there was probably not much in the company that some contractor had not access to.
https://www.boost.org/users/license.html
because it does not require the binaries to reproduce the license.
"Freedom of the developer" doesn't exist in the vacuum. Your freedom to do what you want has impacts on the way other people will use the computer. If your freedom is more important than the collective well-being of sharing resources, products and knowledge, you are not a good person.
> The above observations regarding moral rights imply that putting code under an ISC or two-clause BSD license essentially makes the code as free as it can possibly get.
Emphasis on: or two-clause BSD license.
That said, the ultimate recommendation on the page is ISC, but only because:
> The ISC copyright is functionally equivalent to a two-term BSD copyright with language removed that is made unnecessary by the Berne convention.
The OpenBSD project uses the "and" wording, whereas the license text on the OSI website uses the "and/or" wording.
Given all this, it seems to me that recommending the 2-clause BSD is the most straightforward option, because its only (and innocuous) issue is that it contains some no-longer-necessary language after the Berne convention agreements.
[1] From Wikipedia: When initially released, the license did not include the term "and/or", which was changed from "and" by ISC in 2007. Paul Vixie stated on the BIND mailing list that the ISC license started using the term "and/or" to avoid controversy similar to the events surrounding the University of Washington's refusal to allow distribution of the Pine email software.
ISC isn't perfect but it's a far better license than BSD.
Choosing between BSD/ISC/MIT is essentially just choosing which phrasing you like best; the basic idea is the same. Almost all arguments in favour or against the 2-clause BSD license also apply to the ISC license, and vice versa.
Under the BSD license, what requirements exist for redistributions that are neither source nor binary in the regular meaning of those terms?
Presumably there ought to be one, but... the license doesn't say.
What about redistribution of the product of macros/meta programming? Redistribution of the assembler output?
Thought experiment: I publish a library in which the .c file is released as public domain but the .h file (which has no function definitions, `static` or otherwise, and had no function-like macros) is released as BSD-2.
The header file will essentially disappear during compilation. You cannot make a .o out of such a header; there is no binary format of it.
Is the resulting binary covered by the BSD license?
I wonder what 1969-era Justice would think of iphones
Wow. TIL
(The Go programming language and Chromium use BSD-style licenses.)
That's the "4-clause" BSD, which hasn't been very popular (since the 1980s? 90s?).
> the mit licence is one para that basically says, maintain copyright notices and do what you want.
The 2-clause BSD license is similar in length to the MITL (which is 3 paragraphs) and substantially similar in contents as well.
That i believe you...