On 02/03/2012 04:52 PM, Heshan Suriyaarachchi wrote:
Airavata registry-api jar is having a dependency to jackrabbit-core jar
2.2.7. In this jar they have shipped a file called DEPENDENCY.txt and it
contains the transitive dependencies of jackrabbit. So, information
contained in this file should go to NOTICE file of the Airavata
registry-api jar, right? Please correct me if I am wrong.

No, not in this case.

A LICENSE and NOTICE file of a module (registry-api in this case) *only* need (and should) cover what's actually released as artifact. As I presume the registry-api doesn't 'embed' the jackrabbit-core but only depends on it, you don't need to cover jackrabbit-core or any other dependency. Typically, a normal jar (not a uber jar though) only needs to cover the license and copyright notices of the sources building up the jar.

So, usually you actually don't need to do anything at all for those type of modules, presuming you're using maven-remote-resources plugin which will add the required Apache LICENSE and base NOTICE automatically.

For aggregating modules though, like wars, or uber jars, as well as assembly based archives, you'll need to add/merge the copyright notices and licenses for all bundled 'artifacts' within. So if you bundle jackrabbit-core somewhere, *there* you'll need to append the notices and licenses applicable for using jackrabbit-core. Which isn't the same as copying the contents from some DEPENDENCY.txt: you need only cover the requirements for jackrabbit-core itself. Of course, if *all* its dependencies end up in your aggregate module, those probably then overlap, but even then beware that maven might bundle other (newer) versions of some of those dependencies, either directly (as defined in your pom) or transitively. You really need to review the *effective* bundled dependencies of your build, and cover (only) those.

The easiest way to technically do this is by providing appendable NOTICE and LICENSE file *fragments* under src/main/appended-resources/META-INF in your module source. The maven-remote-resources plugin will then use those to append to the default NOTICE and LICENSE files.
Benefit of that is:
a) No need to copy the full AL License 2.0 everywhere
b) The default NOTICE file will automatically have the correct header, derived from your module name and (important) the correct Copyright period. Otherwise you'll have to update that one manually after each year turnover.

Beware: for assembly build modules you'll probably need separate and full NOTICE and LICENSE files and AFAIK the maven-remote-resources plugin won't execute during assembly builds.

Ate


On Fri, Feb 3, 2012 at 10:24 AM, Heshan Suriyaarachchi<
[email protected]>  wrote:

Hi Devs,

I am in the process of going through the dependency tree of airavata and
adding missing licenses to the LICENSE file. I am opening up this thread to
discuss any concerns that I come across while doing $subject.

Airavata is having a dependency to javax.jcr jar. It's licensed under[1].
Is it Apache compatible?


[1] - http://www.day.com/specs/jcr/2.0/license.html

--
Regards,
Heshan Suriyaarachchi

http://heshans.blogspot.com/





Reply via email to