Jump to content

Affero General Public License

From 1G-N15's Place
Revision as of 09:06, 17 February 2026 by 1G-N15 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Please use the AGPL

I've gotten into Beyond All Reason, a sci-fi RTS game, recently. One great part about it is that its code is FOSS. One big reason for that is that they are forced to, due to using a derivative of an old 2000s RTS engine that was licensed using GPL. In fact, here is one issue reporting non-FOSS code, where the GPL was successfully used as justification to relicense the non-FOSS code into a GPL-compatible license.

I've also played Sonic Robo Blast 2 and its derivatives recently. One thing you notice when playing these games is that they always have a message on it, saying "this game should not be sold". I believe that if they had not been forced to be GPL by Doom Legacy, and in a greater sense Doom itself, they would have happily added non-commercial restrictions to the games, making them non-FOSS.

Now, I do not have an issue with those messages; when the game is FOSS, they can be taken as a generous warning to anyone who might be scammed out of their money, buying a free game. But what these two scenarios teach me is that, left unchecked, people want control over how others can use, edit, or redistribute their work. One might not want commercial activity. One might not want its use in defense. One might not want others to edit it. One might not want its use in training datasets.

Over time, these restrictions pile up, since you can never remove restrictions without the consent of the author, but can always add restrictions. In the end, all trends towards proprietary. Well... unless someone used a viral free license, like the AGPL, GPL, Free Art License, or CC BY-SA. Which is why they should be used where possible.

The result would be a system that you could not count on for any purpose. For each task you wish to do, you'd have to check lots of licenses to see which parts of your system are off limits for that task. Not only for the components you explicitly use, but also for the hundreds of components that they link with, invoke, or communicate with.

How would users respond to that? I think most of them would use proprietary systems. Allowing usage restrictions in free software would mainly push users towards nonfree software. Trying to stop users from doing something through usage restrictions in free software is as ineffective as pushing on an object through a long, straight, soft piece of cooked spaghetti. As one wag put it, this is “someone with a very small hammer seeing every problem as a nail, and not even acknowledging that the nail is far too big for the hammer.”

It is worse than ineffective; it is wrong too, because software developers should not exercise such power over what users do. Imagine selling pens with conditions about what you can write with them; that would be noisome, and we should not stand for it. Likewise for general software. If you make something that is generally useful, like a pen, people will use it to write all sorts of things, even horrible things such as orders to torture a dissident; but you must not have the power to control people's activities through their pens. It is the same for a text editor, compiler or kernel.

Source