In section 7 of the AGPLv3.0 there is the possibility to make limited changes to the license.

I don't think I understand the changes allowed by subsection f) and I have certainly never seen it applied. It seems to me like it allows someone to not just ask money in exchange for the program, but also to ask money from all downstream recipients of the program, in essence creating a program that is free as in free software, but not gratis.

I always understood the "not-gratis" clause to be kind of a technicality, because it only applies to the first distribution and redistribution need not be indemnified. But this seems to create the possibility for free software that is truly not gratis.

Right? And can you give an example of this clause's use, if a significant one exists?

I quote section 7 below, with irrelevant subsections omitted:

  1. Additional Terms.

    "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.

    When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.

    Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

    [sections a to e omitted]

    f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.

    All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.

    If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

    Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.

1 Answer 1


I'm fairly sure I know what it means, but I have as yet no examples of its use. I think it's designed for use cases along the lines of Cygnus, where a company distributes another party's (A)GPLv3 code to customers who are paying for a support contract, or for some other assumption of responsibility, for issues with the code.

Such parties as Cygnus are "convey[ing] the material ... with contractual assumptions of liability to the recipient". If the original author chooses to distribute with clause 7f active, then any second party who uses the code in this way is required to include in those contracts "indemnification of licensors and authors of that material". Given all the disclaimers in the (A)GPL, I don't think any sane party would for a moment assume that any liability attached to the original author, but 7f requires this to be made explicit to paying end-users.

In concrete terms, suppose Alice writes program foo and distributes it under (A)GPLv3. Bob downloads it and packages it, and offers it for a fee to Charlie under the terms of (A)GPLv3, along with a contract that says that if Charlie is using it and it breaks in the next year, Bob will fix it. Clause 7f allows Alice to require that such a contract explicitly state that both Bob and Charlie agree that Alice is in no way responsible if it breaks, and nor is anyone else in the supply chain, except Bob.

it allows someone to not just ask money in exchange for the program, but also to ask money from all downstream recipients of the program,

I don't read it that way, and I've never met anyone who thinks you can do that. The (A)GPL is very clear that downstream recipients have to get the same rights that you have.

  • Can you explain to me what indemnification means in this context? What is its subject and object? Maybe my problem is just that I don't understand that word (I did look at its Wikipedia page)
    – Nobody
    Dec 2, 2019 at 13:02
  • To indemnify A against some outcome Z is to hold A blameless if and when Z happens, holding therefore that A is not liable for any of the costs that arise from Z. In this case the discussion relates to Bob and Charlie agreeing that Alice is blameless for any failure of foo, even though Bob has contractually agreed that he is in some way responsible when it fails.
    – MadHatter
    Dec 2, 2019 at 13:06
  • Ooooh, so it is "Requiring indemnification [...] for any liability that these contractual assumptions directly impose on those licensors and authors.", and I misunderstood indemnify (word was is new to me).
    – Nobody
    Dec 2, 2019 at 13:07

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.