4

If a Discord bot is licensed under the AGPL, do users in the Discord server have to have access to the source code? It only sends messages; it's not an interactive bot.

1 Answer 1

4

If you modify the bot and then install that modified copy on a computer network (such as Discord), then in that case, you must ensure that the source code of the modified version is "prominently" available to those users that can receive messages from the bot (i.e. the users of Discord who could receive messages from your bot).

Specifically, the Affero GPL says in Section 13 that if you "modify" an AGPL-licensed program and make that program available to users on a computer network, that you must provide the source code of the modified version to those users:

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.

(GNU Affero General Public License version 3, Section 13. See AGPL-3.0.)

You have noted in your question that the communication with your bot is in one direction only:

[The bot] only sends messages; it's not an interactive bot.

In my opinion, receiving information from a computer program could be considered as a form of one-way interaction. In the case you describe, it's possible that users could send messages to the bot, but that the bot is simply not programmed to respond to those messages.

Keep in mind that the author of the original code presumably made a specific choice to license the code under the Affero GPL. The intended purpose of choosing the Affero GPL as opposed to the vanilla GPL is explained in the Preamble (see AGPL-3.0):

Many developers of free software are heartened and encouraged by the resulting cooperation [resulting from licensing their software under the GNU General Public License]. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.

The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community.

The above text is from the Preamble, so technically, that text itself is not binding. Nonetheless, reading it allows one to clearly see that the intention of an author choosing the AGPL is to make the source code (of modified versions) available to any users who can "access" the software (i.e. to use it) via a computer network.

Note that the word "modify" is used with a special definition in the (A)GPL:

To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.

For the AGPL, this means that if you don't modify the work -- for example, if you install an exact copy of a program (the AGPL Discord bot, for example) and make that exact copy available on a network, then it's possible that you wouldn't need to do anything special to comply with Section 13 of the AGPL.

However, as soon as you make modifications or enhancements to the program, then Section 13 becomes relevant, and you need to ensure that users who interact with it (e.g. users who can receive and/or send messages to it) are given the chance to get the Corresponding Source of your modified version.

3
  • Regarding intent, I'm the original author. My intent is that server admins will not have to provide source to users, but if a company decides to host my bot commercially, they can do that but have to provide source to the server admins.
    – Someone
    Aug 3 at 21:54
  • @Someone AGPL says that you must make the source available to anyone who "interacts" with the software. In my opinion, that includes not only the administrator (who normally just installs the software, but possibly who could interact with the software as well) but also the remote users who can connect to that network and interact with your software without being able to administer it.
    – Brandin
    Aug 4 at 6:15
  • @Someone In any case, if you're the author, then you can't really "violate" your own license in any practical sense. I think there's a QA on the site about that topic but I can't find it at the moment. Basically, if you own all the code, then you're always at liberty to "ignore" parts of the license you define or to make your own personal exceptions to it at your own discretion. Someone else receiving your code, however, needs to abide by it unless you give them a special, personal exception or a custom license. This situation is often called "dual licensing" or "multi licensing".
    – Brandin
    Aug 4 at 6:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.