When to use and not use GNU AGPL

5 replies [Last post]
Joined: 05/14/2015

I've recently been corresponding with Raphael Robert from Wire. The license on their server back-end is AGPL, but the license on their web app is currently GNU GPL, and I was suggesting it would be better to make it AGPL. See:

Raphael says Wire have based their license decisions on what they consider to be best practice, as recommended by the FSF, based this page ...

... which says:
> "If some of the JavaScript is yours, then you can decide to release it under a free license. We recommend you use the GNU General Public License version 3 or later."

A few questions for the community. Am I in error here? Is it GPL, not AGPL, that is the recommended license for web apps? Or am I correct in my suspicion that the advice given at that link assumes JS *libraries*, and that the choice of GPL for JS libraries is intended to achieve a similar result to applying an LGPL license to a client-side library?

If I'm correct, and AGPL is the optimum license for extending full copyleft protections to whole web apps, is there a gnu.org page that gives that as an explicit recommendation? If not, who is the best person to contact about having a gnu.org page created/ modified so as to clarifies the recommendations?

Magic Banana

I am a member!

I am a translator!

Joined: 07/24/2010

The AGPL makes a difference in a SaaSS situation (although it is *not* a solution to SaaSS): it enables suitably skilled users to set up similar servers, perhaps changing the software. If the software is only meant to be executed on the client side (the usual case for JavaScript distributed by websites), the GPLv3 and the AGPLv3 are equivalent. If, on the other hand, it is possible that another developer modifies the JavaScript and reuses it on the server side, then she would not have to release the modified version to her users if the original code is under the GPL, whereas she would have to if the original code is under the AGPL.

See https://www.gnu.org/licenses/why-affero-gpl.html for clearer explanations.

Joined: 09/13/2010

Use the AGPL all the time. For everything.

While some might say it should be used for SaaSS-type of programs, consider companies like RollApp that say that they can take *any* program and turn it into a webapp: https://www.rollapp.com/apps

If you examine what they have you'll find Inkscape in your browser. GIMP in your browser. And more.

GPLed software, proprietarized.

They can do this because, since you never get the binary, the parts of the GPL that say "if you give people software you must also give them freedom" don't get triggered.

If you consider that this is what our future holds then there is no difference between a SaaSS-type of program and non-SaaSS, since any can be used in either.

Once you have fully groked this then you'll understand what I'm saying to use the AGPL all the time for everything, instead of the GPL.

And after all, the Affero clause was supposed to go into GPLv3 anyway. So you'd be using it the way the FSF originally envisioned, before they compromised and made it a separate license.

Joined: 05/14/2015

> "And after all, the Affero clause was supposed to go into GPLv3 anyway."

Given everything you point out in your comment about desktop software being encapsulated as web apps ("tivoized"), why was the Affero clause not added as a standard part of GPLv3? The only reason I could think of is that it allows GPL to function in server-side software the same way LGPL functions in client-side software, keeping modifications to the code itself copyleft, while allowing it to be used as a component in an otherwise proprietary service. As a user, this could allow me to use a service in full freedom, including any JS running in my browser, even if there is proprietary software running on the server (I don't administrate that computer so that doesn't directly impact my software freedom).

Joined: 09/13/2010

"Given everything you point out in your comment about desktop software being encapsulated as web apps ("tivoized"), why was the Affero clause not added as a standard part of GPLv3?"

Well, the GPLv3 drafting process was public and the FSF shared all of their rationale for things as drafts went out and feedback came in.

If you check out Discussion Draft # 2 of GPLv3 at http://gplv3.fsf.org/gpl-draft-2006-07-27.html you will see Section 7 would have an an optional feature where people could add "terms that require, if a modified version of the material they cover is a work intended to interact with users through a computer network, that those users be able to obtain copies of the Corresponding Source of the work through the same network session"

aka the Affero stuff. That helps to establish the baseline. But, as you see, it would have been an optional feature that people would turn on (or not) when they were licensing under GPLv3 and it defaulted to being off.

But if you check out Discussion Draft #3 they re-worked the entire thing: http://gplv3.fsf.org/gpl-draft-2007-03-28.html
Now that stuff is gone from Section 7. What's now there is Section 13; compatibility with the Affero GPL as a separate license.

So: The FSF compromised and moved that optional feature into a separate license.

They discuss the rationale here: http://gplv3.fsf.org/gpl3-dd3-rationale.pdf

"We have made this decision in the face of irreconcilable views from different parts of our community."

The entire document is a good read but I recommend reading all of 4.2 in their rationale to help understand it.

It let them do the one thing that they thought really needed doing: Getting compatibility with the Affero clause so that people could use it if they wanted to. Remember that it would have been an optional feature in GPLv3 anyway, so having people "activate" the feature by electing to use the AGPL instead of the GPL would be almost the same as people using the GPL and "turning on" the Affero clause. So; moving it to a separate license didn't hurt since people can still elect to use that instead of the ordinary GPL if they want the feature activated.

But they did give up on their broader policy goal of having a variety of Affero-like terms. At least temporarily.

Because even this one was really hard.

And people say the FSF never compromises.

Perhaps GPLv4 will be a chance to re-visit this but that might depend on how people's attitudes evolve toward it. This is yet another reason I encourage everyone to use the AGPL over the GPL too: To make it more common. If more and more people see it and get used to the idea that a lot of the software they use is under the AGPL then those other policy goals might become easier to achieve.

Joined: 11/20/2016


I use the AGPL for everything, including HDL designs for FPGA.