The term “open source” has its origins in the context of software development, designating a specific approach to developing computer programs. Nowadays, however, it stands for a broad set of values – open source means open exchange, transparency, collaborative participation and development for the benefit of the entire community.
Any open source project or product requires licensing. Open source licenses are those that comply with the Open Source Definition. What does that mean? In short, they allow the free use, modification, and distribution of the software. Think of open source licensing as binding contracts allowing the user of a software component to use that software under specific conditions, such as in commercial applications. Without a license, the software can simply not be used.
There are two main categories for open source licensing that are worth mentioning, copyleft and permissive.
The copyleft category of licenses is a method to ensure that any modified version of the copyrighted software or program is also released under the same conditions. Releasing a program under a copyleft license means that the author issues a statement according to which others have the right to use, modify and distribute the work while they maintain the reciprocity of the obligation. In other words, when modifying the software component under a copyleft open source license the authors have to make sure that their modifications are released under the same license, ensuring they are open for others to use.
The permissive license, on the other hand, allows re-licensing of derivative works, besides permitting the use, modification and redistribution. Permissive open source licenses foresee minimal restrictions on the use of open source programs. Thus, they may have varying degrees of freedom to use, modify and redistribute the open source code. This means that permissively licensed software can be modified, and that modified version can be licensed in any way that the authors see fit.
Now that we’ve established how important licensing is, and what types of open source licenses you can come across, here comes the question: which license should you choose? Of course, the final choice is up to each and every one of us, and there are enough open source licenses to choose from. In this article, we will look at four of the commonly used licenses.
GNU General Public License (GPL)
The GNU’s General Public License, or simply put GPL, is perhaps the most popular copyleft open source license out there. The GPL was created by Richard Stallman in order to protect the GNU software from being developed into proprietary software. Stallman was also the one who introduced the “copyleft” concept in 1985, in his GNU Manifesto. As he said: “GNU is not in the public domain. Everyone will be permitted to modify and redistribute GNU, but no distributor will be allowed to restrict its further redistribution. That is to say, proprietary modifications will not be allowed. I want to make sure that all versions of GNU remain free.”
With GPL being a copyleft license, all software written or developed based on a GPL component should be released as open source. This means that the software must be released with its full source code, as well as with the rights to modify and distribute the code, from which the entire community benefits. The purpose of the GNU General Public License was to avoid software to become proprietary. “This General Public License does not permit incorporating your program into proprietary programs.” appears in the very last paragraph of the GPL.
The GPL is effectively a “viral” license, any code it touches, becomes GPL licensed, or is in violation of the rules of the GPL.
The GNU General Public License is a complex license, and like any other license, it presents with advantages and disadvantages. It is great to use when modifying or extending the gcc compiler. It is a good choice for companies that provide technical support, services, documentation, etc for the GPLed software. On the other hand, it is not suitable for those who want to trade and profit from software. It can be a poor choice as it may come with possible legal complications, stringent terms and too many restrictions.
Did you know?
The easiest way to avoid GPL licensing restrictions is by using FreeBSD with MIT/BSD licensing. Don’t know if FreeBSD is suitable for your next project? We’re here to help!
The Apache License
The Apache License is a permissive, open source software license, that was written by the Apache Software Foundation (ASF). It is one of the popular, commonly used open source licenses, which allows its users to freely use the software, modify, and distribute the software, as well as its modified versions, without worrying about royalties. Of course, it goes without saying that users need to observe the terms of the Apache License.
The first version of this license was released in 1995 by the Apache Group, which later came to be known as the Apache Software Foundation. Following the example of Berkeley, which in 1999 accepted the argument raised by the Free Software Foundation and retired the advertising clause, forming the modified BSD license, Apache created the Apache License version 1.1 in the year of 2000, in the same way. Removing the advertising clause means that derived products are not required to include attribution in advertising materials, but only in their documentation.
In 2004, the Apache Software Foundation released the Apache License version 2.0, which granted patent rights with the purpose to make it easier for non-ASF projects and to make it compatible with GPLed software. This license demands preservation of the copyright notice and disclaimer.
Berkeley Software Distribution (BSD) Licenses
The Berkeley Software Distribution Licenses, or simply put the BSD Licenses are a family of permissive open source software licenses that impose minimal restrictions on the use and distribution of the software. The BSD license family includes the original BSD License (or 4-clause license) and its two variants, the Modified BSD License (3-clause license), and the Simplified BSD License/FreeBSD License (2-clause license).
The BSD licensing model allows the free modification and distribution of the software’s code in the source or binary format, given that a copy of the copyright notice, list of conditions, and the disclaimer are retained.
The original BSD license included the controversial advertising clause, which required authors of works derived from a BSD-licensed work to acknowledge the original source in all advertising materials. When the number of major contributors reached into the 100s this clause became impractical, requiring pages and pages of acknowledgements. The clause was removed when the Modified BSD License was published in July 1999. Furthermore, the FreeBSD License is an even more simplified version, removing both the advertising clause and the non-endorsement clause.
There are multiple advantages to using a BSD-style license for your product or project. To name only a few of them, a BSD license incurs almost zero compliance cost, and allows the option to future commercialization of the final results with minimal legal issues. Also, keep in mind that licensees have the option to modify the work, and redistribute derivative work under different terms, while they are not bound to distribute the source code with their derivative work. The permissive nature of the BSD license has led to it being preferred for network standards and reference implementations, because of its compatibility allowing inclusions in both open source and commercial software.
The family of BSD licenses is among the oldest and most commonly used license families in the Free and Open Source Software (FOSS) ecosystem, and many new licenses were inspired by the BSD-style licenses.
The MIT License is one of the most permissive free software licenses. The license, which has its origins at the Massachusetts Institute of Technology (MIT) in the late 1980s, puts very limited restrictions on reuse and provides high license compatibility. In brief, if you add a copy of the original MIT license and copyright notice, you have the freedom to do basically anything with MIT-licensed software. This simplicity makes it extremely popular among developers.
The advantages of using MIT licensing are broad, the first one being how permissive the license is. It is a friendly license both for developers and for businesses, as it allows keeping the code private, as long as you provide proper attribution for the work, along with a copyright notice.
The MIT license stipulates that you can use your code for commercial purposes, and on top of that, others who use your code can also utilize it for commercial purposes. Users can also freely distribute MIT-licensed projects. In the end it ends up being effectively the same as the simplified BSD license.
One side effect of the permissiveness of the MIT and BSD family of licenses, is that they are compatible with most copyleft licenses, such as the GPL, making it possible for permissively licensed software to be re-licensed as and integrated with GPL software, but not the other way around. Once permissively licensed code has been co-mingled with viral licensed code, it cannot be incorporated back into permissively licensed code without infecting it with the viral license.
Basically, the only conditions of the MIT license are that the copyright notice must remain intact, and you cannot hold the original author liable.
According to WhiteSource Software, as of 2020 the MIT license was used in 27% of four million open source packages.
Other open source licenses worth mentioning are the Microsoft Public Licenses (Ms-PL), the Common Development and Distribution License (CDDL), the Eclipse Public License (EPL), or the Mozilla Public License (MPL). But these are for another story.
FreeBSD and BSD/MIT licensing – More Than Just Software Freedom
Working with FreeBSD is special, it can feel like a match. Its different components have been put together nicely, you can easily deal with tuning and configuration, and, over many years, its tools have been developed and improved into what makes FreeBSD so great to work with.
BSD-style licenses bring value to companies and commercial-use cases, as they are compatible with proprietary licenses and offer flexibility. These licenses only place minimal restrictions and are not a legal concern, unlike copyleft licenses.
The BSD/MIT licensing model comes with many convincing benefits for open source projects. As mentioned above, it is more than cost-effective (the cost being nearly zero), it allows the option of commercializing the results with little concern for possible legal issues, and evolves over long periods of time. For these reasons, developers often prefer BSD/MIT licenses because they provide the freedom to work with the code basically in whatever manner developers see fit.
Although there are often concerns about competitors stealing your work with BSD/MIT licensing, these are unfounded, as under a BSD license companies can work together contributing to a competitive BSD variant, should one sole company dominate a strategic product niche. This only increases market competition and fairness.
Both small and large companies should take into consideration BSD/MIT licenses for they open source projects when it is to their advantage to maintain minimum legal and organization overheads in relation with a true BSD-style Open Source project.
To sum up, the BSD license allows for BSD code to remain open source, as well as to become integrated into commercial products or solutions, according to the company’s needs. And since it does not present with the legal complexity of copyleft licenses, such as GPL, developers and companies can focus on their work, rather than on the legal implications of their code.
Consider the new smart washing machine, which has network connectivity so it can send a notification to your smart phone when your laundry cycle is complete. Would you prefer the manufacturer used the mature BSD licensed network stack, or wrote their own in order to avoid the licensing entanglements of the GPL?
We have determined that licensing is a huge and complex topic, and how necessary it is to choose the right license for your project. Considering that most developers rely on open source components, it is of great importance to understand the basics and open source licensing and choose the right license.
Like this article? Share it!
Pingback: Valuable News – 2021/04/26 | 𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗
Pingback: Deep Diving Into the Strengths of FreeBSD | Klara Inc.