A Comparison Of The Most Popular Open Source Licenses

The popularity of permissive open source licensing shows no signs of abating. In fact, permissive licensing is slowly edging out traditionally restrictive, copy-left licensing. To date, the three most popular permissive licenses are Apache 2.0, MIT, and BSD. From 2009 to 2015, MIT’s share of the licensing market rose by 15.7 % and Apache’s share rose by 12.4%.

Meanwhile, the GPL family of open licenses saw a loss in market share during the same period. In this article, we’re going to compare the most popular open source licenses.

MIT License

This license is permissive in nature and also one of the simplest. It basically allows developers to modify or re-calibrate source code according to their preferences. The MIT license always includes a copyright statement and a disclaimer, which explains that the software is provided “as is” and that copyright holders will not be held liable for any claims or liabilities.

Holders of the MIT license can produce, without restrictions, any derivative works from the original software and even reap commercial benefits from the sale of the secondary product.

The MIT license is GPL-compatible, but unlike the traditionally restrictive GPL, it isn’t viral. This means that developers can modify the original code without “infecting” the resultant derivative code with the original license.

BSD License or 3-Clause BSD License

This permissive license is similar to the MIT license, with a small but important difference: while it includes the same copyright and disclaimer notices, it also provides an extra non-attribution clause that protects the original creator of the software. This clause is informally termed the “non-endorsement clause.” It requires developers to obtain express permission before using the original name of the creator to promote derivative products.

The 3-clause BSD also requires redistributions in binary form to include the original copyright notice, disclaimer, and list of required conditions.

Essentially, the 3-Clause BSD license is a new modification of the original 4-clause BSD license; in the 3-Clause BSD, the “advertising clause” is left out. The original “advertising clause” required all advertisements mentioning the use of the software to acknowledge the authorship of UCLA Berkeley and its contributors.

This “advertising clause” made the attribution compliance process a cumbersome one and eventually caused the 4-clause BSD license to become incompatible with the GNU GPL. On July 22, 1999, the clause was rescinded. To date, the 2-clause and 3-clause BSD licenses omit the “advertising clause,” making them compatible with GPL.

The simplified 2-Clause BSD license omits the “advertising clause” (from the original 4-clause BSD) and the “non-endorsement clause” from the 3-clause BSD license. Notably, the Net BSD Project (which involves a Berkeley-designed Unix-like operating system) utilizes the 2-clause BSD license.

Today, the “advertising clause” is widely considered a developer’s Rubicon. The cautionary attitude towards it has been well-earned. In 2004, the ill-fated XFree86 4.4 added a similar BSD-type advertising clause that rendered it incompatible with GNU GPL. This eventually led to the XFree86 4.4 being excluded from many Linux distributions.

Apache 2.0 License

This license was released in 2004, replacing the original Apache version 1.1. Like the modified BSD and MIT licenses, the Apache 2.0 is permissive in nature.

The new 2.0 version clearly defines what constitutes legal entities, derivative works, and contributions. It also explicitly specifies the terms surrounding the grant of patent rights, which is absent in the BSD, Apache v1.1, and MIT licenses. Notably, in the event that litigation for patent infringement is pursued against any entity, all patent licenses granted to developers under Apache 2.0 will be discontinued as of the date litigation is filed.

The Apache 2.0 license also has strict rules pertaining to redistribution rights. It specifically requires recipients of any derivative work to be provided a copy of the Apache 2.0 license. Most notably, developers must provide unequivocal statements verifying that files have been modified. The source form of any derivative work must also retain all copyright, patent, and attribution notices from the source form of the original software.

Finally, if the original work includes attribution notices (within a NOTICE text file), developers must ensure that derivative works also include the NOTICE file. Developers are also allowed to include their own attribution notices and copyright statements with said file. As stated, the newly modified BSD licenses do not address patent rights issues; so, the Apache 2.0’s clearly defined rules regarding patent and redistribution rights are clearly unique in their nature.

GPLv3 License

The GPL (General Public License) is another popular open source license. However, it is a copyleft license, as opposed to the permissive BSD, MIT, and Apache licenses.

Both copyleft and permissive licenses allow developers to copy, modify, and redistribute code (derivative or otherwise) freely. The most important difference between the two, however, lies in how each approaches copyright privileges.

While permissive licenses such as Apache 2.0 allow developers to include their own copyright statements, copyleft licenses such as GPL provide no such privilege. Instead, GPL license rules require all derivative works to be subject to the original license. This means that developers cannot make patent or copyright claims on the original software.

The FSF (Free Software Foundation) works to ensure that GPL protects the freedom of all users to modify and distribute code as they see fit. Thus, the GPL is based on what is called the four freedoms: the freedom to use the source code for any purpose, the freedom to make modifications, the freedom to share the source code with anyone, and the freedom to share changes.

Contrary to popular opinion, GPL does not prohibit users from selling derivative works that are based on the original source code; it merely requires that the source code be made freely available to anyone who wants it. This is called the “reciprocity obligation.”

To date, the GPLv3 replaces the GPLv2. Most notably, the GPLv3 is now compatible with other licenses, such as the Apache 2.0. According to the FSF, the GPLv3 also protects users in three unique ways. First, it prohibits source code manipulations that prevent users from making modifications. Second, the GPLv3 is written to comply with the tenets of international laws such as the Digital Millennium Copyright Act and the European Union Copyright Directive. This facilitates an increase in foreign developers using the license outside the United States.

Third, the new GPLv3 prevents corporations like Microsoft from infringing on patent rights and collecting royalties for the use of free software. Of the open source licenses mentioned in this article, the GPLv3 is the only one that provides these three unique user protections.

To date, the FSF has also released the Affero GPL, which facilitates programs that run on servers, and the LGPL (Lesser General Public License), a more permissive form of the GPLv3. The chief purpose of copyleft licenses like GPL is to promote user freedom on a global basis.