Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
User beware: Modified AGPLv3 removes freedoms, adds legal headaches (opensource.org)
239 points by pabs3 on April 8, 2022 | hide | past | favorite | 168 comments


This echoes of the kind of v3 fuckery Linus Torvalds complained about in his GPLv3 objection recorded at DebConf '14. [0]

I'm a long-time Free/Libre software user and advocate, but "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." strikes me as a very strange thing for the license to include.

The copyright holder clearly has the authority to use whatever licensing terms they wish. If they added restrictions, this clause is in direct conflict with their intentions. Of course the court sided with the plaintiff. I don't understand what the FSF was trying to do here, it seems obviously underhanded like Torvalds touches upon in[0].

[0] https://www.youtube.com/watch?v=PaKIZ7gJlRU&t=147s


> This echoes of the kind of v3 fuckery Linus Torvalds complained about in his GPLv3 objection recorded at DebConf '14.

I feel like this is another topic. What Linus is criticizing in the part you cite is the "or later" mechanism, where as a licensee you can take some program licensed under "License version N or later" and release a modification under "version N+1 only", preventing the original authors to take back the modifications. I understand (and sympathize with) the intent of the "or later" mechanism, and why Linus does not like it (and agree with him). He also thinks the FSF wrongly took advantage of the "or later" clause by releasing a new version of the GPL that is not in the same spirit and he thinks that this is sneaky. One can agree or not.

This "or later" mechanism seems like it would hold in court, contrary to the discussed clause (deemed invalid here) that prevents an author from adding a restrictive clause next to the base license. Hindsight is 20/20, but it does seem like the authors of the AGPL could have anticipated this court decision [that author have all the rights to impose all further restrictions they want withing copyright laws and license authors cannot do anything about it] and don't put this clause, or just clearly write that licensees cannot add further restrictions to the original license.

I would not put the two points in the same bag.


> I feel like this is another topic. What Linus is criticizing in the part you cite is the "or later" mechanism

The "or later" mechanism was always there, this facet was old news, it's not the substance of what he's taking issue with in v3. He's just appreciative of having the presence of mind to fix his kernel at v2 and not leave the v2+ option, because v3 is terrible.

Listen to the entire clip I linked. He's complaining about tivoization restrictions, he's complaining about the dishonesty surrounding the freedom to ignore those restrictions. This is the same kind of v3 nonsense as TFA, is it not?


I'm familiar with this clip and listened to it several times. He doesn't like the GPLv3 for the reasons you give, and from what I understand, what he finds sneaky is not the GPLv3 itself (he recognizes that the GPLv3 can suit some people and is fine with this), but the fact that the GPLv3 has been written as a revision of the GPLv2 while it should have been an entirely new license (that would not interact with the "or later" mechanism and impact existing software with this or later clause). He says this in the sentence just before your citation.

From what I understand, he would have been fine with a revision to the GPLv2 that fixes some issues but does not change its spirit.

Now, that the GPLv3 is not in the same spirit than the GPLv2 is an opinion, and he does a good job of arguing his opinion on the matter.

> This is the same kind of v3 nonsense as TFA, is it not?

No, I don't think so.

edit: oh, ok, I understand what you mean. The nonsense you are speaking about is the FSF people telling Linus Torvalds that he can use GPLv3 without the tivoisation clause and still be compatible with the GPLv3, which indeed seems non nonsensical. The GPLv3 itself is not sneaky though, it's how it was sold to Linus IIUC.


Having the Linux kernel as part of the GPL/FSF brand is critical marketing for the FSF. Linux is the thing that is the GPL in most people's minds in business and tech. They know that and are willing to break their own rules to keep it.


> that author have all the rights to impose all further restrictions they want

But, then, why did they distribute it under a license that directly conflicts with that? The authors have sent two conflicting messages: that you can remove additional restrictions and that you are bound by them. How is the user supposed to act when given permission by the authors to do something the authors prohibit?


I'm not disagreeing with you, as an author I would not have risked something like this, but let me try:

- maybe the authors wanted the "AGPLv3 look it's open source!" label

- maybe the authors liked the restrictions that come with AGPLv3 (if you use a modified version on a server, we want the modified source code "back")

- maybe the authors wanted to built upon a license they perceive as strong and solid

- maybe the authors haven't thoroughly checked the AGPLv3 and weren't aware of this particular clause, or actually decided they could add limitations anyway

- writing a license is hard so maybe they didn't want to roll their own

I personally think the Commons Clause license is a bad thing with a bad name, and is only going to wreck havoc and muddy the waters. Widespread open source / free software licenses are complete, self-contained work and internally coherent, adding stuff on top of them is only going to be fragile.


> - maybe the authors liked the restrictions that come with AGPLv3 (if you use a modified version on a server, we want the modified source code "back")

It's not a restriction, and it's not about the upstream author: the modifications are available to every user (so they can be sure what is done with their data, as one example). As any GPL, this is about user rights, not developer rights.

> - maybe the authors haven't thoroughly checked the AGPLv3 and weren't aware of this particular clause, or actually decided they could add limitations anyway

I'm betting on this one. AGPL makes sense if you want to force anyone using your software to release their enhancements to their users. You, as the original author, retain the right to license it under a different license to your own users (so they don't get the exact source code to the services they are using remotely).

Picking a license is hard and should be done carefully, because the license you pick can have permanent effects on what you can do with your own software.

Larry Ellison, for instance, didn't realize he just couldn't kill MySQL just because he became its owner when he acquired Sun.


The GPL is a copyright work in and of itself and has its own license, which prohibits changing it.

Arguably adding extra clauses to the GPL is ‘changing it’, which violates the license to the license, and it implies that the plaintiff themselves have committed copyright violations by modifying and distributing the license. The FSF themselves would have cause to sue Neo4j.


Section 7 of AGPLv3 [0] is entirely about augmenting the license, it's certainly not clearly prohibited. What this decision demonstrates is that section 7 is legally problematic as-is.

[0] http://www.gnu.org/licenses/agpl-3.0.html


I’m referring to the very top of the GPL where it states that anyone may copy but not modify the license.


that part says "this license document" and that refers to the very text in the document that is claimed to be the AGPLv3.

It does not mean it is not allowed to license a work under another license that makes references to the AGPLv3 and includes it, only that the included document should not be changed.


This doesn't preclude additional restrictions (or permissions) in a supplemental license file. Section 7 practically encourages augmenting the license.


It explicitly says that:

  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.
Above requirements include:

  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.


It has nothing to do with it and Torvalds made very arguable claims.


The intent of that part is explained by the Conservancy post linked from the OSI article.


> 73 [...] Here we are particularly concerned about the practice of program authors who purport to license their works under the GPL with an additional requirement that contradicts the terms of the GPL, such as a prohibition on commercial use. Such terms can make the program non-free, and thus contradict the basic purpose of the GNU GPL; but even when the conditions are not fundamentally unethical, adding them in this way invariably makes the rights and obligations of licensees uncertain.

It still doesn't sit right with me. Like the program authors should be allowed to license things however they want. A clause to contradict the program authors so as to not have them contradict the GPL is kind of strange to me.

I get the possibly "false advertisement" angle, like hey we're AGPL "caugh but not really". As a scheme to fool users into thinking they can use it freely. But still, I feel that be better to be on a user to read the additional terms and decide for themselves.

At least the court recognized you can't call a modified AGPL free and open source, so I guess the court established that and now this clause is no longer needed on the AGPL maybe?


The way I see the FSF is that they try to create a system where everyone's freedom to change and share between other people is maximized.

