User beware: Modified AGPLv3 removes freedoms, adds legal headaches
opensource.org
opensource.org
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].
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?
There’s nothing to stop them coming up with their own license (like MongoDB did). They don’t have to plagiarise the GPL.
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.
Hilariously they provide a diff showing them stripping the copyright https://webassets.mongodb.com/_com_assets/legal/SSPL-compare...
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.
Thankfully, there are other ways to share open-source software, ones that don't restrict options or create burdensome obligations for users & contributors.
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.
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.
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 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.
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.
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?
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.
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?
- 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.
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.
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.
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.
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)
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.
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.
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.
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).
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.
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.
You are entirely free to pick a GPL version and don't add the "or later" clause.
Many projects, including the linux kernel, do.
- 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.
So while you're indeed the licensor of your enhancements, at the same time you're a licensee of the original code.
- 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).
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".
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.
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).
... I mean yes, that's obviously what a license with extra clauses is. What else would it be?
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.
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.
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.)
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.
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."
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.
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.
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.
Just like the GPL ensures that while Microsoft could take Linux and sell it, they’ll have to make their changes open again.
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?
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.
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.
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.
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.
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.
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
> provided that you call your license by another name
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.
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
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"
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.
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.
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.
Copyright holders aren’t bound by license conditions they impose on others.
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.
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.
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.
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.
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)
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.
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...
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.
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
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.
I think much of this comes from the atmosphere of fear that anti-GPL activists have managed to create around the GPL.
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?
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 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.
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.
>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.
"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.
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.
This is a different matter.
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.
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").
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.
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.
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.
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").
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...
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).
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.
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.
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.
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.
Regardless, it's probably not very wise to take an established license like AGPL and amend it like this.
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
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.)
The only logical thing to do is to treat such additional restrictions as poison.
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.
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 one can add modifications which are under a new, more strict license with additional clauses. Since such clauses could be stripped away.
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.
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.
https://sfconservancy.org/blog/2022/mar/30/neo4j-v-purethink...
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.
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.