0

(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:

  1. 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.

and

  1. 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.

2 Answers 2

2

You are right that if you modify the license notices to remove the reference to GPLv2, then you lose the right to use and distribute the software under that license.

However, I don't believe you lose all rights to the software. You still have the rights granted to you under the GPLv3 (which you effectively got under the "or later" part of the license notice), or any alternative license that the software was explicitly dual-licensed under.

This means that if you get some software under "GPLv2 or later" and you explicitly 'upgrade' that license to GPLv3, then that upgrade is irrevocable.

Another, more common, way to benefit from the "or later" clause is to use the "GPLv2 or later" software in a GPLv3 codebase without changing the "GPLv2 or later" designation on the parts that are used wholesale. The GPLv2 itself is incompatible with the GPLv3, but the "or later" clause still allows such usage.

3
  • No, the user doesn't lose all rights. But losing the GPLv2 rights would mean they couldn't redistribute the original software again under the original "GPLv2 or later" since they'd lost the GPLv2 rights, right? Worse, it would remove their ability to distribute modified versions of the original, under the same "GPLv2 or later" clause. Thus making a GPLv3 fork of a "GPLv2 or later" software would hinder their ability to contribute back to the original. (Regardless of having made a fork, they might still want to supply e.g. bugfixes back upstream.)
    – ilkkachu
    Jan 13, 2021 at 12:28
  • 1
    @ilkkachu, that is correct. If you change the license notices to edit out GPLv2, then you can't get it back. Jan 13, 2021 at 14:07
  • 1
    @BartvanIngenSchenau you can. People who get the software from you can't.
    – MadHatter
    Jan 13, 2021 at 14:09
2

The OP having considerably clarified the question, I'm rewriting my answer.

Bob receives some software from Alice under GPLv2+, and chooses to redistribute it under GPLv3. You want to know if Bob has now lost his right to use the software under GPLv2.

He has not. He was given the choice about which terms he could receive the software under, and until he does something that requires him to accept any of the possible terms on offer, such as distributing copies (GPLv2 ss 0 and 5, GPLv3 s9) he doesn't have to decide which terms apply.

When he does choose, those terms govern the act of redistribution, and the licence obligations thereby imposed will apply to those downstream recipients. This means he may give the code to Carol under GPLv2, to David under GPLv2+, to Ellen under GPLv3, and to Frank under GPLv3+, all at the same time. Should he choose to distribute it solely under GPLv3, it is those acts of distribution that are regulated by the terms of GPLv3; Bob still retains a copy, licensed to him under GPLv2+, which he may at a later time use under such of those terms as he at that later time chooses.

Even if you choose to take the view (perverse, to my mind) that Bob's choice to redistribute under GPLv3-only has deprived him of the benefits of GPLv2 with respect to his current copy, Bob can simply go back to Alice, and get a new copy, on the original terms. I can find no basis in copyright law for any viewpoint that regards Bob as being somehow "poisoned" with respect to GPLv2, and thus permanently incapable of having those rights again with respect to this piece of software.

8
  • +1. Small nitpick: while not meaningful now, GPLv2+ also includes GPLv3+. That is a license option, too, and might become meaningful somewhen in the future when there ever is a GPL v4 or GPL v3.1 Jan 13, 2021 at 13:12
  • FWIW, I also think it is a somewhat odd view (or even perverse, as you say), exactly because it seems to work counter to the original author A giving an option of the licenses. In practice, probably no-one would sue for such an "infraction". But it's hard to be sure.
    – ilkkachu
    Jan 14, 2021 at 0:30
  • As for the thing about getting a new license, yes, that would solve the problem. However, not everyone seems to agree the license can be automatically refreshed after an infraction by just fetching a new copy. See e.g. lwn.net/Articles/455013, redhat.com/en/blog/… and fsf.org/news/android-termination-upgrade-gplv3
    – ilkkachu
    Jan 14, 2021 at 0:31
  • In gnu.org/licenses/quick-guide-gplv3.html the FSF puts it quite strongly: "Under GPLv2, if you violated the license in any way, your rights were automatically and permanently lost. The only way to get them back was to petition the copyright holder." (The date on the page is from 2014, but I expect they would have updated it if things had significantly changed.)
    – ilkkachu
    Jan 14, 2021 at 0:33
  • @ilkkachu that applies to termination of the licence through violation, not through simply (and lawfully) choosing not to have it apply to you in the first place.
    – MadHatter
    Jan 14, 2021 at 6:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.