To be able to meet this goal we need some rules, like not being able to change software and share as closed source.

We don't want near absolute freedom like the MIT license. For the same reason we don't want to live in a country without any rules.

So this clause aligns perfectly with how I view GPL, maximizing people's freedom to modify and share the software.


The coercive behavior the FSF promulgates represents a narrow and openly ideological view of "freedom".

Thankfully, there are other ways to share open-source software, ones that don't restrict options or create burdensome obligations for users & contributors.


Openly ideological is better than nakedly profit-seeking, which is mostly all the open source community offers.


What "burdensome obligations" does the GPLv3 impose on each group? I'm especially keen to know what restrictions the GPL poses for users.


I personally consider being forced to open-source derivitive software (or software that merely uses it) to be burdensome enough not to use GPL projects.


Yes, all software licenses impose restrictions.

The GPL's restrictions ensure that the end user maintains their freedom, at the expense of developer freedom to choose their own, more restrictive (to the end user but also potentially to other developers) license, if they want to incorporate the Free Software into their own software.

That is a tradeoff I'm cool with. I'm always a fan of ensuring end user freedom, including the right to repair.

I will also note that the GPL is explicitly not an end-user license. You can do whatever you want with it yourself. It only covers distribution.


> Like the program authors should be allowed to license things however they want.

There’s nothing to stop them coming up with their own license (like MongoDB did). They don’t have to plagiarise the GPL.


MongoDB's Server Side Public License is a derivative of the AGPL.

https://en.wikipedia.org/wiki/Server_Side_Public_License

> The Server Side Public License (SSPL) is a very strong copyleft source-available software license introduced by MongoDB Inc. in 2018. It is a modified version of the GNU Affero General Public License version 3.


Wow who would trust a license that is so clearly violating its own license.

Hilariously they provide a diff showing them stripping the copyright https://webassets.mongodb.com/_com_assets/legal/SSPL-compare...


Elsewhere in this thread it was mentioned that the FSF FAQ allows derivative licenses, as long as they have different names.


Yes, they must have been granted another license to copy the license. Presumably this asked them to also remove attribution to avoid confusion.


The license grant is in the FAQ. If it comes down to a legal fight the FAQ is usable in court.


It bears repeating, once again, that contrary to a frequent conceit of software engineers in particular (as evidenced by all the baffled hackers incorrecting each other in these threads), the law is not a programming language.


I think something that sentiment misses is that “it is not a programming language” because of vested interests intentionally corrupt the law code, especially over time.

For example; the US Constitution is a relatively clean OS. First law/loop should check for whether any particular issue of consideration is explicitly delegated to the United States Government (10th amendment), if not, then it is exited to states. The problem here is that the OS has been so corrupted by the vested interests that they’ve tried using the federal OS for everything under the sun and it’s corrupting and clearly breaking by making it do things it not only was never intended to, but the makers of the best OS in human history explicitly warned never to do any of the things that have been done and the documentation very clearly explains why not to do them because it will destroy the whole system that everything relies on that everyone takes for granted.


Alas, I must heartily disagree. Law has never been a programming language and oh-my-lord thank fuck for that, because it would be an inhuman unjust catastrophe that we'd have to throw away and replace with something else.

With regards specifically to that US system; not being an American, I am not infested with the exceptionalism of the flag-saluters, and from the outside looking in the US constitution (especially with the Bill of Rights) looks like it was inevitably going to spawn the vast, sprawling shitshow that is the US code today. The fundamental difference being the positive construction of freedoms, which thereby ensured any right not strictly guaranteed is (irrespective of rightly or wrongly) perceived as fair game by just about every other entity jostling for position, who then spend inordinate amounts of energy whittling away at them.

All humans, other than a few ascetic hermits, have vested interests, so it's essential that any system of laws assumes this rather than trying to push an avalanche back uphill whilst complaining about all the snow.


Ethereum's history clearly demonstrates the folly of "code as law". How many hard forks have they had by now?


Ethereum isn’t “ready”, so obviously they need to fairly regularly perform hard forks in order to implement new features.

But I suppose you aren’t actually talking about that, but are referring to hard forks to roll back smart contract hacks. If so, it’s only happened once. In 2016. (And never gonna happen again)

https://ethereum.org/en/history/


English is not a programming language, but it’d be immensely beneficial if laws were defined in some sort of language that didn’t allow any ambiguity or undefined behaviour


It would be horrifying, not beneficial, and what's more it'd be by definition incomplete, and therefore unsuitable for any but the most banal proceedings.


> The trial court held that this provision in the AGPLv3 applies only to downstream licensees, not when the original licensor adds them

I honestly feel this rationale makes sense, so I kind of agree with the courts.

If I'm choosing a license and I'm adding clause, it be weird that by accident one of my clause somehow invalidates my others, I'd be kind of angered if that happened without me realizing. I don't think the intent of the writers of AGPL matters here, more so the intent of the licensors matters.

> It was the intention of the FSF (footnote 73) that if the licensor added more restrictions, the downstream users could remove them

This just doesn't doesn't make sense to me lol. If that's the case, why would the licensors add more clause? They're basically irrelevant. It's almost like the FSF intended to trick the authors who choose AGPL into not realizing what terms they were licensing their work under.

I get that FSF cares more about the users of a library than the authors of the library, so I understand the branding aspect. A user might have wrongly thought that AGPL meant they could resell it, and ignored reading the added clause. And I get that the combination of AGPL and the added clause would definitely be confusing to a user in the wording of AGPL with regards to removing them.

But in the end, I feel I like this ruling. They said you can't call it free and open source if you don't allow for free and open source use as part of your license. But they also said that the intended clause from the authors mattered, not the interpretation of the user, and I think that's just to the authors.


> It's almost like the FSF intended to trick the authors who choose AGPL into not realizing what terms they were licensing their work under.

It's the very opposite: it's to create clarity for all parties involved.

Alice publishes something under AGPL, Bob forks it and sneaks in an additional clause and Charlie gets a copy from Bob.

Now, is Charlie getting all the freedoms of the original AGPL or is he bound by the additional clause? The latter would allow Bob to trick Charlie into running closed source software masquerading as FOSS.

AGPL tries to prevent such sneaky behavior.

> A user might have wrongly thought that AGPL meant they could resell it

They 100% can.


That's what the court said which I agree with. But what the OSI is saying was the intent of the FSF and what the court case was about is very different.

The OSI, FSF and what the court case was trying to argue was that if Alice publishes something under AGPL with an additional clause. Charlie gets a copy from Alice, and decides to remove all additional clauses and to ignore them, then it is okay because the AGPL says that all additional clauses can be removed.

The judge said that this doesn't apply to the original licensor, that the original licensor can choose the terms of their own copyright, so if they want AGPL + additional clause then those additional clauses can't be ignored or removed. Only additional clause added by licensees can be removed due to the original terms they agreed too when using an AGPL library.


No, I think you're misreading the case. I think the intent of the clause, which the court reaffirmed, is:

- You develop didibusDB

