Sorry about top posting (and dropping legal-discuss@) but as we didn't get any feedback yet on the below question from legal-discuss@, I've dived into it myself a bit further.

I already came to the conclusion (and discussed this internally with another ASF member) that the current proposed contribution which directly uses Neo4J GPL3 licensed APIs cannot be allowed, as that (source) dependency will enforce the GPL3 license upon this contribution as a whole, optional or not.

The possible 'workaround' of using a 3rd party library like spring-data-neo4j (only) which is ALv2 licensed I am also very doubtful about, because that library itself has direct usage and dependency on the Neo4J APIs, so it really is only 'hiding' the same problem. If this is a correct assumption, and I created an specific JIRA question [1] for legal-discuss@ for it, then the spring data 'workaround' is also tainted and not to be allowed either.

I've also brought this forward to someone at Apache Camel which intend to (but hasn't yet) release a Camel Neo4J component, and it looks like they will decide also that Neo4J cannot be supported after all, at the ASF.

Pending the resolution of [1], it now seems doubtful to me Apache Shindig can accept the neo4j support contribution. If this becomes the case, I see two possible solutions, in preferred order (besides dropping it):

a) NeoTechnology provides an additional (probably API only) library of its own under an ALv2 compatible license, which can be used to create integrations like these. This would be the most practical and beneficial solution IMO, similar to for instance the MongoDB (AGPL3 licensed) mongodb-java-driver library which is ALv2 licensed, see [2].

b) Provide the Shindig Neo4J support in a separate project outside the ASF, maybe at Apache Extras [3]. Downside of this of course is that alignment with Apache Shindig itself will be more difficult and likely trailing the development @Shindig.

I'll keep the list noted on any progress or conclusion of [1].

Regards, Ate

[1] https://issues.apache.org/jira/browse/LEGAL-162
[2] https://github.com/mongodb/mongo-java-driver
[3] http://community.apache.org/apache-extras/faq.html

On 03/11/2013 11:09 AM, Ate Douma wrote:
Now replying again, but to the proper mail address, see inline below.

Cheers, Ate

On 03/11/2013 11:05 AM, Ate Douma wrote:
Another forward of an incorrectly addressed email for legal-discuss@

On 03/11/2013 09:41 AM, Peter Neubauer wrote:
Also,
keep in mind that only the enterprise components of Neo4j are AGPL, the
community edition, which I believe is the most interesting part here, is
GPL.

That is useful information indeed. Thanks for correcting me in this!

So for this case at hand I assume we only need to consider the possibilities to
use the GPL3 licensed community edition of neo4j.

The question then is if at the ASF we may reference and explicitly use GPL3
licensed APIs in our AL2.0 licensed code, in an optional module, which also
requires these GPL3 libraries at runtime.
Even if we don't distribute those 3rd party GPL3 libraries ourselves.


/peter


Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

Graph database introduction book for the uninitiated -
http://graphdatabases.com
Neo4j questions? Please use SO - http://stackoverflow.com/search?q=neo4j


On Mon, Mar 11, 2013 at 9:22 AM, René Peinl <rene.pe...@hof-university.de>wrote:

Dear Apache legal advisors, dear Shindig developers,
as you can see from the discussion below, we have a possible license
conflict between AGPL and APL v2.
We want to integrate code that uses neo4j, a graph database which is
licensed under AGPL, into Shindig. From my perspective it is not necessary
to include any neo4j binaries nor code, but I'm not sure how this affects
compilability. Maybe we can only use the REST API then and don't offer to
run neo4j in embedded mode.
I'm not a lawyer nor a licensing specialist, so please advise on how to
proceed. Maybe we can find a workaround that ensures we are conforming to
the licensing terms and still get the new functionality into Shindig.
One suggestion that seems a good one was to check how Apache Camel deals
with this issue.
Regards and many thanks for clarification in advance
René

-----Ursprüngliche Nachricht-----
Von: Ate Douma [mailto:a...@douma.nu]
Gesendet: Montag, 11. März 2013 08:49
An: dev@shindig.apache.org
Cc: Peter Neubauer
Betreff: Re: Review Request: Alternative database backend based on graph
database neo4j

On 03/10/2013 11:59 PM, Matt Franklin wrote:
On Sunday, March 10, 2013, wrote:

Thanks for the insight Ate.

Rene, I think we should take Ate's suggestion and send an email to
legal-discussion@ (please CC shindig-dev@).  If they say it is OK
than we continue the discussion about integrating the patch.


Although the answer from Peter Neubauer / neotechnology is accommodating on
this matter and seems to indicate *they* might think this is not a problem,
reading the AGPL [1] license tells me something differently.
I definitely would like this contribution to be acceptable, but we must be
very sure we're not opening a can of worms here.


I agree that legal should be consulted if we intent to ship a war or
other archive with any neo4j (or other agpl) licensed binaries included.
I don't think we can do that anyway. AGPL is a variant of GPL, and we're
not
allowed, by ASF policy, to distribute any GPL artifact.


As a first mitigation step, why don't we make this a separate maven
module and only ship the source and non-inclusive jar?  It should not
be a problem to ship a jar and source that only references the neo4j
libs as runtime dependencies.
That might be a possibility to investigate. As Chris noted in another
email,
it might be doable as Camel seemingly also has a neo4j component.

But also note: it will also depend on the type of reference such an
optional
module uses. If it requires explicit Java imports and direct usage of the
neo4j APIs, this might qualifies as what is called in the AGPL
'Corresponding Source'.
Especially as neo4j and Shindig provide and expect 'Remote Network
Interaction'
for which the AGPL is especially created to enforce its license to
downstream users. IMO this can lead to a conflict with the AS2.0 license,
to
possibly not even be allowed distribution under that license from within
the
ASF, or not even its sources be checked into svn...

But IANAL so indeed this should be run through legal-discuss@ first.

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






On Mar 9, 2013, at 7:56 AM, René Peinl <rene.pe...@hof-university.de>
wrote:

Dear Ate,
thanks for your comments. I already thought about this and asked the
guys from neo technologies. Here is the answer from Peter Neubauer.

in principle (IANAL) it is ok to have ALv2 licensed code binding to
GPL
code. In runtime, the user will not be shielded from the GPL core,
which means the runtime will have GPL characteristics when you plug in
Neo4j.
That is exactly the intent, and should be ok. The bindings-code is
development-time Apache license, regarding contributions and
copyright etc, so I think this should be ok.

I'm not quite sure if that answers your question. I can further
investigate if necessary.
Regards
René

-----Ursprüngliche Nachricht-----
Von: Ate Douma [mailto:a...@douma.nu]
Gesendet: Freitag, 8. März 2013 14:18
An: dev@shindig.apache.org
Betreff: Re: Review Request: Alternative database backend based on
graph
database neo4j

Just from the peanut gallery, but neo4j is AGPL licensed.
Normally any database backend access which is abstracted away behind
'plain'
JDBC interfaces are allright to use, commercial versions or
otherwise
licensed, because the end-user would have the option to choose
whatever
(compatible) database they want to use.

However with neo4j this seems different. Even with only optional
support
for neo4j, the neo4j integration might require explicit neo4j (Java)
APIs and dependencies? I haven't reviewed the code for this, but if
it imports neo4j APIs then their AGPL license can be too invasive and
then possibly not acceptable for uses within our AL2.0 licensed
codebase.
Or even if that could be allowed, I would make sure to check and ask
(legal-discuss@ etc.) if it would be acceptable from ASF policy POV.

Regards, Ate

On 03/07/2013 07:46 PM, Henry Saputra wrote:
This is good news.

One immediate comment is about the package name.
Would it be possible to put it under org.apache.shindig rather than
the de.hofuniversity?

This would make the contributions uniform like from other companies
and organizations.

- Henry


2013/3/6 René Peinl <rene.pe...@hof-university.de>


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/9773/
-----------------------------------------------------------

Review request for shindig.


Description
-------

Review for Shindig-1911
Alternative database backend based on graph database neo4j Any
comments welcome. We are committed to further improve this.


This addresses bug Shindig-1911.
      https://issues.apache.org/jira/browse/Shindig-1911


Diffs
-----

    /trunk/java/neo4j-backend/pom.xml PRE-CREATION

/trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisys/gra
phb
ackend/Constants.java
PRE-CREATION

/trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisys/gra
phb
ackend/GraphAPIModule.java
PRE-CREATION

/trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisys/gra
phb
ackend/GraphConfig.java
PRE-CREATION

/trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisys/gra
phb
ackend/GuiceModule.java
PRE-CREATION

/trunk/java/neo4j-backend/src/main/java/de/hofuniversity/iisys/gra
phb
acke












Reply via email to