How To Beat The AGPL

Wed, Nov 21, 2007 3-minute read

The Free Software Foundation has released a new License, the GNU Affero General Public License. As much as I respect the FSF, this new license is horrible and should be taken out back and shot.

But there’s good news for people who want to use AGPL-licensed software without complying with the spirit of it’s awful restrictions. Basically, this rubbish is so poorly worded that it’s almost trivially easy to work around. The intent was that if you run AGPL software on your webserver, for example, then you must have a “download link” for your site’s users to retrieve their own copy, complete with any modifications you’ve made. That’s not what they actually say, though. Here’s how to use their own words against them.

Section 13, “Remote Network Interaction […]” begins:

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.** This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.

Notice, though, the ambiguous phrasing of that clause. What they meant was “(providing access to the Corresponding Source) (from a network server)”, eg. by you having that download link. However, an equally valid interpretation would be “(providing access to) (the Corresponding Source from a network server)”, or the source as it exists on a network server somewhere, but not by actually downloading it from there.

Did you catch the difference? Pretty subtle, huh? So you make a link to a page instructing your users to send you blank media and a prepaid envelope, and that you’ll make a copy of the source “from a network server”. Then you copy that source off of a computer you own that’s connected to least one other computer and running at least one network service. Voila. You are now compliant with the explicit terms of the license, although not even closely to how the AGPL’s authors expected. You still have to give out copies of modifications that you’re not actually distributing, which is not required when using software licensed under the GNU General Public License (GPL), but at least you don’t have to pay to host a fileserver anymore and don’t have to keep an up-to-the-second copy ready for your users to download.

Sure, it’s against the spirit of the license, but I see that as a good thing. The GPL is a thing of beauty, but the AGPL has nothing going for it. Even if you like a particular AGPL’ed program, I encourage you to work around the license even as you share your modifications openly as you would with GPL software. Let the world know what you think of the AGPL and point out how ridiculously unnecessary it is. I hate the fact that this End User License Agreement is named so confusingly, and the sooner it dies an inglorious death, the sooner we can get back to writing Free Software.

Usual disclaimer: I am not a lawyer, this is not legal advice, yadda yadda yadda.