2022-09-14

GPL License

What is GPL License

The GNU General Public License (GPL) is a cornerstone of free software, encouraging the development, use, and dissemination of open source software across the globe. It was crafted to ensure software freedom, allowing users to use, modify, and distribute software without restrictions that proprietary software often impose.

The GPL is based on the principle of copyleft. Copyleft uses the mechanisms of copyright law, but flips them around to serve the opposite purpose: instead of using copyright to restrict and control, copyleft ensures that every person who receives a copy of a work can use, modify, and distribute both the work, and derived versions of the work. Any derivative work must also be licensed under the same terms, thus ensuring that freedoms granted by the GPL are preserved, even when the work is changed or added to.

The GPL doesn't only apply to full software applications - it also applies to individual components, libraries, and even smaller snippets of code. Any software that includes GPL-licensed components anywhere within it must itself be released under the GPL. This is a powerful way of ensuring software freedom, but also a significant commitment for software developers to make. Therefore, understanding the GPL and its implications is crucial for anyone involved in software development.

Over the years, the GPL has evolved with new versions to address the changing landscape of software development. These versions include the original GPL (later termed GPL-1.0), GPL-2.0, and GPL-3.0. There are also variations like the Lesser General Public License (LGPL), and the Affero General Public License (AGPL) that cater to specific use cases or address particular concerns in the open-source ecosystem.

LGPL-2.1

The Lesser General Public License (LGPL) version 2.1, released in February 1999, is often seen as a compromise between the strong copyleft of the GPL and more permissive licenses such as the BSD license and the MIT license. The LGPL-2.1 was designed to be used with software libraries, as opposed to full software applications.

Under this license, developers are permitted to use and integrate software released under the LGPL into their own (even proprietary) software without being required by the terms of the GPL to release the source code of their own components. However, if they modify the LGPL-2.1 licensed library itself, they are required to release those changes under the same license.

https://opensource.org/license/lgpl-2-1/

LGPL-3.0

The LGPL-3.0, published in June 2007, is an updated version of the LGPL-2.1. It carries the same permissions and restrictions as its predecessor, but it includes a new clause that allows for "re-licensing" under later versions of the GPL.

This clause is significant because it means that LGPL-3.0 licensed software can be incorporated into GPL-3.0 or later projects. This increased compatibility makes LGPL-3.0 an attractive option for many open-source projects, as it offers more flexibility in how the software can be used and combined with other software.

https://opensource.org/license/lgpl-3-0/

GPL-2.0

The GPL-2.0, released in June 1991, is the second version of the GPL license. It extends the concepts of the original GPL, addressing several scenarios that weren't previously covered. This license ensures that the software, and any derivative works, remain open-source.

If you distribute a program that includes any GPL-2.0 licensed code, you must also provide the source code. This could be in the form of a written offer to provide the source code upon request, or it could be included along with the distributed software itself. This requirement ensures that users always have the ability to modify the software and create derivative works.

https://opensource.org/license/gpl-2-0/

GPL-3.0

The GPL-3.0, released in June 2007, is a further evolution of the GPL license. It includes several important updates, most notably provisions to protect users from software patents and improved compatibility with other licenses.

This version also explicitly disallows "Tivoization," a term that refers to the practice of creating systems that block user modifications. This practice was a growing concern in the open-source community at the time of the GPL-3.0's creation, and its disallowance is one of the main differences between GPL-2.0 and GPL-3.0.

https://opensource.org/license/gpl-3-0/

AGPL-3.0

The Affero General Public License (AGPL) version 3.0, published in November 2007, is similar to the GPL-3.0, but it includes an additional provision designed to ensure cooperation with the community in the case of network server software.

Under the AGPL-3.0, if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there. This requirement was added to close a perceived application service provider (ASP) loophole in the GPL, ensuring that even in a cloud computing environment, the spirit of the GPL is upheld.

https://opensource.org/license/agpl-v3/

References

https://opensource.org/license/lgpl-2-1/
https://opensource.org/license/lgpl-3-0/
https://opensource.org/license/gpl-2-0/
https://opensource.org/license/gpl-3-0/
https://opensource.org/license/agpl-v3/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!