Hacker News new | past | comments | ask | show | jobs | submit login

Interesting , haven't read that license in detail. Does this mean that as soon as I run something on a network (or just the internet?) I am required to push my changes back upstream immediately?

However I have a feeling that there is a sufficient body of GPL/LGPL code out there that people will just modify that.

Since a lot of OSS code is contributed by companies, they don't really have any incentive to contribute to an AGPL project (in most cases).




Does this mean that as soon as I run something on a network (or just the internet?) I am required to push my changes back upstream immediately?

Warning: If any of the following is incorrect, I would really appreciate someone correcting me. I use the AGPL, and if I'm incorrect, I would like to know.

You never have to push your changes back upstream. I'm not aware of any license that requires you to submit your changes back to the original author. You just have to make it accessible to your users.

Just like the GPL, you can run AGPL code on a private network and not have to publicly release the source code. It's when the network is public that you have to make the source code available.

If I visit your website, enter in some data, a script/lib licensed under the AGPL does something with it and returns a result. You must release the source code of "everything that it touches".

If you have a business and on the company Intranet you have the same script, while the employees (users) are entitled to have a copy of the source code, you are not required to publicly release the source code. Of course, other laws prevent those employees from also releasing the source code to the public and AFAIK they "trump" copyright laws eg.NDA.

Since a lot of OSS code is contributed by companies, they don't really have any incentive to contribute to an AGPL project (in most cases).

I don't know, companies contribute to GPL licensed code even when they don't explicitly have to. Just off the top of my head, tarsnap comes to mind, he contributes back to libarchive even though he is not required to do so.

That doesn't mean I don't see your point though. You could just as easily suggest that if libarchive was licensed under the AGPL that tarsnap wouldn't have used it in the first place due to the fact he would have to release the source of the entire stack.

So I think you argument should really be "Why should companies even use software under the AGPL" not "Why should they contribute back". I don't really have an answer for that, but the same argument was made about the GPL and companies still use GPL licensed software. I'm sure if you asked rms that question he would say something about not caring about companies that want to restrict his freedom....


You are correct about the AGPL, just be careful with wording it like "everything that it touches". I don't think that is true at all - if you have a website and use AGPL code, the AGPL states that your users have a right to see that code. It cannot make a judgment on other software that may be licensed in a different way. For instance, if you have a website that uses AGPL code to produce an HTML page and non-AGPL code to provide a PDF from that HTML page, the two packages would indeed touch, but there would be no obligation to release the non-AGPL code, just the AGPL code.

As for requirements to push back changes - of course not. The only license I know of that does something similar is the SMF - Simple Machines Forum - license[1]. Yuck.

The argument between GPL and AGPL is similar to the one between BSD (or similar) and GPL on the desktop. My own position is that yes, I expect humans to be inherently good, kind and sharing souls and thus the BSD should be the license of choice. However, I have to be pragmatic and say - if we all assume that humans act like that, what's the harm in writing that down into the license? All it can do is make it hard for people who don't want to give back. So in my eyes, that's an important feature to have.

[1] http://www.simplemachines.org/about/smf/license.php


You are correct about the AGPL, just be careful with wording it like "everything that it touches".

Yeah, sorry. I think that was a poor choice of words on my part.

For instance, if you have a website that uses AGPL code to produce an HTML page and non-AGPL code to provide a PDF from that HTML page, the two packages would indeed touch, but there would be no obligation to release the non-AGPL code, just the AGPL code.

Interesting, in your example, if your application calls the AGPL code that is used to generate the HTML wouldn't your application also have to be released under the AGPL? Or do you only have to make available the AGPL "HTML generation library" and the changes you have made to it (if any)?

I thought that it had already been established that if you use a library under the GPL any code that uses/calls that library must be released under the GPL. The only reason companies can use GPL code server side is because it is not run on the user's machine (technically not "releasing it"), which was the basis for the creation of the AGPL, to "fix" this "loophole".

edit:

Thanks skore, yeah I think your example still stands. Specifically, in the wikipedia article you linked this part:

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs.

To continue the original example, if your program just runs the HTML generation program and supplies user data via a command line argument then it need not be released under a compatible license. But on the other hand if you were to "copy and paste" the functions from that program into yours, it would need to be licensed under a compatible license.


I think my example holds because it would be possible to replace either part of the process without the other one failing. That would be the argument by dependency.

Wikipedia has a pretty good section on the more broad legal background:

http://en.wikipedia.org/wiki/GNU_General_Public_License#Comm...


My understanding is that every GPL except LGPL infects your code. If you distribute code "linked" to GPL'd code (where AGPL defines distribute as being accessed), you must make your code available. It does get confusing when your PDF library is proprietary and not yours, which is why companies tend to frown on using AGPL'd code.


