052.3 Lesson 1
Certificate: |
Open Source Essentials |
---|---|
Version: |
1.0 |
Topic: |
052 Open Source Software Licenses |
Objective: |
052.3 Permissive Software Licenses |
Lesson: |
1 of 1 |
Introduction
Permissive licenses are currently the most widely used open-source licenses, in contrast to restrictive licenses such as the GNU General Public License (GPL). Permissive software licenses tend to be simple and flexible, and provide a wide range of freedom to their authors — perhaps the widest freedom available among open source licenses.
This type of license grants broad freedom to software developers regarding the use, modification, and redistribution of the software, so long as they acknowledge the original author. For example, someone can usually distribute a derivative work under a closed-source license, so long as the work includes attribution for the author of the work from which the new one was derived.
The principle behind this logic is to allow the maximum possible dissemination of the software. Permissive licenses claim to benefit individuals and the public by facilitating commercial use of the software, while preserving the rights to the original author through attribution.
It is no coincidence that the first and most important permissive software licenses were developed in the academic field, such as the BSD-like licenses of the University of Berkeley in California or the MIT/X11 License of the Massachusetts Institute of Technology. These are known as academic open source licenses. Their influence within the industry was such that they laid the groundwork for similar permissive software licenses conceived outside of academic contexts, such as the Apache License from the Apache Software Foundation.
Rights and Obligations of Permissive Software Licenses
In general, the most popular permissive software licenses grant the licensee the unlimited right to:
- Use the software
-
Software covered by a permissive software license can be used by anyone (from individual users, to commercial companies, to public authorities) and for any purpose, whether personal or professional.
- Modify the software
-
The software can be improved, adapted, or even integrated as a component (e.g., a library) into other software.
- Redistribute the software
-
If the software is modified, taking the form of a derivative work, it can be redistributed under different licenses, including proprietary ones.
The only obligation in permissive software licenses usually is that of attribution: The licensee is required to indicate the name of the original author of the software in the derivative work and include a copy of the license text in any redistribution of the software.
Features of the Most Important Permissive Software Licenses
This section explains the differences between the MIT/X11 license, the most common BSD licenses, and the Apache 2.0 license, all of which are in wide use nowadays.
MIT/X11 License
The MIT/X11 license (text: https://opensource.org/license/mit), also known as the X11 license, is one of the academic licenses mentioned earlier. The license takes its name from the X Window System software developed by the Massachusetts Institute of Technology back in 1987. This license is one of the oldest and most popular permissive software licenses, partly because of its simple, clear language.
This license grants the licensee the rights to:
-
Use, modify, and distribute the software
-
Commercialize the software, with or without modifications
-
Release derivative works under a different license, even as closed-source software
The sole obligation of the licensee is to include the copyright notice and the license text in the source code of the software or of its derivative works.
The MIT/X11 license is considered to be compatible with all the most important copyleft licenses, both weak and strong. In particular, the MIT/X11 license is compatible with the
-
GNU General Public License (GPL), versions 2.0 and 3.0
-
GNU Lesser General Public License (LGPL), versions 2.0 and 3.0
-
Mozilla Public License (MPL)
That means that derivative works of software originally licensed under the MIT/X11 license can be redistributed under one of the above-mentioned licenses or be included in projects released under one of the above-mentioned licenses.
2-Clause BSD License
The 2-Clause BSD License (text: https://opensource.org/license/bsd-2-clause) derives from the original BSD license, created in 1980 by the University of Berkeley in California as the license for BSD, its Unix-like operating system.
The license is well known for its simplicity and, as its name indicates, consists of just two short clauses. It is substantially identical to the MIT/X11 license. Like the MIT/X11 license, this one requires attribution in the software. Additionally, the 2-Clause BSD License requires the licensee to include the license text in the documentation and other materials provided when redistributing the code.
To summarize, the 2-Clause BSD license grants the rights to:
-
Use, modify, and distribute the software
-
Commercialize the software, with or without modification
-
Release derivative works under a different license, even as closed-source software
The licensee has the obligation to:
-
Include the copyright notice and the license text in the source code and binary of the software or of its derivative works
-
Include the copyright notice and the license text in documentation or other materials provided with the software
The 2-Clause BSD license is considered to be compatible with all major copyleft licenses, both weak and strong. In particular, the 2-Clause BSD license is compatible with:
-
GNU General Public License (GPL), versions 2.0 and 3.0
-
GNU Lesser General Public License (LGPL), versions 2.0 and 3.0
-
Mozilla Public License (MPL)
Therefore, derivative works of software originally licensed under the 2-Clause BSD license can be redistributed under one of the above-mentioned licenses or be included in projects released under one of the above-mentioned licenses.
3-Clause BSD License
The 3-Clause BSD license (text: https://opensource.org/license/bsd-3-clause) is yet another variant of the original BSD license, consisting of just three clauses. The main feature distinguishing this license from the sister 2-Clause BSD license is the “non-endorsement clause,” which aims to prevent the name of the original author from being exploited to distribute or sell derivative works.
The 3-Clause BSD license grants the licensee the rights to:
-
Use, modify, and distribute the software
-
Commercialize the software, with or without modifications
-
Release derivative works under a different license, even as closed-source software
The licensee has the obligation to:
-
Include the copyright notice and the license text in the source code and binary of the software or of its derivative works
-
Include the copyright notice and the license text in documentation or other materials provided with the software
-
Refrain from citing the name of the copyright holder or contributors to endorse or promote products derived from this software, without specific prior written permission
In order to explain the latter obligation — the “non-endorsement clause” — let’s think of a scenario in which a company or individual creates a derivative work starting from software licensed under a permissive software license. In the absence of this clause, the licensee could promote the new work by indicating that it is a derivative of software by a well-known developer, in order to benefit from their prestige.
As with its sister license, the 3-Clause BSD license is considered to be compatible with all the most important copyleft licenses, both weak and strong. In particular, the 3-Clause BSD license is compatible with:
-
GNU General Public License (GPL), version 2.0 and 3.0
-
GNU Lesser General Public License (LGPL), version 2 and 3
-
Mozilla Public License (MPL)
Therefore, derivative works of software originally licensed under the 3-Clause BSD license can be redistributed under one of the above-mentioned licenses or be included in projects released under one of the above-mentioned licenses.
Apache 2.0 License
The first Apache license was developed by the Apache Software Foundation, a nonprofit organization established in 1999, to distribute its software and make it easy to include in other projects. The mission was to guarantee collaborative software development, embracing the open-source philosophy with a business-friendly perspective.
The Apache 2.0 license (text: https://www.apache.org/licenses/LICENSE-2.0), probably the most widespread among the permissive software licenses, differs from the licenses discussed previously in a few relevant aspects. The main aspect concerns the attribution of patent rights to each licensee, including a clause related to the termination of the patent license, so as to limit and prevent any claims for damages for patent infringement.
Two other obligations are significant. The licensee must release, under the same Apache 2.0 license, any parts or components of the software not modified by the licensee. Furthermore, the licensee must place prominent notices in any modified files stating that the licensee changed those files.
The Free Software Foundation, which promotes restrictive licenses, recommends Apache 2.0 as the best of the permissive software licenses for distributing small amounts of software and libraries.
The Apache 2.0 license grants the licensee:
-
The right to use, modify and distribute the software
-
the right to commercialize the software, with or without modifications
-
The right to release derivative works under a different license, even as closed-source software
-
A patent license to use, sell, import, and otherwise transfer the software covered by a patent
-
A patent license to use, sell, import, and otherwise transfer the software which might otherwise infringe a contributor’s patent claim
The licensee has the obligation to:
-
Place prominent notices in any modified files stating that the files have been modified
-
Release all unmodified parts of the original software under the Apache 2.0 license
-
Include the copyright notice and the license text in the source code of the software and its derivative works
-
Include the copyright notice and the license text in documentation and other materials provided with the software
The Apache 2.0 license is considered to be compatible with only some of the most important copyleft licenses. In particular, the Apache 2.0 license is compatible with:
-
GNU General Public License (GPL), version 3.0 but not 2.0
-
GNU Lesser General Public License (LGPL), version 3.0 but not 2.0
-
Mozilla Public License (MPL), version 2.0 but not version 1.1
That means that derivative works of software originally licensed under the Apache 2.0 license can be redistributed under one of the above-mentioned compatible licenses or be included in projects released under one of the above-mentioned compatible licenses.
The limited compatibility between the Apache 2.0 license and other open source licenses is primarily due to the presence of clauses related to the grant of a patent license to the licensee.
Permissive Software Licenses in Relation to Other Open Source Licenses
Now that we have an overview of the common and essential features of permissive software licenses, we can move on to examine how they differ from the public domain software and from copyleft licenses.
Comparison to Public Domain Software
The first distinction between permissive software licenses and public domain software release lies in their very existence. The public domain is not an actual license, but just a way to release software. In other words, by definition, works in the public domain have no license.
The next distinction lies in the obligations that permissive licenses impose on the licensee. In fact, the user of a public domain release has no obligations whatsoever. However, anyone who uses, modifies, or redistributes software under a permissive software license must comply with the attribution obligation explained earlier: a requirement to include the name of the original author and a copy of the license text in the software.
The consequence of the attribution obligation is that no derivative work originating from software under a permissive software license can be released as public domain, because this would violate (or at least circumvent) the original author’s right to receive attribution.
Comparison to Copyleft
The distinction between permissive software licenses and restrictive, copyleft licenses is more complex, especially considering the differences between various copyleft licenses. As seen in previous lessons, one major difference separates strong copyleft licenses (including GNU General Public License (GPL), version 2.0 and 3.0) from weak copyleft licenses (including GNU Lesser General Public License (LGPL), version 2.0 and 3.0, and the Mozilla Public License).
The major difference between restrictive licenses and permissive licenses lies in the copyleft principle, which is core to restrictive licenses. In conformance with this principle, the licensee who modifies software under copyleft license, and then distributes it, must necessarily release — totally or partially — the derivative work with the same license as the original software. Failure to comply with this obligation results in copyright infringement, with its attendant legal consequences.
On the contrary, permissive software licenses do not impose such an obligation. Those who use or plan to release software under this type of licenses can freely decide the license for their derivative work, including proprietary licenses.
Strong Copyleft
The difference between permissive software licenses and strong copyleft licenses are more marked than with weak copyleft licenses.
The essential difference is that strong copyleft licenses require derivative works to be released under the same license as the original software. This also applies if the copyleft-licensed software is integrated into another project: The entire derivative work must be released under the same strong copyleft license.
Weak Copyleft
Unlike strong copyleft licenses, weak ones have only a partial requirement to release a derivative work under the same license. To be more specific, the licensee who redistributes software released under a weak copyleft license must apply the same license to the portion of their work derived from the original one. For example, a library based on a library licensed under the LGPL must also be licensed under the LGPL.
The weak copyleft licenses were conceived precisely to bring their features closer to those of the permissive software licenses. They are nevertheless distinguished from permissive software licenses in that the latter do not impose, under any circumstances, an obligation to maintain the same license on a derivative or integrated work.
Guided Exercises
-
What are the two obligations generally imposed by permissive software licenses?
-
Which of the following licenses is not a permissive software license?
Apache 2.0 license
LGPL license
MIT/X11 license
3-Clause BSD
-
What distinguishes a permissive software license from a copyleft license?
Software released under a copyleft license cannot be distributed, whereas softare under permissive software license can.
The works derived from software under a copyleft license cannot be released under a proprietary license, whereas software under a permissive software license can.
Copyleft licenses are legally recognized only in the United States of America, whereas permissive software licenses are globally recognized.
-
Which permissive software license grants a patent license to use, sell, import, and otherwise transfer the software covered by a patent?
Apache 2.0 license
2-Clause BSD license
MIT/X11 license
3-Clause BSD license
-
When software is released under the MIT/X11 license, can you distribute it under a proprietary license and sell a derivative work based on the software?
Explorational Exercises
-
You are modifying software distributed under the Apache 2.0 license and redistributing the derivative work under a proprietary license. What steps should you follow to be compliant with the Apache 2.0 license obligations?
-
Name at least three examples of popular projects released under permissive software licenses.
-
Why can’t you distribute, under a LGPL 2.0 license, software that includes components that were originally released under the MIT/X11 license, the Apache 2.0 license, and the 2-Clause BSD license? What different weak copyleft license can be used to release the software?
Summary
In this lesson you have learned: * What permissive software licenses are, the rights they grant, and the obligations they provide * The differences between permissive software licenses and other open source licenses * Features of the most popular permissive software licenses * Compatibility of permissive software licenses with other open-source licenses
Answers to Guided Exercises
-
What are the two obligations generally imposed by permissive software licenses?
The obligation to indicate the name of the original author of the software and to include a copy of the text of the license in the derived work.
-
Which of the following licenses is not a permissive software license?
Apache 2.0 license
LGPL license
X
MIT/X11 license
3-Clause BSD
-
What distinguishes a permissive software license from a copyleft license?
Software released under a copyleft license cannot be distributed, whereas softare under permissive software license can.
The works derived from software under a copyleft license cannot be released under a proprietary license, whereas software under a permissive software license can.
X
Copyleft licenses are legally recognized only in the United States of America, whereas permissive software licenses are globally recognized.
-
Which permissive software license grants a patent license to use, sell, import, and otherwise transfer the software covered by a patent?
Apache 2.0 license
X
2-Clause BSD license
MIT/X11 license
3-Clause BSD license
-
When software is released under the MIT/X11 license, can you distribute it under a proprietary license and sell a derivative work based on the software?
Yes.
Answers to Explorational Exercises
-
You are modifying software distributed under the Apache 2.0 license and redistributing the derivative work under a proprietary license. What steps should you follow to be compliant with the Apache 2.0 license obligations?
You should:
-
Insert into each modified file a notice attesting that the files have been modified.
-
Release all unmodified parts of the original software under the Apache 2.0 license.
-
Include the copyright notice and the license text in the source code of the software or of its derivative works.
-
Include the copyright notice and the license text in documentation and other materials provided with the distribution of the software.
-
-
Name at least three examples of popular projects released under permissive software licenses.
-
Angular web framework — MIT/X11 license
-
Ruby on Rails — MIT/X11 license
-
Apache HTTP Server — Apache 2.0 license
-
Kubernetes — Apache 2.0 license
-
-
Why can’t you distribute, under a LGPL 2.0 license, software that includes components that were originally released under the MIT/X11 license, the Apache 2.0 license, and the 2-Clause BSD license? What different weak copyleft license can be used to release the software?
Even though the MIT/X11 license and 2-Clause BSD license are compatible with the LGPL 2.0 license, the Apache 2.0 license is not. Software that includes components released under MIT/X11 license, Apache 2.0 license, and 2-Clause BSD license can be released under LGPL 3.0 license, because it is compatible with all those permissive software licenses.