GPL2+/GPL3+, maybe AGPL?
Posted: 18 Feb 2012, 01:51
Currently, all TMW content is GPL2+ (note that part of the client is GPL2-only, but that's irrelevant for this discussion).
The GPL2 has some known bugs, which I would not like to affect my new code, some of which has involve substantial creativity on my part. This is a request to allow content and code that is *not* licensed under GPL2, only under GPL3+.
Note that this will not reduce the set of importable materials, since we already required the + in GPL2+.
----------------
Once that is taken care of, let's talk about the AGPL. The only difference between the GPL3 and the AGPL3 is that the AGPL also requires the source to be given to anyone connecting over the network. Note, the FSF says "We recommend that people consider using the GNU AGPL for any software which will commonly be run over a network."
Files under the AGPL and the GPL can be mixed into the same program, so we wouldn't have to apply it to everything.
However, they cannot be mixed within the same file. However, dual-licensing can take care of this: "everything under the GPL may also be used under the AGPL". Of course, this relicensing cannot be applied to old or imported code. Still, in my rewrite, this is not an issue.
I can think of three cases where the AGPL would make a difference: applied to the server code, applied to the server scripts, or if applied to a client.
1. Applied to the server code, this would prevent forks of the project from adding new features and not allowing us to take them back. Not that this has been s very "present" problem so far ... but it is stuck in my mind that the Evol repositories haven't been updated since February 2011 and I don't think they stopped working on it.
2. Applied to server scripts, besides the above, this could prevent privatization of things like the magic file and the answers to the Hitchhiker's quest. I really don't like the way we are doing it currently - at the moment it is not possible to set up a server identical to the official server. If we must hide them, can't we just ROT13 it or something?
3. Applied to a client ... I'm not talking about the Mana client here. Rather, as part of my rewrite I have great plans for an admin/bot interface. Although the particular packets would require authentication, I am nonetheless concerned that this could easily be abused to make unfriendly bots ("see monster at location, go attack it; see GM begin botcheck, stop and send an SMS to my human") - after all, my code would be much more readable and flexible than Mana
. TOS aside, although this wouldn't prevent them from creating such clients, it would force them to publish. It would also be possible to add a copyright that the hypothetical client sends when connecting, which (even under the GPL) could not be removed. Since, you know, we can't add a copyright license restriction like "this code cannot be used to develop automation of player characters" (although such automation can of course be in the TOS). See this faq entry, but note that unlike the example they give, other users *do* interact with bot clients (and this is the real issue with such clients in the first place). It might be worth raising the issue with the FSF of something less clear, like an IRC client.
Looking at that ... the AGPL *does* begin to look like an awfully restrictive license. But then, that's what BSD fanatics say about the GPL. It's a careful balance.
Finally, although I this information is accurate to the best of my knowledge, I still don't know everything, and IANAL. The issues with the GPL are *much* better understood than the issues with the AGPL.
Discuss.
The GPL2 has some known bugs, which I would not like to affect my new code, some of which has involve substantial creativity on my part. This is a request to allow content and code that is *not* licensed under GPL2, only under GPL3+.
Note that this will not reduce the set of importable materials, since we already required the + in GPL2+.
----------------
Once that is taken care of, let's talk about the AGPL. The only difference between the GPL3 and the AGPL3 is that the AGPL also requires the source to be given to anyone connecting over the network. Note, the FSF says "We recommend that people consider using the GNU AGPL for any software which will commonly be run over a network."
Obviously this would have to be done extremely carefully - we don't want to stifle development of modifications.AGPL3 wrote: 13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Files under the AGPL and the GPL can be mixed into the same program, so we wouldn't have to apply it to everything.
However, they cannot be mixed within the same file. However, dual-licensing can take care of this: "everything under the GPL may also be used under the AGPL". Of course, this relicensing cannot be applied to old or imported code. Still, in my rewrite, this is not an issue.
I can think of three cases where the AGPL would make a difference: applied to the server code, applied to the server scripts, or if applied to a client.
1. Applied to the server code, this would prevent forks of the project from adding new features and not allowing us to take them back. Not that this has been s very "present" problem so far ... but it is stuck in my mind that the Evol repositories haven't been updated since February 2011 and I don't think they stopped working on it.
2. Applied to server scripts, besides the above, this could prevent privatization of things like the magic file and the answers to the Hitchhiker's quest. I really don't like the way we are doing it currently - at the moment it is not possible to set up a server identical to the official server. If we must hide them, can't we just ROT13 it or something?
3. Applied to a client ... I'm not talking about the Mana client here. Rather, as part of my rewrite I have great plans for an admin/bot interface. Although the particular packets would require authentication, I am nonetheless concerned that this could easily be abused to make unfriendly bots ("see monster at location, go attack it; see GM begin botcheck, stop and send an SMS to my human") - after all, my code would be much more readable and flexible than Mana

Looking at that ... the AGPL *does* begin to look like an awfully restrictive license. But then, that's what BSD fanatics say about the GPL. It's a careful balance.
Finally, although I this information is accurate to the best of my knowledge, I still don't know everything, and IANAL. The issues with the GPL are *much* better understood than the issues with the AGPL.
Discuss.