@ivan @emacsen @cwebber Another reply from my side: https://www.reddit.com/r/freesoftware/comments/fop3bs/breaking_the_agpl/flgrd7s/
The AGPL virality clause does not extend backwards, which means that AGPL code can call functions from non-AGPL libraries.
This confuses me greatly.
Seems to mention only GPLv3 (in section 13). “Non-AGPL” is more than just that, though. There’s no mention of LGPL; but presumably, AGPL assumes you turn LGPL’d code into GPL’d, and then you can consider the combination to be just AGPLv3+GPLv3? And anything else is non-combinable?
I really should read AGPL in even greater detail to understand where the boundaries lie. I’ll assume that making network calls (RPCs? HTTP requests?) towards other code doesn’t constitute linking, but section 1 definitely talks about dynamic linking. But it’s unclear:
However, it does not include the work’s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
So it’s saying “system libraries/tools/widely available free programs are not part of the work”, and continues going on saying that Corresponding Source does include work’s includefiles, then source code for any shared libraries/dynamically linked programs that the work is designed to require. Which would read to say if your program is designed to require Windows API, then Windows DLLs are considered part of the work/Corresponding Source, despite what the previous sentence says?!
I knew what the license is trying to do, I looked at it in passing in the past, but now I am very confused by it. As someone that likes GPLv2 (and maybe GPLv3), I am kinda scared by AGPL. Presumably I need to read it in great detail?
If DLLs/.so files are a grey area, then config.php is clearly being merged into the built binary (even if a temporary bytecode binary in RAM built by the ‘interpreter’ on-the-fly). Despite its name, it can be a complicated piece of machinery that’s fetching the actual config from other sources.
It seems that the only way of solving that issue is sharing the code that does the filtering and keeping the actual data in a separate dumb file - or dropping AGPL in some part of your code to communicate over the network with AGPL code, which basically means that you release some of your code under e.g. GPL and let people link against that - therefore losing the AGPL virality clause.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!