Shedding light on foggy GPL licenses

Clarity is key to avoid licensing ambiguity.
560 readers like this.
Open lightbulbs.

The GPL family of licenses is unique among open source licenses in how past, current, and future versions of the license may apply to the software program. By not fully understanding this unique license feature, open source software developers may inadvertently create ambiguity.

The GPL licenses clarify how license versions are to be applied to the program with a clause in their terms and conditions. The applicable language  in GPL v2 (clause 9) reads in part:

"Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and 'any later version,' you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation." 

The terms in GPL v3 clause 14 are very similar to those in the GPL v2.

Over the years, I've seen many open source projects that say they are GPL licensed without explicitly indicating a version number, while also including the text of an entire GPL license (e.g., v2 or v3). The ambiguity this potentially creates may be beneficial or detrimental to you, depending on factors such as whether you are the licensor or the licensee.

How the ambiguity plays out

For example, assume that an application's license states: "This program is licensed under the GPL," and includes a copy of the GPL v3 license in its entirety. Because the project did not explicitly communicate which version number of the license applies, a reasonable interpretation would be that any and all versions of the GPL published by the Free Software Foundation may apply—v3, v2, or even v1!

This interpretation may be justified by this sentence in GPL v3 clause 14:

"If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation."

On the other hand, including a complete copy of a particular version of the GPL (which may also include the GPL version number in the license title block) could be interpreted as, in essence, communicating a specific version of the license. In this example, v3 and only v3, because there is no "any later version" provision.

How to avoid ambiguity

To avoid this license ambiguity, you should be very clear. If you want only v3 to apply, explicitly say so: "The program is licensed only under the GPL v3" and provide the entire GPL v3 license. Or if you want v3 or any later version of the GPL to apply, explicitly state: "The program is licensed under the GPL v3 or any later version." Last, if you really want any version of the GPL to apply, you could provide the v3 license and say: "This program is licensed under any version of the GPL published by the Free Software Foundation."

No matter which licensing choice you make, be very clear so everyone understands what you actually mean.

Picture of Jeffrey Robert Kaufman
Jeffrey R. Kaufman is Senior Commercial Counsel (Open Source Legal Team) for Red Hat, Inc., the world’s leading provider of open source software solutions. Jeffrey also serves as Adjunct Professor of Law at the University of North Carolina.


Can you point out any good sites which describe how these various versions of the GPL differ? I know that there has been some controversy over changes made over time, especially between v2 and v3, so it IS important to understand what exactly you are trying to do, and how the license either enables, or muddles your intent.

It can useful to distinguish between the GPLv2, GPLv2+, and GPLv3, using a commonly adopted notation. Or, under the SPDX standard, GPL-2.0, GPL-2.0+, and GPL-3.0. Where the "+" operator means "or any later version". For instance, GPLv2 is not inbound compatible with GPLv3, whereas GPLv2+ is.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.