Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Modifying the AGPL License by adding restrictions is not allowed #11821
The AGPL license files had a restrictions added to it which I am pretty sure is not allowed by AGPL.
I am pretty sure the community would like to know what is going on with this.
"Commons Clause" License Condition
The Software is provided to you by the Licensor under the License, as
To try to get ahead of any misunderstandings, the AGPL doesn't "disable-itself" if exceptions are added from the original licensor. It simply becomes a new license.
The scope of license alteration restrictions (as well as these kinds of restrictions in all OSS licenses) is to disable the ability for "man-in-the-middle" sub-licensing, effectively ensuring that the license grant comes from the original copyright holder no matter how the software is conveyed. However, as the original copyright holder of the codebase is Neo, they can add whatever terms or exceptions best fit their original licensing intent for their commercial product -- the protections in the original AGPL prevents third parties from altering or sub-licensing those terms.
We're not dealing with a copy of the software here -- the whole file is the original license document provided by Neo. Sure it's not the original AGPL, but there's no way I'd call it "Enterprise closed source".
The issue at hand is that you can not add restrictions to AGPL then misguide the community and committers as to what is happening.
Not only does AGPL forbid this, it is not fair to committers and the community as a whole.
If your intention was to keep Neo4j free and open, then you should know your restrictions are not allowed by AGPL and we can continue the 'debate' in that direction.
I think you should be upfront with the community that helped make Neo4j what it is today.
Neo4j is a broad church. We have to balance the interests of our amazing community, our customers and the company too. We've done a lot of thinking about how to best align those interests in our licensing and made a choice to add the Commons Clause to the AGPL license. We think this is the best way we can ensure the long term viability of neo4j as both an open source project and as a commercial endeavour to keep that open source flowing.
Github issues probably aren't the best place to have detailed licensing discussions, and much as we appreciate the input and enthusiasm of the participants we're going to close it now. This is clearly deserving of a longer piece on why the license is changing and we'll get that published as soon as we can.
Thanks to everyone for sharing your views!
I would expect the text of a a License to be subject to copyright, and the author probably has the right to forbid changes to the text. Without being a legal expert, I can't say if you may perhaps be allowed to copy the AGPL, add your clause and use the license under a different name like Neo4jPL - but I am quite sure that you can't change the text and re-publish it using the same name, i.e. "AGPL".
@Zappes it's more strict than it just being not allowed to call the license AGPL. The header of AGPL clearly states that modifying it is a violation of the FSF copyright:
Therefore even using significant parts of AGPL is a copyright violation.
also whatever the copyright situation might be, its important to communicate clearly, which I think is what the issue creator is asking for. if you want to use the AGPL, then use it without modification. if you want a mix of the AGPL and common clause, then make sure you do so in a clear and transparent manner.
I've given my take on the Commons Clause at https://twitter.com/ggreve/status/1032520322170462208 and https://twitter.com/ggreve/status/1032657522400866305.
TL;DR: This turns anything licensed under it into proprietary software with a very vague, wide reaching license that establishes serious legal liability for all developers and users. It is the end of the commons that is formed by an Open Source community, project and companies.
I assume the CLA will cover this, but at the very least I would assume developers did not expect a
kind of move when they signed the CLA.
Yet that is precisely what this change seems to represent.
I wanted to chime in too. When the ticket was closed the way it was, I just gave up on it.
@greve , the other companies who adopted the 'commons clause' do not have AGPL licenses like Neo4j adopted for the enterprise edition, and which the clause was added to.
The other companies who adopted this 'commons clause' have non GPL licenses.
The AGPL license states: 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.
We contacted the free software foundation as well, I made sure to do my homework before submitting the original ticket.
Neo's intentions around this clause seem obvious to me. Their government sales team have already been trying to scare agencies from using neo4j enterprise under the open source license by referencing the commons clause. I'll write a blog post on this since most are not aware of some of this behavior.
I started working with the guys from GraphGrid on a way of ensuring Neo4j stays free and open to the community.
We already formed a non-profit called the GraphFoundation (https://graphfoundation.org), with an apache like governance model, which ensures no single company or person(s) control the future direction.
We invite the community to help us with this 'labor of love'.
I have nothing but respect for what Neo has built, they have a very talented team!
If more people call them out on this behavior, maybe things can change and they can embrace open source and support the community that made them who they are.
Just my 2 cents...