The point is that my application does not involve network interaction and so won't do any modifications to it. Instead it provides an interface for receiving local input (e.g. a file) and provides local output in return. I am concerned about the situation where someone runs my (modified) application on a remote server and provides an external file uploading service for receiving user inputs. Users would only interact directly with this file upload which in turn serves the files to my application. So the only one interacting directly with my application would be the file uploading service (which is operated by the same person). However my application is the one producing all the results and would be the main purpose why users interact with that upload service in the first place. In that case I want to be able to receive the source code of the (modified) application. I'm not sure if the AGPL covers such cases. On the other hand I also can't believe that this scenario falls under "private use of the program" because it's functionality is made available to the public.

I'm about to release an application and yet need to choose a license for it. I care very much about the source code of the application and any derived work to be freely available forever. The GNU GPL family seems to provide good options. Now the application is special in a sense that the users don't need to interact with it directly but only need to provide some input and they receive some output in return (as it is the case for an image converter for example). If someone now modifies the application, hosts it on a remote server and provides a user interface for receiving input and providing output then I want to require them to publish their source code. This summary about the GNU Affero GPL sounds like it could help:

Users who interact with the software via network are given the right to receive a copy of the source code.

However while scanning through the GPL FAQ if found the following pointer:


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.

This really sounds like the opposite. My program is not designed to be operated over a network but this can be easily done by developing a corresponding user interface which feeds the input to the program via its standard interface.

I'm not sure what the actual benefit of the AGPL for my application would be. Can anybody clarify on this topic and explain whether the GNU Affero GPL would require someone, who hosts the application on a remote server and provides a separate user interface for input/output, to publish the source code of the (modified) application?

Your Answer

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

Browse other questions tagged or ask your own question.