You really shouldn't use the GPL "or later" clause

It's dangerous. Think about it.

Posted on 2021-03-24 19:50:27, Viewed 2756 times

In a nutshell, the GNU GPL is a license that tries to keep free software free. It does this by allowing you to use the software for any purpose (even using it with nonfree software!), but with the terms that, if you reproduce this software, you have to do so under the same terms. People have taken to calling copyleft licenses like GPL a "viral" license due to the fact that all derivatives have to be released under the same terms (and derivatives of those derivatives, and so on).

I find this license to be especially useful for programs and libraries with a significant amount of work put into them, as it protects the author's rights to the software as well as other people's rights. People cannot simply take your project, put it in their nonfree software, and then distribute the combined work under nonfree terms.

However, there is a slight drawback to these terms: You cannot distribute GPL code with code that uses a different version of the GPL. This is because the terms are not the same. For example, GPLv3 protects against Tivoization, and while these additional terms ultimately allow users more control over the software, this guaranteeing of freedom at the same time has to come at the cost of some of their freedom to convey the software. After all, to guarantee freedom, you have to have restrictions. That's what the GPL does.

GPLv2 does not have this provision. Therefore, Tivoization is allowed for software under the GPLv2. However, because GPLv3 does not have this right, GPLv2 is incompatible with GPLv3. And because GPLv2 allows Tivoization which GPLv3 does not and you are required to reproduce your software under the same terms, GPLv2 is incompatible with GPLv3. In essence, GPLv2 and GPLv3 are mutually exclusive.

Also, if you have multiple contributors, then they all implicitly license their code under the license of the project. Therefore, if your project is GPLv3 and you have multiple contributors, then you may not have the right to change the license in the future without unanimous approval from everyone.

The Free Software Foundation thought about this. They put in the license a suggestion to put an "any later version" (or "or later") clause when licensing your software. It is even included in the sample copyright notice, thus if you copy this, you would essentially license the file for GPL version 3 or later (GPLv4, GPLv5, etc.).

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 3 of the License, or
(at your option) any later version.

This removes this incompatibility by letting the user choose the license, thus they can choose version 3 if they need to use this with version 3 software, version 4 if they need to use it with version 4 software, etc. I do think GPLv3 is an improvement over GPLv2 if your goal is to ensure users' freedom (though Linus Torvalds famously disagrees). However, allowing someone to write your license without your explicit approval is dangerous.

Think about it. GPLv4 may suddenly include a clause you may not agree with, but because you have released your software as GPLv3 or "any later version", you cannot actually retract it. You have implicitly agreed to it by simply stating "any later version".

There is also a chance that GPLv4 may suddenly be weaker than GPLv3 and may have compromises you don't want. While I don't imagine this to be a likely scenario given that newer revisions of the GPL tend to be stronger, you are basically gambling. Richard Stallman, the current head of the GNU Project, also isn't likely to compromise. In fact, you can probably bet he'd never do it.

However, Stallman isn't going to be around forever. For a start, he is a human being. Human beings age and eventually pass on (and he's almost 70). That's simply part of life. Also, a number of people and organizations are calling for his removal, including Mozilla and GNOME. The Open Source Initiative also want to get rid of him. I'm not sure if anything will come of that, but regardless, if and when he is eventually replaced (either retirement, death, or being ejected from the GNU project and FSF), he is not going to be around to work on the next GPL.

When Stallman eventually goes away, will the GNU project be as uncompromising as him? Will they preserve the spirit of the GPL, or will they slowly erode it? You tell me. The only protection we have is section 14.

The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

However, what is "in spirit" is ultimately subjective. It's probably fine to keep using "or later" if you want, but bear in mind that you are giving someone (the FSF) the right to determine all of the terms in which your program can be used and conveyed. I'm no legal expert, so I can't give you any actual legal advice on this, but it is my personal opinion that not putting this clause is better if you want to keep your software free even if that does mean that people cannot distribute your GPLv3 code with GPLv4 (or later) code.