(Or, If you distribute a "GPLv2 or later" software under GPLv3, do you lose the GPLv2 license?)
Assume a program (software X, created by developer/group A) that is licensed using the usual "GPLv2 or later" phrasing:
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
That gives the user (say, developer B) a possibility of creating a modified version (fork Y) of the software and redistributing it under GPLv3 only. This appears to be what is intended.
However, an interpretation was presented to me that by doing so, the user (the one creating the fork, developer B) loses the license to the software under GPLv2.
The GPLv2 license says:
- You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
- You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
This could be read to say that by distributing the software (the modified version of it, fork Y) under GPLv3 only and by removing the mention of GPLv2, the user (developer B) would be in violation of the bolded parts of section 1 and section 4, since GPLv2 does not provide the option of doing that. Hence, the user (same B) would lose their rights under the GPLv2 license according to section 4. (They would presumably still have the rights given by GPLv3, since that license was not violated; but that is another matter.)
Losing the rights under GPLv2 might matter if the user (developer B) would want to subsequently distribute the (original) software (X) again using the original "GPLv2 or later" clause, perhaps after making modifications to it. Losing the GPLv2 rights would appear to preclude that. This could also mean that a user (B) making a GPLv3 fork (Y) of a "GPLv2 or later" software (X) could not distribute patches or modified versions of the pre-fork version (either original software X as it was, or derived works X'), making it harder for them to contribute back to the original software.
On the face of it, this interpretation appears to be against the intent of a "GPLv2 or later" provision, and a similar problem would seem to appear with any dual-licensing involving GPLv2 (or indeed any other license that uses similar language). However, I'm not sure I can rely on lay logic to refute it.
Hence the question: Is there any merit to this interpretation, and if not, what considerations apply to refute it?
To clarify, as comments were made that the question was unclear:
Assume that a group A of developers have created software X, which is distributed under "GPLv2 or later". Developer B creates patches X' for the software, distributing them both back upstream, and to the public himself, under the same "GPLv2 or later" clause. So far so good.
Now, consider that B wants to fork the software, and they choose to distribute fork Y under GPLv3 only. This is still obviously fine as such, but does doing this lead B into conflict with the parts of GPLv2 quoted above, and prevent him from further distributing the original software X (or further modified versions X'' of it) under GPLv2, or "GPLv2 or later"?
Obviously, group A itself is unaffected by this as far as their software X is concerned, and third parties C could still get X with the "GPLv2 or later" clause directly from A. Also, the forked software Y would still be GPLv3 only to both original developers A and the third parties C, as B had made their changes available only under GPLv3.