Novadays the Net is full with GPLv3 vs. GPLv2 bashing. Even FOSS luminaries get their hands dirty in it. That is why I liked so much this article by Glyn Moody – one of the few attempts to analyze the reasons behind the differences.

Moody points out that the different positions are based on the different cultures of the two groups, calling them “pragmatists” (the GPLv2 supporters), and “purists” (the GPLv3 camp). I would say, however, that the difference is not in the cultures. Yes, the controversy is mostly “open source” vs. “free software” supporters. But it is not due to the “width of views” – it is in the different values and goals.

2. Different Goals, Different Values

What is the difference between free software and open source? Richard M. Stallman says: “When you speak about open source, you put the emphasis on the technical side of the things. When you speak about the free software, you put it on the moral side.” To clarify this further: Open source proponents care for the freedom of the software, as a means to increase code sharing and reviewing, and this to achieve a technical excellence. Free software proponents care for the freedom of the users; the freedom of the software is for them only a means to achieve the freedom of the users.

This difference of the goals leads to a difference of the values. The open source proponents sometimes are inclined to what may be termed “developer supremacy”. For example, in their software projects sometimes developers opinions, views and needs are valued much more than those of non-developers. They believe that the people who “create it all” should have more say than the others. The free software supporters are more inclined to put the user rights, and needs, above everything else – even at the risk to decrease the motivation of some developers (“user supremacy”).

With GPLv2, the interests of the two groups were together. It gave the developers as much code as possible available for improvement and reuse, and the users had the four Stallman freedoms granted. With GPLv3, however, there is a split area – the use of hardware DRM-locked software. The developers lose nothing from it: the code is still available, you can improve on it, etc. The users, however, are not happy: they can’t use (run) code modified to suit their needs. If the DRM is forbidden in the FOSS, the users feel much better – but the developers will be unhappy, since this limits the usage area for their code.

The strongest proponent of the free software (and the user freedom and supremacy) is FSF, who are behind GPLv3. Given that the hardware DRM codelock is an obvious limitation of the user rights, FSF will surely not bulge in their position against it. And, given the desire of some developers to have their code everywhere (and the desire of the companies who pay their salaries to cover the DRM-ed hardware market), they will not agree to accept this position.

In other words, we should expect a split in the FOSS between “free software” and “open source”. And, in some areas (for example, the competition for resources – developers efforts, companies financing etc.) this split may be no less than a war – a license war.

Who’s On Which Side?

On one side is the FSF, and the free software supporters. Against it are the open-source supporters, spearheaded by most of the top Linux kernel hackers and Linus Torwalds personally. Behind the scenes, FSF will rely on the grassroots, while Linus and his group will rely on the help of the companies that support the open source.

The license war will be won, obviously, by whoever controls the software that is being used. Both sides know this – and have prepared whatever they can.

Undoubtedly, Linus Torwalds is the top programmer of Linux. However, those who stop here forget that Linux is actually the bare kernel. The real name of the entire OS is GNU/Linux, and most of its utilities and libraries are coming from the GNU project, which is governed by the FSF, who have stated the intention to relicense them under GPLv3 after it is ready.

Torwalds is prepared for this – his team threatens to fork the GNH project code, and to relicense it as GPLv2-only. (Currently this code is licensed as “GPLv2 or any later”.) He will rely on the help of the companies that are behind the big Linux distros – their money should be able to buy the efforts needed. Also, a lot of GNU/Linux developers work for them, and depend on them: the companies may license their work under GPLv2, and may apply pressure to twart them from supporting GPLv3. Given that most of the FOSS code is currently developed inside companies, such a support may decide the outcome.

Forking the GNU Project code, however, is not enough to relicense it – most will have to be rewritten, and this is a huge task. Also, FSF is not going to remain without a kernel forever – after 19 years of idling, its original kernel, the Hurd, finally is close to being usable. A call for arms by FSF will probably attract hundreds of developers to it (some of them – from the Linux kernel, right when Linus will desperately need them). After the intital mess is dealt with, the Hurd may reach sufficient maturity within less than an year. Alternatively, FSF may choose to fork the Linux kernel – this will be a titanic work, but will keep the free software codebase from technical splitting, and the devotedness of the FSF supporters may turn out to be able to do it.

