The GNU General Public License (GPL)

The GNU General Public License is the canonical expression of copyleft: a software license that uses copyright law to guarantee, rather than restrict, the freedoms of everyone who receives a copy of a program. It was written for the GNU Project to keep free software free as it passes from hand to hand. The license states its purpose plainly in its preamble: “The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program — to make sure it remains free software for all its users.”

The license appeared in three principal versions. GPLv1 was released in 1989 to consolidate the various GNU program licenses into a single document. GPLv2 followed in June 1991; its header reads “GNU GENERAL PUBLIC LICENSE Version 2, June 1991,” and it became the dominant free software license of the 1990s, most famously covering the Linux kernel. GPLv3 was published on 29 June 2007 after a lengthy public drafting process, carrying the header “GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007.”

The defining property of the GPL is reciprocity, often called “strong copyleft.” Anyone who conveys a covered work, modified or not, must do so under the same license and must make the corresponding source code available. The recipient then receives the same four freedoms that the original author granted, and is bound by the same obligation when they pass the work along. The GPLv3 text frames this in terms of explicit grants and conditions on conveying both source and object code.

GPLv3 added protections that GPLv2 lacked. It addressed software patents by including a patent license grant from contributors, so that a distributor cannot use patent claims to undermine the freedoms the license grants. It defined “source code” and “Corresponding Source” more rigorously. It also responded to a practice the FSF called tivoization, in which hardware accepts only manufacturer-signed binaries and so technically prevents users from running their own modified versions even when the source is provided. GPLv3 requires that “Installation Information” accompany covered software shipped in such consumer products.

Because GPLv3’s terms differ from GPLv2’s, the two are not automatically compatible, and many projects continue under “GPLv2 only” or “GPLv2 or later” terms. The choice between strong copyleft and weaker or permissive licensing remains one of the central debates of the free and open source software world, and the GPL stands at one well-defined pole of that spectrum.