- I enhance it. I add a clause. (note: as an enhancer, I'm the licensor)

- Alice grabs it from me. She can just remove the clause.

This clause avoids litigation for step 3. Otherwise, for Alice to do this, YOU would have to sue. This way, the power rests with Alice.

For the "original licensor" case, the license referred to here would have been AGPL+CC. I'm not sure of a legal argument to say I can't distribute something under a modified license. The only error was false advertising -- referring to it as an AGPL or open source or whatever other license, which the court found to be true.


Unless you have copyright on all the code, you're a licensee on at least parts of the code.

So while you're indeed the licensor of your enhancements, at the same time you're a licensee of the original code.


The nuance is a little bit more complex. Let's say I run an AGPL+CC project:

- I become a licensee of code under AGPL if I bring in AGPL code from an external project. Downstream can remove my clause.

- I don't become a licensee if I have an adequately strong CLA in place, and only accept contributions under the CLA.

- I become a licensee of the code if you make a PR to my project without a CLA. However, you're contributing code under AGPL+CC. Downstream cannot remove my clause.

That's my read on both the court ruling and the intent of the AGPL.

It'd be crazy for a court to rule that you can't modify a license. Once you have AGPL+CC, that's a new license (and it's not open source or compatible with most other sharealike licenses).


That's what I understood the court said yes, which I think makes sense. The original licensor is the one who dictates the rules of use, even to enhancers. But the OSI article implied this wasn't the intent of the FSF when they wrote the license, and that apparently the clause in the AGPL was intended to dictate the terms of the original licensor, somehow in that they couldn't add more terms to it.


Yeah, that argument makes no sense. The FSF is way smarter than that.


> It's almost like the FSF intended to trick the authors who choose AGPL into not realizing what terms they were licensing their work under.

Yeah I don't really understand the logic here. It's almost like they're considering themselves the root licensor for all projects that use the AGPL. Which (despite their intention) comes across as pretty hostile towards software authors.


If you don’t want to offer the freedoms of a licence then pick a different one. To choose one with an established meaning and then remove those freedoms undermines the purpose of having standardised licences. The authors are potentially setting users up for unintended infringement.

I see it as similar to organic food. Once you add non-organic ingredients then it’s not organic any more. You can do what you want but it’s fair enough if everyone else asks you to respect the labels they’ve built to let people make informed decisions.


> If you don’t want to offer the freedoms of a licence then pick a different one.

That's exactly what they did. Namely, they crafted a custom license that combined requirements from two other licenses -- granted in a confusing way.

> The authors are potentially setting users up for unintended infringement.

I do think the ambiguity in the contract language would certainly have bearing on any remedy the court would establish if they did find that the users infringed.

> I see it as similar to organic food. Once you add non-organic ingredients then it’s not organic any more. You can do what you want but it’s fair enough if everyone else asks you to respect the labels they’ve built to let people make informed decisions.

I'm not sure I see the similarities given that legal contracts are not a collection of labels. You don't sign a document that just says "lease" on it. If you're getting at the question of whether AGPLv3 + CC should be able to advertise itself as FOSS, then I agree, but that's not what this part of the conversation is about. If you're implying that they shouldn't be able to use the term "AGPLv3" in their license language, well I don't disagree but I don't know enough about the areas of law that would prevent that (is it trademarked? etc).


The FSF license is not just to protect the rights of the open source authors but the users too. If a software author doesn't understand this, they are the one who are to be blamed, as they don't understand the open source philosophy that the FSF advocates. One can ofcourse choose to disagree with some of their principles. In such cases, they are free to copy the FSF license an modify it as they want, but they can't call it an FSF license. Or they can choose a different open source license that aligns more with their philosophy.


That's what Neo4j did, they took the AGPL and added a Commons Clause making it AGPL with Commons Clause.

They then say:

> Neo4j Enterprise consists of modules from Neo4j Community Edition and modules licensed under AGPLv3 with the Commons Clause in this repository, and other closed source components not present in this repository.

I actually don't see them claiming their enterprise edition was ever open source, they also have an open source community edition licensed under GPL V3.

This is their License file:

https://github.com/neo4j/neo4j/blob/3.4.13/enterprise/com/LI...

You can see the: "Commons Clause" License Condition at the end of it.

Also, the history of the project, their enterprise edition started as AGPL, and later versions they added the Commons Clause over it, and finally now they've just gone closed source, probably to avoid all these legal woes.


Advocates of FSF argue that if Neo4j changed the AGPL license in a way that invalidates the intent and principle behind AGPL, they can no longer refer to it as an AGPL license. And if they do so it is false advertising. The court has agreed with this assertion and also said due to the changes in the license, Neo4j was doing false advertising by claiming it was "free and opensource".


> This just doesn't doesn't make sense to me lol. If that's the case, why would the licensors add more clause? They're basically irrelevant.

Licensor can add extra clauses as long as it doesn't introduce any restrictions to the freedom granted in AGPL. If the new clauses clash with the freedoms granted in AGPL, the license allows users to treat these additional restrictive clauses as not applicable to them. The provision to add more clauses in AGPL is to only provide more protection of the freedom of the user (the main intent of the FSF license). For example, to plug some loophole that the FSF did not consider.

> A user might have wrongly thought that AGPL meant they could resell it, and ignored reading the added clause.

AGPL license doesn't restrict a user from commercialising an AGPL software and redistributing it. So a user cannot be faulted here if they chose to ignore any additional restrictive clause stating that user can only use it non-commercially.

> But they also said that the intended clause from the authors mattered, not the interpretation of the user,

That's the part of the ruling causing the debate - FSF supporters feel in such a case, it means the judge chose to ignore that it is an AGPL license from FSF (thus choosing to ignore the intention and principles behind it), and perhaps chose to treat it a derivative but new license by the author(s) of the software. Hence their ruling that it not "open source and free".


The FSF doesn't choose what license my work is under. If I decide to use one of their templates such as AGPL and then I add more terms and conditions, it is clear I'm trying to add restrictions. The FSF has no authority on my copyrighted code and what terms I want to license it under.

But the FSF seems to assert that in fact, it was trying to sneakily prevent a copyright author from adding additional clauses if they chose the AGPL as a template for their license, by tricking them into not realizing that any additional clauses they'd add could simply be removed by the users.

This is what I find very preposterous. Luckily the Judge ruled against that, and asserted the rights of the copyright authors to be in control of their own license terms.

It's one thing to licence my code in a way that says, no one else can add more conditions to the use of my code, which is fine and what the judge said applied here, but it is another to license my code in a way that says that my own additional terms are dismissabble and non enforceable, which sounds from the OSI article like this was the intent from FSF.

There could be a question of are you allowed to reuse the AGPL license template if you are to add additional terms? Are there copyright on license templates themselves? But that's a very different debate, and it would be pretty crazy to need a license for the use of a license text. No license template currently provide such a license to my knowledge.


> If I decide to use one of their templates such as AGPL and then I add more terms and conditions, it is clear I'm trying to add restrictions.

And you are free to do that. But you cannot call it an AGPL license any more, especially if it clashes with the original intent of the AGPL license - to provide users the right to the source of the software, to modify it, and to redistribute it commercially or non-commercially under the same license directly or indirectly (SaaS).

The court also partly endorsed this position by asserting that Neo4j was doing false advertising by claiming its software was "free and opensource" because the changes made to the license invalidated this.

> Are there copyright on license templates themselves?

Some commenters have claimed here that they do, but they are also "open source". I don't know about that. But I am sure FSF has valid grounds to argue that if one of their license is changed to invalidate their original intent, such license shouldn't be referred to as an FSF license (like GPL or AGPL). That's what Neo4j was doing - they were calling their license "AGPL with Commons Clause". And even the judge pointed out that this was false advertising.

Which makes sense - Firefox is opensource, but if you modify it to include malware and redistribute it as Firefox, Mozilla will obviously not like that as you are damaging their brand. (Ofcourse, that would be a trademark dispute, not a copyright one).


> perhaps chose to treat it a derivative but new license by the author(s) of the software.

... I mean yes, that's obviously what a license with extra clauses is. What else would it be?


> It's almost like the FSF intended to trick the authors who choose AGPL into not realizing what terms they were licensing their work under.

