Hacker News new | ask | show | jobs
by jchmrt 1218 days ago
The (A)GPL licenses were designed for user freedom, not developer freedom. That indeed means that some companies might not want to use it, because they dont want to give their users access to the code. But for the people who prefer this license, that's not an unintended consequence, but the whole point.
2 comments

Agreed. Google’s allergy to the AGPL should make people sit up and take notice. This is a license with teeth, so well written that even Google can’t find a way to subvert it. If you want to write software and give it away without any risk that Google will make a billion dollars off of your hard work without contributing anything back, the AGPL is the way to go.
I am unconvinced that either one is sufficiently free for end-users. It's been a bit since I've done a close reading, but doesn't GPL consider any linkage to create a derivative work? Dynamic linkage is something the end-user does.

If I'm an end-user and want to replace a GPL .so with a GPL-incompatible .so (maybe it has better performance or fewer bugs or whatever), and an installed GPL program uses that library, isn't it the case that the GPL forbids me from doing so unless I also have the right to re-license the .so as GPL?

The GPL doesn’t restrict the end user in that way. The GPL specifically allows the end user to use the software however they like. This includes combining it with software that uses an incompatible license.

The one restriction that the GPL does make only applies if you _redistribute_ your modifications. If you make modifications to the software or combine it with something else, then you are required by the terms of the GPL to license the result of those modifications under the GPL. But if you’ve modified the program by combining it with something that has license terms incompatible with the GPL then you won’t be able to do that. Since you cannot license the modified software under the GPL, you do not have permission to redistribute it.

See that's the problem. There are no modifications. I'm simply removing one piece of GPL software and replacing it with non-GPL software.

In any case, I have serious doubts about the legality of the GPL (as opposed to the LGPL) after Google v. Oracle.

That is a modification, but since you are redistributing it the GPL doesn’t limit you in any way. It specifically allows you to make any use of the software that you like.
How is it a modification? Replacing a dynamic library with another doesn't fit the definition under copyright law or under the GPL.

> To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy.

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

For the sake of continuing the hypothetical, let's say I do distribute it. Let's say I make a Linux distro that includes bash and a proprietary derivative of libedit with an API shim (fair use) to make it compatible with GNU readline.

What's interesting and potentially problematic is that the FSF clearly interprets dynamic linking to create a derivative work, but the GPL doesn't actually say that.

This is found in their commentary at the end of https://www.gnu.org/licenses/gpl-3.0.en.html:

> The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.

Also see: https://www.gnu.org/licenses/why-not-lgpl.html

You should probably start with the FAQ: https://www.gnu.org/licenses/gpl-faq.en.html#combining

Swapping out one library for another compatible one is a modification of the program.

> Dynamic linkage is something the end-user does.

Is it the end-user telling the dynamic linker loader to load the .so, or is it the program you distributed to them?

> If I'm an end-user and ... isn't it the case that the GPL forbids me from doing so unless I also ...

No, it doesn't. You can do anything you want if you're the end-user. It's only when you distribute to others (outside your organisation) that the GPL kicks in.