3

I am developing some software that utilises an AGPL-licensed library.

This software will produce two outputs:

  1. PDFs that will later be sent to users over a network.
  2. A data feed that is sent to a separate third-party service, which the users may connect to in order to read the data.

In the second case the data feeds can only be consumed; in both cases the user may not actively interact with the software I am developing in any way.

When developing the software for these purposes, do I need to share the source code for it? I am not exactly sure what falls under what the AGPL describes as ‘remote network interaction’.

Thank you.

3
  • Did you modify the AGPL software or are you using an exact copy of already-developed AGPL software? For the way the AGPL is written, this distinction is important.
    – Brandin
    Aug 9, 2023 at 9:31
  • 1
    The AGPL software hasn't been modified. It is a library that has been utilised, exactly as it was originally distributed, into other software that makes use of it.
    – Venture9
    Aug 9, 2023 at 16:23
  • 1
    See also this Q&A, it is not the same but perhaps answers your question: opensource.stackexchange.com/questions/7883/…
    – Brandin
    Aug 10, 2023 at 5:17

2 Answers 2

2

The official FAQ answers this.

It simply applies to software that accepts user requests over a computer network and responds to them.

In AGPLv3, what counts as “interacting with [the software] remotely through a computer network?”

If the program is expressly designed to accept user requests and send responses over a network, then it meets these criteria. Common examples of programs that would fall into this category include web and mail servers, interactive web-based applications, and servers for games that are played online.

If a program is not expressly designed to interact with a user through a network, but is being run in an environment where it happens to do so, then it does not fall into this category. For example, an application is not required to provide source merely because the user is running it over SSH, or a remote X session.

2

The AGPL does not rigorously define the term "network interaction", or as the AGPL itself states it "interacting with it remotely through a computer network", and I don't think there is a legal precedent yet on how to interpret that phrase. That means that we should turn to the ordinary English meaning of those words.

The word "interaction" (or "interacting") implies that the user of the software has some control over what the software does and/or when the software does it. If the user is simply receiving data without any control over the data that is being sent to them, then that would most likely not count as "interaction".

The "network" part (or more correctly, "remotely through a computer network") means that the interaction happens without other humans in the pipeline and that the user doesn't give the commands on a UI that is physically connected to the machine running the software.
Sending an email that is automatically processed to send a PDF back might count as "interaction through a computer network", but if the email is read by a human, who in turn causes the PDF to be sent, the interaction would no longer be through a computer network.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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