• Share this article:

Not So Fast!

Thursday, July 12, 2007 - 11:40 by Mike Milinkovich

IANAL, not even on TV.

I noticed an article in InformationWeek that asserts that the Eclipse Public License (EPL) and GPLv3 are compatible. Although I think that it would be a good thing if it was easier for the two communities to share and re-use code, the article is (sadly) incorrect. The licenses are not compatible. At least not in the same way that the Apache license is compatible with the GPLv3. (In case you’re wondering, this is also the position of the FSF itself, although it’s obvious as their license page has not yet been updated for GPLv3.)

I theorize that the confusion may have resulted from the popular misconception that the ASL and EPL are very similar licenses. They’re actually not. Although they are both “business-friendly”, the ASL is a BSD-style license whereas the EPL is more a Mozilla (MPL)-style copyleft license.

License compatibility is an extremely complex topic. The FSF defines two quite different things: license compatibility and GPL compatibility. The latter basically says that a license is compatible with the GPL if it allows its source code to be re-licensed under the GPL. It is this level of compatibility that led Sam Ruby to quip that “The GPL V3 license is compatible with the ASF V2 license in precisely the same way that blood type AB is compatible with blood type O.” (I think he was specifically referring to the one-way arrow on this diagram. Apache is the universal donor. GPL is the universal recipient.)

As defined, the EPL is definitely not “GPL compatible” (see Section 3 of the EPL).

However, for many developers “compatibility” may mean something quite different. As much fun as cutting-and-pasting code can be, many developers in many contexts prefer to follow component-level re-use. For example, the not-quite-official-but-relevant-nonetheless Apache Foundation policy on third party licensing endorses the use of EPL-licensed binaries in Apache projects. For many developers, this level of license compatibility is sufficient, because it allows re-use of a component they would otherwise have to re-implement.

I have had a few conversations where people have expressed the opinion that this second type of EPL-GPLv3 compatibility may be possible under certain circumstances. So one of my summer projects over the next couple of months will be to work with our lawyers to see what might be possible.

BTW if you think that licensing complexity is only an issue in open source, you definitely need to read this post on Microsoft’s Byzantine licensing regime. At least our stuff is free ?

Tags