Relicensing

Oliver Kopp edited this page Jul 24, 2015 · 21 revisions

Background

Originally, the JGraphT project was released under the LGPL. The Eclipse Software Foundation, however, decided to disallow LGPL libraries in their projects (http://mmilinkov.wordpress.com/2009/04/30/lgpl-pain/). A similar issue applies for projects under the umbrella of the Apache Software Foundation (http://www.apache.org/legal/resolved.html).

As a reciprocal license, LGPL requires anyone redistributing JGraphT to publish any source code changes they make. As the Eclipse Public License (EPL) also requires this, it seems like a good choice for resolving the incompatibilities. Hence we've completed this initiative to dual license JGraphT under LGPL and EPL. As an example of other projects for which this has been successfully done, see the Logback project and the qooxdoo project.

Why dual licensing?

The EPL and the GPL are inherently incompatible licenses. Licensing JGraphT solely under the terms of the EPL would make it impossible to use JGraphT in GPL-licensed projects. Therefore, the EPL is added as license choice to JGraphT and not intended to replace the LGPL license.

Why the Eclipse Public License?

The Eclipse Public License is a weak copyleft licence and thus also ensures that changes in the code are made available in case a binary is distributed. Furthermore, the EPL is compatible with the regulations of the Apache Software Foundation ("Category B: Reciprocal Licenses" in http://www.apache.org/legal/3party.html), which allows JGraphT to be used in Apache 2.0 projects.

Why not some other license?

It is not proposed to relicense JGraphT under BSD, MIT, or Apache 2.0 license as it is acknowledged that the original authors may want modifications of their code being published, and these kind of licenses do not enforce that.

Proposal

It was proposed to relicense JGraphT under the following terms:

JGraphT Licensing Information
=============================

JGraphT may be used under the terms of either the

 * GNU Lesser General Public License (LGPL) 2.1
   http://www.gnu.org/licenses/lgpl-2.1.html

or the

 * Eclipse Public License (EPL)
   http://www.eclipse.org/org/documents/epl-v10.php

As a recipient of JGraphT, you may choose
which license to receive the code under.

This also includes future commits. Contributions will only be accepted with the understanding that the contributor's code will be released under both licenses and that a user may freely choose between one of the licenses.

Contribution History

Contributions to JGraphT were historically LGPL-only, with no Copyright License Assignment (CLA) required from contributors. As such, relicensing required seeking the consent of all contributors (or possibly removing contributions for which such consent has been withheld). We made a best effort to contact all past contributors and request their consent. JGraphT has a long history (going back ten years to 2003), including many small contributions from one-time contributors. If we didn't hear back from someone within a few months, we assumed Qui tacet consentiret. Until copyright expiration, this may leave a very small amount of unavoidable legal risk for those who choose to rely on the EPL licensing option. There is no risk for those who continue to use JGraphT under the LGPL option.

Discussion

This proposal was discussed on the mailing list.

Final Status

  • Total unique contributors: 58
  • Current email contact data missing: 5

  • Acceptances received: 53

  • Rejections received: 0
  • Pending answers: 5

Given that we were able to get consent from all but a very small number of contributors, we decided to proceed with the dual licensing and completed that for the 0.9.0 release.