AGPL [1] is a hack on copyright, so it has to use copyright, else it would not compile/run.
All the GPL [2] licenses are a hack on copyright. They insert a piece of legal code into copyright law to force it to turn around on itself.
You run that on the copyright system, and it gives you code which can’t be made unfree.
To be able to do that, it has to be written in copyright language (else it could not be interpreted).
my_code = "<your code>"
def AGPL ( code ):
"""
>>> is_free ( AGPL ( code ) )
True
"""
return eval (
transform_to_free ( code ) )
copyright ( AGPL ( my_code ) )
You pass “AGPL ( code )” to the copyright system, and it ensures the freedom of the code.
The transformation means that I am allowed to change your code, as long as I keep the transformation, because copyright law sees only the version transformed by AGPL, and that stays valid.
Naturally both AGPL definition and the code transformed to free © must be ©-compatible. And that means: All rights reserved. Else I could go in and say: I just redefine AGPL and make your code unfree without ever touching the code itself (which is initially owned by you by the laws of ©):
def AGPL ( code ):
"""
>>> is_free ( AGPL ( code ) )
False
"""
return eval (
transform_to_mine ( code ) )
In this Python-powered copyright-system, I could just define this after your definition but before your call to copyright(), and all calls to APGL ( code ) would suddenly return code owned by me.
Or you would have to include another way of defining which exact AGPL you mean. Something like “AGPL, but only the versions with the sha1 hashes AAAA BBBB and AABA”. cc tries to use links for that, but what do you do if someone changes the DNS resolution to point creativecommons.org to allmine.com? Whose DNS server is right, then - legally speaking?
In short: AGPL is a hack on copyright, so it has to use copyright, else it would not compile/run.
Links:
[1] https://gnu.org/l/agpl
[2] https://gnu.org/l/gpl