How to beat the AGPL
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.
Comments
Reasoning doesn't stand
Regarding your logic: let's suppose you implement your plan, and the author(s) of the code decide to come after you for what you're doing. Here's how it will go down:
1) You'll get a letter saying that you're violating the license.
2) Your lawyer will respond with "We understand the terms of the AGPL to be [what you said above], and we're complying with them." He will charge you several hundred dollars for writing the letter.
3) The author(s), assuming they care enough to continue, will write you an angrier letter, informing you that the document is clear enough as it stands, and threaten to sue you if you don't do what they meant.
4) Your lawyer will reply, again giving your interpretation (cha-ching).
5) The authors will file a lawsuit. Given that they now are in a position to have to prove the enforceability of the AGPL, they and the FSF are quite likely to do so to keep others from playing the same games.
6) Now you're in court (CHA-CHING!). Your lawyer gives your argument to the judge.
7) This is hardly the first contract with an ambiguous sentence. In fact, as I am sure you'll agree, it's not all that ambiguous on the scale of things. As many sentences in english can be construed in multiple ways, the judge has to decide what this one means. Given the overall content of the document, and the long, public history of the various GPLs and why they were created, the judge will (very likely) decide that your interpretation is just not plausible. He will be aided in this in that the plaintiff's lawyers will have found this blog post, pointing out that everyone else, including you, interpreted the clause the other way until you decided to evade the intent of the AGPL.
8) The judge decides against you. Since this is an interpretation of a contract, it is decided as a simple matter of law, not fact, so it won't even get to a jury. In a way that's fortunate for you, since it's likely to be a summary judgement early in the process, and so your legal bill could be as low as a few tens of thousands of dollars.
9) Of course, depending on how well your argument goes down with the judge, You could wind up paying the legal costs of the FSF and the authors.
So, if this sequence of events sounds wrong to you, by all means give your plan a try.
7) The judge may very likely
7) The judge may very likely rule that since no prior version of the GPL has ever placed requirements on end users (as opposed to distributors), imprecisely worded statements with the opposite meaning must surely be open to suspicion.
I'm not going to fight it. I like the FSF and the GPLv3. I just hate the idea of using EULAs in the Free Software realm.
One Further Point
Note the capitalization of the words "Corresponding Source". In legalese this means that is is a term that was defined somewhere; it is not merely the ordinary use of these words. Presumably (I haven't checked the document) it is defined to mean the source of the program you are running, as modified by you. In any case, whatever the precise definition, you can't reparse the sentence your way and get the meaning you want: whatever you are downloading the Corresponding Source from, you have to get the Corresponding Source, which is the source as modified by you.
Highly, highly unlikely
The GPL is not a contract, it's a license. I license differs from a contract in that there is only one party, who is unilaterally granting some right to others. For example, I can place a sign on my property that says that you can walk across it but not pitch a tent. I don't have to do that - it's perfectly within my rights to post a No Tresspassing sign. Since it's a license, there doesn't have to be any exchange of value; my grant of the right to walk does not (as would be required if it were a contract) require you to give me anything. Since it's a license. it wasn't negotiated with anyone - there was only one party granting rights. The goal of the judge is to figure out what the people who wrote it meant. I don't think that you are arguing that there is any plausible way that the authors meant your convoluted reading. For example, if you went into court and said, "Your honor, I didn't pitch a tent on his property - I pitched it beforehand and carried it in already set up", I don't think you'd find much sympathy.
It is perfectly clear what the AGPL Is trying to do - if you want to use the code on a public webserver you have to make your changes available. The fact that none of the other GPLs make the AGPL's requirements is irrelevant - the whole point here was to *add* a restriction that the others don't have.
But to your point: I don't see why this "EULA" is so very different from the ones in the GPLs you say you like. This one makes a requirement that you can't *use* binaries in a public way without making the source available, the others merely say you can't *distribute* the binary without the source. I wouldn't place a project of mine under the AGPL, but that doesn't mean I think it's in the slightest bit evil, unclear, or unenforceable.
Not really.
You right in that a license grants a right to others but your wrong when it places obligations on them. The obligations become a form of payment and responsibilities that complete a contract. If your simply saying no this or no that, it can be part of a license. If you are saying if you do Y, your have to do Z in addition to no A, no B, and no C, you have presented a contract that someone has to agree to before accepting any rights.
If you take it to court without first discovering compliance of the contract, you won't have a copyright case. The trial over the model railroad software told us that. I don't know why the FSF wants to continue to perpetuate that misconception but it isn't a valid argument. I have heard them claim that the automatic revocation clause does something fancy but you still have to find in a sound lawful way that they aren't in compliance with the contract. And since the rights and contract is passed on each and every time someone gets a new copy of the software, it is possible that you might have to do that multiple times before a judge would unilaterally restrict someone.
I can see it now,
FSF lawyer: And after your were informed that you didn't have a license or a right to distribute the software, why did you continue to do so.
Defendent: I didn't. I went to a website that gave me a new license. I then distributed 2.4.01 not 2.4 .
Judge: how do you control and distinguish between offering and licenses.
FSF lawyer: uh we don't.
Erm.. so what?
Please excuse me if I'm showing ignorance here, but that looks exactly like the terms of the GPL: you can make the source code available to the receiver of the binaries through the network or on a physical medium. Nothing new under the sun, IMHO.
The new is that you are
The new is that you are required to do so simply for use. If you use the software under this license, you have to make it available to anyone who might access it because of your use. It is more of an EULA then a copyright license.
"Corresponding"
Clearly the phrase "the corresponding source from your version" precludes your idea of giving some unrelated source from a different server.
Yes, the numerous lawyers
Yes, the numerous lawyers and companies that vetted this license though the 18-month-long drafting process for the GPLv3 licenses, somehow missed this, and you, the not-a-lawyer guy, found a loophole in it.
Not.
Sure 'nuff!
Pretty cool, huh? "Many eyes make shallow bugs" - a mantra of Free Software - also works in the real world.
Who actually vetted the AGPL, considering that almost no one was asking for it or expressed plans to use it?
Finally, if you found errors in my reasoning, please share them. I'd like to learn! Until then, I'll assume that the logic stands.
Ok then, This is the exact
Ok then, This is the exact same language used in the GPLv3 regarding distribution of source code. Check it:
GPLv3, section 6:
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
The intent is clear. If you choose to be an asshole about this and actually go ahead with your little scheme, you will be sued and you will lose.
Post new comment