Live data from Hacker News

Why we picked AGPL

blog.paradedb.com

221–230 of 312 posts

Re: Why we picked AGPL

#221
post #121

Earlier quoted context omitted.

The admin uses the software, regardless of who else is regarded as a user. Among the users, the admin is the one saddled with use restrictions by the license.

The users of the software (not just the admin who is serving the software over a network) has the right under AGPL to request for the source.

That is false; the license doesn't speak about any such right.

Rather, the copyright holder of the AGPLed work is exercising their right to dictate the following:

[Y]our modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.

Under the AGPL, the visitors to the program need not request the source; it must be prominently available for them to obtain in a self-serve manner. No mention is made that they have any kind of right. They are not parties to the license at all. A copyright license can only grant rights to licensees.

By the way, "all users interacting" could be interpreted to literally mean all users, including users who visit the login page, but do not have an account (and are not authorized to have one due to not belonging to the organization that runs the service).

Re: Why we picked AGPL

#222
post #57

Earlier quoted context omitted.

> Running a program, as a service or not, isn't redistribution. It is use. This is not how I see it at all. The ones using it are the users, and if they sit across the network you are distributing it in a very tangible sense. The idea that the admin running a service is the one doing the "use" and not the users of your service is debatable to say the least.

So when you compile a program and distribute over the network as a binary, you are also distributing the compiler that created the binary?

Depending on the license of the compiler, yes, the binary is related to the compiler in some way. In practice it literally contains code from the compiler.

Re: Why we picked AGPL

#223
post #215

Earlier quoted context omitted.

Only if you think taking the work of others and profiting from it without contributing anything back is fine.

The people who did the work obviously think it's fine, otherwise they wouldn't have licensed it under such a permissive licence.

Certainly. MIT/BSD more or less says: steal away (but retain this license notice). In some cases that's desirable.

Re: Why we picked AGPL

#224

Earlier quoted context omitted.

So when you compile a program and distribute over the network as a binary, you are also distributing the compiler that created the binary?

From section 13 of the license ( https://www.gnu.org/licenses/agpl-3.0.en.html ): > if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network [...] an opportunity to receive the Corresponding Source of your version [...] From the Merriam-Webster dictionary: > interact, verb: to act upon one another When distributing a binary from a compil…

That's not what is in question. Of course if you someone has reason to comply with section 13 of the license, then users who download the code are having the code distributed to them.

The disputed claim is that users who interact with a remote program are, by that interaction, being distributed the program.

The GNU AGPL itself explicitly disagrees with this; check its definition of "propagate" and "convey".

Re: Why we picked AGPL

#225
post #138

> The AGPL license permits free use, modification, and distribution of software, provided that distributed, derivative works of the software are released under the same license. Here is the rub: free software permits unconditional use. The GPL without the A, or MIT or BSD licenses are not EULAs; they place restrictions or conditions on redistribution, not on use. (With regard to use, they have only certain liability…

I think you're 90% right in what you say here and in following comments, but I think you're skewing things in a way where I end up disagreeing with your conclusions. > Here is the rub: free software permits unconditional use. Why are you using the term "free software" here, when it has a well-defined meaning that is very much what you get with copyleft and the GPL and not what you get with BSD/MIT? I think you mean "…

When I'm using the term "free software", I mean this:

https://www.gnu.org/philosophy/free-sw.html#four-freedoms

Straight from the gnu's mouth!

"The freedom to run the program as you wish, for any purpose (freedom 0)."

> But the purpose of the AGPL has nothing to do with people using the software in ways that the license chooser doesn't like

Yes it is. If you wrote a network program, and you specifically don't like the idea that someone can modify it and then host that modified version for users without letting them have the source code, then the AGPL is a tool that nicely expresses your intent.

Licenses don't care about their intent. People analyze what they do and use them accordingly.

For instance, the GPL has turned out to very nicely suit corporate interests. The copyright holder of a GPLed software component has a competitive edge over the licensees. They have to abide by the license and release all their changes, which you can help yourself to; meanwhile, you can have a proprietary version in parallel.

Re: Why we picked AGPL

#226
post #223

Earlier quoted context omitted.

The people who did the work obviously think it's fine, otherwise they wouldn't have licensed it under such a permissive licence.

Certainly. MIT/BSD more or less says: steal away (but retain this license notice). In some cases that's desirable.

Is it stealing if somebody gives you a present and you accept it?

Re: Why we picked AGPL

#227

Earlier quoted context omitted.

Copyright covers four rights. The right to copy, the right to modify, the right to distribute, and the right to perform publicly. The GPL places restrictions on a combination of the modification and distribution aspect, which says that if you modify the software and distribute it, then you must also include source code. AGPL is more strict and says even if you just want to modify it and use it, you must supply the so…

It's triggered on use of the modified software. Not just any use but use in such a way that network visitors interact with the software. If you don't use the software that way, the requirement doesn't apply even if you modified it. If you've not modified the software, interested visitors can just get the source code from the same upstream, so why would it be required of you to host it. However the following situation…

Nope. Section 10:

> Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.

Re: Why we picked AGPL

#228

Earlier quoted context omitted.

It can also be evidence that HN posters have a poor understanding of GPL licenses. Pretty much all these questions are answered in the FAQ [0]. Your guess is as good as mine as to why people continually post random, uninformed, needlessly conservative takes on them instead of just doing a small amount of reading. [0]: https://www.gnu.org/licenses/gpl-faq.html

That FAQ covers the GPL, not the AGPL.

If you ctrl-f for AGPL you'll see it's for all of it.

Re: Why we picked AGPL

#229

Earlier quoted context omitted.

> How do I know whether a particular API usage qualifies as well separated or not? The two paragraphs above what you quoted are: "However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.…

Sorry but what does "arms length" mean? My software doesn't have arms. Using metaphors full of imagery is cute but essentially meaningless. > Two programs communicating over a socket aren't incorporated. They're two programs. Aren't they? So, if I want to use a GPL library, all I need to do is write a little wrapper program that does RPC over a socket, and boom, I can use a GPL library in my closed source program? Ob…

> Aren't they? So, if I want to use a GPL library, all I need to do is write a little wrapper program that does RPC over a socket, and boom, I can use a GPL library in my closed source program?

Yep. This is how MySQL/MariaDB work, for example.

Re: Why we picked AGPL

#230

Earlier quoted context omitted.

> How do I know whether a particular API usage qualifies as well separated or not? The two paragraphs above what you quoted are: "However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.…

Again, the FAQ says otherwise. #MereAggregation says that this is "normally" the case, but "if the semantics of the communication are intimate enough" two binaries communicating over a socket may still be one program. Whether they are one program is explicitly left as a question for judges to decide.

Here's how that section starts: "An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media.". Are you distributing a lot of apps on CD-ROMs? Have you heard of Linux distributions? Seems like things are fine!

I'm not super interested in fielding more thin gotchas based on out of context quotes. There's a big difference between a license that's difficult to understand and a license that somehow summons people from the ether who find endless ways to deliberately misunderstand it.

Post reply on HN