It is almost as if the FSF existed to push a certain ideology and uses licenses as one of their tools. Don't use a GPL license if you aren't completely aligned with their values, the or later part alone makes that risky.


>the or later part alone makes that risky.

You are entirely free to pick a GPL version and don't add the "or later" clause.

Many projects, including the linux kernel, do.


I can understand the trial court's rationale.

Preventing a licensor from adding clauses may have been intent of the authors of the AGPL, but they aren't in a position to enforce that.

The license in question is not being called "GNU Affero General Public License + Commons Clause", which could be fought on the grounds of trademark violation — it's being called the "Neo4j Sweden Software License".

There's the theoretical possibility of a copyright claim for the text of the AGPL, where the AGPL's copyright holders disallow derivative works, but I'm pretty sure that won't fly for lots of reasons: not clear who has the copyright and therefore has standing, not original enough, functional rather than creative, etc.

ETA:

There may actually be a trademark problem here.

https://sfconservancy.org/blog/2022/mar/30/neo4j-v-purethink...

> But Neo4j consciously chose not to do that. Instead, they license their software “subject to the terms of the GNU AFFERO GENERAL PUBLIC LICENSE Version 3, with the Commons Clause”. (The name “Neo4j Sweden Software License” only exists in the later Court papers, BTW, not with “The Program” in question.)


> There's the theoretical possibility of a copyright claim for the text of the AGPL, where the AGPL's copyright holders disallow derivative works

There's also a pretty clear case for promissory estoppel since their FAQ (which is "maintained by the Free Software Foundation's Licensing and Compliance Lab") says "we will not raise legal objections to your making a modified license": https://www.gnu.org/licenses/gpl-faq.en.html#ModifyGPL


But Neo4J didn't fulfill the conditions of that FAQ, particularly this:

> provided that you call your license by another name


Given that the AGPL itself uses qualifiers to be a different license from the GPL arguably adding the “with commons clause” is a different name.


That's the argument that the Commons Clause authors made — that they should be able to sponge off of the goodwill of FOSS community. It's outrageous, offensive, and I strongly suspect a losing legal argument so long as the original license name is a defensible trademark.

Consider the Apache Software License version 2.0. "Apache" is a registered trademark held by the Apache Software Foundation in the US and other jurisdictions. The Commons Clause is not additive, it is antithetical to the values of the ASF and directly undermines the ASF's mission. Calling something the "Apache License with the Commons Clause" damages the interests of the ASF by introducing a confusingly named product into the market.

What I have more questions about are other licenses where there's not necessarily an obvious trademark held by a willing defender. Can you call your deceptive fake FOSS license the "Common Development and Distribution License"? I'm not so sure about trademark defense there — the only option might be social pressure.


Greg’s Private License Very Three, or GPL v3 is my new license. Not at all sneaky.


I would reduce "the Commons Clause [...] is antithetical to the values of the ASF" to "_one_ of the values".

As an example of other values untouched by the Common Clause, the Apache License 2.0 includes: "(4.b) You must cause any modified files to carry prominent notices stating that You changed the files;". The values here are correct attribution of work, and protecting consumers by making changes easily spotable.

Please do not collapse all open source licenses into a single point value, it does them no favor. And if you really have to, then at least use the one about open access to the source code. The one in the name.

Yes, the Common Clause violates point 6 of the opensource.org/osd - but there are 10 points on that list. And the OSI is not the be-all-end-all of defining open source, even if it sues people for using the word, it not the one and only source of truth, not some religion of 10 commandments that wants its followers to harass heretics.

And this is important, because this whole discussion is as old as open source. Besides commercial use with negligible own contribution as seen in the Common Clause, there are other well known examples of restrictions people added to their works in spite of point 6, like a "no military use" clause that was quite popular for some time. That prevented good software from being distributed by Debian, because of Debians choice to only include software that complies with all of its ideals.

People first and foremost have the freedom to license their original work however they want. Some restrictions, such as trademarks, may apply. You have a point with trademarks and naming a modified license in a confusing way, but i think you are overreacting when you call the Common Clause "outrageous, offensive" and "to sponge off of the goodwill of FOSS". Yes, the license that is "AGPLv3 + Common Clause" may never become OSI approved, but for the consumer the modification is easy to spot and understand. And that actually does follow an important value of the FOSS community.

Ironically one that is not part of the 10 but included in the Apache License 2.0


I stand by my characterization of the Commons Clause initiative as sponging off the goodwill of the FOSS movement.

The language of the Commons Clause did not have to be attached to a derivative, trademark-abusing naming stratagem. They should have used novel, non-confusing names for their licenses from the start.


Perhaps limit your policing of others' phraseology to cases where it's clearly wrong or harmful?

The Apache Software License and the Apache Software Foundation are not the same thing. The latter is a human organisation and its values are determined by its members - some of these values are not even codified, so it may be hard for an outsider to determine them - but in this case I am inclined to agree with the GP.

The ASF promotes permissive software distribution - this includes the right to remove permissions when relicensing. However, distributing such a modified license under the Apache umbrella potentially harms that goal by muddying the meaning of "Apache licensed"


> However, distributing such a modified license under the Apache umbrella potentially harms that goal by muddying the meaning of "Apache licensed".

Exactly.

The ASF fosters a permissive ecosystem, characterized by low risk of litigation. If you attribute ALv2-licensed dependencies properly, you should feel confident that you are pretty much in the clear. If you screw up and fail to attribute, it's easy to achieve compliance — just add the attributions. You need not worry about publishing your proprietary code under a copyleft license, stripping out the ALv2 dependencies, or other more involved remedies.

This low risk environment is key to the participation of many users, especially risk-averse corporate contributors. It is a fundamental aspect of the ASF culture and mission.

The "Apache + Commons Clause" license radically undermines that, because if you are a commercial user, you may well get sued. The "Apache" name doesn't belong anywhere near a license which includes the Commons Clause.


I changed the first sentence from "please limit" to "i would reduce" as it is not my intent to "police phraseology" but to state my opinion in reaction to someone else opinion. Maybe there is some other phrase that would be even better to make the rhetoric non-violent.


I think you have still missed the important distinction between the ASF and the ASL.

Your opinion is based around your interpretation of the ASL, whereas the GP was referencing the ASF - an organisation of people, with their own shared values, that created the ASL. You have not referenced the ASF at all, only the ASL and some general concepts around FOSS, which are not particularly relevant to a discussion of the ASF's goals and values.


Either the ASL includes values the ASF does not hold, which would be very strange, or the example of a value enshrined in the ASL speaks for the values of the ASF as well.


Nowhere did the GP say that it was antithetical to all interests of the ASF.


> Given that the AGPL itself uses qualifiers to be a different license from the GPL arguably adding the “with commons clause” is a different name.

Copyright holders aren’t bound by license conditions they impose on others.


>> I can understand the trial court's rationale.

Agreed, there is no point or value in adding terms that can be immediately removed by the person receiving it.

IMHO the FSF also went a little too far trying to dictate how people go about handling violations in GPLv3, but it's still a good license.


I think we have to accept that people will reuse and modify the texts of various open source licenses in all sorts of ways which cause downstream confusion.

What the FOSS community needs to ensure is that users can always differentiate between a FOSS license and a modified version which has subtle but profound changes. Our best defenses there would seem to be trademarks and social pressure. "That's not actually the AGPL, and calling it the AGPL causes confusion in the marketplace."


All of these headaches stem from the OSI's refusal to address the problems posed by SaaS to the open source model. Their thinking is stuck in the 1980s and 1990s.

