The Free Software licenses
Free Software licenses, here is a topic that could seems to be easy to understand, but not really when you go deeper in their details. Indeed, among the various existing licenses, the rights and obligations are not always the same and it’s always a nice debate topic among the communities to determine which one is the most “free license”.
This article will try to present with a synthetic and vulgarized way some licenses families and what do they permit or not. We’ll also see the available licenses for non software projects (like art, books, etc).
What is a Free Software
The Free Software intend to provide a different way to study, change, and distribute a software project. It differs from the proprietary software than won’t allow you to read their source code, and of course, modify it and distribute it. It also differs from the freeware which is a distribution model of proprietary software free of charges.
Until the software gets into Public Domain, its source code is protected by various intellectual properties laws around the world and that’s the maintainer who tells the user what are its rights relating to the software usage. Proprietary softwares uses specific licenses like End-User License Agreement and don’t provide the software source code. In this case, it’s not legal to modify, reverse engineering, and redistribute the software and doing so can fall under the laws against piracy.
The Free Software movement was made to offer a counterpart to this locked distribution model. Its main goal is to allow the end-user to study, modify, and distribute the sources and/or the binaries with almost no restrictions (depending of the license), free of charges, and is even allowed to make commercial profit on it. These initiatives were mainly founded by the GNU Project and the Free Software Foundation (FSF) (both founded by Richard Stallman, the emblematic figure on the movement) which are, still today, some on the most prominent actors in the field.
The definition of a Free Software has been formally written by Stallman for the FSF in 1986 and edict the 4 following freedoms :
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
When you read these rules, you quickly understand the meaning of Free Software. It’s about freedom and not price (in French, we talk about “Logiciel Libre”). That’s why the common maxime to define the Free Software is “think as in ‘free speech’ and not ‘free beer’ “. By this meaning, a Free Software provides freedom to the user, but it can be distributed through commercial ways. For example, Red Hat Enterprise Linux is a Free Software, but sold as a commercial product. Yggdrasil Linux was the first commercial Linux Distribution.
There isn’t a unique definition of what is a Free Software because some other entities has also written their own one. For example, Debian published in 1997 the Debian Free Software Guidelines where they edict some rules and recognize which licenses are compatible with these principles. On another side, the BSD-based distribution have no formal definition of Free Software and are usually classified as “more permissive” than the FSF’s definition.
Some usual Free Software licenses
There are a lot of Free software Licenses (FSL) and I won’t be able to list all of them… So I’ll list the most common and we will see what are their differences and also their compatibility with other licenses.
The compatibility is a very important thing because some FSL are not necessary compatible with each other. For example, the GPL v2 or v3 are very protective licenses while the MIT or BSD are very permissive. Even the GPL is not fully compatible with itself between v2 and v3. There is a compatibility matrix established by the GNU Project that explains the compatibility between GPL versions, and it’s not that simple to understand.
The comparison above is mainly inspired by GitHub’s dedicated site : Choose an open source license.
This list is absolutely not exhaustive and the order is completely arbitrary.
The MIT License
The MIT License was made by the famous Massachusetts Institute of Technology in late 1980. It is a permissive and very simple licence as its terms are very short. As it provides a very little restrictions, it’s one of the most compatible with other FSL. It’s a very popular license, in 2015 there was 44.69% of GitHub hosted projects licensed under MIT.
Permissions | Conditions | Limitations |
---|---|---|
Commercial use | The license and copyright notice must be included with the licensed material | Limited liability |
Distribution of the licensed material | The material is provided with no warranty | |
Modification of the licensed material | ||
Private use |
Some notable projects under MIT license :
- X Window System
- Ruby on Rails
- Node.js
- Lua
- jQuery
- Microsoft .NET Core
- Microsoft Visual Studio Code
The GNU General Public License v2
The GNU GPL v2 is one of the most widely used FOSS license, but has a strong copyleft requirement. Indeed, the GNU GPL licenses are mainly focused on redistribution and sharing improvement meaning that all derivative works must be redistributed. Because of that, the license is considered less permissive than the previously introduced MIT because you can’t integrate GPL-licensed material into proprietary code. Another important aspect is the modifications must be distributed with the same license.
Permissions | Conditions | Limitations |
---|---|---|
Commercial use | Disclose source | Limited liability |
Distribution of the licensed material | License and copyright notice must be included | The material is provided with no warranty |
Modification of the licensed material | Modifications must be distributed with the same license. Some exceptions are possible. | |
Private use | Changes made to the licensed material must be documented |
Notable projects :
- Linux Kernel (except some parts)
- Discourse
The GNU General Public License v3
The GNU GPL v3 is an enhancement of the v2 and made some important changes for compatibility with software patents and other FSL like Apache 2.0. It received some criticisms during its writing and there are still some projects that has not adopted it, notably the Linux Kernel because Linus Torvalds was opposed to it. However, its adoption is still growing and today the “GPL family” is estimated to 24% of FOSS projects.
Permissions | Conditions | Limitations |
---|---|---|
Commercial use | Disclose source | Limited liability |
Distribution of the licensed material | License and copyright notice must be included | The material is provided with no warranty |
Modification of the licensed material | Modifications must be distributed with the same license. Some exceptions are possible. | |
Private use | Changes made to the licensed material must be documented |
Notable projects :
- Ansible
- Bash
- The GIMP
The Apache License
The Apache license is a permissive FSL. It grants the user some usual rights like modify and distribute the software, and can be associated with other licenses. The license is compatible with GPL v3, meaning they can combine code that originates from both licenses but the result should be delivered under GPL v3. This license also grants a right over patent use, meaning the user should not have to worry about infringing any patents by using the software.
Permissions | Conditions | Limitations |
---|---|---|
Commercial use | License and copyright notice must be included | Limited liability |
Distribution of the licensed material | Changes made to the licensed material must be documented | The material is provided with no warranty |
Modification of the licensed material | No rights granted over trademarks | |
Private use | ||
Patent use, grant a patent right from the contributors |
Notable projects :
- Kubernetes
- Apache HTTPD and various other Apache projects
- Android (user space parts)
The BSD Licenses
The BSD licenses is a family of permissive FSL. Like other permissive licenses, they don’t impose a lot of restrictions on the use or distribution. This family globally compatible with other FSL and even with proprietary code. The New BSD License and Simplified BSD License are also compatible with GNU GPL. The main requirement is to preserve the license for the derivative work and reproduce the notice among the binaries.
Permissions | Conditions | Limitations |
---|---|---|
Commercial use | License and copyright notice must be included | Limited liability |
Distribution of the licensed material | The material is provided with no warranty | |
Modification of the licensed material | ||
Private use | ||
Patent use (BSD-3 only) |
Notable projects :
- Flutter (BSD-3)
- FreeBSD
- Go (programming language)
The GNU Lesser General Public License
The LGPL is a derivative of the GNU GPL license. Its main feature a lesser copyleft requirement than the original GPL. It means you can implement LGPL without being obligated to distribute the code of your proprietary software. The LGPL is commonly used for software libraries to ensure the separation between LGPL software and proprietary parts. It’s a compromise between the strong copyleft aspect of GNU GPL and permissives licenses like MIT or BSD.
Permissions | Conditions | Limitations |
---|---|---|
Commercial use | License and copyright notice must be included | Limited liability |
Distribution of the licensed material | Disclose source | The material is provided with no warranty |
Modification of the licensed material | Same license for libraries | |
Private use | Changes to the licensed material must be documented | |
Patent use (BSD-3 only) |
Notable projects :
- FFmpeg
- FreeCAD
- GTK
- Some VLC libraries
The Mozilla Public License
Like the name could suggest it, the MPL is a license written and maintained by the Mozilla Foundation. Its main feature is to be a weak copyleft license setting itself between the very permissives licenses (like MIT and BSD quoted above) and stronger copyleft one like GNU GPL. This license permit to integrate the code in proprietary material as long as the MPL-licensed content remains available under the MPL terms. Like Apache’s, the MPL also provide a use right for patented material that contains the MPL.
Permissions | Conditions | Limitations |
---|---|---|
Commercial use | License and copyright notice must be included | Limited liability |
Distribution of the licensed material | Disclose source | The material is provided with no warranty |
Modification of the licensed material | Same license for the files | No rights granted over trademark material |
Private use | ||
Patent use |
Notable projects :
- Mozilla Firefox
- Mozilla Thunderbird
- LibreOffice (which contains some LGPL material)
- Brave Browser
The WTFPL
The last one of this list is a kind of a special one… It was created by Banlu Kemiyatorn in 2000 for its own software project, and rewritten in version 2 by Sam Hocevar, the Debian project leader between 2007 and 2008. The WTFPL, which means Do What The Fuck You Want Public License is a extreme FSL that gives only rights and no restrictions and is mainly a parody of the GNU GPL. Basically, this license is very close to the Public Domain and can be used even if the author is not able to directly put its work under Public Domain (because of legal restrictions for example).
Despite its funny aspect, the WTFPL is recognized as GPL-compatible by the Free Software Foundation and the Fedora Linux Project, but not recommended to be used.
Permissions | Conditions | Limitations |
---|---|---|
Commercial use | ||
Distribution of the licensed material | ||
Modification of the licensed material | ||
Private use |
Notable projects :
- Liero (video game)
- Some MediaWiki extensions
And for non software projects ?
In this article, we have mainly talked about softwares but Free Licenses also exists for creative materials like Art, Books, and Music. The most well known license is the Creative Commons (CC) Licenses, published by the same named non-profit organization which provides a subset of easy to understand and modular license notices.
However, you need to keep in mind that Creative Commons licenses are not made for Software distribution. One of the main reason is because their terms do not include specific conditions regarding source code distribution and modification. Some versions of Creative Common are compatible with GNU GPL, we’ll see that just bellow with the various possibilities of this license. Just like the Free Software Licenses, the Creative Common is based under the Free Cultural Works dedication.
The Free Cultural Work is defined by these 4 items :
- Freedom to use the work itself
- Freedom to use the information in the work for any purpose
- Freedom to share copies of the work for any purpose
- Freedom to make and share remixes and other derivatives for any purposes
In case of the creator would use some possible restrictions offered by the CC licenses subset, the material could be considered as a Non Free work.
The Creative Commons License have six possibilities.
Creative Commons Attribution (CC BY)
CC BY is the simplest version of the CC licenses subset. It grants the right to reuse, distribute, remix, adapt, and build upon the material in any medium or format with only one condition : give attribution to the creator. A commercial usage is allowed.
Creative Commons Attribution ShareAlike (CC BY-SA)
CC BY-SA provides the same rights as CC BY, but include a complementary condition : the remixed, adapted, or build work upon the material must be distributed under identical termes with the same license. The commercial usage is allowed. This license is compatible with GPL v3
That’s the license I use for this blog.
Creative Commons Attribution NonCommercial (CC BY-NC)
CC BY-NC gives the same rights as CC BY, but impose one restriction : the commercial usage of the licensed material is forbidden. This license is not considered as a Free Culture license because of the NC restriction.
Creative Commons Attribution NonCommercial ShareAlike (CC BY-NC-SA)
CC BY-NC-SA provides the same rights as CC BY, with the ShareAlike condition (the material must be distributed with the same license), but include a non commercial usage restriction. Because of it, this license is not considered as a Free Cultural Work.
Creative Commons Attribution NonDerivative (CC BY-ND)
CC BY-ND provides the same rights as CC BY, but include a restriction disallowing the usage of the licensed material into derivative works. Because of this, the license is not considered as a Free Cultural Work.
Creative Commons Attribution NonCommercial NonDerivative (CC BY-NC-ND)
CC BY-NC-ND is the most restricted version of the Creative Common licenses. It forbids the commercial usage and the derivative works, so the license is absolutely not a free one.
Creative Commons Public Domain Dedication (CC0)
CC0 (Zero) is the most open Creative common license because it’s the same terms as a Public Domain. There is no copyright anymore over the material and the reusers are allowed to distribute, remix, adapt, build upon the material with no conditions. This license can be suitable for software distribution and is fully compatible with GNU GPL.
Warning : the CC0 license cannot be revoked and must be applied by the original creator !
So, which license should I use ?
It depends !
As you seen, there are a lot of available licenses with various degrees of freedom and permission. In my humble opinion, you should use the license that correspond the most to what you expect from the community regarding your material. Do you want to restrict some usage or be more permissive ? Do you want to force the derivatives works being published or not ?
Like always with Free Software, you have the choice, a luxury you don’t have with proprietary material !