Open source licenses explained
- Posted by D. Newhall <derek_newhall at yahoo.com> Sep 20, 2006
- 737 views
Since we've been debating licenses for Euphoria I figured someone should probably explain all of them. So, here's an explanation for the most popular open source licenses out there (all opinions and biases are mine unless otherwise noted). Everyone should read the original licenses as well. (Note: I am not a lawyer and am simplifying everything a lot. Also, some of these licenses I haven't read recently and may have forgotten something.) 3-clause BSD: http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 Pretty much complete freedom except that you can't use the creator's name in advertising. 4-clause BSD: http://www.netbsd.org/Goals/redistribution.html#default 3-clause BSD but you need to explicitly acknowledge the original creator of the code. This acknowledgment causes the 4-clause BSD license to be incompatible with most "copy-left" licenses. The FSF actively discouraged using it for practical reasons since the list of contributors gets hard to deal with after a while. Personally, I prefer it it for most of my code since anyone can use it for anything so long as they acknowledge they got the code from me. It's my current vote in Vincent's poll. MIT X11: http://www.opensource.org/licenses/mit-license.php 3-clause BSD license without the "no-use-of-creators-name-in-advertising" clause. Practically the closest to public domain you can get with a license. GPL: http://www.gnu.org/licenses/gpl.html A very, very popular strong copy-left license. Using any code in any manner in a project makes it GPL. The biggest problem with it is that using euphoria code in a library would make any code that uses that library GPL as well regardless of the format that library is released in. This would be a big detriment to people who want to use the Euphoria code as a plugin for a server or as an application scripting language. LGPL: http://www.gnu.org/copyleft/lesser.html The GPL but can be used in binary form in a non-GPL project. Also, contains a special clause to make LGPLed code GPLed easily. Apache 2.0 license: http://www.apache.org/licenses/LICENSE-2.0 The Apache license is essentially the 3-clause BSD license but with a clause that requires any patented code be released for public use if this license is used on it (this also renders it incompatible with the GPL). MPL: http://www.mozilla.org/MPL/MPL-1.1.html The MPL requires that only files that are changed be released. All original code remains completely open but people can add any proprietary features they want. I think that this is the best compromise choice between the GPL and BSD license camps since it allows "non-free" use but keeps the code freely distributed with changes. This would be my second choice of a license behind 4-clause BSD. Lucent license: http://plan9.bell-labs.com/plan9/license.html 4-clause BSD but with some explicit protections against legal action by disgruntled users. Relatively uncommon. CDDL: http://www.opensolaris.org/os/licensing/cddllicense.txt MPL but with some additional legal restrictions. Primarily the ability to specify where you can sue people for breach of licensing terms in the documentation but also some patent. Also, any code released under the CDDL is ONLY under the CDDL (no other licensing choices) and all patented code is released to the public. These legal restrictions are often said to be burdensome for developers (I'd agree). You also MUST declare that any code you contribute is your own. It's a kind of weird license and wouldn't recommend it. APSL 2: http://www.opensource.apple.com/apsl/2.0.txt This one I haven't read as thoroughly as the others but seems to be an Apple-centric version of the MPL. AFL 3: http://opensource.org/licenses/afl-3.0.php Supposedly, it's similar to the Apache license but with some additional legal freedoms and restrictions. For example, any patented code must be released and you must not use the creator's name for advertising. Apparently, the FSF and OSI disagree on whether it's GPL incompatible or not (or so I hear, it seems to be pretty obviously incompatible in my opinion). Pretty uncommon but advocated by the OSI to a degree. I also think that section 2 of the license could be worded ambiguously.