SaaS is effectively a loophole. You can use 100% open source software to create something that is actually far more proprietary and that offers less user freedom than old school closed source applications. Yes the user can theoretically get the code but it's painful to operate and meanwhile the SaaS application has all the user's data.

Open source is rapidly becoming free labor for closed SaaS and a tool to accelerate the lock-down of user data in the cloud rather than a tool to expand user freedom.

People are trying to roll their own licenses to deal with these problems since the OSI is providing no leadership.


> All of these headaches stem from the OSI's refusal to address the problems posed by SaaS to the open source model. Their thinking is stuck in the 1980s and 1990s

There are no such problems. The “problem“ supposedly raised by SaaS is, in fact, an issue widely recognized as inherent to FOSS licensing before the OSI existed.

> Open source is rapidly becoming free labor for closed SaaS

“Free Software commercially redounds to the benefit of whatever for has the most resources to build and sell non-licensing services around it“ is not a new thing with SaaS. It's been recognized widely since the early 1990s.

What's new is people feeling entitled to a viable business mod for VC-funded startups that can free ride on FOSS-centered goodwill, without actually being FOSS.


You realize that you're choosing a future here where nobody owns their data nor has the ability to actually run software on that data themselves... unless they have a lot of free time and the skills of a developer and IT professional, right?

People are letting the idea of open source as originally conceived eclipse the goal of providing freedom to the user.

It's a pretty common thing. When an idea doesn't turn out exactly as people wanted, it's very common for people to double down on the idea to the point of even turning against the original goals of the idea. This is what open source is doing. The license is more important than what the license was intended to achieve: freedom for the end user.


Wasn't the AGPL created to address exactly this loophole?


Isn't this a case of Neo4j trying to prevent a SaaS from making money selling a managed Neo4j offering?

It seems the OSI is siding against Neo4j and with the SaaS by saying Neo4j had no rights to remove the right to sell the software from the SaaS company who decided to remove the added clause preventing them from selling Neo4j.


The goal of the AGPL is that anyone can run a SaaS based on someone else’s code, as long as their own modifications are open as well.

Just like the GPL ensures that while Microsoft could take Linux and sell it, they’ll have to make their changes open again.


Yes, yes it was.


If you're talking about projects where people are following the letter and spirit of the license, and publishing their code, but it's a pain to use... that's not really something you can control with a copyright license. The correct answer in that case is to not use that code and treat projects that rely on it as technical debt.

If you mean that the SaaS provider has a private fork of someone else's code, and won't publish that fork... well, AGPL already exists for that. But here's the thing: in order for any license to close this loophole, you need to create a licensing term that obligates the user to publish private forks. These terms will inevitably either restrict the user's freedom to run the program, or the user's freedom to modify the program. I don't see why we should be calling restrictions on either freedom[0] to be Free Software or Open Source.

My personal feeling is that companies that are adopting "SaaS-loophole" copylefts are looking for the street cred of being source-available, while still being able to wield copyright in the way one would with proprietary software. Hence the Commons Clause that bans commercial endeavors on top of the already difficult-to-comply-with Affero clause. If you want to be paid, just... demand payment.[1] That's what proprietary licensing is for, and you are never going to close the "SaaS loophole" in FOSS while still remaining in the spirit and letter of FOSS.

The thing about SaaS is that it wasn't invented this decade. Even back in the 80s and 90s when FOSS was novel, you had massive IBM mainframes that could be partitioned, virtualized, and rented out exactly in the same way Amazon does today.

[0] GPL and weaker copylefts are tolerable because said licensing provisions only trip on distribution. Ordinary users do not need to worry about GPL compliance until they want to give someone else their code. This is a feature, not a bug.

[1] Are FOSS support contracts still a thing?


> in order for any license to close this loophole, you need to create a licensing term that obligates the user to publish private forks. These terms will inevitably either restrict the user's freedom to run the program

No. The end user is the one using the SaaS service, not the company providing the service. AGPL is there to give freedom all the way up to the end user. Also, there is no private fork in this scenario.


Uh, there is a private fork in this scenario. The whole point of AGPL is that you cannot legally modify the software and host it over a network to avoid having to publish your fork and comply with the GPL copyleft clause. Mere use does not trip the AGPL copyleft, because Freedom Zero is considered sacrosanct.

Furthermore, there are plenty of situations involving a network, other than SaaS, in which both the client and server could be considered end-users. For example, a WordPress site. The people who own the site and the people viewing it are two separate sets of end-users with their own freedoms to protect.


No, you are still conflating running something for internal use or for external users.

Under AGPL when a service is provided to the public it is not a private fork or private execution.

That's the whole point of the AGPL.


Seems a better solution would be a checksum on the license text no?


The most accurate license detector is ScanCode. I think it uses some sort of rolling checksum thing for detection.

https://github.com/nexB/scancode-toolkit/


Hey, pabs3! Actually this is not using a rolling checksum for detection but rather a combo of language model, checksums, automatons, bitvectors, inverted indexes and multiple sequences alignment (e.g. a specialized diff). I put some docs there to explain the approach at ahttps://github.com/nexB/scancode-toolkit/blob/develop/src/li...


You need a bit more than checksums for this. If anything the FSF published many different versions of the "official" GPL2 texts and this would defeat checksums. See https://github.com/pombredanne/gpl-history ... so in the general cases hashing a text does not work consistently and safely. Eventually you need a diff for a pairwise comparison, and the only difficulty is making diff fast or find ways to approximate it fast enough to avoid doing a full diff.


In fact, modifying and updating licenses falls under what I'd consider free speech. The answer to bad license edits is not to shut them down, it's just to write better ones and convince others to use them.

I may not agree with bad license edits, but I'll defend them under the right to the free speech of the developer who is shipping the code.


It's never been acceptable free speech to sell a fake Rolex watch or a fake Samsung TV and its not a violation of free speech to insist they call it something else. This is a really weird hill to die on.


What you're talking about falls under Fair Use. Free speech protections don't provide any such right.


Not a lawyer, have no law training...but I have a hard time seeing how any other interpretation than this court would be viable. At its heart, this is a matter of contradictory clauses in a contract. One clause says you can't do something, the other says you can. Why should one clause automatically trump the other?

In cases like this, a court has to interpret what the parties intended the contract to mean. The licensor had full authority to set the terms, and willingly chose to modify the original license. It's unreasonable to conclude that they went out of their way to add a restriction that they intended everyone to be able to remove.

At best each time this comes up a court is going to need to evaluate the circumstances objectively, which is itself a fatal flaw for a boilerplate license that tries to avoid these exact nuances.


> it's unreasonable to conclude that they went out of their way to add a restriction that they intended everyone to be able to remove.

They added a restriction, but did not remove the portions of the original license that are in conflict with that restriction. So their actions paint at best a murky picture of what their intentions were; either their intentions were strange, or they were remarkably incompetent in crafting their license to fit their intentions. It seems to be a bit of a stretch to say the courts must interpret it as if it's the license they should have written, rather than the license they actually wrote.


>paint at best a murky picture

Going out of your way to add something that you wrote is very clearly a more intentional and conscious act than failing to remove something that someone else wrote. The picture is crystal clear.

>they were remarkably incompetent in crafting their license

Perhaps. Irrelevant.

>It seems to be a bit of a stretch to say the courts must interpret it as if it's the license they should have written

That's the only possible resolution mechanism when someone writes a self-contradictory contract. Law is not code. Intention matters.


The court documents at one point call that contradiction out as being nonsensical. A license cannot prevent the licensor from choosing restrictions, so interpreting the AGPL in a way that automatically nullifies those does not make sense in this context.


