
Why the GNU Affero GPL - tjr
http://www.gnu.org/licenses/why-affero-gpl.html
======
tptacek
The AGPL makes straightforward commercial sense (we use it for our open source
product, Flint).

It keeps your code bona fide open source, so people who want to use and extend
it noncommercially can do so without worrying about you at all; the code is
genuinely free.

At the same time, it means that people who would attempt to commercialize your
code must at least do so on a level playing field with you. They can't take
your code, improve it, and withhold those improvements.

AGPL is much better than a "noncommercial" license, because code that can't be
used commercially isn't open. "Noncommercial" licenses are deceptive; they
suggest that you have an incentive to improve other people's code, but really
you can only benefit the owners. And it's better than the BSD license, which
fails in exactly the opposite direction.

People who are reflexively anti-GPL tend not to know much about the security
software industry, where intense VC funding and rafts of "me-too" products
have plagued the major open source projects (Snort, Nessus, etc). If your code
is ever going to really be worth something, and you MIT/BSD it, expect someone
else to make a lot more money off it than you do.

~~~
rick888
"People who are reflexively anti-GPL tend not to know much about the security
software industry, where intense VC funding and rafts of "me-too" products
have plagued the major open source projects (Snort, Nessus, etc). If your code
is ever going to really be worth something, and you MIT/BSD it, expect someone
else to make a lot more money off it than you do."

..and here I thought the GNU was about freedom and helping your fellow man.
Instead, it's about preventing someone from "making a lot more money off of it
than you do".

~~~
joe_the_user
Ironic how commercially useful a tool for freedom can be, huh?

~~~
rick888
"Ironic how commercially useful a tool for freedom can be, huh?"

I find it ironic that people would associate the GNU with freedom, when it's
anything but. The AGPL and GPL is about giving out your source code and
telling people exactly how you can (and most importantly cannot) use it.

How is this any different than a proprietary license?

I'm fine with people being against commercialization of their work, but I just
wish they would stop trying to pass it off as freedom.

This is why I only support the BSD license. Yes, people may make "more money
than me" on my own work, but if that's the case, they obviously have better
ideas than I do..and deserve the success.

It seems like the FSF and Stallman want companies to get confused and use GNU
software in their proprietary application. By calling it "free", some people
do get confused and use it..and it usually ends up on lawsuits that require
the company to open up the source of their app and/or the hiring of a "GNU
compliance officer".

~~~
tspiteri
"How is this any different than a proprietary license?"

With GPL software, you get the right to modify and distribute under certain
conditions. With proprietary software you do not have those rights at all.

~~~
halostatue
It's not true that you don't get those rights with proprietary software. It
depends on the license, as always.

The disconnect the GP has is that the GNU GPL is based on freedom, yet it
places significant restrictions on what you do with the software under the
GPL. It's a fine license, but calling it "more free" is nonsense.

~~~
loup-vaillant
Define "significant". Because in a sense I agree: these restriction have
profound implications. In the other sense, however, I disagree: the
restrictions you speak of don't unreasonably limit your freedom.

Remember the four freedom free software gives you: (0) running it for any
purpose, (1) modifying it, (2) re-distributing it as is, and (3) re-
distributing it modified.

With GPL, freedoms (2) and (3) can only be enjoyed at one condition: giving to
those who receive the software the exact same freedoms you enjoyed. In other
words, you shall not make your users less free than you are already. This is a
long standing principle: one's freedom shall stop at others'.

I argue that the GPL merely forces you to respect that principle (it will be
very hard to convince me otherwise). If you don't like that, I will be forced
to question your morality.

~~~
halostatue
Compared to the BSD-family of licences, the GNU GPL is less free, as it
restricts what one entity can do with code granted by another. I'm not saying
this is a _bad_ thing; this is exactly what the GNU GPL is written to do:
enforcing a share-and-share-alike ethos for a given set of code.

I do think that the rhetoric (including the "four freedoms") is nonsense that
could be left by the wayside with no harm, and possibly even improve it.
That's the part about the GNU GPL and the FSF that I can't stand: don't try to
tell me that this is about freedom. Tell me that this is about building a base
of code that requires share-and-share-alike behaviour and that you're doing it
because you think it will produce a richer environment. I may not agree with
you, but at least I'll respect your stance.

