When I jumped into the Linux/open-source world I didn’t know nor care about the different licenses software had attached with it. I guess I was used to adhering to whatever license that was forced upon me by Microsoft. Now I have a choice. There are many software licenses out there – here are a few popular ones in a nutshell:
The General Public License is the foundation for many other licenses. It is the most popular license in open-source and prevents copyleft – restrictions on distributing copies and modified versions of a work for others and requiring that the same freedoms be preserved in modified versions. GPLv1 states that all binaries must have human readable source code attached in the distribution. It also indicates that another license that your software may carry cannot restrict clauses in the GPL. Many software vendors will try and use that as a loophole to benefit from open source while retaining their enhancements to themselves.
The major change in v2 is the Liberty or Death Clause in Section 7. This states that if your software has some restriction where it violates GPL-covered property, then it cannot be distributed. For example, if a legal ruling states that they can only distribute the software in binary form, they cannot distribute it at all. The Linux kernel is covered by this license currently, and the license prevents others from just taking the source, modifying it and not contributing back to the community that founded it.
Known as the Lesser General Public License, its name is reflective of its clauses – it has less restrictions. LGPL lets you distribute modified work that is linked to free or proprietary software. For example, if you write a media center application ontop of the MPlayer library, under the LGPL you are allowed to distribute the software regardless of the MPlayer library being open-source or binary. This was instituted to give users more freedom.
This is license was just recently published and addresses the issues of cross-patent licenses and anti-tivoization. Cross patent licenses for example, the Novell-Microsoft agreement, under the GPLv3 indicates that you cannot convey your product to a distributor who will charge their customers for your work. The license is also meant to require Microsoft to extend the patent licenses it grants to Novell customers for the use of GPLv3 software to all users of that GPLv3 software; this is possible only if Microsoft is legally a “conveyor” (distributor) of the GPLv3 software.
Tivoization is the creation of a system that uses copyleft protected software but includes hardware that restricts users from running modified versions of the software on the hardware. It is named after TiVo because it uses open-source software, however that software when modified deems your TiVo device unusable, and is illegal under the the GPLv3.
The GPL requires derivative work to be released according to the GPL while the BSD license does not. Essentially, the BSD licence’s only requirement is to acknowledge the original authors, and poses no restrictions on how the source code may be used. As a result, BSD code can find its way into proprietary software that only acknowledge the source. For instance, the IP Stack in Microsoft Windows and Mac OS X are derived from BSD-licensed software.
Source code copied or changed under the MPL must stay under the MPL. Unlike strong copyleft licenses, the code under the MPL may be combined in a program with proprietary files which would otherwise be derivative works of the MPL code.For example Netscape 6 and later releases were proprietary versions of the Mozilla Application Suite. For these Netscape releases, AOL was also exercising the exclusive rights to proprietary versions that the another license provided to itself.
I have merely skimmed the surface of the purpose of licenses in the free software world. I did not mention dual licensing, or compatability between different licenses, or the myriad of other licenses available for that matter, though I encourage you to do some extra reading if you’re interested! Again, I am not a lawyer nor am I very familiar with the technical aspects of the licenses, so please correct me if there is a mistake or post a comment if you have anything to add!
- GNU General Public License v3.0
- GNU General Public License v2.0 – This version is deprecated
- GNU General Public License v1.0 – This version is deprecated
- The Emacs General Public Licence, a February 1988 version, a direct predecessor of the GNU GPL
- GNU Lesser General Public License v2.1
- A quick guide to the licensing terminology in: Open Source Glossary
- Frequently Asked Questions about the GPL
- Free Software Leaders Stand Together, a joint statement in support of the GPL
- History of the GPL
- Linux and the Law
- GNU General Public License and Commentaries – Edited by Robert Chassell.
- Make Your Open Source Software GPL-Compatible. Or Else. (David A. Wheeler, 7 April 2004) — why a GPL-compatible license is important to the health of a project
- GPL, BSD, and NetBSD – why the GPL rocketed Linux to success by David A. Wheeler
- List of presentation transcripts about the GPL and free software licences
- A paper on enforcing the GPL