FWIW, the FSF's stance has been that the (A?)GPL is not a contract. After all these years, I still don't know whether they knew the flaws in their legal reasoning and just went along with it regardless, or whether they truly believed in their claims...


> Affero General Public License version 3 with the addition of the Commons Clause (referred to in the case as the “Neo4j Sweden Software License”) was “free and open source” software. Unfortunately that case contains one more decision that is already raising concerns among the open source community.

I still think AGPLv3 is the future for open source[0], but not like this, this is pretty egregious as adding the commons clause removes freedoms.

This article contains the biggest confirmations I've seen of my long-held stance that the AGPL was never meant to prevent commercial use:

> That conclusion goes against the intent of the drafters of the AGPLv3. The GPLv3 Second Discussion Draft Rationale says in footnote 73 that the restriction was aimed at the copyright owners themselves: “Here we are particularly concerned about the practice of program authors who purport to license their works under the GPL with an additional requirement that contradicts the terms of the GPL, such as a prohibition on commercial use.”

I do wonder if a bunch of projects need to start considering a move to BSL or SSPL or something else.

[EDIT] clarify that the commons clause is causing freedom removal.

[0]: https://news.ycombinator.com/item?id=30866724


> this is pretty egregious in that it removes freedoms

The AGPLv3 protects freedoms - the freedoms of the users and recipients of the Software and the License, including other developers. If you combine an Open Source license with the Commons Clause, that is no longer Open Source software, in my view. It's source-available, which is completely different. If a developer adds a Commons Clause to their Open Source license, they have removed freedoms more than any Open Source license ever could.

If you look at the OSI's Open Source Definition[0] it states:

> The license shall not restrict any party from selling or giving away the software [...]

That is completely incompatible with the Commons Clause and others who try to restrict commercial use.

> This article contains the biggest confirmations I've seen of my long-held stance that the AGPLv3 was never meant to prevent commercial use

Of course the AGPLv3 was not meant to prevent commercial use. It's an Open Source license - a requirement of such a license is that it must permit commercial use!

The AGPLv3 is very easy to comply with, it's just that so many are unwilling to do so, so people come away thinking the AGPLv3 was meant to prevent commercial use.

I'd recommend this article[1] which talks about this and several other the falsehoods people have come to believe about the AGPLv3.

[0] https://opensource.org/osd

[1] https://drewdevault.com/2020/07/27/Anti-AGPL-propaganda.html


> The AGPLv3 protects freedoms - the freedoms of the users and recipients of the Software and the License, including other developers. If you combine an Open Source license with the Commons Clause, that is no longer Open Source software, in my view. It's source-available, which is completely different. If a developer adds a Commons Clause to their Open Source license, they have removed freedoms more than any Open Source license ever could.

Sorry maybe it wasn't clear -- I'm not saying the AGPL removes freedoms, I'm saying adding the commons clause does.

> Of course the AGPLv3 was not meant to prevent commercial use. That would be incompatible with the OSI's Open Source Definition, making the AGPLv3 not an Open Source license. The AGPLv3 is very easy to comply with, it's just that so many are unwilling to do so, so people come away thinking the AGPLv3 was meant to prevent commercial use.

Well aware of this, didn't link to it directly but this was the main thrust of my article that I didn't link directly:

https://vadosware.io/post/the-future-of-free-and-open-source...

Freedom to sell commercially is indeed freedom, and one I support (selfishly, as I am working on building a cloud provider right now which is going to do so), and a bunch of startup/small software projects seem to be under the impression that AGPL is a magic ward against hosters of software.


> a bunch of startup/small software projects seem to be under the impression that AGPL is a magic ward against hosters of software.

I think much of this comes from the atmosphere of fear that anti-GPL activists have managed to create around the GPL.


We're in agreement. :)


Why did you think the AGPL was designed to prevent commercial use? I don't recall it ever being marketed that way.


As wmf said[0] -- it's not that I thought it was, this is just how a ton of software companies seem to think it works.

At present, those companies aren't wrong -- companies don't go near AGPL with a 100 ft pole (with the notable exception being AWS & MongoDB), but I think many more companies may catch on soon. This was partly the point of my post which I didn't link directly[1]!

[0]: https://news.ycombinator.com/item?id=30953019

[1]: https://vadosware.io/post/the-future-of-free-and-open-source...


Availability of source code used on networked resources using upstream aGPLv3 licensed code.

https://redmondmag.com/articles/2007/11/28/affero-general-pu...

I can see that being interpreted as less friendly to commercialization, though the triggers really feel very reasonable an ask while still calling it open source. It's not preventing commercial use, but it is requiring commercial use triggering reciprocal sharing.


To clarify, MongoDB used to be FOSS under the AGPL, but now it's proprietary under the SSPL.


It wasn't designed that way, but that's how various startups are using it.


Various startups thought that nobody company would touch AGPL code, assuming this meant that their code would remain essentially noncommercial. But nothing in the license actually intends this.


Sure, but if they modify the AGPL they need to disclose that prominently in the program or service covered under AGPL, similarly, if they incorporate such code in their own, possible non-AGPL code (e.g., GPL) the combined code base will become AGPLv3.

But sure, given that you upheld to the licenses rules, like the notice of any derivation/change, you can still provide commercial service just fine.

The "power" of the AGPLv3 is that no company can just "steal" your AGPLv3 licensed project, change it to make it seem like it's theirs, and provided it as a service without telling anybody about the actual origin of the upstream project nor laying the changes to contribute back to upstream; something that the GPL would allow (for SaaS like offerings); that can still be a huge advantage for startups; if it's the right choice depends a lot on the product and intentions of such a start-up.

(the quoted words are there for a) not a native speaker, so avoid reading too much into my wording and b) stealing is rather a harsh term I don't like to use in connotation with (free) software code)


From a commercial standpoint it's irrelevant what the license "intends." All that matters is what the legal department thinks will happen in the worst case, and for GPLv2 or v3 the "worst case" is all that proprietary software that the company wrote on top of it is now publicly available for free to any end-user.

The claim that GPLv3 is the future of open source licenses is laughable. There are going to be a few idealists licensing their software using GPLv3 but that software won't gain significant traction in any sort of commercial setting, outside of a few exceptions. Just take a look at the software libraries that get widespread use today: the vast, vast majority of it is Apache-, MIT-, or CC-licensed. GPLv3 is going to end up being a historical footnote at some point, because economics trumps ideology every time.


I don't think your comment is very relevant to this thread, but is rather a generic fulmination about GPL.


It was designed exactly for that case, Affero was a company selling web services.


> As Plaintiffs point out, however, the AGPLv3 defines “you” as the licensee, not the licensor. AGPL § 0 (“Each licensee is addressed as ‘you’”). Thus, read correctly, Sections 7 and 10 prohibit a licensee from imposing further restrictions, but do not prohibit a licensor from doing so.

I don't understand this argument at all.

Section 7 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.

And since "you" means the licensee, wouldn't that mean the licensee can remove the additional terms added by the commons clause?


I agree with you, it doesn't make any sense. AGPLv3 says it plain as day:

"you [the licensee] may remove that term."

The licensee, meaning me, or the defendants in this case, can remove any terms which impose further restrictions. The licensor (Neo4j) has given written consent to do so.


> And since "you" means the licensee, wouldn't that mean the licensee can remove the additional terms added by the commons clause?

No (the trial court has reasoned), because the Commons Clause was introduced by the licensor. Thanks to that provision in the license, licensees can remove clauses introduced by other licensees, but cannot remove clauses introduced by the original licensor.

