Software licensing may seem like a complex topic that requires a deep understanding of legal terms and special cases, but it needn’t be so daunting. In this resource article, we’ll provide useful information and helpful definitions relating to open source licensing and give descriptions and explanations of several commonly used licenses, so you can proceed with confidence.
Elements of Open Source Software
Before we get to the specific licenses, though, let’s start with some basic definitions to help you get a handle on the fundamentals of the topic. For example, what is an open source license? For that matter, what is open source? These are great questions. Generally, the term “open source” refers to something that can be modified and shared because its source is publicly available and accessible.
The Open Source Initiative (OSI) has done a lot of work to help provide clarity and common understanding in this area. The organization’s goal is to raise awareness and adoption of open source software and to facilitate the process for open source communities. The OSI has developed a standard Open Source Definition (OSD), outlining the 10 key elements of open source software, which are described in greater detail on their website.
- Free redistribution
- Source code
- Derived works
- Integrity of the author’s source code
- No discrimination against persons or groups
- No discrimination against fields of endeavor
- Distribution of license
- License must not be specific to a product
- License must not restrict other software
- License must be technology-neutral
Open source compliant licenses adhere to these guidelines. According to the OSI, “open source software is made by many people and distributed under an OSD-compliant license which grants all the rights to use, study, change, and share the software in modified and unmodified form.”
There are many types of open source licenses, but they generally fall into two main categories, known as permissive and copyleft. Let’s look more closely at those terms as well.
A permissive license is a simple, basic license that guarantees the freedom to use, modify, and redistribute work, with the acknowledgment of the original creator.
The term copyleft is a play on the word copyright, which is a law restricting the use, modification, and distribution of creative works without the express permission of the copyright holder. Under copyleft, as under a permissive license, the creator also grants permission to other people to use, modify, and share the work, with the added caveat that any subsequent or derivative works are distributed under the same agreement with no additional restrictions. This is a key point: derivative works must use the same license as the original work.
According to the OSI, copyleft refers to “licenses that allow derivative works but require them to use the same license as the original work. For example, if you write some software and release it under the GNU General Public License (a widely used copyleft license), and then someone else modifies that software and distributes their modified version, the modified version must be licensed under the GNU GPL, too – including any new code written specifically to go into the modified version.” As the OSI website says: Most copyleft licenses are open source, but not all open source licenses are copyleft.
Although many open source licenses exist, some are more widely used than others. OSI lists nine of the most widely used licenses, which are described below:
Apache License 2.0 – The Apache license is a permissive license written by the Apache Software Foundation (ASF). Per Wikipedia, “it allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software under the terms of the license, without concern for royalties.”
BSD 3-Clause "New" or "Revised" License – BSD licenses are a family of permissive licenses, which get their name from the Berkeley Software Distribution (BSD), a Unix-like operating system. The BSD 3-Clause license permits redistribution, with or without modification, for any purpose, provided that its copyright notices and disclaimers are maintained. The license also restricts the use of contributors’ names for endorsement of a derived work without specific permission.
BSD 2-Clause "Simplified" License – This license, which is also referred to as the FreeBSD license, is similar to the BSD 3-Clause license in that it permits redistribution, with or without modification, for any purpose, provided that the copyright notices and disclaimers are maintained. It, however, omits the third clause relating to endorsement.
Common Development and Distribution License (CDDL) – The CDDL is a copyleft license, based on the Mozilla Public License and produced by Sun Microsystems. According to Sun’s definition, the CDDL is “a file-based license, which means that any changes to files contained in the project need to remain licensed under the CDDL. New files, however, may be licensed under any license chosen by the author (including closed-source licenses). The CDDL is based on the Mozilla Public License (MPL) and includes a patent grant clause so that any technology covered by patents will be granted to other projects using the code.”
Eclipse Public License version (EPL) 2.0 – The EPL is a less restrictive copyleft license created by the Eclipse Foundation and used for the Eclipse IDE, among other things. It is approved by the OSI, but is not compatible with the GPL.
GNU General Public License (GPL) – The GPL is a free, copyleft license, founded on the principle that “nobody should be restricted by the software they use.” Subsequently, it maintains that every user should have the following freedoms:
- The freedom to use the software for any purpose,
- The freedom to change the software to suit your needs,
- The freedom to share the software with your friends and neighbors, and
- The freedom to share the changes you make.
In terms of licensing, this means, if you distribute a modified version of software in binary form, you must include the source code, so that others can also modify it and so that everyone has full access to the code. The GPL’s long and storied history is worth reading about to better understand its impact on the evolution of open source licenses. The two main versions of the GPL are GPLv2 and GPLv3.
GNU Library or "Lesser" General Public License (LGPL) – The LGPL is intended for use with software libraries. Like the GPL, it prescribes a strong copyleft policy for modification and distribution. However, it also allows linking with software with a wider range of license types.
MIT License – The MIT License, which originated at the Massachusetts Institute of Technology, is a permissive software license that puts only very limited restrictions on reuse and has high license compatibility.
Mozilla Public License (MPL) 2.0 – According to the FAQ, “the MPL is a simple copyleft license. The MPL’s ‘file-level’ copyleft is designed to encourage contributors to share modifications they make to your code, while still allowing them to combine your code with code under other licenses (open or proprietary) with minimal restrictions.”
Another factor to consider when choosing a license is the “strength” of the license. In this article, Heather Meeker explains the concept: “Strength refers to the degree to which surrounding software may need to be subject to the same copyleft requirements. For example, GPL is strong because it requires that any program that contains GPL code must contain only GPL code. LGPL is weaker because it allows dynamic linking to other proprietary code without subjecting that linked code to the same GPL requirements.”
Meeker lists the copyleft licenses from stronger to weaker as follows:
- Lesser GPL (LGPL)
- Mozilla Public License (MPL)
- Eclipse Public License (EPL)
- Common Development and Distribution License (CDDL)
Similarly, she lists the permissive licenses in this order:
- BSD licenses
- Apache 2
So, there you have an overview of some of the most widely used licenses. Again, there are many other categories of open source licenses to consider, including:
- International licenses, such as the European Union Public License and the CeCILL License 2.1
- Special purpose licenses, such as the NASA Open Source Agreement 1.3 and the Educational Community License, Version 2.0
- Redundant licenses
- Non-reusable licenses
- And more, including those that are uncategorized
You can learn more about open source software licensing through the articles and links below.
- An insider’s look at drafting the GPLv3 license
- Frequently Asked Questions about the GNU licenses
- Sharing vs. free vs. public
- How and why to use Creative Commons licensed work
- The mysterious history of the MIT License
- License scanning and compliance programs for FOSS projects
- Including copyright notices in open source software projects
- OSI license approval process