GNU General Public License: The Rundown
What is GPL?
The GNU General Public License, or GPL, is a series of free software licenses that guarantee end users the freedom to run, study, share, and modify the software. GPL was made by Richard Stallman, founder of the GNU Project, to protect GNU’s software and prevent it from becoming proprietary. It was published February 25th, 1989, and has been continuously updated and republished under 3 versions. What differs GPL from other free software licenses is that it is a reciprocal/copyleft license, a license that typically requires derivative software to use the original license.
Versions of GPL
Version 1 of the GPL solved the two main ways that software distributors restricted the freedoms that define free software: The distribution of binary files only and the combination of increasingly restrictive licenses. The license resolves these issues by requiring distributors to share binary files, as well as the human-readable source code.
Version 2 made additions to the first version that moved the license more copyleft. The major change was the “Liberty or Death” clause, requiring that any license that distributes a GPL-covered work must satisfy the license’s obligations.
Version 3 saw major changes with the language and compliance of the license. The review process took 18 months to complete, and took a lot of backlash from the community. GPLv3 improved compatibility with free software licenses such as the Apache License and the GNU AGPL. However, it could only be combined and shared with GPLv2 software if the license includes an “or later” clause and the software was upgraded to GPLv3. An example of a project that excludes this clause is the Linux kernel.
GPLv2 versus GPLv3
The primary discussion with the restrictions of GPLv3 is around the reach the license has on other distributor’s software. With GPLv2, a distributor would only be licensing their own work, but with the restrictions placed in GPLv3, other distributors that utilize GPL-covered work would be required to use the GPLv3 or “GPLv2 or later.” As seen in Linus Torvald’s email correspondence, he explains how the morals of an individual should not affect the rights of another, and how this new clause allows distributors to affect the licensing of future projects.