I mentioned the GNU Public License in my last post about open source politics in passing. What I didn’t mention is that I was essentially referring to the second edition or version of that license, which is what most people mean when they say “GPL”.
Now the Free Software Foundation are preparing a third version, already known around the traps as GPLv3.
And not everyone is pleased.
The Linux kernel, founded and still controlled by Linus Torvalds, is unquestionably the most successful and influential open source project in history. During that period all Linux kernel code has been placed under a slightly modified GPLv2 (to allow closed-source hardware drivers and modules to be used). It has been a successful relationship.
However many leading Linux developers are opposed to changes proposed for GPLv3. Among them is Linus himself.
Essentially their argument is: it’s not broke, so don’t fix it. Indeed they think that GPLv3 will cause problems due to fragmentation of projects into incompatible licensing terms and because the GPLv3 will run directly contrary to the goals of certain key contributors.
Ironically this last argument is a bit of a replay of the BSD argument that freedom of the original and subsequent developers trumps the freedom of the user, to the point where the code can be closed. The GPLv3 draft includes clauses aimed at forbidding DRM (“Digital Rights Management”) schemes, aggressive viral clauses effective over patent portfolios (bye bye IBM!) and the ability to choose from a “soup” of optional additional restrictions a la Contents Commons licensing.
I found it interesting that in their joint statement, the Linux developers repeatedly framed the legal questions in terms of technical understanding, but their political questions were framed in terms of individual rights. So for example, they said that the GPLv2 should only be reformed if it needed “bug fixes” or to face imminent problems. They cast license proliferation as a matter of incompatabilities and in terms of mutual exclusion, which are familiar to software engineers and programmers.
(An aside: personally I think that software engineering has a lot to teach the profession of law – in the space of 30 years software engineering has become one of the absolute frontiers of human intellectual capacity and the study of tools to conquer complexity. Moreover it is consciously and introspectively so. This seems less true of law, where the tools for conquering complexity seem to be haphazard, sourced more from traditions of dim and distant origin, instead of fundamental research. I hope to write on this topic some more in future).
The political views of the Linux kernel developers are that the proposed draft GPLv3 would narrow, not widen, the scope of user freedom. They furthermore take the view that this actually violates the promises made in GPLv2 that any future license would be in the same spirit. In a way, this is the very kind of ideological considerations that Richard Stallman has always tried to promote, especially among the somewhat more pragmatic Linux development community. But now the interpretations of Stallmanism diverge between “Linusites” and Stallman himself.
The consequences of the dispute.
The divergence of views about the direction of the GPLv3 may seem quite academic, but it may have enormous consequences. The Free Software Foundation is in the position to move all their code to a new license at the stroke of a pen, as they require all contributors to assign copyright to them. The Linux kernel is not able to do so, as the copyright on code is distributed amongst thousands of individuals and companies, most of whom would not want to change the license terms of their code. While it seems possible to mix GPLv2 and v3 code, there are a number of places where incompatabilities would arise. It seems likely that Linus and his lieutenants would simply reject any code not placed under a GPLv2 license.
Quite aside from dividing the community on a political front – common enough but never before this large – there are also problems of divided effort. In the same fashion that work is often duplicated between the BSDs and GPL’d projects, duplication may occur between GPLv2 and GPLv3 codebases. Should the FSF decide to apply v3 principles to other parts of its collection (particularly the glibc and gcc projects which Linux directly relies upon), Linux kernel development – and much other development beside – may come to a screeching halt until an alternative is found, forked or developed from scratch.
Here’s hoping it doesn’t come to that!
Fascinating stuff Jacques. I was aware of this but only dimly. It’s all very reminiscent of other political movements splintering – driven by different ideas about dogma and political practice. In a way it would be nice to use OSS to tackle things like software patents and digital rights management. But it seems utopian to me. I am guessing that’s your view too?
Nicholas;
I don’t see the FSF succeeding at combatting DRM and software patents through the GPLv3, especially if the poster child of the movement doesn’t come on board.
btw there is by no means a consensus among Linux developers or even senior linux kernel developers that GPLv3 is bad – though the statement that came out did have several high profile developers.
I would suggest that the GPLv3 draft is much more in sync with what the preamble to GPLv2 implies than the actual licence text of the GPLv2 itself. If you go back to what Stallman was fundamentally trying to achieve, it was to allow users to be able to modify the software they receive. What Tivo has done (using signed kernels etc) has effectively removed that ability. Even though the users have access to the source code they cannot actually use it to modify the operation of their device.
I think what we’re seeing here is resistance from people who are using what the FSF would consider are loopholes and they don’t want to seem them closed (because in many cases their business models rely on it), indeed they probably see the loopholes as features. But I think if you go back to the spirit of what the GPLv2 intended, then the GPLv3 is actually more consistent with that vision.
btw regarding the patent clauses – I think you’ll find that much of that is just a clarification and that many patent lawyers would come to the same conclusions with the GPLv2 wording (eg you lose the ability to assert patent rights over an implementation which you distribute under the GPL – at least over that implementation or derivations of it)
Chris;
I appreciate your pointing out that this is not an “official” position (as there can be no such thing, really), but rather one held by many prominent Linux kernel developers. As always it can be easy to lose sight that there are as many opinions on opensource licensing as there are developers.
As Nicholas points out, it’s a splintering on ideological grounds. The developer’s statement disagrees with Stallman that the GPLv3 draft is in the spirit of GPLv2.
I’d be reluctant to ascribe ulterior motives for these moves. Generally developrs tend to be highly attuned to ethical behaviour and tradeoffs with pragmatism. I don’t think that many of them could really happily push a wheelbarrow simply because it serves their material interests. The companies involved might like those quirks in the GPLv2, but the statement was released by individuals.
Hi Jacques,
I don’t know what your background is in free software/open source, but this is worth reading if you’re not familiar with Stallman’s printer story.
http://www.oreilly.com/openbook/freedom/ch01.html
Quick background – Stallman wanted access to the source code for a printer so he could fix some bugs in it. Previously source code came with these sorts of devices, but for this new printer the supplier refused to give it out.
This example is quite appropriate to a discussion of the intent of the GPL. These days a printer manufacturer could use GPL’d code, supply the source code, but through security type mechanisms make it so that only code compiled by the supplier could be run on the printer. Essentially the source code is useless. It is available, but not for the intended purpose of providing fixes.
It is rather interesting in that some of those who oppose GPLv3 also believe that the use of binary modules with the kernel is unethical. Binary modules these days only really exist because of loopholes in the GPL. I agree that programmers are very pragmatic and I think this is coming out in the current debate.
btw regardless of how the GPLv3 debate turns out I don’t think there will be a big disaster. If enough people think its bad, programs can be forked from the last GPLv2 release and continue to be developed under the GPLv2 licence. Forking isn’t always bad – gcc did this several years ago, essentially because developers disagreed about the development model (cathedral vs bazaar) and eventually the one that worked better survived.
Some comments from Linus:
http://enterprise.linux.com/article.pl?sid=06/09/25/2311215&from=rss