1. The Great Software Schism
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.)
So, my preferences fall towards GPLv3.