And you are obliged to share the changes you made to the source code publicly. You can share the way you choose, but you have to do it.
Otherwise you’d be fine not distributing it at all (besides some occasional internet outrage).
The copyleft licenses don't require to share the source code publicly, they only require to give source code forward to downstream users, who may or may not contribute back upstream to the original project. In the AGPL case, that would be only users that you let have network access to the modified AGPL software.
Well, you're running the upstream software in that case, so you don't have to share anything, which is logical.
> The copyleft licenses don't require to share the source code publicly, they only require to give source code forward to downstream users...
Well, if you're distributing the software to downstream users via network, you need to share the source code via network. It's also logical and straightforward.
You can't tell that it's GPLv3 and binaries are here, but I won't give you the source. You have to.
If we were in 80s, I'd happily mail you a check and envelope to mail my floppies. One optional set for binaries, and one set for the source.
In both cases the practicality is the same.
Since the code only runs on my server then no user has the right to request the source code. This is why AGPL is a dangerous extension to the GPL
You are free to implement it yourself instead of using someone else's AGPL code.
In other words, whether you let me download and run the software locally, or you let me run the software remotely on your server, you always need to provide the source code.
Don’t like these conditions? Then don’t run the software. No one is forcing you to run it.
The AGPL is dangerous because it redefines the meaning of "running" a program by extending it beyond your own devices. Of course the AGPL can have its uses as I already explained, but it should not be considered a free license
Like Nextcloud, for example.
Would I like a world where people are always entitled to know what code runs on devices they don't own? Absolutely not.
There's nothing inherently wrong about telling people "Hey, this is the code handling your data, come see for yourself".
And, this is a huge win, and show of confidence, if you ask me.
AGPL is meant to apply the 4 freedoms to anything that is _used_.
By default you are entitled to run only code that you wrote yourself.
You need the copyright holders of anything else to grant you the right to run their code.
Microsoft usually grants the right behind payment.
AGPL authors grant you the right on the condition that you share your changes (if you do any changes) with your users.
If you choose to disobey the terms, two things can happen:
1. Nobody notices and nothing happens.
2. You can be taken to court.
> but it should not be considered a free license
Why not? Which of the 4 freedoms is it taking away?
“The AGPL includes additional [requirements for businesses / freedoms for end-users] which are not included in the GPL” is a feature, not a bug.
If as a software author you want companies to sell access to your software, but without sharing the source code, use GPL. If as a software author you want companies to sell access to your software with sharing the source code, use the AGPL.
If you’re running a company whose business model is “sell access to open-source software”, then it’s up to you if you want to build your business on top of GPL or AGPL software, and if you don’t like that license, you don’t use that software.
The copyleft licenses don't require to share the source code publicly, they only require to give source code forward to downstream users, who may or may not contribute back upstream to the original project. In the AGPL case, that would be only users that you let have network access to the modified AGPL software.
This seems like a reasonable set of requirements to me.
As with the GPL it should be noted that by default linking to [A]GPL code (e.g. by installing it with a package manager) constitute a modification.
So unless the [A]GPL code includes a linking exception your code must be [A]GPL if there is anything [A]GPL in you node_modules folder.