The original licensor is Neo4J, the copyright holder for the software, which has made it available under the license in question.


That part of the license doesn't say only restrictions added by licensees can be removed, just that any added restrictions can be removed.


Wouldn't the pre-Commons Clause software still be soley GPL v3? I thought that software cannot be retroactively re-licensed, so I'm not following your (or maybe the court's) reasoning. I think you and OP can both be right, but in the context of this case, OP's point is not relevant, if I'm understanding correctly?


> And since "you" means the licensee, wouldn't that mean the licensee can remove the additional terms added by the commons clause?

That logically follows to me. I think that's why they call it the AGPL v3 "with Commons Clause," as if it's not a modifier to the original agreement, AGPL v3, but rather an additional agreement that you also must agree to in order to use the software. This seems contrary to AGPL v3, which says you should be able to remove any additional clauses. I don't see why the Commons Clause folks did it at all, but in any case, they failed in court, which is technically all that matters at this point.


I think it's interpreted as the licensor can add whatever clause they want and it has to be followed, and those terms say that a licensee cannot add additional clauses to that of the licensor when it redistributes the licensor's work or derivative work.

Basically, I wrote the code, I decide. I give it to you under my terms. You cannot go give the code to someone else under new terms, because I prohibited you from doing so when I gave you the code.


Section 10 only seems to mention further restrictions as restrictions added by "you", so a licensee. Doesn't this reference to section 10 mean that section 7 explicitly limits itself to further restrictions added by licensees?


Section 10 seems to state that licensees cannot add further restrictions, without saying whether the original licensor may add further restrictions. Section 7 says licensees may remove further restrictions, and does not require licensees to determine the provenance of any further restrictions they encounter.


The only mention of section 10 in section 7 is

>All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10.

My reading of that is thay it is just referring to the definition of "further restrictions" in section 10, namely

> For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.


Very surprised by all the comments here critical of the OSI. Even if Neo4j was correct by the court's interpretation (which I agree with), it seems clear that they were indeed "open-washing" as the article says.

It's changed now but it used to say on the Neo4j website "the Neo4j Enterprise Edition is dual licensed under Neo4j commercial license as well as under the free Affero General Public License (AGPL) v3" (neo4j.com/open-source-project on web.archive.org). Obviously this is misleading (because it is not in fact free).

I think this is a big problem. Advertising products as open-source can drive adoption, but it should not come at the cost of diluting the meaning of the term itself.


If I'm not mistaken the court agreed that you cannot call such a license free and open source anymore.

This is a different matter.


“ Indeed, it would be contrary to principles of contract and copyright law to interpret these provisions as limiting Neo4J Sweden’s exclusive right to license its copyrighted software under terms of its choosing.”

This makes no sense. Neo4j were the ones that picked AGPLv3 as the license. If they didn’t like the clause that allows the licensor to delete further terms, they should have picked a different license or written their own.


Essentially, by adding the commons clause to it, they did write their own license. If there is a complaint here it seems it would have to be about trademark infringement for calling it the AGPL. Not sure why SP calls this surprising. The AGPL itself is NOT licensed! There is no contract between FSF and Neo4J.


> The AGPL itself is NOT licensed! There is no contract between FSF and Neo4J.

The AGPL begins with a copyright notice, followed by the statement:

> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

That looks to me like the license terms for using the AGPL itself. Modification isn't permitted, so if you want to construct a new license with the AGPL as the starting point, you have to use the AGPL verbatim followed by exceptions, because modifying the AGPL itself to delete the bits you don't want would be copyright infringement.

Part of what's at issue here is whether Neo4J can append exceptions that effectively delete arbitrary portions of the AGPL even though Neo4J is required to keep the dead code in their license text. But Neo4J only seems to have done that implicitly, because the Commons Clause doesn't explicitly override the portions of the AGPL that talk about exceptions (and includes the problematic statement "Without limiting other conditions in the License").


You don't have to modify the AGPL to impose additional restrictions.

All you have to do is put your additional restrictions in the LICENSE.txt file and then at the end include "All further licensing conditions, rights and clauses are specified in LICENSE_AGPL.txt. Any such conditions, rights and clauses specified in LICENSE_AGPL.txt do not override, replace, nullify, void or otherwise affect conditions of this document unless specified in the very same document. This document takes precedence over any text in LICENSE_AGPL.txt"

And now you have an unmodified AGPL with additional restrictions as much as you want to.


> And now you have an unmodified AGPL with additional restrictions as much as you want to.

Sure, but Neo4J didn't come close to doing that. They just appended the Commons Clause text, which is not at all clear about which bits of the AGPL are superseded or nullified, and has some obvious flaws (eg. "as defined below" should have been changed to "as defined above").


If you do that, then you’ve got “Commons Clause + AGPL”, which would be fine, but what Neo4j built is “AGPL + Commons Clause”, which is not.


You can still just append the AGPL to your own license text or append yours to the AGPL. In neither case the AGPL is modified, you're just adding other contract conditions.

Just like in the real world it wouldn't matter if you used a boilerplate contract and then put a page at the start or end with additional conditions. So long as you see the additional conditions, it's a valid contract.


> In neither case the AGPL is modified, you're just adding other contract conditions.

That’s not nearly as clear-cut as you make it out to be, and future court rulings may contradict this one.

The AGPL after all is still a copyrighted work, and a future court may rule that the authors of the AGPL clearly intended their work to only ever be used without being bundled that way.


But the original license says that additions are allowed to be removed. They picked the license that said this, presumably because it’s open source certified. However if they did not like the terms they should not have licensed their software under that license.


Additions by other licensees can be removed. The original licensor is free to add and remove clauses as much as they like and make them enforceable, after all, they're the ones that own the copyright and get to decide which license contracts to enter and which not.


Before people jumping into conclusion, maybe read this first? https://writing.kemitchell.com/2022/03/17/OSI-Neo4j-PureThin...


A slight tangent, but perhaps relevant to the discussion: the clause mentioned in this article is not singular to AGPLv3; it's present in GPLv3 as well.



> As a consequence, using any software under a non-OSI-approved licensing combination requires professional advice on the scope of rights being granted. [...] Sticking to OSI-approved licenses is the way to ensure that everyone’s expectations are met.

I have absolutely no strong opinion on either the OSI or the FSF, and I don't really care about licenses in general. Yet it seems like the OSI really likes to add these sorts of "conclusions" even if they don't really add anything to the article?

This post isn't that bad since it's just misplaced and bland marketing. But they also recently posted a pretty misleading article about the same court case where they made a lot of weird assumptions to again conclude that they are the only true path (tm). [0]

This wouldn't surprise me if it came from a corporation but why would a non profit be so militant and uncompromising w.r.t licensing philosophy? I get advocacy but I guess I'm not used to non-profits being so... competitive?

[0] https://writing.kemitchell.com/2022/03/17/OSI-Neo4j-PureThin...


> why would a non profit be so militant and compromising w.r.t licensing philosophy?

Well, when open source licenses is the purpose of the non-profit, then it shouldn't be surprising that they are militant and uncompromising (I'm guessing that's what you meant).


I don't understand the reasoning that called this ruling “erroneous."

Whoever crafted the AGPLv3 license is not a party in the contract.

AGPLv3 + modifier from the original licensor conveys the intention from the licensor more accurately than what AGPLv3 alone. Any contradictions between intent of the AGPLv3 and AGPLv3 + modifier must be resolved that in mind. Whatever FSF intended in the AGPLv3 or how it is interpreted in courts alone is meaningful only when there is no contradiction with AGPLv3 + modifier.

Correct me if I'm wrong but I think this is pretty well established general principle. Added modifications override the original text without the need to alter the original.


"In a prior post, we reported on a decision from a U.S. district court holding that it was false advertising for a company to claim that software licensed under the Affero General Public License version 3 with the addition of the Commons Clause (referred to in the case as the “Neo4j Sweden Software License”) was “free and open source” software"

This part is false, also see https://news.ycombinator.com/item?id=30712215 and https://news.ycombinator.com/item?id=30726286

"That conclusion goes against the intent of the drafters of the AGPLv3"

This is true, but I personally believe that the position held by the court (that it applies only to downstream licensees) makes much more sense. After all the original developer could have selected another license in the first place.

"Any effort to change the terms of an open source license should be met with suspicion because they are likely designed to take away freedoms, or else an already OSI-approved license would have been suitable"

I wonder when this start being true in their opinion (after the approval of GPLv3?). The threats to FOSS evolve and licenses must try to match them. It seems like an attempt to attack SSPL without explicitly mentioning it.

"Sticking to OSI-approved licenses"

There are also FSF-approved licenses which are not mentioned. The last part is pure advertisement.


I just really, really, really, really hope that we don't have to go through a GPLv4 because of this.


I... Think this ruling is good, even if you disagree with the Commons clause? I'm not sure I'm thrilled with limiting the speech of developers by saying they cannot ever place any restrictions whatsoever on how their code is used.


Developers certainly can place restrictions on how their code is used.

In my view, if developers want to add those restrictions, via the Commons Clause or otherwise, they should not license their work under the AGPLv3 (or other Open Source licenses). It appears the courts do not agree though, at least in this case.


Well it's not AGPLv3, it's a modified version.


Yeah, I don't see any reason to think it's wrong. Neo4j is in the wrong in that they represented their corrupted AGPL as "free and open source", and they should not have used the original name and text of the AGPL. But I don't see any good argument that the FSF's interpretation of the corrupted AGPL should supersede that of the copyright holders.


> But I don't see any good argument that the FSF's interpretation of the corrupted AGPL should supersede that of the copyright holders.

It seems like the copyright holders assembled a chimera license that is in conflict with itself. The resulting ambiguity should be construed against the copyright holders and in favor of the users.


The court's answer to that is that the language in the Neo4j license referring to "this License" should be interpreted as referring to the entirety of the license (i.e. AGPL combined with Commons Clause), which means there is no conflict.


Why is it unexpected? It seems rather logical to me. The particular interaction between clauses on the license looks like a contract "bug". Why would Neo4j add such a clause to the license if they intended it to have no effect? The reasonable interpretation is that they did intend the added clause to mean what it says. What the writer of the original license template (the AGPL) wants is not relevant.

Regardless, it's probably not very wise to take an established license like AGPL and amend it like this.


basically all the court is saying is that a clause that says: you may remove any additional clauses is meaningless.

maybe it needs to be written differently: any additional clauses are optional

or even: this is the complete license, any additional text is not part of the license

this clause is essentially a trap for anyone who wants to use this license with modifications. and if i wanted to do that i'd just remove this very clause to avoid misunderstandings.

the question that remains is: how does one add optional clauses that actually remain optional


No matter what you write in a template contract/license, I can design my own contract/license that puts your template inside a box and adds overriding clauses outside the box.


I think the author of the license itself can restrict how it can be used:

I'm thinking of the legal wording for: "This license can only be used in projects which do not impose any other restriction besides the terms of this license".

Then presumably the license author can sue.


Only if your license is covered under copyright. Contracts are functional instruments, so copyright doesn't always apply. You, as a license author, may in fact be required to demonstrate to a court that your license is not only original and creative enough to be valid copyright, otherwise they're going to throw out the case.

And even if you do manage that... it doesn't change the obligations, right and conditions of the license people agreed to. After all, they agreed to a contract, irregardless of that contract being in copyright violation. So even if a license author sues, they can't help people already under that license. And the most likely court outcome is that the software under license becomes proprietary once the court decides you can't use that license text anymore.


It's not meaningless. Licensees can remove clauses introduced by other licensees, but cannot remove clauses introduced by the original licensor.

In this case, the original licensor introduced the Commons Clause, and licensees can't remove it.

(Notwithstanding whether it was legitimate for Neo4J to present their modified text under a deceptive name.)


If you distribute software that includes software that includes software that includes software who is the original licensor. Do you have to track who wrote which text and added which restrictions to track what restrictions apply to which portion of the text. When modified version of deps result in interleaved restrictions how do you decide what you can or cannot do?

The only logical thing to do is to treat such additional restrictions as poison.


> If you distribute software that includes software that includes software that includes software who is the original licensor.

In this case, the original licensor is clear: it's Neo4J, who holds the copyright on the whole thing, who have made it available under a source-available license of their choice, and who can make it available under additional license if they like — such as a proprietary license which they will sell to you.

In community open source projects which publish "software that includes software that includes software", you have to keep track of where every last line of code came from. That's called "provenance", and if you don't pay attention to it and improperly introduce code which belongs to somebody else without their permission, you're opening up both yourself and your users to legal liability.

Tracking provenance is work, but the concepts at issue are not vague.


but wasn't the point of the clause to allow licensees to remove additional clauses introduced by the original licensor?

how are licensees able to add additional clauses at all? that would violate the original license just as well.

what is the purpose of this removal clause then?


No, the point is to facilitate copyleft by ensuring that all modifications are available under the original license.

No one can add modifications which are under a new, more strict license with additional clauses. Since such clauses could be stripped away.


Another post on this case from Software Freedom Conservancy:

https://sfconservancy.org/blog/2022/mar/30/neo4j-v-purethink...


Whomever the legal expertise writes the license, the court can always invalidate it. Is this normal?


Contracts cannot override the law (I can't sell myself into slavery even if I sign a contract saying so).

Courts are there to decide how the law applies to a given situation when the parties do not agree.

A judge makes a decision and that decision is in accordance with written law, precedence and legal tradition.

If necessary it supersedes the intention of the original authors of the contract and the parties can appeal to a higher court.

The law itself is pretty much what the government says it is.


I think you are giving Neo4J too much credit on this. From what I read, they just basically slap Common Clause on APGLv3 and call it a day. The court just came in and adjudicate this is a (AND &&) clause instead or (OR ||) clause because assuming the latter would be kinda pointless because the Common Clause is more restrictive.


The AGPLv3 is the most terrifying open source license of them all so I fail to see how a creator having the intention of not wanting others to sell their code is any kind of divergence from that general feeling. Not a whole lot to sponge off.


Previous discussion about the Commons Clause license. https://news.ycombinator.com/item?id=17818407


Anyone know if the Free Software Foundation has done a piece on this?


IANAL, but I feel like it’s vastly preferable to hire one and have some written agreement with the license holder to be using AGPL software in any commercial product.


And this is why my code is GPLv2 and nothing more, I even remove the auto-upgrade clause the FSF wants everyone using v2 to include.


"Users beware, AGPLv3 removes freedoms, adds legal headaches" over MIT or PD.


Can the OSI stop trying justify their existence by finding any excuse to call out "non-osi approved" every chance they get.

Only lawyers in corporations care about that distinction and I hate them more and more the more they try to authority signal using it.

All of these excessive callouts to "OSI approved" or "Not OSI Approved" in every article like they are the gatekeepers to rather or not licenses can be called open source.

Sorry, but you can't name your non-profit after a dictionary word or common usage phrase that existed before you even existed then become the all seeing gatekeeper over what qualifies for those terms.

That's not how language works.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: