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 >