Our portfolio company 10gen has released the core of its MongoDB database under the GNU Affero General Public License (the drivers are licensed under Apache). Some people react to the Affero GPL by saying something along the lines of “that’s a new license which I don’t want to understand or bother with." I have some sympathy for that initial reaction (who wants to figure out legal stuff), but most of the same people would happily use GPL licensed code without checking whether it is v2 or v3.
Now the funny thing is that that the GNU Affero GPL differs from the GPL v3 in one added paragraph and one changed sentence (you can easily confirm that by downloading the licenses and running them through diff – ignore the crud from the preamble which has no legal implications). Here is the critical additional paragraph:
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software.
The intent here – and that is the interpretation that 10gen is interested in – is to say that if Hosting Company X runs MongoDB to provide a "database in the cloud” service and makes changes to MongoDB they have to publish those changes. In other words, this license closes what some folks have referred to as the “ASP loophole,” i.e. the ability of application service providers to modify GPL licensed code without having to contribute the modifications back.
Another way to look at this is that before the web was huge, the predominant mode of using software required distribution of the software. The GPL is and alway has been extremely clear that if you modify GPL licensed code and then distribute the modified program, you must make the modified source available. So what the added paragraph says is that making your software available over a network is a form of distribution. That seems entirely logical in a networked world.
So as to not be accused of incompleteness by anyone who runs diff, the added paragraph goes on to specify that the source that is made available must include any GPL v3 licensed code that was also used. The ability to mix GPL v3 and Affero GPL licensed code is the only other addition to the terms.
My recommendation to anyone concerned about the Affero GPL is to run diff on the two licenses. In fact, it would be a great service if the Free Software Foundation did this right on their license pages. I believe that would remove the odd amount of FUD that has somehow gathered up around this license. It would of course also help if Google changed its stance and made the Affero GPL one of the available licenses on Google Code. This issue was covered well in a post by Matt Asay which also has comments worth reading (especially the second-to-last and last comments).
Over 200 subscribers