The other side of the war – whose software will be in the distros – is also ambiguous. Business players like Red Hat and Novell may be expected to be naturally against the anti-DRM GPLv3. However, the “silent whale” Debian Project, being closer in spirit to the user freedom values, may decide to choose the FSF line of code as its default. Together with its derivatives, it makes about a half of all GNU/Linux installations. This is enough to keep GPLv3 in the game.

So, at this point the balance of the forces seems to be roughly even.

On the long run

Initially, it may be hard for the GPLv3-licensed software to hold its ground. It has no usable kernel, and will have none for at least an year. Porting all possible drivers and free programs to the Hurd is a colossal task; some of it is done, but a lot is not. Building hastely a Linux emulator for Hurd may decrease the time pressure, but will also delay the real porting.

Also, the forces behind v2 are very strong. If they choose to play with the Trusted Computing backers, the GPLv3 software may simple be thrown out of the PCs. (Naturally, most users and a lot of developers will see this as a treason, but the corporate power games have never been a place for honor, and can always be played far from too honest eyes.)

GPLv3, however, has some obvious and undoubted benefits over v2 – the license compatibility, and the protection against patents. Both are useful for the users and the companies alike. After the first exploits of the GPLv2 weaknesses in this area these advantages may suddenly dawn on the corporate players. And some of them aren’t stupid, and may have already grasped the idea. So, the corporate support for GPLv2 may be less unanimous than it appears at a first glance

Switching to v3 may deny a company its part of the DRM and Trusted Computing market. However, demanding from its code suppliers the v3 license will save it an awful lot of licensing problems, and you can’t create GPLv2 product from GPLv3 supplies. Some players will surely not be able to hold a signifficant share on these markets anyway, so they will benefit from a switch – and the more of them go for it, the stronger the GPLv3 ecosystem will become.

So, in the long run the GPLv3 positions will strenghten. If it survives the initial period (and it probably will – if Stallman was the man to despair and surrender in such a case, there would be no FOSS now at all), I will expect it eventually to claim the victory – even if it is faring worse in the beginning.

My 5 cc.

End of the analysis attempt. Personal opinion begins here.

I’m a developer, too. But most of the software I use wasn’t written by me – so I’m more an user than a developer. The user rights should concern me more than the developer benefits. I don’t think that the user supremacy is necessarily better than the developer supremacy, just that it is closer to my interests.

Let’s take the proverbial example for v2/v3 difference – the Tivo. It is essentially a Trusted Computing device, and the TC initiative is being forced hard novadays. If it succeeds, the argument “Tivo may be locked, but you can always run the code elsewhere” may become void. I’m not going to support this outcome. Would you?…

Also, hardware and software are too intergrated in reality to be considered apart for a practical purpose. If GPL may be circumvented by hardware-based means, it is in practice void, only a dummy that lures the gullible into the mistake that their code is under a copyleft license, not a permissible one like BSD… There must be a red line somewhere. And I think that GPLv3 puts it in a good place.

Sure, GPLv3 is a very political license. But so was GPLv2 in its time. Back in 1991, software patents and hardware DRM didn’t really mattered. Now they do, and GPLv2 is not what is was 15 years ago. This thing is now GPLv3.

It is true that developers and users are the two sides of the same coin, and have no sense without each other. But the software is created not for the sake of the creation, but to be used – so I’d think that the users are the number side of the coin. Aside from the miracles of the advertisement, I’d expect most users to prefer GPLv3. If v3 gets supported by enough developers to maintain the most used programs, and keep the users with it, I would expect that the developers will come to it with the time, too.

I have read most, if not all arguments against the v3 drafts. Some were justified – but almost all of the problems they point at are resolved in Draft 3. All aguments I have seen lately (“the voting machine”, “the medical software”, “the embedded ROM-based devices” etc.) are based on problems that can be easily solved within GPLv3. It is still not perfect (as of Draft 3), but its real problems are few and unimportant enough.

At the same time, the benefits of GPLv3 (the improved compatibility with other licenses, and the well-tuned degree of protection against software patents) appear to be very good in long term, not only for the users, but also to the more farsighted developers and companies. (The GPLv3 creation process consulted practically all corporate players in this area, and as far as I know, their desires have been mostly satisfied; GPLv3 may already be obviously better for them than GPLv2.)

