This post is long overdue. Quite a few people have asked me while all of the software I create does not have the “or (at your option) any later version” that the FSF seems to suggest. (I am not against contributing to projects that do have that clause, however.) This post will explain my reasoning, and hopefully cause others to see the potential problems with it. I am absolutely not against people using this clause in general; I merely want them to be fully aware of what they’re getting into before doing so. Also, please note that this applies to any license where an “any later version” clause is used, including the GFDL. I’m not just talking about software.
Please note that I am not a lawyer and this is not legal advice.
The standard boilerplate text that the FSF provides (here [gnu.org], for reference, under the “How to Apply These Terms to Your New Programs” section) includes the clause “or (at your option) any later version.” I believe this clause to be dangerous to apply to any sort of project.
First, let’s examine the benefits. The FSF (rarely, admittedly) releases new versions of their licenses from time to time. Because of the nature of their licenses (strong copyleft), new versions are generally incompatible with older ones. This is because the licenses don’t allow you to add more restrictions past what they already do, and the newer licenses normally do (anti-tivoization in the GPLv3, etc.), which isn’t necessarily a bad thing. By having the “any later version” clause, developers that wish to use your code along with code under a newer license are able to do so, because they can take the “any later version” option, and effectively re-license your project under the new license. Keeping licenses compatible is generally considered a Good Thing.
That being said, there is one huge downside. By having such a clause, any newer version of whatever license you use is automatically usable with your project. Most programmers don’t intentionally place backdoors in their programs (the white hat programmers, anyway). If you use the “any later version” clause, though, you’re giving the FSF a backdoor into your project’s license.
Worse yet, the FSF has already used this clause to do something against the spirit of the license. Wikipedia was relicensed some time ago from the GFDL [gnu.org] to the CC BY-SA 3.0 [creativecommons.org] license. Here’s the short story: Wikipedia voted to move from the GFDL to the BY-SA. The caveat was that they’d have to get the approval from every person that contributed to Wikipedia. Obviously, that’s pretty unpractical. The only other option would be rewriting everything from scratch under an explicit BY-SA license. Again, rewriting all of Wikipedia is pretty unpractical. The Wikimedia Foundation (the organization that runs Wikipedia) convinced the FSF to let them re-license to BY-SA. Hopefully, this article’s title alone should tell you how they did it. The GFDL 1.2 was released, with the addition of the “RELICENSING” section. If you wish, you can click on the GFDL link above, and search for “relicensing” to see the terms for yourself. They gave Wikipedia (actually, any public wiki or any wiki-like site) permission to relicense everything under the BY-SA for a limited window of time. I haven’t heard of any other sites using this to relicense, but it certainly is far from impossible. By doing this, the FSF used a backdoor to carry out the wishes of the Wikimedia Foundation. If you consider Wikimedia getting what it wanted (relicensing to the BY-SA) to be good, this is a good outcome. However, what of the writers? Perhaps (given the sheer number of them, no doubt) some of them actively did not want the content relicensed to the BY-SA. There was a reasonable expectation that by contributing to a GFDL project (without copyright assignment) that their contribution would stay GFDL.
Actually, the relicensing affected people that weren’t even a contributor to Wikipedia. Before the license change, Wikipedia was legally permitted to (and did) pull content from other sources that were licensed under the GFDL and add it to its own pool of content. Just by having your content added to Wikipedia, whatever was added to Wikipedia at any point before the license change is now permanently available under BY-SA. (If the content was added after the license change, it was already BY-SA, or a copyright violation.) Because the BY-SA is a non-revocable license (as it should be), people can pull content from any point in the past and use it under the BY-SA. Any content at all is now free game.
The exact same problem can happen with software projects. If a project is allowed to relicense to something else, and they incorporated part of another project’s code, that project now has effectively released some (or all, depending on how much was incorporated) of its code under a license that they never chose against their will. No one else has that power. Even if Linus Torvalds wanted to, he couldn’t license the Linux kernel under the GPLv3. Most contributions are GPLv2 only, meaning they can’t be incorporated in a GPLv3 work. This gives the FSF an unprecedented, and completely unreasonable, amount of power over any project’s licensing that uses the “any later version” clause.
It could be worse, though. Even if you use the “any later version” clause, anyone is still able to use your project under any version of the license newer than, or equal to, the original license. So if your project is GPLv3 or newer, and the GPLv4 says “you cannot use this software ever” (doubtful, but the point is clear) then people can still use your software under the GPLv4. Of course, if there’s something else in the GPLv4 that you don’t agree with, there’s no out for you. Anyone in the world is welcome to use your project under the GPLv4. Possibly the worst-case scenario is a version of the GPL being released that is equivalent to a BSD-style license. Granted, Stallman most likely would never let that happen, but he won’t be around forever. There is another very frightening possibility, though. Humans make mistakes (even lawyers!) and the FSF is no exception. A newer version of the GPL could accidentally slip in something nasty, that gets abused by some other lawyers to do something that no one intended. Even if you fully trust the FSF, even enough to give them complete control over your project, it’s still possible for them to make a mistake, and if they do, I have no doubt that someone somewhere out there will abuse it to go against the spirit of the GPL.
There is one bright side to all of this, though. Not a single bit of it has been tested in court. If something bad does get into a GPL release, it’s entirely possible that the courts would throw it out based on intent. To the best of my knowledge, the “any later version” clause itself has never been tested in court. (If I’m wrong on this, please feel free to point me to a case where it has been tested.) For all we know, the clause itself wouldn’t hold up to judicial scrutiny. Even with the possibility of the court throwing either the clause or a hypothetical newer license out, why take the chance? Most people that use the GPL do it, either directly or indirectly, to make sure the time they sunk into their project doesn’t go to waste by some entity taking their code, making it proprietary, and contributing nothing in return. Why risk having all that work undone because a new version of the GPL has something nasty in it?
The one other thing that disturbs me that I haven’t yet mentioned (and I only will briefly) is that it goes against The Open Source Definition [opensource.org], specifically “No Discrimination Against Persons or Groups.” The relicensing section of the GFDL only applies to what they call an “MMC Site” (Massive Multiauthor Collaboration), which is a fancy way of saying wiki. If I had incorporated GFDL content on this blog, I would not be free to relicense it under the BY-SA. While they didn’t specifically mention Wikipedia or the Wikimedia Foundation, they absolutely did discriminate against a group of people: everyone that’s not using a wiki. Why this blatant discrimination was never touched upon is beyond me.
tl;dr The “any later version” clause gives the creator of the license a licensing backdoor that lets them do whatever they want to your project’s license (including relicensing it under something else entirely).
Thanks for reading,