21

The point of using the GNU Affero General Public License (Version 3) is that it allows "users who interact with the licensed software over a network to receive the source for that program" (FSF).

Section 13 of the AGPLv3.0 contains:

[…] 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 […]

It says "if you modify". Does this really mean that the source only has to be made available if it was modified (assuming that I don’t offer/distribute the application itself, i.e., its binary, at all)? Or am I missing something, maybe somewhere else in the license?

In other words:

  1. I install a Web application licensed under the AGPLv3.0 on my server.
  2. I don’t modify this application at all.
  3. I allow people to use it over the Web.

Do I have to offer the source code of this application?

  • FYI the license tag is being replaced with the relicensing tag. – curiousdannii Jun 30 '15 at 10:07
  • @curiousdannii: (I guess you mean licensing, i.e., this Meta discussion?) I don’t think the "licensing" tag would be appropriate here, as I’m not asking about licensing something under the AGPLv3.0, I’m asking about using something that is licensed. But then again, neither did I add the license tag (I assumed that using a specific-license tag should be sufficient). – unor Jun 30 '15 at 10:23
  • Oops yes I meant the licensing tag. And that may be a good point to bring up at the meta post. It's not too late to change the community's mind. – curiousdannii Jun 30 '15 at 10:23
9

I wrote to the FSF's licensing team about this question:

[...] Does this [section 13] mean that if I run a *completely unmodified* AGPL-licensed program as a network service, I am *not* required to offer the source code to network users?

And I received this response (bracketed phrase added by me):

[...] If you haven't modified the software then you are not required to add that functionality [i.e., to download the source]. Of course, if the functionality to download the source is already in the unmodified software, it will already be there for everyone to enjoy.

So, if you use an unmodified AGPL application that doesn't have download-source functionality, you are not required to add one or otherwise offer the source to users. If you do modify the software, of course, you are required to add a mechanism to allow users to download your modified source.

As a practical matter, an author who cares about source-sharing enough to license code under the AGPL would probably include a mechanism or link to download the source in the original program. This is kind of an edge case, because it only applies when both (1) you want to use the AGPL software unmodified, and (2) the AGPL software doesn't already include a download-source mechanism. If either of those conditions is false, the software must (or already does) include a way to download the source.

  • 1
    So the line from Why the Affero GPL I quote in my answer seems to contradict the license. Of course, an arbitrary page, even if written by someone from the FSF, is not authoritative in licensing matters. – Michael Schumacher Jul 2 '15 at 18:15
5

Interesting question - even after a few reads of the AGPLv3.0, I do not see where it requires you to make the source code available if you run an unmodified copy of the software on your server.

However, the FSF's page about the motivation to use the AGPL, Why the Affero GPL, contains the following claim:

If some program on this server is released under the GNU Affero GPL, the server is required to offer the users the corresponding source of that program.

This is embedded in a section about SaaSS, Software as a Service Substitute, which outlines the FSF's view on services that operate on data provided by users, but are outside of their control. The AGPL is said to not address this issue.

In its Basic Permission section, the AGPL states:

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force.

"Propagate" and "convey" are terms that the FSF has invented to avoid ambiguities with copyright law terms of some jurisdictions. "conveying" software is what actually requires you to make source code available - but a user interaction with the software via a network, as in your question, is explicitly declared as not conveying:

To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

So yeah, at this time I am siding with "you do not have to provide the source code", but this is in spite of the claim that you have to on the FSF's own "Why AGPL" page. I hope someone can point out my error in a comment.

  • That is generally not how it's seen in court. – Bruno Lowagie Jun 30 '15 at 8:26
  • If you have a quarter of an hour, then this video will explain that your interpretation of modification is too limited: youtube.com/watch?v=NCwhEWEPV-E – Bruno Lowagie Jun 30 '15 at 8:44
  • 2
    @BrunoLowagie It's not clear to me how this answer's understanding of modification can be too limited, because the question as asked assumes use of a complete Web service with no modification. For clarity, could you give a specific time range or quote for the video that you feel deals most closely with this specific issue? – apsillers Jun 30 '15 at 12:42
  • The OP is offering a web service based on a web app. That web app is licensed under the AGPL, so it can safely be assumed that it was the author's intention that the source code is shared with users interacting with the web app. The web app is being deployed. The act of deploying could be considered a modification. IANAL, but I would (1.) ask the author of the Web app when in doubt, (2.) ask a lawyer of the author doesn't respond. I wouldn't deploy the software based on an answer on a forum. – Bruno Lowagie Jun 30 '15 at 12:56
  • 1
    @BrunoLogawie I am surprised that the AGPL does not make this more explicit then - in my opinion, it almost goes out of its way to tell me that I am not conveying the software in this case - but as I wrote, there is a claim by the FSF itself, at a different location, that this is not correct. What is the meaning of the last part I quoted? – Michael Schumacher Jun 30 '15 at 13:24
1

This is a short explanation by a lawyer about the AGPL in a 15-minute video.

Software that is based on/is linked with/uses an AGPL library is considered software that modifies the software. It doesn't matter if you put the extra code inside the jar of the library or in a separate jar.

If you just run AGPL software, you don't have to accept the license. However, if you integrate AGPL software in your own applications, then you do more than just running it, and other rules apply. Creating a work "based on" is considered being identical to "modification." Linking your software to an AGPL library is considered modification. Modification is interpreted quite broadly. The AGPL is different from the GPL in the sense that distribution isn't limited to physical distribution. Offering a service that uses AGPL software as a service is also considered as distribution.

This is implied in the text of the AGPL. It's not phrased explicitly, which may cause you to interpret it to your own advantage, but that doesn't count. What counts is how a court interprets the license.

If you really want to be sure, contact the original author of the library and ask him what his intention was when he chose the AGPL.

  • 2
    In my example scenario, I’m not using the software as a library and I’m not building anything with or on top of it; it’s just a regular, stand-alone Web app. So If I understand your answer and the linked video correctly, I don’t have to offer the source code in this case. Correct? – unor Jun 30 '15 at 8:47
  • That's a strange situation. Have you asked the author of the Web app for his intention? If he deliberately chose for the AGPL, then his intention was probably that you also distributed the source code. Why else would he have chosen the AGPL. Also: why wouldn't you distribute the source code? Every one has access to that code through other channels anyway. – Bruno Lowagie Jun 30 '15 at 11:51
  • 3
    My question is not about this specific example in reality; it’s for understanding what is (and what is not) required by the license. I think that the author’s intention is not relevant here (and actually I’d be the author of the software, so I want to know what others would have to do if they use my software like that). To the question why else they would choose the AGPLv3.0: maybe the authors only care about getting back improvements/patches etc. for their software, as the authors themselves offer the original software source code. – unor Jun 30 '15 at 16:49
  • I cannot fathom how you could consider that "Software that is based on/is linked with/uses an AGPL library is considered software that modifies the software" is a possible interpretation any way I look at it. If there are no modified bits, then how can you claim that it has been modified? Say I use the verbatim sha1-identical iText Jar you published on Maven Central and I use it as-is in an application (internal or public): How could using be considered a modification? If this assertion is true, then I am modifying every software I use or run which does not make any common sense. – Philippe Ombredanne Jan 21 '17 at 13:53
  • @PhilippeOmbredanne Using the iText jar in your application is legally seen as a modification as soon as you extend it by calling some of its methods. Are you a lawyer or are you a developer? If you're a developer, please ask an IP lawyer if you don't believe me. – Bruno Lowagie Jan 21 '17 at 14:10

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.