Reuse is not a topic of debate with proprietary software. When developers produce software in-house, they create an item of intellectual property that is protected by the restrictions of a commercial license. But as the industry evolves and embraces open source software, including as small components in a larger development product, open source software licensing takes on greater importance.
Companies and individuals have released a growing volume of open source code subject to much less restrictive licenses, which often grant users the right to examine, modify, use, redistribute and even resell the code at any time. anyone for any purpose. Open source software has had a remarkable effect on software development, as it enables contributions from a global community of developers, sometimes accelerating the creation of powerful new products without a prohibitive cost or time burden.
But licenses sometimes pose challenges with free software. There are a myriad of open source software licenses, and each imposes some level of binding terms and conditions. So the challenge with open source software is not just how to access or modify that code, but rather how to do so while respecting the terms of those licenses and how the licenses interact with each other.
It is easy to forget that there is a difference between open-source and free Where public domain Software. Licenses govern open source software. There are dozens of established open source software licenses, each with their own unique, sometimes drastically different, terms and conditions. It is crucial that developers understand some of the most vital terms that come with various open source licenses to avoid possible legal ramifications.
Here’s what developers should know about five common open source software licenses.
Apache 2.0 License
the Apache 2.0 License provides a wide range of guidelines that apply to both copyrights and patents. It is unusual for open source licenses to cover both.
Apache License 2.0 confers a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license. Users may reproduce the licensed work, prepare derivative works, publicly display or perform the work, sublicense, and distribute the work or modifications in source code or object code form.
When open source software is released under the Apache 2.0 License, developers can use the licensed software forever, anywhere, with no purchase fees or royalties; and they can redistribute variations of the code under different licenses. These rights cannot be taken away, although there are exceptions in patent infringement cases — see section three of the license. Also, there are certain requirements when redistributing code under Apache with or without modifications, but these requirements generally relate to how license information is displayed and how credit is provided.
There are two permutations of the BSD license, which generally applies to software with virtually no distribution and use restrictions. BSD licenses, named after the Berkeley Software Distribution operating system, are quite common, especially for free software.
the 3-Clause BSD Licensealso known as New BSD license Where Modified BSD License, follows a simple copyright arrangement. Developers may use and redistribute software under this open source license in source or binary form, with or without modifications. There are only three points, or clauses, that developers must adhere to:
- users must include the copyright notice, along with the list of conditions and a standard disclaimer;
- redistributions in binary form must reproduce the standard copyright notice, conditions and disclaimer; and
- neither the copyright holder nor the contributors may be used to endorse or promote products created from the code without separate consent. Therefore, a developer cannot fork code then claim that the creator of the code sanctioned this new version.
the 2-Clause BSD Licensealso called the Simplified BSD license or the FreeBSD Licensesimply removes the third clause regarding author/contributor promotion.
There are two versions of the GNU General Public License (GPL). The terms of the latest iteration, GPL version 3, are generally clear and readable; it allows open copying, redistribution and modification. Developers using open source code covered by version 3 of the GPL may choose to charge fees for their open source software.
However, the GPL imposes several important restrictions on developers and users. The GPL emphasizes copyleft behaviors for activities such as linking, distributing, modifying, and sublicensing or news. Generally, copyleft clauses require that uses of the work adhere to the same terms and conditions to which the original code adheres. Thus, open source software obtained under GPL version 3 retains these rights indefinitely. Additionally, developers must include a copy of the GNU GPL with the software as it is redistributed and in the software itself. Other restrictions exist for source and binary software distributions under the GPL.
The GNU Lesser General Public License (LGPL) offers a slightly more permissive option than version 3. The agreement, for example, allows LGPL code to be linked with code under non-GPL licenses — a practice prohibited under version 3. 3 of the GPL. Therefore, developers often use LGPL when they want to allow the use of non-GPL open source libraries, but preserve other copyleft restrictions.
the MIT license is one of the shortest and simplest of all open source software licenses. This license grants broad permission to anyone to use the software without restriction; the developer may use, copy, modify, distribute, re-license and even sell the software.
The only restriction with the MIT license is that the copyright notice, permission notice and disclaimer must accompany all copies or partial copies of the software.
Mozilla Public License 2.0
the Mozilla Public License (MPL), version 2.0, is generally considered a weak copyleft license. This open source license is a bit more permissive than GPL in terms of linking MPL code with code under other licenses, but it still enforces some key copyleft terms. For example, developers should free any source code which results from the project under MPL, but they can combine MPL and proprietary code, as long as the former remains distinct. The development team can release binaries under a different license, but the source code must be MPL compliant. MPL is generally considered compatible with GNU LPGL and GPL.
Developers can use, modify, and distribute the software and protect it with a warranty, and they can even use the software in a patent. However, they must include a copyright notice, a copy of the license, and source disclosure – where the source code came from.