Comparison of open-source licenses
e1ven.com
e1ven.com
I'm sure the HN community has people smarter than I, who will immediately see some mistake I may have made. Thank you! In that event, I shall issue a correction post-haste.
Fixed.Thanks.
This claim is often made (especially by corporate interests who dislike reciprocal licenses), but it is not true.
The only major reciprocal licenses, the GPL and LGPL, do not require that the entire codebase be under the GPL/LGPL. It only has to be under a compatible license.
For example, say I had a 10,000-line BSD-licensed application, and I copied a few hundred lines of some GPL'd code into it, then:
* The original code is still BSD licensed.
* The copied code is still GPL'd.
* The source tarball must include both license documents.
* The compiled binary must be distributed in a way complying with both licenses.
In particular, someone may download the BSD+GPL source, remove the GPL'd part, compile what's left, and distribute the resulting binaries without source. The licensing situation of the BSD'd code has not been changed in any way!
-----------
The "Weak" and "Strong" copylefts you describe don't make much sense, either. Both GPL and LGPL code can have proprietary products use them. The primary difference is that proprietary binaries may directly include LGPL'd code, but GPL'd code can't be included in proprietary applications.
For example, consider a proprietary application that dynamically links against "readline". Depending on which libraries are installed on the end user's machine, at runtime one of these will happen:
* The application tries to load libreadline.so, fails, and continues to run (perhaps disabling some advanced functionality).
* The application loads libreadline.so, which is a compiled library for readline (a GPL-licensed library).
* The application loads libreadline.so, which is a compiled library for editline (a BSD-licensed replacement for readline).
Obviously, the proprietary application is "using" readline, but as it's not distributed with any readline code, the authors of the application do not need any copyright permission from the readline authors.
An interesting variant if the original application binary was compiled on a system that had editline installed. From proprietary application developer's point of view, they used only BSD-licensed software, and didn't even distribute third-party code, so why should the GPL matter at all?
The major "grey area" here is GPL'd code, as a shared library, bundled with a proprietary application as a fallback in case the end user's system doesn't have it installed. While I think that this would be OK in most situations (assuming the library's API is intact), it's murky enough that the application author should check with a copyright lawyer first.
-----------
Regarding "web application" licenses, note that regardless of what they claim, they do not (and cannot) apply unless you're distributing the software. Remember, they're still just copyright licenses. If you're not doing anything that requires copyright permission, you do not have to obey them.
For example, if someone writes an AGPL'd application that generates an image of the Mandelbrot set, I can install that application on my server and have it send images to users without distributing the source.
The only area where AGPL-style licenses are relevant is when running the application requires distributing part of it to users. Think of html page templates, or Javascript.
From many software vendors' perspective, this is a difference without much distinction. The salient point to them is, if GPL code sneaks into their codebase then they might be forced to switch to a permissive software license, and that might be very disruptive to their business.
And it does manage to have a chilling effect in some industries. In the one I work in, for example, there is a prevailing culture of outright fear of open source software, including of supposedly "business-compatible" code. The worry is that it's hard to trace the provenance of all code, which makes it difficult to dismiss the possibility that, e.g., ostensibly MIT-licensed code is actually GPL-licensed. The fear is perhaps far too great, but from the decisionmakers' perspective this is a situation where their livelihood is potentially at stake, and many of them would rather pay to develop 100% proprietary software than risk getting infected with open-source cooties.
This seems similar to calling Android "the greatest legal destruction of wealth in history." (http://gizmodo.com/5785983/android-may-be-the-greatest-legal...)
And not in a way that has anything to do with what Mr. Gurley was claiming. What I'm more worried about is the opportunity to fund innovation that is lost when companies choose to sink resources into reinventing wheels rather than picking open source projects off the shelf.
There was a first wave of free software, now comes the second one; "even more free software".
The GPL is a copyright license, not an ordinary contract, and there's no provision for specific performance. The court isn't going to issue an order commanding the release of your source code.
From the perspective of "what can I do with this code", if you modify a BSD-licensed file, and include GPL code, the entire file will be essentially under the GPL license.
In theory, could you parse out individual lines? Maybe. Theoretically. But in practice, the file is now GPL.
The Weak versus Strong notions come from the FSF- That's not my terminology. I do think my descriptions are accurate, and don't disagree with you. What am I missing?
WRT AGPL, I'll clarify. I agree with you, and may not have made this clear enough.
That's not true. If I have some BSD-licensed code, and Bob copies a GPL'd function into it somewhere, Alice can still copy out BSD'd code from it and use it in her proprietary project.
It is very important to distinguish between "must comply with the GPL" and "must relicense to the GPL".
"""The Weak versus Strong notions come from the FSF- That's not my terminology. I do think my descriptions are accurate, and don't disagree with you. What am I missing?"""
You describe weak-vs-strong as being about whether proprietary software can use some library. The actual distinction is how proprietary software can use that library. Weaker licenses provide authors of proprietary software with more options (such as static linking).
As for Linking, I don't think you can legally link to a GPL program, from a non-GPL program. This is why the http://en.wikipedia.org/wiki/GPL_linking_exception exists. The GPL says that GPL and proprietary code "are not combined in a way that would make them effectively a single program."
Stallman's position is that this prohibits both dynamic and static linking. http://fsfe.org/projects/gplv3/torino-rms-transcript.en.html...
I think Stallman and FSF did a great job of getting the open source movement rolling, but unfortunately now seem more intent on enforcing their strict interpretation of what is "free" than on promoting the open source movement (and I don't think Stallman would dispute that statement). GPL has held me back from doing several interesting projects that would have depended on an old GPL-licensed C library.
The good news is that this situation is pushing me to get my C up to a level where I'm capable of writing optimized libraries to use in a larger Ruby or Python project.
Of course, the bottom line to most of these arcane licensing disputes is that they are legally meaningless -- few of they have ever been tried in a court of law.
Not exactly: https://www.gnu.org/philosophy/open-source-misses-the-point....
[citation needed]
I have never seen this claim made by any member of the FSF. If you're going to make incredible statements like that, please cite your sources.
"""GPL has held me back from doing several interesting projects that would have depended on an old GPL-licensed C library."""
No, you held yourself back because you were tricked by a cloud of unreasonable fear that has been spread about free- and open-source software.
Assuming your project was open-source, there is no reason at all that you couldn't have it depend on a GPL'd library.
The compatibility matrix on the same page confirms it, again in no uncertain terms: http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility
Both of these come from are from the official FSF license document:
"FSF GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
Why did you think that it was an incredible statement?
edit: for the downvoters, here is a direct quote (emphasis added) from the first link (which covers combinations of GPL/non-GPL code):
"""If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?"""
It's just like how the authors of the AGPL make insane unfounded claims about what you can or cannot do with AGPL-licensed software.
What Stallman claims doesn't matter. The only thing that matters is the license and the law.
in short "here's the code, don't sue us".