If I want to restrict others use of my software in a way that they have to
grant others the exact same rights that I granted them in the first place,
then I will happily pick the GNU GPL or some other license that achieves the
same thing, because that's what I _want_ in that case. If I don't want to
restrict others use of my software in any way, I will pick something much less
restrictive (such as the MIT or BSD licences). If I want something in-between,
I will choose an in-between license like the MPL or the LGPL. But in no way
will I pretend that my application of restrictions is increasing freedom. It's
the restrictions I'm choosing for the software I'm writing. No more, no less.

------
tzs
A key aspect of GPL is that you trigger its source distribution requirement by
doing something that requires permission of the copyright holder. This is key
because it makes GPL _fundamentally_ different from a EULA. As the FSF notes,
licenses for proprietary software try to take away your freedoms, whereas GPL
adds to them. This works because GPL only imposes requirements on you when you
do something that the law otherwise disallows. The typical EULA tries to stop
you from doing things the law otherwise allows.

If you obtain a legitimate copy of a GPL program and completely ignore the
license, but only do things that copyright law allows you to do without
needing the permission of the copyright holder, such as running the program,
or making modifications to adapt it to run on your specific machine, you will
not be in violation of the license--because the license only expands your
copyright rights.

Affero GPL's requirement to distribute source is triggered by letting someone
communicate with your running copy of the program. That's something that does
NOT require the copyright owner's permission in copyright law. That's taking
away a freedom we have under copyright law--and puts Affero GPL squarely in
the EULA category.

The FSF seriously compromised their principles when they accepted Affero GPL.

~~~
loup-vaillant
This is precisely because they compromised their principles with the AGPL that
they didn't make it their main licence. They felt they had to let people make
such a compromise, for some software.

The problem with software which have significant influence over the network is
that it's "users" might not be the owners. Effectively, freedom 0 and the
other three are in conflict. (My freedom to run the software is in conflict
with your right to study it).

If I recall correctly, the FSF itself says AGPL software is not really free
software.

------
mseebach
The AGPL breaks with what's IMO is a central tenet in free software: The input
and output to and of the software is not covered in any way by the license.
The license covers distribution, _not_ usage. The AGPL introduces such
language as "interacting with it remotely through a computer network".

If my database software is AGPL (and I've for some reason modified it) and my
webserver is regular GPL, does accessing my blog-webapp (that talks to the DB)
constitute "interacting" with the database?

What if my blog is generated statically from the DB, triggered by uploading a
new post through the web-interface? What if the trigger is cron?

If a dataset can be uploaded directly into a software program using HTTP PUT,
sure, that's covered. But what if the protocol requires e-mailing the dataset
to a clerk who then feeds it in?

Server software is _used_ by letting people access it over networks. If you
don't want people to _use_ your software freely, for whatever purpose,
commercial or not, free software is not for you.

~~~
tptacek
This is a whole lot of what-iffing about a really straightforward idea. If
you're going to incorporate my code into yours, and you're going to sell
access to the resulting product as a web site, you need to make your code
available. You can't host my code and your extensions on a website to evade
the GPL.

Agree with this or disagree with it, but it clearly isn't a plot to get the
GPL to infect program outputs.

------
glymor
The AGPL was released in 2002. So this isn't a new development.

It adds a requirement (section 2.d) that if the software contains a source
download feature that feature has to be retained.

------
rlpb
It's interesting that rms objects to SaaS on software freedom grounds. I'd
never really considered this before.

~~~
sigzero
That has been going on for a while now. I don't agree with him at all on this
but...that isn't anything new.

~~~
loup-vaillant
May I ask you to be more specific? I would like to know what you disagree
with, and why.

------
Estragon
I predict this won't be nearly as successful as the GPL has been. The
incentives don't line up the same way as they did for desktop software.

~~~
Maro
The point of the AGPL is to have companies like Google (who use heavily
modified GPL'd codebases such as the Linux kernel or Mysql, but don't
redistribute it, hence do not have to share back under the GPL) start sharing
back as [if] projects switch to AGPL'd codebases.

------
gaius
A shot across Google's bow?

------
asimjalis
So if I write a program that web scrapes a server that contains code with the
GNU Affero GPL, do I have to open source my web scraper as well?

~~~
tptacek
No.

~~~
asimjalis
Did you read the article?

"The GNU Affero General Public License is a modified version of the ordinary
GNU GPL version 3. It has one added requirement: if you run the program on a
server and let other users communicate with it there, your server must also
allow them to download the source code corresponding to the program that it's
running. If what's running there is your modified version of the program, the
server's users must get the source code as you modified it."

So if I write a program that is a front-end to a server that uses software
with this license then my front-end program would also be affected by the
license and will need to be open sourced. That seems like a straightforward
implication.

