I am working on a commercial application that leverages several available components (spring, hibernate, etc.). There are certain components that have multiple licenses associated with them.

All these components have the CDDL 1.1 + GPL 2.0 license,

  1. Javax.servlet-api 3.0.1 (License)
  2. Jersey-json 1.9-ea04 (License)

In the case of such dual-licensed/multiple licensed components, how should we proceed?

  1. Should we oblige with the obligations of all the licenses?
  2. Or can we select one of the multiple licenses and adhere to the obligations of the selected license?

As you note, there are two ways to interpret a licence grant of A + B. Firstly, that either the terms of A or the terms of B apply to the conveyance, at the recipient's discretion; secondly, that the requirements (and other terms) of both A and B apply to the conveyance. The first interpretation is more common in the free software world, but that doesn't mean you can rely on it being so in this case. The author is being rather unhelpful in not spelling out which they mean.

Fortunately, in this case we are helped by the CDDL being incompatible with the GPL. A licence is incompatible with the GPL if it is not possible to follow the requirements of both the GPL and the other licence at the same time, so the second interpretation of A+B is in this case a logical impossibility.

I think (though IANAL/IANYL) therefore that, at least until the author clarifies their intention, you are safe to rely on the first interpretation, and you may use this code under either the terms of the CDDL or the terms of the GPL, at your preference. Make sure you're clear with your downstream recipients about which one you've chosen (ie, remove all references to the other licence).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.