My very first try at blogging, and I made a blatant mistake. In talking about the Free Software Foundation’s move from Version 2 to Version 3 of the GPL, I pointed out that Section 9 of Version 2 provided for automatic updating of the license. I said “This means that Linus Torvalds doesn’t have to decide to release Linux under V3, The GPL is a license, not a contract. anyone who has a copy of source code under V2 can release that code under V3!”
This is true of most GPL’d software out there and many components of Linux. However, a few projects have elected to be “Version 2” only and Linux is among them (For discussion see: http://www.uwsg.iu.edu/hypermail/linux/kernel/0009.1/0096.html, http://www.ussg.iu.edu/hypermail/linux/kernel/0208.1/1287.html and http://people.redhat.com/arjanv/COPYING.modules)
The joy of the interactive – within a few hours I had an email pointing out, strongly, that I was wrong. I hadn’t written that line out of complete ignorance. I knew there was some feeling that Linus Torvalds might not move the Linux kernel to V3. As a lawyer, I checked the license that accompanied the kernel and relied on that document alone. Unfortunately, the license I checked (http://www.kernel.org/pub/linux/kernel/COPYING) turns out to be missing some key text present in other Linux distributions (see http://glide.stanford.edu/lxr/source/COPYING?v=linux-2.6.10 for a ‘correct’ version).
However, now that I have focused on the issue, I think there are some legal complexities. Perhaps interesting only to lawyers, but instructive nonetheless.
Let’s start with the facts:
- Section 2b of the GPL provides:
“2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: …
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
- Section 6 of the GPL provides:
"6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. ..."
- Section 9 of the GPL provides:
“9. The Free Software Foundation may publish revised and/or new versions of the 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.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
- Linus’ version of the kernel has a slightly modified GPL which accompanies it. Specifically, the header provides in part:
Also note that the only valid version of the GPL as far as the kernel is concerned is _this_ particular version of the license (ie v2, not v2.2 or v3.x or whatever), unless explicitly otherwise stated.
In my mind, the legal analysis would run something like this:
First, according to the FSF, the GPL is a license, not a contract. It is merely the sole set of permissions under which you are permitted to use, modify, or distribute GPL’d code. By redistributing GPL'd code, you accept the terms of the license. Otherwise, you have no right to redistribute the code, and are subject to suit for copyright infringement.
Pursuant to Section 2b of GPL v2, the GPL licenses you to redistribute GPL’d code (and derivative works of it) only "under the terms of this License" So, according to Section 2b alone, the only terms you can use for your derivative work are GPL v2.
However, Section 9 provides an additional freedom. It states that "If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation [when you redistribute code]." Nowhere, however, does the GPL give you a right to pick a single version. Instead, in the previous sentence in Section 9, you are given the implied right to limit distribution to "a version number of this License which applies to it and 'any later version'".
Section 6 provides " You may not impose any further restrictions on the recipients' exercise of the rights granted herein." So presumably, if you wish to redistribute code you received under v2, you cannot limit the recipients right to use any FSF license they wish, except that you may limit them to using v2 and "any later version."
None of this permits Linus' language which limits redistribution of the kernel to only v2!
Now, of course, the original author of code can pick any license he or she wishes. Presumably you can use parts of the GPL or you can use the GPL plus additional terms if you wish. (Although the GPL does provide "Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed" which means that distributing modified versions of the GPL without permission is, itself, infringement...)
So I’ll read Linus’ header exclusion to mean that for all kernel code of which he is the copyright owner, Section 9 does not apply and, in order to comply with Section 2, any and all derivative works of his kernel code need to be released under GPL v2 only. I don’t know if he got express permission from the FSF to change the GPL in this way, but let’s assume time, acquiescence, and practicality stop any claim there.
However, Linus' language does included the exception“unless explicitly otherwise stated.” Indeed, in rolling out this change to the license, Linus invited “If anybody wants to explicitly state that their code will be valid under any version of the GPL (current or future - whatever they may look like), please send patches to say so for the code in question. ” And, although I haven’t done the search myself, according to debian-legal there are a number of packages in Linux licensed under v2 “or later.” Also, there is the question of whether Linus went back in 2000 to all of the copyright owners who had contributed under v2 prior to 2000 to redistribute the code under the modified license? I know the kernel maintainers are way out in front in controlling copyright issues in the kernel, but that seems to be a fairly daunting task.
Where does that leave us, legally? Well, for Linus’ code, and anything derivative of it, you have to distribute pursuant to version 2 of the GPL alone (“unless explicitly otherwise stated.”) However, for those packages in Linux submitted under classic GPL v2 and their derivatives? You can use any version of the GPL set forth by the FSF – which doesn’t include Linus’ version. The fact that, most likely, Linus’ code is derivative of the base GPL code and vice versa - making the contrary licenses apply to one another? That just makes my head spin.
From a practical standpoint, none of this matters. Linus is the most recognized opinion leader on the GPL’s mainstay product. His opinions will reverberate through the chat rooms, IRC channels, listserves and wikis that give laborious birth to GPL v3. But from a legal standpoint, this is the type of unintended ambiguity that makes it long past time to retire GPL v2 to the licensing hall of fame. v2 is a notoriously unlitigated document, but if it ever were, there would be no way to predict many of the outcomes.
Whether you agree with the FSF's stance on Software Patents or DRM, participate in the comment process being applied to v3 to avoid at least this type of ambiguity at the start.
David G. Rickerby, Esq. is the head of IT Licensing at Choate, Hall & Stewart LLP in Boston, Massachusetts. The opinions stated here are his own and do not represent the views of his firm or his clients. They certainly don't represent legal advice. If you need a lawyer, go get one!