Software Licensing in Open Source
Open Source software is ubiquitous today as a popular way to distribute software freely within the community. However, software licensing that is built on top of intellectual property laws is easy to overlook. Github shows that the percentage of their licensed public repositories has never passed 25% since 2009. Understanding these licenses and making the correct decision for a program can transform them into tools that can help creators’ intentions and goals for a project.
Types of licenses
Every intellectual property is automatically copyrighted. For them to be freely used, modified, and shared by a non-copyright holder of software, it must be licensed. Open source licenses can be divided into two categories; permissive and copyleft. Both permissive and copyleft licenses allow contributors to modify and distribute the licensed software. Permissive licenses tend to have lesser restrictions than copyleft licenses. Permissive licenses allow developers to do practically anything, including making the software proprietary. In order to use the software, a developer generally only needs to provide an attribution and a warranty disclaimer, including how the code is used is not the responsibility of an author.
Permissive licenses are meant to put developer’s intentions first, granting them any power to modify and distribute the code the way they want to. Thus, this license is generally chosen when the goal is to have the software shared and used as widely as possible. Popular licenses are MIT, X11, BSD, and Apache 2.0. MIT and BSD are very similar in terms of content and level of freedom they give to the users. MIT license allows users to do anything they want as long as the original license is included in the derivative. The Apache license has a similar philosophy, but includes parts about patents and trademarks making it commercially favorable. When changing Apache licensed code, one must notify the author, and protect the original trademarks of the author from being used in derived software. There is a patent grant clause included in Apache license which protects the author from patent trollers as quoted below.
“If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.”
Copyleft licenses can be broken down into different categories. Strong copyleft ensures that software remains copyleft and open-source throughout, while weak copyleft allows for the license to change. Permissive copyleft licenses allow open-source software products to mix with closed-source products, while strict copyleft licenses prohibit mixing with closed products. Three of the most widely used copyleft licenses are GPL, LGPL and AGPL. Broadly, GPL relates to issues about products, LGPL entails issues concerning libraries, and AGPL concerns matters regarding network services. The three categories are briefly discussed below.
GPL allows for reuse of the source code to make other works (derivatives), but one needs to license that derivative under GPL if they wish to distribute the work. Under GPL, the source code has to be supplied to users alongside the product. In GPL, the distribution of the source code alongside the product does not include the network codes such as APIs that are used together. LGPL has a weaker copyleft when compared to GPL. The LGPL license requires that sharing of the source code is based on LGPL as opposed to the entire source code. LGPL is more of a library routine, whereby mere modification of the library code requires that the code has to be released alongside the product, in the same manner as GPL. AGPL behaves in the same manner as the GPL only that the conditions are initiated by distribution of the derivative works. In AGPL, unlike in GPL, the network code is distributed alongside the source code and derivative work.
What license works for you?
All software projects are an intellectual property and fall under copyright law. In order for them to be distributed effectively it is important to pick a license that best fit the purpose and the goal of your project. You can refer to sites such as The Open Source Initiative and Choosealicense as they provide very good information and some ‘rules-of-thumb’ for choosing a license.