Re: For Discussion: GNU Affero General Public License v3.0 with NonCommercial Exception
Bradley M. Kühn <[email protected]> Mon, 3 Aug 2026 10:06:00 -0700
| Newsgroups | gmane.comp.licenses.open-source.general |
|---|---|
| Message-ID | <[email protected]> |
--===============4376599156903015299==
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Greetings, Shao! I'm the inventor of the Affero clause and a
co-author of AGPLv1 and AGPLv3. I have some relevant expertise and
prior work to share that relates directly to your inquiry.
Shao Kai via License-discuss wrote:
> This license is a composite of the standard AGPLv3 (unmodified) and
> an additional permission granted pursuant to AGPLv3 Section 7. The
> additional permission exempts non-commercial use from the source
> code disclosure obligations set forth in AGPLv3 Sections 5 and 13.
Any such term (however drafted) is *not* an “additional permission”.
This is prima facie obvious — as what you propose specifically
*restricts* the rights of downstream users (as opposed to *granting*
them specific permissions for something that AGPLv3 prohibits).
What you propose is called a “further restriction” in the AGPLv3.
Specifically, AGPLv3§7¶4 states:
>> 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.
Thus, your restriction text will create a giant, time-consuming NOOP
for your users to wade through and get the right answer. When they
read the text carefully, they'll realize they can just remove the
further restriction and continue to operate under the plain AGPLv3.
What's more, this particular “further restriction” that you're
promulgating actually harms the community you're trying to help (the
non-commercial users) — because if they *aren't* sufficiently
observant to the full text of your license (i.e., “AGPLv3 + your
further restriction”), they'll *incorrectly think* they can
redistributed and/or deploy the system without provision of source
code — only to have one of their users read the license more
carefully and make a world of pain for them — which will likely
blowback to you, as the original drafter and promulgator.
Meanwhile, even if you change approaches and successfully build a
license like this (more on that below), you'll become a pariah in the
FOSS community like MongoDB did when they made the SS Public License.
(Past license-review list discussion on their SS Public License is here:
https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2018-November/003815.html
https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2018-November/003837.html
)
SS Public License is not a FOSS license, but it continues to exist
without ongoing legal and political pain (for MongoDB) *because*
Elliot drafted an *entirely different* license and merely reused most
of APGLv3's text in their his own SS Public License.
If you insist on doing a non-FOSS license like you propose, you'll
need to follow Elliot (Smith) Horowitz's model and roll your own.
Finally, here are a few links to work/writing I've done regarding
AGPLv3§7¶4 that you may find helpful. The definitive one is …
https://sfconservancy.org/blog/2026/apr/16/badgeware-onlyoffice-nextcloud-affero-gpl/
… but these explain some historical context and past similar situations:
https://sfconservancy.org/blog/2018/aug/22/commons-clause/
https://sfconservancy.org/blog/2022/mar/30/neo4j-v-purethink-open-source-affero-gpl/
https://sfconservancy.org/news/2023/feb/09/kuhn-neo4j-purethink-expert-report/
* * *
BTW, I am sad (but not surprised) that the folks involved with OSI
leadership (past and present) did not point out this *primary*
fundamental problem with your proposal. The responses I see
elsewhere in this thread are of the “form over function” variety.
The most relevant point here is: Shao's proposal yields a license
that *does* meet the OSD because the “further restriction” is
removable. To implicitly focus on the discussion on the esoteric
question of “hypothetically speaking, if AGPLv3§7¶4 didn't exist,
would this meet the OSD and/or would OSI even evaluate it?” is 🙄.
Speaking as co-author of AGPLv3, I take this opportunity to (yet)
again request that the (past and present) OSI leadership stop
ignoring the AGPLv3§7¶4 elephant in the room when issues like this
arise. While I suspect no one consciously intended to mislead Shao
away from the *real issue*, the cagey responses from OSI-affiliated
folks *do* subtly give the impression that “it *is* possible to
construct an AGPLv3-based non-FOSS license”. Intentional or not,
that's an unfriendly act toward AGPLv3 (and copyleft generally).
Furthermore, as Perry McCoy Smith (who is the occupant of one of
OSI's Board seats) pointed out: OSI historically had historically
*not* taken positions about license with add-ons. Yet, OSI *did*
take a position on Neo4j's “further restrictions” manipulations and
then doubled-down on it when errors were pointed out. This is an
inconsistency in OSI's rhetoric that appears to now be resurfacing.
If not corrected, it will probably continue to harm the AGPLv3 and
its adoption.
--
-- bkühn — he/them — On Fediverse (via Mastodon): https://fedi.copyleft.org/@bkuhn
--===============4376599156903015299==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVGhlIG9waW5p
b25zIGV4cHJlc3NlZCBpbiB0aGlzIGVtYWlsIGFyZSB0aG9zZSBvZiB0aGUgc2VuZGVyIGFuZCBu
b3QgbmVjZXNzYXJpbHkgdGhvc2Ugb2YgdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUuIE9mZmlj
aWFsIHN0YXRlbWVudHMgYnkgdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUgd2lsbCBiZSBzZW50
IGZyb20gYW4gb3BlbnNvdXJjZS5vcmcgZW1haWwgYWRkcmVzcy4KCkxpY2Vuc2UtZGlzY3VzcyBt
YWlsaW5nIGxpc3QKTGljZW5zZS1kaXNjdXNzQGxpc3RzLm9wZW5zb3VyY2Uub3JnCmh0dHA6Ly9s
aXN0cy5vcGVuc291cmNlLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpY2Vuc2UtZGlzY3Vzc19saXN0
cy5vcGVuc291cmNlLm9yZwo=
--===============4376599156903015299==--