Hacker News new | past | comments | ask | show | jobs | submit login
Comparison of open-source licenses (e1ven.com)
78 points by e1ven on March 22, 2012 | hide | past | favorite | 32 comments



After reading through an absurd number of licenses, this is my understanding of the way various things combine.

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.


I'm not clear on the criteria you used for the web-apps column. The LGPL and GPL are listed as applying differently, but to my understanding both are equally agnostic to network use compared with something like the AGPL.


Thanks. I think I must have flipped something when creating the table. I was copying each row above it, and editing. I must have forgotten to flip that.

Fixed.Thanks.


I think you may have an error in the AGPLv3 description, where you say "No" in the "Web Apps" column.


No WTFPL? For shame. http://sam.zoy.org/wtfpl/


The WTFPL doesn't really need explaining. The terms of the license ("You just DO WHAT THE FUCK YOU WANT TO") are shorter than most licenses' summaries.


"""Licenses that use Copyleft are sometimes called “Viral” licenses; If you include any code that uses that license in your code, then your entire program has to be released under the same license."""

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.


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.

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.


When you say "chilling effect" are you suggesting that entire industries are being held back by the existence of the GPL?

This seems similar to calling Android "the greatest legal destruction of wealth in history." (http://gizmodo.com/5785983/android-may-be-the-greatest-legal...)


To say that entire industries are being held back by their fears about the GPL would be closer to what I was getting at.

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.


Well, reinventing wheels once more under BSD license seems to solve this problem (e.g. clang, FreeBSD, PostgreSQL...)

There was a first wave of free software, now comes the second one; "even more free software".


Actually, they might be forced to stop using the GPL code and pay damages.

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.


I wish it were as simple as you say when you write that you can mix GPL code into BSD and retain the BSD license. Unfortunately, the FSF muddies the water quite a bit here. For example, according to the FSF, if the GPL code is a library, well then you do have to release the other code under GPL, even if the GPL-licensed library is only a small component of the codebase. And there are other exceptions and requirements.

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.


"""For example, according to the FSF, if the GPL code is a library, well then you do have to release the other code under GPL, even if the GPL-licensed library is only a small component of the codebase."""

[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.


Here's the citation on the FSF license page, in no uncertain terms: http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL

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?


Both of those links support my position, and refute yours. Did you read them?

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?"""


I think Stallman and FSF did a great job of getting the open source movement rolling

Not exactly: https://www.gnu.org/philosophy/open-source-misses-the-point....


It's funny that you mention libreadline. CLISP was not originally going to be GPL'd and only optionally depended on readline, but Stallman himself declared that even that made CLISP a derivative work. I happen to agree with your interpretation, but the author of the GPL does not.


At the time, editline did not exist. Stallman's argument was that code which has functionality only when linked with GPL'd code is dependent upon that GPL'd code.


Stallman is not a lawyer, and just because he is the author of the early GPL does not mean he is correct regarding copyright law.

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.


Indeed, this reminds me of all the OpenBSD discussions where Stallman tried to mark OpenBSD as a non-free operation system - fun fact: OpenBSD uses and suggests the ISC license, the most liberal of them all.

http://marc.info/?l=openbsd-misc&m=119750352332512&w...


I would say that stallmans claims do matter, because failure to comply will get you labeled as an Internet villain. The impact that may have on your business will depend on the nature of your business.


Considering the vast array of bizarre and offensive views held by Richard Stallman, I do not think disagreeing with him over one more small matter will bring any great harm.


Thanks for the thoughts! I'll modify the Viral line to say "Compatible" rather than the same.

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.


"""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."""

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).


I think we have a pragmatic difference of opinion on your first point. I have a difficult time accepting that many people are going to track licenses on separate lines of a file into perpetuity. I'm aware of the Aggregate clause in the GPL, but to apply that you need to get into whether or not various lines are "extensions" of the original work, and it's a beast. I really think that people are best just treating each file as GPL, if you add GPL code to it.

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...


Also there is a wiki page which compares various open source licenses: http://en.wikipedia.org/wiki/Comparison_of_free_and_open_sou...


Complete list of OSI approved licenses: http://www.opensource.org/licenses/alphabetical


An error in your table lists AGPL 3 as not applying to the web.


i miss the lovely and extremely liberal zlib/libpng license.

in short "here's the code, don't sue us".


Wouldn't the MIT/X11 license be a good choice for this situation? It's fairly liberally used, permissive, and has a similar anti-endorsement clause.


Main difference is that the zlib license does not require you to ship the copyright from non-source distributions. It's essentially "I don't need credit, as long as you don't say you made it yourself".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: