New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modifying the AGPL License by adding restrictions is not allowed #11821

Closed
jmsuhy opened this Issue May 19, 2018 · 8 comments

Comments

Projects
None yet
8 participants
@jmsuhy

jmsuhy commented May 19, 2018

The AGPL license files had a restrictions added to it which I am pretty sure is not allowed by AGPL.
So it seems that you have either just made Neo4j Enterprise closed source - i.e. no longer AGPL - or you've made a mistake and accidentally added restrictions to it.

I am pretty sure the community would like to know what is going on with this.

https://github.com/neo4j/neo4j/blob/3.4/enterprise/server-enterprise/LICENSE.txt

"Commons Clause" License Condition

The Software is provided to you by the Licensor under the License, as
defined below, subject to the following condition. Without limiting
other conditions in the License, the grant of rights under the License
will not include, and the License does not grant to you, the right to
Sell the Software. For purposes of the foregoing, "Sell" means
practicing any or all of the rights granted to you under the License
to provide to third parties, for a fee or other consideration,
a product or service that consists, entirely or substantially,
of the Software or the functionality of the Software. Any license
notice or attribution required by the License must also include
this Commons Cause License Condition notice.

@eebus eebus added the operability label May 21, 2018

@xizhao

This comment has been minimized.

Show comment
Hide comment
@xizhao

xizhao May 21, 2018

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

xizhao commented May 21, 2018

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

@jmsuhy

This comment has been minimized.

Show comment
Hide comment
@jmsuhy

jmsuhy May 22, 2018

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.

jmsuhy commented May 22, 2018

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.

@digitalstain

This comment has been minimized.

Show comment
Hide comment
@digitalstain

digitalstain May 22, 2018

Member

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!

Member

digitalstain commented May 22, 2018

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!

digitalstain referenced this issue May 22, 2018

Updates enterprise LICENSE.txt and NOTICE.txt
Includes new copyright and Commons Clause addition

Also adds LICENSE.txt to some modules that didn't have it
@Zappes

This comment has been minimized.

Show comment
Hide comment
@Zappes

Zappes Aug 23, 2018

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 commented Aug 23, 2018

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

@akhmerov

This comment has been minimized.

Show comment
Hide comment
@akhmerov

akhmerov Aug 23, 2018

@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:

Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Therefore even using significant parts of AGPL is a copyright violation.

akhmerov commented Aug 23, 2018

@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:

Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Therefore even using significant parts of AGPL is a copyright violation.

@lsmith77

This comment has been minimized.

Show comment
Hide comment
@lsmith77

lsmith77 Aug 23, 2018

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.

lsmith77 commented Aug 23, 2018

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.

@greve

This comment has been minimized.

Show comment
Hide comment
@greve

greve Aug 23, 2018

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

"Haha, we're taking this proprietary and by the way we're reserving the right to sue you in case you work with Neo4j professionally"

kind of move when they signed the CLA.

Yet that is precisely what this change seems to represent.

greve commented Aug 23, 2018

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

"Haha, we're taking this proprietary and by the way we're reserving the right to sue you in case you work with Neo4j professionally"

kind of move when they signed the CLA.

Yet that is precisely what this change seems to represent.

@jmsuhy

This comment has been minimized.

Show comment
Hide comment
@jmsuhy

jmsuhy Aug 24, 2018

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.

Redis: BSD
dGraph: Apache 2

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

jmsuhy commented Aug 24, 2018

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.

Redis: BSD
dGraph: Apache 2

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment