GPLv3 v2
I was just checking stats on adoption of the GPLv3. The total number of projects under v3 is approaching 2,000, and, as we know, some really visible projects switched from v2 to v3 some time ago, including Samba and SugarCRM (Community Edition).
Few topics of common interest to tech lawyers and technologists have generated as much passionate discussion over the past year as the GPLv3. I expressed some of my initial thoughts about what turned out to be the final version of the new license in an interview with Jack Loftus of SearchEnterpriseLinux.com last April. Some parts of the draft seemed to me to be unclear, and I was concerned about that and knew others were, too. It’s not that I think the GPL as a whole is problematic for the purposes it’s intended to serve, it’s just that quite a lot of consequential stuff was added to the final draft of v3 after Microsoft and Novell announced their agreement on Windows-Linux interoperability in November 2006. I was concerned that some of these late-stage changes may have been overly reactive and may not have been as broadly vetted within the FOSS community as changes in earlier drafts. Those changes relate to patent rights in and beyond the context of similar deals, and my concerns about lack of clarity are focused on these patent related provisions.
Die hard skeptics think this view naive, of course, but I continue to see the Microsoft-Novell deal as a genuine acknowledgement that Linux (and the GPL) is here to stay, that a lot of enterprise users want it that way, and that those enterprises want their vendors to cooperate, even as they compete. I felt very strongly back then that the Microsoft-Novell deal was a positive move by both companies — one that was good for IT users on numerous levels, the primary one simply being enhanced interop between Linux and Windows. (I was not alone here either.) I still see things that way, even as Microsoft makes unilateral moves toward increased opennes of its APIs and protocols nearly 18 months after the deal. In retrospect, I also see how the strength of my initial reactions to the late-stage changes to v3 negatively affected the tone of some of my comments. I regret that, because I know a lot of smart and dedicated people worked very hard on v3. I still have strong feelings about the significance of the Microsoft-Novell deal and concerns about ambiguities I perceive in some of the late-stage changes to v3, but I was clearly a little too worked up at the time of my interview.
The GPL is an incredibly important document. For over 20 years, the GPL has helped catalyze and nurture a large number of hugely valuable open source projects. Linux, the MySQL database and other major projects are maintained under the GPL, as are scores of smaller projects. Without a doubt, the GPL has done more than any other license to make open source software the major force it is today.
Linux and other projects governed by the GPL are supported and distributed by parties who have diverse perspectives on software patents. Some, like IBM and Novell, hold patents for a variety of reasons, including potential defensive use to protect open source projects. Any changes to the GPL (or any other widely-used FOSS license) related to patent rights are bound to be carefully considered by participants in the FOSS ecosystem, and perspectives on them will vary.
Here’s one example of a seeming ambiguity that concerned me last April, and which still concerns me today: The GPLv3 contains a patent license that each contributor to a project grants to all those who use, modify, or distribute its contributions (Section 11, Paragraph 3) and a broad covenant pursuant to which each party to the license promises not to sue other parties under any of its patents (Section 10, Paragraph 3). The patent license covers only “essential patent claims,” which the drafters defined as “claims that would be infringed only as a consequence of further modification” of the version of the program that contains the contributor’s code. While this language seems intended to ensure that contributors relinquish a narrowed set of patent rights while retaining others that could be infringed by a subsequent contributor’s modifications to the program, the covenant not to sue in the final version of the GPLv3 (unlike the covenant in the draft that preceded the Microsoft-Novell deal) contains no such limiting language.
I wonder whether these provisions could be interpreted to mean that contributors to, as well as mere distributors of, GPLv3 covered programs agree never to sue any party to which the program is conveyed, even if others further modify or use it in ways the contributor or distributor did not envision, and which violate patent rights the contributor or distributor thought it had reserved for itself. In v3, “program” simply means “any copyrightable work” and “version” is undefined. If you’ve just released your zippy engine under v3, and if someone else uses parts of it to create something like your proprietary zappy parser, it seems reasonable to conclude — though probably still subject to debate — that you have not granted the other party a license to your patents covering your proprietary zappy parser (under Section 11, Paragraph 3). But, is the other party’s modified program still “the Program or any portion of it” for purposes of the covenant not to sue (in Section 10, Paragraph 3), which applies to all of your patents, not just your “essential patent claims” related to the zippy engine you released under v3? I do wonder whether the final version of the covenant not to sue unintentionally takes away what the patent license appears to reserve to contributors.
In a license like the GPL, it makes sense to expect contributors and distributors to refrain from asserting their patent rights against folks downstream who use their code in ways one reasonably expects it to be used. (In fact, that’s typically how licenses covering closed source, proprietary code work.) Whether it makes sense to go beyond that is a question on which reasonable minds may differ. The particular example of seemingly unclear language in the GPLv3 I’ve highlighted in this post is curious, because the “essential patent claims” aspect of the patent license appears to be evidence of an intention not to disrupt entirely the rights of those in the FOSS community who hold patents. The Free Software Foundation, which is the guardian of the GPL, is not a fan of software patents, but it seems to have perceived a risk that some who support the GPL, and who also hold patents, might not embrace v3 if they thought the patent license provisions were too broad.
Whatever one’s perspective on patents in general, and on software patents in particular, they’re likely to be with us for a long time to come. It’s worth remembering that, in a very real sense, the GPL and other FOSS licenses are grounded in the intellectual property rights systems of the US and other countries. By “opting in” to the GPLv3, each contributor freely and partially relinquishes the main freedom he or she otherwise would have under copyright and patent law: the freedom to limit what others do with one’s original work. In a world in which property rights, “intellectual” and otherwise, were not acknowledged, the FOSS movement might not exist.
For both good and ill, our IP rights system fosters and supports broad domains of creativity in the arts and sciences and in the models by which creative works — whether code or Coda — are made available for others’ use and enjoyment. In the tech realm, different products and distribution models sometimes conflict with and constrain one another, but often these very conflicts catalyze the enlagement of existing domains of creativity or open new ones. IMHO, that’s what’s happening today at the intersection of proprietary software and FOSS. The various FOSS approaches to software licensing definitely are pulling proprietary models in their direction at the moment, but it remains to be seen precisely what sort of hybrid models and equilibrium states eventually will emerge. To my thinking, human talents and motivations are just too varied to believe that one size will fit all for all time — in software development and licensing or anything else. That’s why we see diverse approaches to writing and distributing code. It’s also why we see omnivorous IT departments and end users, and why those consumers demand that software producers learn to play nicely with one another. Years later, perhaps some critics of the Microsoft-Novell deal will see it as an important step in a progression toward a new model or stable state.
My concern about ambiguity in the GPLv3 stems from fear that a “v2-v3″ divide, if it were to emerge, could hurt the IT ecosystem, including FOSS. FOSS is having incredibly transformative effects within the tech industry, and I’ve been fortunate to have had the opportunity to help some folks do very innovative things in the FOSS arena — including helping SiteScape make the shift from a proprietary to an open source model, launch the ICEcore project (under the CPAL), and, most recently, combine with Novell. Eight months after the official release of the GPLv3, I don’t think we can say there’s significant evidence that my own and others’ concerns about a potential v2-v3 divide are materializing — and that’s a good thing. Novell has said it will distribute v3 extensions to Linux (which, at least for now, remains v2). IBM officially embraces v3 (though the company generally favors other licenses over the GPL, and software chief Steve Mills has at times been critical of v3). While many projects remain under v2 — like WordPress, in which my blog is authored — I don’t think one can say anything like “GPL chaos” has yet resulted from differences of opinion and preference regarding v2 and v3. The possibility for division concerned me last year, and it still concerns me somewhat today, but I don’t think we see the parade of horribles some have feared coming around the bend. To the extent concerns about ambiguity are widely shared and persist, perhaps a GPLv3.1 could be the quick and easy fix.
February 25th 2008, 3:55pm