Wednesday 21 November 2007 by Bradley M. Kuhn
Many people don't realize that the GPLv3 process actually began long before the November 2005 announcement. For me and a few others, the GPLv3 process started much earlier. Also, in my view, it didn't actually end until this week, the FSF released the AGPLv3. Today, I'm particularly proud that stet was the first software released covered by the terms of that license.
The GPLv3 process focused on the idea of community, and a community is built from bringing together many individual experiences. I am grateful for all my personal experiences throughout this process. Indeed, I would guess that other GPL fans like myself remember, as I do, the first time the heard the phrase “GPLv3”. For me, it was a bit early — on Tuesday 8 January 2002 in a conference room at MIT. On that day, Richard Stallman, Eben Moglen and I sat down to have an all-day meeting that included discussions regarding updating GPL. A key issue that we sought to address was (in those days) called the “Application Service Provider (ASP) problem” — now called “Software as a Service (SaaS)”.
A few days later, on the telephone with Moglen2 one morning, as I stood in my kitchen making oatmeal, we discussed this problem. I pointed out the oft-forgotten section 2(c) of the GPL [version 2]. I argued that contrary to popular belief, it does have restrictions on some minor modifications. Namely, you have to maintain those print statements for copyright and warranty disclaimer information. It's reasonable, in other words, to restrict some minor modifications to defend freedom.
We also talked about that old Computer Science problem of having a program print its own source code. I proposed that maybe we needed a section 2(d) that required that if a program prints its own source to the user, that you can't remove that feature, and that the feature must always print the complete and corresponding source.
Within two months, Affero GPLv1 was published — an authorized fork of the GPL to test the idea. From then until AGPLv3, that “Affero clause” has had many changes, iterations and improvements, and I'm grateful for all the excellent feedback, input and improvements that have gone into it. The result, the Affero GPLv3 (AGPLv3) released on Monday, is an excellent step forward for software freedom licensing. While the community process indicated that the preference was for the Affero clause to be part of a separate license, I'm nevertheless elated that the clause continues to live on and be part of the licensing infrastructure defending software freedom.
Other than coining the Affero clause, my other notable personal contribution to the GPLv3 was management of a software development project to create the online public commenting system. To do the programming, we contracted with Orion Montoya, who has extensive experience doing semantic markup of source texts from an academic perspective. Orion gave me my first introduction to the whole “Web 2.0” thing, and I was amazed how useful the result was; it helped the leaders of the process easily grok the public response. For example, the intensity highlighting — which shows the hot spots in the text that received the most comments — gives a very quick picture of sections that are really of concern to the public. In reviewing the drafts today, I was reminded that the big red area in section 1 about “encryption and authorization codes” is substantially changed and less intensely highlighted by draft 4. That quick-look gives a clear picture of how the community process operated to get a better license for everyone.
Orion, a Classics scholar as an undergrad, named the
software stet for its original Latin definition: “let it
stand as it is”. It was his hope that stet (the software) would
help along the GPLv3 process so that our whole community, after filing
comments on each successive draft, could look at the final draft and
Stet has a special place in software history, I believe, even if it's just a purely geeky one. It is the first software system in history to be meta-licensed. Namely, it was software whose output was its own license. It's with that exciting hacker concept that I put up today a Trac instance for stet, licensed under the terms of the AGPLv3 [ which is now on Gitorious ] 1.
Stet is by no means ready for drop-in production. Like most software projects, we didn't estimate perfectly how much work would be needed. We got lazy about organization early on, which means it still requires a by-hand install, and new texts must be carefully marked up by hand. We've moved on to other projects, but hopefully SFLC will host the Trac instance indefinitely so that other developers can make it better. That's what copylefted FOSS is all about — even when it's SaaS.
1Actually, it's under AGPLv3 plus an exception to allow for combining with the GPLv2-only Request Tracker, with which parts of stet combine.
2Update 2016-01-06:After writing this blog post, I found evidence in my email archives from early 2002, wherein Henry Poole (who originally suggested the need for Affero GPL to FSF), began cc'ing me anew on an existing thread. In that thread, Poole quoted text from Moglen proposing the original AGPLv1 idea to Poole. Moglen's quoted text in Poole's email proposed the idea as if it were solely Moglen's own. Based on the timeline of the emails I have, Moglen seems to have written to Poole within 36-48 hours of my original formulation of the idea.
While I do not accuse Moglen of plagiarism, I believe he does at least misremember my idea as his own, which is particularly surprising, as Moglen (at that time, in 2002) seemed unfamiliar with the Computer Science concept of a quine; I had to explain that concept as part of my presentation of my idea. Furthermore, Moglen and I discussed this matter in a personal conversation in 2007 (around the time I made this blog post originally) and Moglen said to me: “you certainly should take credit for the Affero GPL”. Thus, I thought the matter was thus fully settled back in 2007, and thus Moglen's post-2007 claims of credit that write me out of Affero GPL's history are simply baffling. To clear up the confusion his ongoing claims create, I added this footnote to communicate unequivocally that my memory of that phone call is solid, because it was the first time I ever came up with a particularly interesting licensing idea, so the memory became extremely precious to me immediately. I am therefore completely sure I was the first to propose the original idea of mandating preservation of a quine-like feature in AGPLv1§2(d) (as a fork/expansion of GPLv2§2(c)) on the telephone to Moglen, as described above. Moglen has never produced evidence to dispute my recollection, and even agreed with the events as I told them back in 2007.
Nevertheless, unlike Moglen, I do admit that creation of the final text of AGPLv1 was a collaborative process, which included contributions from Moglen, Poole, RMS, and a lawyer (whose name I don't recall) whom Poole hired. AGPLv3§13's drafting was similarly collaborative, and included input from Richard Fontana, David Turner, and Brett Smith, too.
Finally, I note my surprise at this outcome. In my primary community — the Free Software community — people are generally extremely good at giving proper credit. Unlike the Free Software community, legal communities apparently are cutthroat on the credit issue, so I've learned.
Submit comments on this post to <email@example.com>.
This website and all documents on it are licensed under a Creative Commons Attribution-Share Alike 3.0 United States License .
from standard import disclaimer
SELECT full_text FROM standard WHERE type = 'disclaimer';
Both previously and presently, I have been employed by and/or done work for various organizations that also have views on Free, Libre, and Open Source Software. As should be blatantly obvious, this is my website, not theirs, so please do not assume views and opinions here belong to any such organization. Since I do co-own ebb.org with my wife, it may not be so obvious that these aren't her views and opinions, either.
ebb ® is a registered service mark of Bradley M. Kuhn.Bradley M. Kuhn <firstname.lastname@example.org>