Some question whether a new version of the GPL, the license for an estimated 75% of free software projects, is needed at all. And, while language changes to improve international use are relatively uncontroversial, other changes in the new version are hotly debated, including the section about patents, with its language to prevent a reoccurrence of the Microsoft-Novell deal signed in November 2007, and sections that restrict the use of the license with lockdown technologies.
How legitimate are these concerns? Should software developers and distributors move to the new version or stay with the second version of the GPL? What will happen if some parts of the FOSS world, such as the Linux kernel, stay with the second version while other software uses the third version?
These questions are not easy to answer. The language of GPLv3 has changed dramatically since the first discussion draft was released in January 2006, but many people's perceptions of the license have not kept pace with the changes. Myths abound, aided by the sensationalism of the mainstream computer media, which frequently -- often willfully -- misinterprets the hyped-up rhetoric of the FOSS world as more serious as it is. Nor has understanding been aided by the fact that the Free Software Foundation (FSF), which is drafting the new license with the help of the Software Freedom Law Center, has adapted a policy of not answering criticisms, even when they become personal attacks, in order to avoid stifling discussion.
The reasons for the new version
Even the reason for GPLv3 is a matter of dispute. In September 2006, a group of Linux kernel developers that included Andrew Morton and Greg Kroah-Hartman released a statement that suggested that, since the second version of the GPLv2 has been so successful in the fifteen years since its release, "we are extremely reluctant to contemplate tampering with that licence except as bug fixes to correct exposed problems." So far, the letter continued, "we have not found any bugs significant enough to warrant such corrections."
Similarly, Linus Torvalds, the leader of the Linux kernel project and one of the GPLv3's most vocal critics, suggests that the reason for the new license is that the FSF "noticed that there were other things that they wanted to do, and that were not not covered by the GPLv2."
However, to Richard Stallman, the FSF's founder, nothing has changed in GPLv3 except that language has been added to cover new loopholes that have emerged with the development of new technology. "In GPLv1," Stallman says, "I knew of two ways that people could try to make free software effectively proprietary. One was by adding additional license terms, and the other was by not releasing the source. So GPLv1 said you couldn't do either. Then, in 1990, I found out about another: that patent holders could threaten developers and make them impose restrictive conditions on subsequent users.
Continues Stallman: So GPLv2 added Section 7, which says that, no matter what other conditions are imposed on you, you can either distribute with full GPL freedoms or not at all. Now we've found out about two other ways to try to make free software effectively proprietary: one of them is TiVoization [the use of hardware based lockdown technologies], and the other is the Novell-Microsoft deal, so we're trying to block them both. And any time we find some new threat to a user's freedoms, we will try to block it."
In other words, unlike the kernel developers, Stallman and the FSF do see significant bugs. Rather than radically altering direction, they are simply moving to correct them. Many of these bugs are relatively minor and uncontested, such as the language that excludes the users of file-sharing software like BitTorrent from having to provide the source code along with binaries. Or the new ways to distribute source code, such as including written offers for the source code or providing access to it on a network server. As Brett Smith, FSF compliance engineer, suggests, such changes are simply "bringing GPL into the Internet culture."
The trouble is, not all the changes are just a matter of changes in technology. The major issues, although sometimes based on technology, also invoke philosophical and personal issues.
The least controversial changes are those that make for greater clarity of the language and changes of language to make the GPL easier to use in different copyright jurisdictions. When many of these changes were completed in the second draft, Eben Moglen of the Software Freedom Law Center, who leads the team that is drafting GPLv3, explained, "The goal is to allow people to ask lawyers about local copyright problems and to get answers that are immediately useful to them, even where the copyright lawyer consulted is not herself or himself experienced in the GPL.
Examples of these changes are the replacement of "distribute" with "convey" and "derivative work" with "modification." While these changes may seem minor to lay people, according to Moglen, they are an "attempt to use a neutral word not found in other people's copyright statutes" and to eliminate terms that, in other jurisdictions "either didn't mean anything or didn't mean what American law makes it mean."
The only potential controversy in these changes is that, despite the greater acknowledgement of non-American law, official translations of the GPL into languages other than English still do not exist.
"That's something that we have very serious reservations about because of the potential legal implications," says Brett Smith, who raises the concern that versions of the GPL in different languages might be accidentally incompatible. There is the difficulty, too, of finding bilingual legal experts competent to do the work. The demand for official GPL translation exists and is likely to grow, with jurisdictions like Brazil looking for one. But, so far, such concerns have been relatively unimportant in the GPLv3 debates.
Liberty or Death
GPLv2 includes section 7, the so-called "liberty or death" section that states that restrictions placed on software distribution due to court allegations of patent infringement do not release distributors from the obligations of the license -- in such cases, they must simply stop distributing the software in question.
GPLv3 goes even further, adding that contributors of GPL-covered software grant all users a license that covers all patents needed to "make, use, sell, offer for sale, import, and otherwise run, modify and propagate the contribution." Moreover, such deals such as the one between Microsoft and Novell, which saw Microsoft redistributing Novell's Suse distribution while offering protection against patent claims only to Novell users, are specifically prohibited. However, given the impossibility of making such language retroactive, it applies only to deals that occurred after March 28, 2007.
These changes have been criticized by the Association for Competitive Technology (ACT), which argues in a paper entitled "GPLv3: The Legal Risks of Overreaching for Third Party Patent Rights," that these changes "force third parties to surrender patent rights ... unrelated to development of contributions to GPL code." In an apparent reference to the Microsoft-Novell deal, the paper accuses the FSF of making revisions "selectively to target specific parties" and claims that such changes may affect the ability to enforce the GPL.
ACT is generally seen in the FOSS community as a mouthpiece of Microsoft, and the paper was rapidly and widely denounced -- but not before it started circulating the rumor that, to use the GPLv3, companies would have to surrender their entire patent portfolios.
However, as the language of GPLv3 makes clear, both the paper and the rumor are incorrect. The language on patents clearly concerns only patents associated with GPL-covered software, and not a contributor's entire patent portfolio. And, just to clear up any misunderstanding, the section on patents in GPLv3 ends with an explicit statement that "Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law."
Even more importantly, Peter Brown, executive director of the FSF, points out that the language on patents did not originate with the FSF alone. As part of the consultation process in producing GPLv3, the FSF organized four consulting committees that included representatives of "all the largest patent holders who have an interest in or distribute free software," Brown says. "I'm not saying that they're all happy, but they all came to the understanding that this was the language that represented the whole range of views that were expressed whilst recognizing the community's desire to protect itself from software patents."
Brown goes on to point out that such companies as IBM or Sun Microsystems would hardly have announced their intentions of using GPLv3 if they had serious concerns that doing so would open their entire patent portfolios. Brown suggests that part of the acceptance may be a feeling that the enforcement of software patents may be diluted or eventually eliminated if current trends in patent law in the United States continue.
However, an even simpler explanation for acquiescence exists: Free software is a major source of income to such corporations. In all likelihood, they have weighed the costs of accepting the language of GPLv3 against the costs of opposing it, and found their bottom line will be least affected by going along with the changes rather than opposing them.
As for the language that was a specific response to the Microsoft-Novell deal, Brown points out that it was developed in consultation with Novell. In fact, he reveals that Eben Moglen received a copy of the agreement long before it was made public.
Moreover, far from being crafted in a way intended to harm Novell, the language goes out of its way to exclude the Novell deal by setting a date from which it applies. In this way, "Novell becomes part of the GPL3 ecosystem," Brown says, a maneuver that is far more important than punishing Novell, as many people in the FOSS community demanded.
Instead of being alienated, Novell remains a member of the FOSS community -- albeit an ostracized one. Temporarily, Novell will have an advantage over other FOSS companies, but, when its agreement with Microsoft expires, so will that advantage. Although Brown describes the FSF as being "angry" about the deal, he suggests that this compromise is strategically sounder in the long term.
GPLv3 contains two sections dealing with technologies that restrict user's ability to use software as they choose. In Section 3, GPLv3 specifies that no software covered by the license will be covered by laws that prevent circumvention of digital rights management (DRM) technologies. In other words, if software is released under the GPL, then cracking any DRM it includes is legal. Since, to date, DRM schemes have all been cracked sooner or later, this provision alone neutralizes them.
Yet Section 6 goes even further by stating that, if any technologies that restrict software are used, then the source code for them must be distributed along with the source code for the rest of the program. This provision covers both DRM technologies, which requires authentication by legitimate users, and what the FSF refers to as TiVoization -- the use of hardware controls to prevent modified versions of the software from running. So-called because the TiVo was one of the first examples of the technology, TiVoization is described by Peter Brown as circumventing GPL2 "in spirit, not technically." According to Brown, the provision against it is needed to further the FSF's goal of empowering all computer users. "The Preamble is pretty clear that the purpose of the GPL is to protect user's freedoms," he says.
However, Linus Torvalds takes a different view, one that is shared by many kernel developers and no doubt many other developers in the FOSS community. While Torvalds has softened his criticism of GPLv3 in recent months, provisions against TiVoization -- a term that Torvalds refuses to use, calling it unfair -- remain his major reason for rejecting the new version of the license.
In an interview with Forbes magazine in March 2006, Torvalds explains why he prefers GPLv2 to GPLv3. "To me, the GPL really boils down to 'I give out code, I want you to do the same,'" Torvalds says. "For example, the GPLv2 in no way limits your use of the software. If you're a mad scientist, you can use GPLv2'd software for your evil plans to take over the world ('Sharks with lasers on their heads!!'), and the GPLv2 just says that you have to give source code back. And that's OK by me. I like sharks with lasers. I just want the mad scientists of the world to pay me back in kind. I made source code available to them, they have to make their changes to it available to me. After that, they can fry me with their shark-mounted lasers all they want."
On the Linux kernel developer's mailing list, Torvalds has recently re-stated this position in an often heated and abusive exchange with Alexandre Oliva, one of the directors of the FSFLA, a Latin America-based organization with close but unofficial ties with the FSF. The choice of license for the kernel, Torvalds says at one point in the discussion, is "about keeping me happy. That's my primary (only) motivation for a license....I want to be able to use other people's improvements."
For Brown, this position summarizes the basic distinction between the open source and free software philosophies. Advocates of the two philosophies have much in common, including the same licenses, and the terms are often used interchangeably, especially by those outside the communities. Nor do they represent two separate views so much as opposite ends of a spectrum of opinions. However, essentially, the open source philosophy is mostly concerned with the quality of software produced by the licenses, while the free software philosophy sees the licenses as a means to ensuring the rights of computer users.
"When we talk about computer users' freedom, we mean computer users -- not computer programmers, not the most powerful people in society," Brown says. "And certainly in the software community, those with the most power are the developers. So it's understandable that they wouldn't see [TiVoization] as a problem. They want the freedom to lock down computer users."
Paraphrasing a remark by Stallman, Brown adds that appreciating the GPL because it encourages the sharing of code while not restricting what you do with the result is like using the DVD drive on your computer as a cup holder: You can use it that way, but that's not what it's intended for.
This attitude seems to enrage Torvalds, who writes on the kernel developer's list that "The FSF thinks that they own the definition of 'freedom' and that "I'm damn[ed] fed up with the FSF being the 'protector of freedoms,' and also feeling that they can define what those freedoms mean."
In some ways, this debate seems as much about longstanding disputes and personality differences as about the changes to the license. In addition, underlying the dispute may be the difference between those who believe that freedoms must be restricted in order to protect freedom for the greatest number (The FSF's position) and those who believe that to place any restriction on freedom destroys freedom (Torvalds' position). Yet, whatever the reasons behind it, enough rancor exists that a resolution is probably impossible.
What happens next?
When GPLv3 is released, it is likely to co-exist with GPLv2 for some time. Aside from objections like Torvalds', with many projects, including the kernel, the task of tracking down all copyright holders in order to obtain their agreement to change licenses, is onerous and probably impossible.
Yet for all the energy devoted to the changes, in many ways the results will have be surprisingly minor. Software released under GPLv3 will run on a GPLv2 kernel, just as software released under other licenses does. GPLv3 software will not be available for use in GPLv2 software, but perhaps the possibility of dual-licensing will emerge as a compromise, as Torvalds and others have speculated on the kernel developers' list.
"What's the worse case scenario?" Brown asks. That the Linux kernel stays at GPLv2 and lots of other projects move to GPLv3. So what? GPLv2 is a perfectly fine license. But it's got some problems. It doesn't cover some areas that developers may come to rue if they don't change the license."
Surprisingly, perhaps, Torvalds agrees. "I don't think that it's a disaster if we end up with a GPLv2 and a new and incompatible GPLv3," Glyn Moody quotes him as saying. "It's not like we haven't had licenses before either, and most of them haven't been compatible."
In the longer term -- say the next five years -- GPLv3 will probably win out through attrition. If nothing else, as the discussion on TiVoization makes clear, the FSF cares strongly about the issues behind the provisions in the new version of the license while those who think like Torvalds, for all the animation with which he expresses himself, care relatively little. In the end, they would rather be coding. As more projects move to GPLv3, open source advocates will probably move with the rest of the community.
So will the consultation process and the angst have been worthwhile in the end? Brown thinks so. Over the last eighteen months, discussion about the GPLv3 has helped to start discussion of many of the issues that the FSF is concerned about, ranging from DRM and TiVoization to internationalization and software patents. "It's been phenomenal in that sense. It's allowed the community to have conversations about these issues, and I think that's all for the good." In this way, even if the FSF's licensing battle proves inconclusive, the skirmishes may have helped its long-term strategies.