It seems a simple enough concept for anyone who’s spent some time hacking on open source code: once you release something as open source, it’s open for good. Sure the developer might decide that future versions of the project close up the source, it’s been known to happen occasionally, but what’s already out there publicly can never be recalled. The Internet doesn’t have a “Delete” button, and once you’ve published your source code and let potentially millions of people download it, there’s no putting the Genie back in the bottle.
But what happens if there are extenuating circumstances? What if the project turns into something you no longer want to be a part of? Perhaps you submitted your code to a project with a specific understanding of how it was to be used, and then the rules changed. Or maybe you’ve been personally banned from a project, and yet the maintainers of said project have no problem letting your sizable code contributions stick around even after you’ve been kicked to the curb?
Due to what some perceive as a forced change in the Linux Code of Conduct, these are the questions being asked by some of the developers of the world’s preeminent open source project. It’s a situation which the open source community has rarely had to deal with, and certainly never on a project of this magnitude.
Is it truly possible to “take back” source code submitted to a project that’s released under a free and open source license such as the GPL? If so, what are the ramifications? What happens if it’s determined that the literally billions of devices running the Linux kernel are doing so in violation of a single developer’s copyright? These questions are of grave importance to the Internet and arguably our way of life. But the answers aren’t as easy to come by as you might think.
Copyleft and Ownership
The GPL is what’s known as a copyleft license, which is designed to add additional rights for the end users which would otherwise be limited by copyright laws. For example, it gives the user the right to duplicate and create derivative works. But an important distinction is that copyleft licences such as the GPL don’t actually replace the original copyright, they are merely supplemental. The original author of the code still holds the copyright, and is ultimately its sole owner.
This allows for the concept of dual licensing: wherein the sole author of a program can chose to license a program under multiple licenses at the same time, one of which generally being more permissive than the other. For example, the Windows version of a program could be closed source, while the Linux version is open source; even if the actual code is identical. More often, this is used to provide one license that applies for commercial use of a program, and more permissive licensing for individuals.
Some open source projects, generally large ones with corporate backing, occasionally have what’s known as a Contributor License Agreement. This document explains any additional requirements and rules for submitting source code to a project, and will usually have a clause explaining that the submitter is granting their copyright to the project’s parent entity. For example, here is the relevant section from Google’s “Individual Contributor License Agreement”:
Subject to the terms and conditions of this Agreement, You hereby grant to Google and to recipients of software distributed by Google a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works.
It’s worth noting that Linux does not utilize such an agreement, and the copyright for any submitted source code therefore remains the property of the original developer.
Reputational Losses
So if a developer is free to license their code in diametrically opposed ways (simultaneously closed and open source), and it’s acknowledged that in the absence of a Contributor License Agreement they retain the uncontested ownership of any code they write, the situation becomes tricky. Does it not follow that they have the right to walk back a promise to make their source code open, if a scenario presents itself in which the author feels it’s no longer appropriate?
Eric S. Raymond
Eric S. Raymond, one of the founders of the Open Source Initiative and author of The Cathedral and the Bazaar believes they may have that right. In a post to the Linux Kernel Mailing list, Eric specifically addresses the threat some developers have made about attempting to pull their code from the kernel:
First, let me confirm that this threat has teeth. I researched the relevant law when I was founding the Open Source Initiative. In the U.S. there is case law confirming that reputational losses relating to conversion of the rights of a contributor to a GPLed project are judicable in law. I do not know the case law outside the U.S., but in countries observing the Berne Convention without the U.S.’s opt-out of the “moral rights” clause, that clause probably gives the objectors an even stronger case.
Section 6 of the Berne Convention explains that the original author of a work, even if they have granted their rights to another entity, can object to its further use if they feel it has been utilized in a way which “would be prejudicial to his honor or reputation.” So in theory a disgruntled developer need only convince a judge that the maintainers of a project have damaged their reputation, say by publicly banning them for violating the Code of Conduct, and have a case for forcing the project to stop using their code regardless of preexisting licensing agreements.
Critical Language
But the question remains, can a developer actually “revoke” the rights given under the GPL? If we’re talking about the GPLv2 (which Linux is licensed under), the closest thing we find is Section 4:
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.
Interestingly, if we take a look at the GPLv3, we see relevant language was made much stronger:
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.
Some believe the distinction here may prove to be critical. In a legal context, it’s generally understood that “revoke” means an agreement was retracted by the entity offering it (here, the original developer), while “terminate” simply means to end an agreement. This leaves room for interpretation, and one could potentially argue that since the GPLv2 does not specifically state the developer can’t retract the offer, it remains an option.
Here Be Dragons
Between the Eric S. Raymond’s assertion that a developer could claim divisive elements within the project are damaging to their reputation and the fact that the current licensing arrangement of Linux means there’s no specific language saying developers can’t withdraw their submissions, the situation becomes murky. The truth is, nobody is really sure yet. We’re in uncharted waters, and old assumptions may not hold up to legal scrutiny if it comes to it.
It’s also worth mentioning that the concept of “Promissory Estoppel” could come into play; which essentially prevents an individual from going back on a promise if the other party took action based on that promise. In other words, if you told somebody they could use your code and they used it to produce a successful project, you can’t then go back on that promise because it would be to their detriment.
Practically speaking, even if an individual built a case saying they wanted their chunk of code removed from Linux, it would be physically impossible. In lieu of being able to delete their code from the now-copyright-infringing devices, said developer would likely receive some monetary settlement. Which would still be a terrible precedent to set for the open source community: get mad, get paid.
At the end of the day, talk of revoking open source licenses is misguided. To paraphrase the character of Ian Malcolm from Jurassic Park: angry developers are so preoccupied with whether or not they could, they haven’t stopped to think if they should. If legal precedent is set that a developer can take their source code back, it will be ruinous to the open source community. Its taken decades for free and open source software to rise to its current prominence in the software world, but the rash actions of a few unhappy developers could be enough to drag it back down to being little more than a wishful idea.