Why the GNU Affero GPL
gnu.org
gnu.org
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.
..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".
But if you care even a little bit about how your code fits into the marketplace, the AGPL is a fine choice, striking a balance between proprietary or restrictive licenses and "yes, please rape me" licenses like MIT.
That's not a knock against the BSD/MIT licenses. The 37s guys, who obviously care quite a bit about money, MIT-licensed Rails. They wanted maximal uptake. You have to consider your goals. We wanted to do some software development out in the open and work more closely with our users, but we didn't to fund competitors.
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".
Right. So legally, the person you sold it to can
1) re-package it and re-sell it 2) copy it and send it off to all of their friends (and you can't do anything to stop them) 3) Most people in the community detest commercialism.
I would never want to base a business off of a license like this. It's just asking for trouble.
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.
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.
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.
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.
It restricts you from using software to build non-GPL software (including BSD-licensed free software), but it prevents software from being "taken private" by commercial developers.
I (again) don't so much care about the ethics (BSD's just fine) as I do about the commercial impact. The GPL is far, far more author-friendly than the BSD license is.
When I want to force others to share code that I have written, I will choose the GNU GPL or something very like it. If I don't care what others do with code, I will release it under a much less restrictive license.
Please don't be sloppy. It spread fallacies.
The GNU AGPL has even a lesser conditional trigger, access over a network.
What neither the GNU GPL nor the GNU AGPL require under any circumstances is contribution of modifications upstream or global sharing. You are only required (when the conditions kick in) to share your source with those who use your GNU {,A}GPLed software and not restrict them from modifying and sharing the source.
My shorthand statement to which you objected was incomplete, but definitely not incorrect. All forms of the GNU {,A,L}GPL have certain conditions in which you are required to make available the source and any modifications you have made to those who have obtained your software under such a license. (Of course, this also only applies to downstream authors and users; the original authors are under no such obligation.)
I feel that many people take it at face value and actually think that "the GPL forces to share modification", unconditionally.
If you use GNU licensed software, you are required to give out all of your changes to anyone that asks. In addition to this, anyone that requests the source can just as easily start sharing it and all of your modifications for free.
It sounds like you are getting annoyed because people aren't stating the obvious.
If I am a downstream ISV that has code under the GNU GPL because of upstream incorporation and sell my software to users, only those users I sell my software to may legitimately ask for a copy of the source. I cannot restrict them from giving it away or sharing it, but I don't have to honour all requests for the source and my modifications—just the ones from people I've distributed the software to.
Most businesses that use GNU GPLed software choose to either link to the upstream and host local patches, or host their custom distribution entirely, effectively giving the software away to everyone. They aren't required to do so by the terms of the license.
So, I am getting annoyed because you (and many others) don't understand the GPL. Go read it.
With proprietary license, you are given a strict set of restrictions. The same goes for GPL/AGPL licensed software. There really is no difference. They are both licenses used to restrict usage not to give you freedom.
True freedom means tolerating things you don't agree with..such as commercialism.
What the GPL "restricts" is your ability to restrict others' use of the code. The only thing it stops you from doing is changing the code and distributing that changed code with license that restricts others' use of that code. That's it - this is a restriction on a person or corporation's legal ability to create a license. But it has nothing whatsoever to do with their ability change the code.
This is pretty much paraphrasing the GPL itself, I know, but still..
But the AGPL is anything but — It takes away Freedom Zero: The freedom to run the program for any purpose
a response to "..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"."?
I ask because most folks measure commercial success by how much money they make. Very few measure it by how much (or little) other people make.
I think you have to consider the sort of equilibriums that are created. If, over time, people observe that the set of people who create software are not the same set of people who are making money on it - maybe not even making a living wage off their work - then people will cease to participate. This is one reason why the GPL is popular: it encourages people to participate because they won't feel "screwed".
I don't know why these people would feel 'screwed'. Most developers don't understand or enjoy marketing. If someone comes along, re-packages your source code, and makes money on it, they are doing a good job at marketing and selling. This takes lots of time and effort.
If they want to make money on their code, they should sell it (or make it into an app).
As I've stated in my above comments, this doesn't sound like freedom to me. I'm allowed to use a person's source code, but only if I follow a strict set of rules (and they are going to feel screwed if I can do what they can't). The GNU is against most forms of commercialism. The FSF and the people supporting it just won't admit it.
The BSD license supports true freedom.
That depends on your definition of "bona fide open source". It's hard to understand how requiring that software contain certain features (as AGPL does) complies with the FSF's freedom #1 "to study how the program works and adapt it to your needs".
Having said that, the AGPL helps ensure that software is kept open source by making it more difficult to take other people's open source code, extend it, and withholding the changes while profiting both from the original and the extensions. It's a pretty staightforward concept.
I think you are right about people being repelled by the lifestyle Stallman advocates. It's a pity.
Besides the point: Don't forget the "GNU" in GNU/Linux. It came first. It is bigger. It made Linux (the kernel) possible, by doing the rest of the work. So, if you use Linux, remember that it comes with GNU.
PS: Apache doesn't use the GPL, by the way
But I disagree strongly about the "GNU/Linux" thing. Linux would have happened either way. I installed 386bsd off approximately seventeen thousand floppy disks when I was young, and I don't recall that being a GPL'd userland.
1. RMS is incredibly consistent in what he says. He is a zealot in the best sense of the word. When he talks about software freedom, he always means the four freedoms, and he does his absolute hardest to never compromise his principles. This is (mostly) admirable[1], if infuriating because pragmatism would often get his arguments further IMO. However,
2. RMS is not the FSF, and not everyone who works with or for the FSF is as rigorous with their use of software freedom in discussions. When you step even further outside of the circle to those who support the FSF, the rigor is even less present.
So, what I didn't make clear in my excessively short initial reply was that I wasn't talking about RMS's lack of rigor; I was talking about the wider FSF circle.
[1] The whole "GNU/Linux" thing is one of the points where I think that the lack of compromise and zealotry is not admirable and demonstrates the same sort of negative zealotry that would be associated with a radical religious sect. It's great that RMS sticks to his guns, but sometimes he goes in directions that harm his position far more than if he were to compromise a little.
Also, if some of the adaptations you've made are liked by the original developer, he can integrate them into the main version. So both of you mutually benefit from each others work, rather than one just leeching on the other.
I still don't see myself using it, and avoiding products that do, but this argument makes a lot of sense.
In other words, you can't take AGPL contributions and dual license them in your product, right?
(I don't mean to imply this is bad, I'm glad you helped explain a use of the AGPL and I'm just curious.)
I'd thought about how you could use the AGPL as a scarlet letter: "I'm the only one that can profit from this", since as the author you still retain full copyright and can do whatever you want with closed modifications. tptacek appears to be using it this way, to keep other companies from selling it, even if he doesn't care much about selling it himself.
But I hadn't realized that in such a situation, the author would be completely unable to take contributions from others without full copyright assignment!
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.
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.
Freedom Zero is the freedom to run the program, for any purpose
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.
Agree with this or disagree with it, but it clearly isn't a plot to get the GPL to infect program outputs.
If I had a site where people could watch the pirate copies of movies for free - would the MPAA not care, because I'm not distributing the movies I'm just 'using' them.
It adds a requirement (section 2.d) that if the software contains a source download feature that feature has to be retained.
That in and of itself is not unreasonable — except that unlike every single other user on the planet, RMS doesn't give two shits about your data in a SaaS environment. The AGPL completely ignores what users actually care about the freedom of (data export), and focuses on stuff that's completely irrelevant (backend data munging).
It may be simply because he has never used a rich web app, out of abject fear. He normally surfs the web via emacs+gnus+smtp+aliases+wget — he is not one of us, you can't argue with him on normal terms.
"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.