Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is a common misconception. Nothing in the text of the AGPL requires this whatsoever.

But it's a common enough misconception that my personal recommendation tends to be to just steer clear anyway, if you're planning to run a closed-source business. It's better to not get sued at all, than to get sued by someone who's wrong.

But for reference, the only text added to the AGPL in comparison to the GPL is section 13 here:

https://www.gnu.org/licenses/agpl-3.0.en.html

In other words, if you run an AGPL database and modify it, you need to provide your users with the source of your modified version.

Nothing remotely suggesting that the rest of your entire software stack becomes AGPL licensed. (In fact I often wonder how people are imagining that would even work. It would basically imply that you can't, for example, run AGPL software on a Windows server...)



I spent some time reading about static linking and dynamic linking. From the FAQ

    > "Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. Thus, the terms and conditions of the GNU General Public License cover the whole combination"
If I had to guess, if you installed each application in your stack separately, and they simply interacted with each other through API calls, you could consider them "System Libraries" and therefore would not dragged into the AGPL. Example, The OS itself, Node, Postgres, and any other 3rd party applications. As long as you are not distributing them, I think they would count as System Libraries.

    > "To prevent unscrupulous distributors from trying to use the System Library exception as a loophole, the GPL says that libraries can only qualify as System Libraries as long as they're not distributed with the program itself. If you distribute the DLLs with the program, they won't be eligible for this exception anymore"


The System Library exception isn't even needed. The key word in what you've quoted is "linking". If you aren't linking, then you aren't creating a combined derivative work at all.

Linking in this context refers to a very specific thing: https://en.wikipedia.org/wiki/Linker_(computing)




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

Search: