Hacker News new | ask | show | jobs
by skore 5257 days ago
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

1 comments

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.