You get a few things wrong. The GNU code base can be forked to GPLv2 only (since it is licensed at GPLv2 or, at your option, any later version). The Linux code base can’t be forked to GPLV3 or later (since it is licensed to GPLv2 without any different license option). The whole point is moot, anyway, since you can easily run a GPLv2ed kernel with GPLv3ed system utilities and programs, without licensing problems.

@Ian: Sure you can’t. But what this has to do with the comparison of the two license versions?

@Anonymous: Stripping the “at your opinion, any later version” from the GNU code base license is a license change, exactly as eg. relicensing it under GPLv3. If you are the copyright holder for this code base (ie. FSF), you can do it at whim (for a new version). If you aren’t (eg. the Linux kernel hackers team), you may do it only by rewriting completely the parts of code belonging to copyright holders who didn’t give their explicit agreement to the relicensing. As FSF will probably not agree to relicense the GNU code base under GPLv2 only, anyone who wants this will have to rewrite most of it. An alternative will be to fork the GNU code with keeping the current license.

It is the same with moving the Linux code base to v3 in spite of Linus. Both ways, we are talking of a nearly complete rewrite of an immense amount of code.

And, yes, you can run a GPLv2/GPLv3 mix, but only in conditions permitted by both versions. In conditions forbidden by the GPLv3 (eg. on a Tivo device), you can run only the GPLv2 part – that is, the bare kernel. And you can use a forked version of the GNU utilities, under v2-only, or v2+ license, or a pre-fork version, but you will have to maintain it yourself. It turns more practical to accept the limitations (and to enjoy the benefits) of GPLv3.

First of all, a small part only of a Linux distribution is FSF-controlled code. Sure, an important part, but a tiny minority anyway. And the most importan parts (GCC, glibc) are in hands of people who are either actively pissed off by RMS’ antics before or close to being so. So what the FSF really controls is little. And they don’t have the manpower to force a GPLv3 fork going forward anyway…

The mythical Hurd has enough Linux pieces inside it that it can’t be relicenced as GPLv3 anyway.

You sure can run a Linux (GPLv2) kernel andGPLv3 userland on TiVo. The kernel will prevent the userland doing “bad things”. No change. Besides, a TiVo or such doesn’t need (or even want) a typical userland, it will be custom code anyway, so the point is moot.

Also, killing off TiVo (and such) won’t make any difference to DRM. DRM is around us because their users don’t care, and companies selling “content” demand it. And 99% or the users couln’t care less, they couldn’t distinguish a C program form modem noise anyway.

The text in the GPL v2 lets you choose your version as does the GPL v3 draft. In the short run, nobody is going to go with the GPL v3 except the GNU utilties produced by the FSF.

The real issue is the Patent and Intellectual Property waivers int eh GPL v3 draft. Most of the developers of the Linux Kernel and the DD @ Debian believe that they are too far reaching and are not in the spirit of the GPL v2. Unless the FSF removes or modifies these clause, the vast majority of Open Source software will keep the GPL v2. The Debian-legal mailing list is concerned that the GPL v3 is not free software in regards to the Debian Free Software Guidelines if certain clauses are exercised or enforced. This means that the DFSG will probably be adjusted to only allow GPL v2 or earlier to be distributed in the debian main tree. Just as they are stripping out non-free drivers and firmware out of the Kernel so too will the GPL v3 license.

As far as I am concerned the GPLv3 is not shaping up to be a viable alternative to the GPL v2. As long as the FSF still supports the GPLv2 it is unlikely that open source projects will change any time soon. The ‘or later versions’ clause is not enough to allow anybody but the developers to agree to change version. The FSF supports the GPLv2 , even the GPLv3 draft allows the version to be specified, so the FSF cannot force a conversion to GPLv3.

Most of the real meat of a Linux distro are the libraries which the FSF does not produce. The compiler is not even a part of the kernel. BTW – the GNU utilities and compiler are not part of the kernel and the GPLv3 does not forbid you the use of the gcc to make closed source material if you don’t modify the compilers source.