Here in Dyne we take pride in using copyleft licensing like AGPL. Lately we are busy with Clojure projects. Clojure is licenced with EPL 1.0 and it is used as a library. Those two licences appear to be incompatible. DISCLAIMER: this is not legal advice, please consult a legal expert for your project. It is just a collection of information and discussions on this subject that might be relevant to more Clojure developers out there.
Even though EPL is an open source license it is weak copyleft which basically means that the right to close the sources is given. The exact differences between the AGPL and other licences can be found here. After some research and following some discussions it seems that there might be two options/solutions to the problem:
- Write an exception
- EPL 2.0
A licence holder can grant an additional licence in the form of an exception as explained here which basically states that with the use of such a licence the incopatibility issues can be overriden.
A very interesting exception related to the GPL licence is the the classpath exception which basically states that independent modules included in a lib can produce an executable, regardless of the license terms of these independent modules, and one can copy and distribute the resulting executable under terms of choice. A related discussion on this matter can be found here.
However after posing a question at gnu.org on writing an exception we received the following answer:
“As per the GPL FAQ it is possible to write an exception to allow software licensed under a strong copyleft such as the GPL or AGPL to be further distributed in combination with incompatibly licensed works:
- www.gnu.org/licenses/gpl-faq.html InterpreterIncompat
- www.gnu.org/licenses/gpl-faq.html GPLIncompatibleLibs
This would solve the issue of the EPL not being compatible with the A/GPL, but there is still the issue of the A/GPL not being compatible with the weak copyleft of the EPL: eclipse.org/legal/eplfaq.php GPLCOMPATIBLE.
They pointed out also that “EPL 2.0 is now relevant to discussion as well. The FSF will be publishing their stance on it soon.” which brings us to the following chapter.
Seems that the new EPL 2.0 goes the right way. The main points concerning this matter according to one of the latest drafts are:
- After much discussion, we removed the definition of executable code completely, and made the copyleft provision basically a simple statement that the source code must always be available. This helped significantly with addressing the topic of scripting languages and other cases where the source and executable forms of the code are identical, or at least similar.
- We added a definition for Distribution which hopefully works in the European context.
- We cleaned up the Exhibit A to hopefully make it clearer that this is a notice that can be optionally added to a code base.
According to this point Secondary Licenses can be used serving like exceptions. For more details have a look at the full EPL2.0. Will Clojure be licenced under 2.0? This is an unknown for now, we will keep this thread updated.