Sunday, April 13, 2008

Google and the Affero GPL

The Affero GPL is a bit of an oddity; it is a license for software which requires the release of the source code to the software to anyone who accesses that software, or a derivative of that software, over a computer network. The upshot of this is that if you make a website which uses an Affero-licensed library, you probably have to make the source of that website available to everyone who wants it.

Perhaps understandably, the Affero license hasn't really taken off. Anything licensed under it would be effectively unusable for any commercial activity. About the only AGPL software that is even vaguely high-profile was the web.py web framework for Python, which is used in Reddit and various other sites. I say was, because the author, probably on realising that no-one was going to use it under such terms (he presumably granted Reddit some form of exemption) hastily re-licensed it as public domain; about as radical a shift of open licenses as you can make.

There are a few (literally, it seems; about 20) Affero-licensed projects out there, though. Recently, Google announced that it wouldn't be allowing people to host them on its Google Code open-source project hosting service, which currently seems to be the general-purpose service of that type to use; Sourceforge just gets worse and worse. Their stated reason for this was they wish to prevent the proliferation of millions of different types of open source language, but a lot of people are claiming that the real reason is that Google sees this sort of license as a threat; Google uses a lot of open source software itself, and would presumably not like to see a situation where it would have to give up using certain libraries or commit to maintaining forks of them itself, because the alternative would be releasing source to its own systems.

It's a nice conspiracy theory, but in practice it's a bit silly. The AGPL is doomed from the get-go, and in particular it is very unlikely that anyone would shift a project from GPL to AGPL; most of the users would probably have to stop using it. An Affero-like clause was supposed to be inserted into GPLv3, but was abandoned at the last moment for, I presume, precisely this reason; it would greatly marginalise the GPL, and few GPLv2 projects would 'upgrade' their license. The only real use I can see for the AGPL is for commercial vendors of libraries who practice dual licensing; MySQL, for instance, could force many, many people to pay for a commercial license by shifting its client libraries from GPL to AGPL; they have already been shifted from LGPL to GPL for, I'd think, similar reasons. Even then, it would be risky; people might start seeing rivals with more permissive licenses as far more attractive.

Another issue is that at the moment interpretation of the AGPL isn't entirely clear and hasn't really been tested; there have been suggestions, for instance, that the content of an AGPL blog might itself fall under AGPL licensing.

So, yes, Google is almost certainly taking this stance on the basis that the AGPL is pointless, will lead to confusion, and will never be popular.

No comments:

Post a Comment