> To continue the original example, if your program just runs the HTML generation program and supplies user data via a command line argument then it need not be released under a compatible license.

I wonder what would happen if you modify the GPLed command line program. Would that mean you'd be required to release such changes? I would say no.


If it was licensed under the "normal" GPL, then no, if it was released under the AGPL then yes.


No, it just says that if anybody uses your software, they are entitled to get the source code. So on most GUN+Linux distributions, this is already the case. Not so much on the internet when you use a service on a website.

The AGPL basically establishes the same concept on the internet that the GPL has established on the desktop.


What's GUN+Linux? I didn't realise that ESR had created his own 2nd amendment based unix userland!

I see, interesting idea unfortunately I really can't see it taking off, most companies would just prefer to work internally and then release some bits of code as LGPL/BSD when they are ready. What advantage could AGPL give the developer (assuming they are writing OSS for commercial rather than ideological reasons)?


http://en.wikipedia.org/wiki/GNU/Linux_naming_controversy

The commercial advantage is that it levels the playing field: If I create a library that can be used for a website and release it as FOSS under a license that is not as restrictive as the AGPL, I basically create a disadvantage to my own business: Another company could use my code in a closed service and thus benefit from my work without giving me and their users the courtesy of benefiting from their work in return.

I write commercial GPL software and will, in my next refactor, license certain parts of the software as AGPL. An example would be a library that connects an invoicing system to an online payment processor (ie. creates a full checkout process for invoice X at amount Y). I have a lot of work invested in the code (basically 5 years of my life) and the better and more reusable I make it, the easier it is to just retool it for another application. I would naturally love to see websites utilize the code, even if it is just in a SaaS setting. But since it is my work, I have decided to set the rules and if people want to use it, I think it's fair to ask that they should promote the same liberties that they received from me.


Good answer, I'm in a similar boat in some ways.

I would be more concerned about the "viral" nature of the GPL (I assume this applies to AGPL as well) i.e I would be happy to use AGPL code in my application and release any modifications I make (or create AGPL code and have others do the same for me) but there are parts of my applications that I really wouldn't want to have to release (because they are very industry specific and would be useful to competitors without modification and not useful at all to the general populance).

A similar license but one based on LGPL would be preferable.


If you're the developer of the AGPL licensed code, there's no problem in using it combined proprietary software. As the copyright owner, you don't need a license to use your own code.

Of course, if you accept patches from others, that's no longer true, unless if "force" people to dual license their code, with the second license being an exception just for you.


Of course, there is no 'viral' nature of the GPL, please don't spread FUD like that. The fact that your licenses have to be legally compatible and thus using GPL code in your software can be a restriction that benefits using more free licenses yourself does not equal a viral infection. The same would be true for proprietary licenses, just in a different direction.

A similar license based on the LGPL wouldn't make sense. The LGPL is basically the GPL with an addition that says that you don't have to be that strict on what license the software you use it in uses.


Right , hence why I used quotation marks around the word viral.

Problem is I'm not enough of a lawyer to know what would and wouldn't be compatible with the GPL (and confident enough to tell other stakeholders). With something like a BSD license it's easier to point to concrete examples of it's co existance (OS X for example).


Well, the GNU Project has a pretty extensive list[1], so I'm not sure whether you just haven't seen this yet, or whether there is a different concern here.

[1] http://www.gnu.org/licenses/license-list.html


As far as I can tell all of those licenses are some variation of libre licenses, I need something that's compatible with a license that says "this is ours , nobody else can have it".

The reason we need to use a license like that and not a libre license is that some of our software is very niche and would only be useful to a handful of companies around the world.

It's quite likely that none of these other companies employ any programmers at all bar the occasional contractor. Basically we are trying to disrupt an industry (in a small way) by getting more efficiency by doing stuff through tech that they are doing by employing legions of admin staff and using the old-boys network (it's a very old school industry).

If the source for certain parts of our software was available to them then they would most likely simply use it (employing an Indian contractor or similar for a couple of weeks to set it up) to wipe out our advantage and not contribute much if anything back to us.

There are however other parts of the software that could be generally useful to a wide number of people who are much more likely to contribute code back.


In that case, you probably want to consult a lawyer beforehand anyhow. If you're working on something truly disruptive and innovative to an established market, software licenses might be your smallest concern.


Nothing truly disruptive or innovative by HN standards, more than we operate in an area that is dominated by people who are simply clueless about technology.

We aren't planning to distribute any of our software so we get along fine just using LGPL / BSD licensed stuff and a few commercial libs for the most part.

Something like AGPL is potentially interesting but if it involves having to hire lawyers we'll probably keep things in-house or maybe release a few bits under LGPL a few years down the line.


-2 points for making a silly joke combined with a legitimate question? really guys?


Well, that's Hacker News. Then again, I would have downvoted you just for mentioning ESR. ;-)




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: