jclouders-

While doing a license audit on Apache Brooklyn -- which uses Apache jclouds -- @frontiertown (cc'd) discovered an LGPL dependency coming from jclouds: *net.java.dev.jna:jna* -- see [1] and [2] for the license of this. (I think the same may be true for the one other in the jna family also.)

It is pulled in by com.jcraft:jsch.agentproxy.connector-factory used by jclouds-sshj. See [3] for a discussion within jcraft on the use of LGPL. The Maven dependency:tree excerpt included below [4].

I don't think it's actually used (looks like you need to jump through hoops to activate a different agentproxy implementation). And it is easy enough to exclude this with code such as [5] if that's the case. That is working for us currently. (Note jna is pulled in by pageant as well as usocket-jna).

The other option is, it looks like from v4 onwards JNA is dual-licensed under Apache, so maybe the version could be bumped via a patch to com.jcraft.jsch...

But we are well getting into territory which requires analysis from someone who knows the stuff better than me!

Best
Alex


[1] https://github.com/twall/jna
[2] http://mvnrepository.com/artifact/net.java.dev.jna/jna/3.4.0
[3] https://github.com/ymnk/jsch-agent-proxy

[4] mvn dependency:tree excerpt

[INFO] +- org.apache.jclouds.driver:jclouds-sshj:jar:2.0.0-SNAPSHOT:test
[INFO] | +- org.apache.jclouds.driver:jclouds-bouncycastle:jar:2.0.0-SNAPSHOT:test
[INFO] |  |  \- org.bouncycastle:bcprov-ext-jdk15on:jar:1.49:test
[INFO] |  +- net.schmizz:sshj:jar:0.8.1:test
[INFO] |  +- org.bouncycastle:bcpkix-jdk15on:jar:1.49:test
[INFO] |  +- com.jcraft:jsch.agentproxy.sshj:jar:0.0.7:test
[INFO] |  |  \- com.jcraft:jsch.agentproxy.core:jar:0.0.7:test
[INFO] |  \- com.jcraft:jsch.agentproxy.connector-factory:jar:0.0.7:test
[INFO] |     +- com.jcraft:jsch.agentproxy.usocket-jna:jar:0.0.7:test
*[INFO] |     |  +- net.java.dev.jna:jna:jar:3.4.0:test**
**[INFO] |     |  \- net.java.dev.jna:platform:jar:3.4.0:test**
***[INFO] |     +- com.jcraft:jsch.agentproxy.usocket-nc:jar:0.0.7:test
[INFO] |     +- com.jcraft:jsch.agentproxy.sshagent:jar:0.0.7:test
[INFO] |     \- com.jcraft:jsch.agentproxy.pageant:jar:0.0.7:test


[5] pom magic to exclude (adapt as appropriate to put into jclouds-sshj)

        <dependency>
            <groupId>org.apache.jclouds.driver</groupId>
            <artifactId>jclouds-sshj</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com.jcraft</groupId>
<artifactId>jsch.agentproxy.usocket-jna</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.jcraft</groupId>
<artifactId>jsch.agentproxy.pageant</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

Reply via email to