[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Artistic and LGPL compatibility in jar files



There seems to be a licensing problem with some of the chemistry software packages, at least one of which is included in Debian. I'm working with a few of the package developers to see if there really is a problem. We need some better advice than I can find.

Short version:
 - Can an LGPL 2.1 JAR library include an Artistic License library and
     still be distributed under the LGPL 2.1?

 - What about an LGPL 2.1 JAR library including a package under the Artistic
     License 2.0 license? Or would the entire package need to be
     moved to the GPL as a relicensing which is compatible with both
     underlying licenses?

 - One of the XML schema files is released (most likely) under the
     Creative Commons - No Derivation license. This is used by the
     Artistic License package in order to do schema validation. Can
     the LGPL 2.1 library include functionality which requires
     this unalterable schema definition?


I'm going to simplify the story a bit and give a minimal example. CDK is the "Chemistry Development Kit", available in Debian as

 http://packages.qa.debian.org/c/cdk.html

It is distributed under the LGPL 2.1. It is one of a number of LGPL'ed chemistry tools which use the JUMBO and CML toolkits available from

 https://sourceforge.net/projects/cml/

This software library and program are available under the "Artistic License", which you can read in the Sourceforge details and in the distributed pom.xml file. The distribution also includes the file LICENSE.txt, saying:

======
All JUMBO code is distributed under the Open Source Artistic License 
(http://www.opensource.org). You are free to modify the code but if you do it may no
longer be distributed under the name JUMBO (or a derivative) without permission of Peter
Murray-Rust. Any distribution must acknowledge the origins and also include copies of the
JUMBO source (see Artistic License for details). You may not claim that a modified version
is a compliant CML system and may not assert that it reads or writes CML.

CML Schema is distributed under a Creative Commons license, allowing redistribution but
NOT derivative works. This is to ensure that the schema does not mutate.
======

I have contacted one of the authors and gotten different responses. Originally he said the package was "Artistic License 2.0" and then said "the pom.xml file says it is 'Artistic License'", and in discussions where I pointed out the existence of the LICENSE.txt file he said that he wants those additional restrictions in place, so I am going on the principle that the LICENSE.txt file is correct, and that the license is "Artistic License" and not "Artistic License 2.0". Notably, the license text is not included in the distribution.


CDK is one of the downstream chemistry toolkits which make Java jar distributions which use and repackage the jar file released by the JUMBO/CML project. One of them also includes a patched JAR file. These are not simple aggregates in a single jar file; the downstream packages make use of functionality from the JUMBO/CML package.

My understanding is that mixing the Artistic License and LGPL 2.1 is not possible. I base this primarily on the FSF statement that they consider the Artistic License to be incompatible with the GPL. I have not found a statement about compatibility between the Artistic License the LGPL.


I tried to read and understand the Artistic License but I got confused. The simplest conflict seems to be that the Artistic License says "You may not charge a fee for this Package itself." where ""Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification." This is in conflict with the LGPL 2.1 clause "You may charge a fee for the physical act of transferring a copy".

Beyond that, I don't know if the additional restrictions in the CML license are compatible with the LGPL 2.1. One clear conflict should be enough.



I have talked with one of the authors of JUMBO/CML and they may be willing to relicense under the Artistic License 2.0. In doing the research for that I read that the FSF considers the 2.0 license compatible with the GPL because of the relicensing clause 4(c)(ii), which allows the GPL.

My reading of the clause suggests that the 2.0 license does NOT allow relicensing under the LGPL. Specifically, 4(c)(ii) "requires that the Source form of the Modified Version, and of any works derived from it, be made freely available". If I write a package which includes JUMBO/CML as a component or library and I release that in an object or executable form, then my release is a derived work, which means my entire work must be available under a free license. That is, 4(c)(ii) seems to require that the relicensed version must use a free license with the GPL "viral" nature. LGPL does not suffice.

This is relevant because it would prevent CDK and other downstream packages from including libraries which are compatible with the LGPL but not compatible with the GPL. Or they would remove or reimplement the JUMBO/CML component.

If it is possible to relicense and be compatible with the LGPL 2.1, the main CDK developer wants to know how to relicense the software. Does he need to make a specific source release of JUMBO/CML under the LGPL 2.1 then turn around and use it inside of his code? Or can CDK include the JUMBO/CML code and just state somewhere inside the CDK documentation "Originally under the Artistic License 2.0 and relicensed under clause 4(c)(ii) to the LGPL 2.1"?


The JUMBO/CML component could not stay under the Artistic License 2.0 because of this rather strange clause from section 8 of the 2.0 license:

    (8) You are permitted to link Modified and Standard Versions
    with other works, to embed the Package in a larger work of
    your own, or to build stand-alone binary or bytecode versions
    of applications that include the Package, and Distribute the
    result without restriction, provided the result does not expose
    a direct interface to the Package.


Several of the downstream packages expose the underlying APIs for the JUMBO/CML library. After all, the goal of JUMBO/CML is to be a software library. Therefore, if JUMBO/CML is redistributed under the Artistic License 2.0, CDK and the other downstream packages must relicense it in order to be useful.


The simplest solution would be for the JUMBO/CML copyright holders to relicense the software under the LGPL, but they are unwilling to do that. At the very least, they want to keep control over the names "JUMBO", "CML", and "CML complaint", and to prevent modifications of the CML schema, which happens to also be the normative form of their data specification. The schema is used by the XML processors when doing validation.

Can an LGPL package include an XML schema definition which may not be changed but which is required in order to use part of the LGPL API?

I've pointed out that the clause "a Creative Commons license, allowing redistribution but
NOT derivative works" is ambiguous, and can mean one of two different licenses. The more restrictive prevents commercial use, which is contrary to the authors' stated goals elsewhere. Do we need clarification before including JUMBO/CML-derived code in Debian?

Best regards,

				Andrew
				dalke@dalkescientific.com



Reply to: