-
Notifications
You must be signed in to change notification settings - Fork 829
Users: Relicensing
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.
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.
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.
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.
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.
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.
This proposal was discussed on the mailing list.
-
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.
UPDATE June 20, 2018: All code from the 5 contributors whom we were unable to contact has been removed from the master branch, so the next release (after 1.2.0) will consist entirely of code for which dual licensing was approved by all contributors.
Additionally, we also could contact two more contributors, so
-
Total unique contributors: 58
-
Current email contact data missing: 3
-
Acceptances received: 55
-
Rejections received: 0
-
Pending answers: 3
- Home
- Adopt a highway
- Demos
- Dev guide
- Become a Contributor
- Coding and Style Conventions
- Contributor Guidelines
- Deprecation policy
- How to add example code
- How to make your first (code) contribution
- How to setup your development environment for JGraphT
- How to write documentation
- Maven Plugin Installation Guide
- Open tasks, projects and collaboration ideas
- Unit testing
- Website Deployment
- Writing new wiki pages
- GSoC
- Users