Affero GPL Discussion Draft Version 1

I’m surprised to see so little being said about the First Discussion draft of the Affero GPL v3. I see only 9 comments as of 9PM PDT 6/13. That’s not very many.

Perhaps the reason is that the only difference is the single paragraph in Section 13 which states:

Notwithstanding any other provision of this License, if you modify the Program, your modified version must give 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 copy the Corresponding Source from a network server at no charge.

Fabrizio here seems bullish on the new license and goes on to say:

Bottom line: if GPL v3 and AGPL v3 are exactly the same document and are 100% compatible, why would an open source developer choose to allow people to run its software as a service without returning the code to its community? It does not make any sense… Zero, nada… Every single developer that will have to choose between GPL and AGPL will go for AGPL. I guarantee it.

Let me suggest the outcome that is much more likely to occur with the license in its current form: No one is going to adopt it.

I think this is the reason their aren’t many comments on the draft. Its simply a terrible license.

Not much more to say.

OK, well, maybe a little more to say: It’s astonishingly ambiguous and trivially circumvented.

Take for example the phrase ‘users interacting with it remotely’. I defy anyone to explain to me where the ‘user’ ends and the ‘non user’ begins. The browser? The TCP stack? The application? The database? The operating system?

Is this license somehow trying to distinguish between identical function calls/queries/requests that somewhere, somehow, originated by a ‘remote user’ and those that didn’t?

Is that software freedom?

The clarification ‘(if your version supports such interaction)‘ only seems to further confuse the point. Which kinds of interactions are they talking about? Remote interactions, or user interactions, or remote user interactions? It makes a difference. At an even more basic level, why is this clarification even necessary? If the Work didn’t support such interactions, why would it even be licensed under the AGPL? This is a tautological gibberish.

If the distinction between static and dynamically linking libraries in the GPL was a point of disagreement, then rest assured that ‘users’, ‘remote interactions’ and ‘remote user interactions’ will keep the lawyers busy for years to come.

This ambiguity leads directly to the trivial ways in which the license can be avoided: Take the AGPL’d code, rip out the ‘remote user interaction’ interface components and replace them a ‘local, machine interacting’ interface (i.e. a different API) and I’m done. If you don’t think this is possible, then we disagree on what a user interaction is and a machine interaction is. Which is exactly my point. A slightly more liberal reading of this license would conclude that a simple (local) proxy isolated the ‘remote user’ from the Work, which undermines the license in it’s entirely.

‘ASP loophole’ is too complex a problem to be addressed by the addition of a single paragraph in a document that had different licensing objectives. Or for that matter, by any license that covers only a portion of a complex, distributed service offering.

If I wanted my software to be adopted by the greatest number of people possible I wouldn’t hinder it by using a license that doesn’t solve my problems. Perhaps future drafts will be better, we’ll have to wait and see.


Subscribe to Blog Updates

Quickly connect apps, data, and devices

Start Free Trial
Contact Us Free Trial