Hacker News new | ask | show | jobs
by jrv 1885 days ago
I think it's both a completely unrealistic end goal (we live in the real world), and I also think that the AGPL puts you into a hole where you can never get out of again if you decided that you now need different constraints. So I really much more prefer permissive licenses.

Funnily just before you wrote this comment, I also tweeted just that :) : https://twitter.com/juliusvolz/status/1384599249082626052

5 comments

> a completely unrealistic end goal

and so is world peace. Yet, it's a worthy goal.

> if you decided that you now need different constraints

and if you own the copyright, you can always relicense it to suit. How _other_ people chooses to use this software is not under your control, even though you're the copyright holder. This is exactly what it means to have freedom.

> I think it's both a completely unrealistic end goal

I know :( I just meant it's the ideal we should strive towards, even if we never fully reach it.

If this incremental step led to a better world already, I would maybe agree... but I think it makes the whole ecosystem worse and worse, until some far-away tipping point is reached where almost everything is AGPL and can reuse each other again. And even then I'm not sure I'd be happy with the *GPL, as now you can't back out of it again in case you later discovered that it was the wrong decision, without getting the permission by all copyright holders.
If you're the copyright holder you can relicense anytime you want. You're never stuck.
Yeah, which is why typically those companies make external contributors sign a CLA that allows for copyright assignment and relicensing. Which is annoying if you contribute to a company-owned project under a permissive license to help make it big and successful, and then they change the license under you. But yeah, then they could switch it around in both directions if they get all the rights signed away to them.
you realize that if you contribute to a company apache project without a CLA, they can change the license out from under you to _any_ license that they want, right?

[note: am co-founder/ceo of grafana labs]

How do you figure?

The way I've understood it is part of the point of CLA's is to allow license changes, and that without them no license changes are possible to community projects. Because all the contributors own the copyright to the code they contributed, which they licensed under the existing license. To change the license you'd need to contact all the contributors and get permission (so okay, not impossible, just infeasible). The CLA is getting that permission in advance, to let some controlling body change copyright later.

anyone can change the license of apache software, without any permission. the right to do so is built into the apache license.
I thought the point of CLA's in general is to stop contributors from revoking their license, or claiming the entire program is a collaborative work and that they have joint copyright over all of it. I don't think either has ever happened in open source, but I believe is possible, at least in the US.
It seems you can always just run the AGPL licensed software and as long as you interact with it through the network or the database you won't have to relicense anything.

What you cannot do is:

1. change the AGPL software itself and provide it to end users in any form without providing updated sources

2. make a combined product and not provide sources for all of it under AGPL.

3. Also there is nothing to prevent you from releasing sources of your software dual licensed under both MIT and AGPL.

No, it is the network interaction that is specifically a software release trigger. "Interact" is a term encompassing a broad scope of behaviour -- any network message that causes an API to be called.

1+2 are plain old GPL. 3 is just a basic consequence of owning all the IP, but it isn't possible to release a patch to an AGPL under MIT.

AGPL has massively enhanced virality, which is the entire point.

> AGPL has massively enhanced virality, which is the entire point.

Yep, but AFAIK (not a lawyer I have just spent some time trying to figure this out) it doesn't affect other software over the Internet:

Some examples based on Friendica:

- Chrome won't become AGPL licensed by being used to access Friendica

- MariaDB won't become AGPL licensed by being accessed by Friendica

- any changes you make to Friendica must obviously be AGPL (if you let anybody use it)

- if you want to write an extension for Friendica it needs to be AGPL (but if you want you can also release it under another license)

- if you want to put your or someone elses open source or proprietary code into Friendica you must plan to release that code too under the AGPL (of course you can still release it under another license simultaneously but it must be available as AGPL in addition.)

The difference is that not in what it infects but how it spreads - kind of.

The practical effect is that all modifications to an AGPL code are likely to be encompassed as soon as you use it on the internet.

Obviously it can't change the license of other products, but other products trigger the virality. For example, Apache calls a module which triggers generating a graph from your custom grafana instance. Your custom code is now AGPL.

> if you decided that you now need different constraints.

AGPL can be linked against GPL.