On September 27, 1983, computer programmers logging on to the Usenet newsgroup net.unix-wizards encountered an unusual message. Posted in the small hours of the morning, 12:30 a.m. to be exact, and signed by rms@mit-oz, the message’s subject line was terse but attention-grabbing. “New UNIX implementation,” it read. Instead of introducing a newly released version of Unix, however, the message’s opening paragraph issued a call to arms:
Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu’s Not Unix), and give it away free to everyone who can use it. Contributions of time, money, programs and equipment are greatly needed.
–Free as in Freedom, Sam Williams
(When looking at various aspects of open source – its important to understand the backdrop which led to the creation of such licenses. ‘Free as in Freedom‘ (available online) is a wonderful read.)
… Continuing from Part 1..
1. What are the most widely used licenses?
The first version of the GPL appeared in 1988, it didn’t get too much attention until authors, including Linux creator Linus Torvalds, started using it. At this point, the realization of its implications started sinking in. For corporations, that were used to doing business on closed software – this was a truly dangerous idea.
Several derivatives of that license have evolved over this period…
Public Domain: Not really a license. But equivalent to relinquishing any rights to your code under copyright law.
BSD / MIT: Oldest and most liberal licenses available. They basically put no restrictions on how the software can be used. Ex: FreeBSD
GPL: Allow people to freely use your software as long as they don’t charge for it and use the same license for parts of the program that they wrote themselves.
LGPL: A derivative of GPL, LGPL includes an exception that is intended to allow code that is released under other licenses to co-exist with and call the LGPL code. It was meant to be a compromise between the strong copy-left GPL and permissive licenses such as the BSD licenses and the MIT License.
MPL/CDDL: MPL is used by Mozilla, Firefox, and many other projects. CDDL is based on MPL with a few minor tweaks to make it more applicable outside of Mozilla. CDDL is used by many Sun products such as Solaris. The MPL allows source code to be mixed with other files under a different license (also proprietary). However, code files licensed under the MPL must remain under the MPL and freely available in source form.
CPL/EPL: CPL was derived from the old IBM Public License and was also influenced by MPL. CPL was originally used by Eclipse, but that project switched to EPL. EPL is a newer version of CPL with some improvements in its patent language to make it more acceptable to businesses.
Dual License: This isn’t really a license, it just means making your software available under two or more different licenses.
It’s important to note a point as mentioned in slashdot comment
The GPL license is conducive to liberating software.
The BSD license is conducive to liberating people.
With the GPL license, the software maintains more of the freedom than the programmers who work on it.
With the BSD licenses, the programmers maintain more of the freedom with what they are allowed to do with derivative code.
|Public Domain||BSD / MIT||ASLv2 (Apache)||GPL (v2)||LGPL||MPL / CDDL||CPL /EPL|
|Protected by copyright||No||Yes||Yes||Yes||Yes||Yes||Yes|
|Can be used in closed source projects||Yes||Yes||Yes||No*||Yes||Yes||Yes|
|Code using this can be commercially used||Yes||Yes||Yes||No*||Yes||Yes||Yes|
|Bug Fixes, modification to be released||No||No||No||Yes||Yes||Yes||Yes|
|Explicit Patent License||No||No||Yes||No (but v3 address this)||No||Yes||Yes|
2. Can I use code with those licenses – the way I want?
3. Can I derive / extend that code?
4. Would I have to make the source code available to other if I do (3)?
5. As a developer how should I distribute my code?
It’s important to reason out – why are you releasing the code. Deciding that – makes the decision just a bit easier.
Here’s a ‘License Chooser‘ – I stumbled upon while trying to solve this license mystery myself. Hope that’s useful enough!
Recommended Further Reading