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.