Permissions, conditions and limitations at a glance
Conditions
- Disclose sourceSource code must be made available when distributing.
- License and copyright noticeA copy of the license and the copyright notice must be included when distributing.
- Same licenseModifications and derivatives must be distributed under the same (or a compatible) license.
Limitations
- LiabilityExpressly states that there is no liability for damages.
- WarrantyExpressly states that no warranty is provided.
Permissions, conditions and limitations are classified using data from choosealicense.com (GitHub, MIT License).
What kind of license is it?
The Eclipse Foundation published EPL 2.0 in August 2017. It is used by the Eclipse IDE, Jakarta EE and many Eclipse Foundation projects. If you distribute a program under the EPL and its modifications ("Contributions"), you must make the source available, but code in separate modules that is not derived from the EPL code can be distributed under other licenses (including commercial ones). It has an express patent grant and a clause that terminates the patent license of anyone who sues claiming the program infringes a patent.
Changes from EPL-1.0
- The New York governing law clause was removed.
- The definition of "derivative works" was aligned with the copyright law concept.
- A Secondary License (Exhibit A) mechanism was added, so that if the original author designates it, a work combined with GPL-2.0 or another license can be distributed under that license.
What you must do when distributing
- When distributing in source form, distribute under EPL-2.0 terms and include a copy of the license.
- When distributing in object code (binary) form, inform recipients how to obtain the source in a reasonable manner, and make sure your own license terms do not limit the rights of EPL recipients.
- Retain copyright notices.
- Commercial distributors take on defense and indemnification obligations so that liability does not fall on other contributors (Section 4).
Common misconceptions
- "The EPL is compatible with the GPL" — Not by default. Only code for which the original author designated a Secondary License via Exhibit A qualifies.
- "All EPL plugins must be EPL" — If they work as separate modules and are not derived from EPL code, they can be under other licenses. Whether something is derived is judged by copyright law.
- "Even using it unmodified requires publishing source" — The disclosure obligation concerns the EPL code (and its modifications). If you did not modify it, you only need to say how to obtain the original code's source.
How to apply it
Put the text in LICENSE and, if needed, add a Secondary License notice in the Exhibit A form to each file. The EPL has no prescribed file header text like GNU or Apache, so an SPDX identifier EPL-2.0 header is recommended (when GPL-2.0 is designated as a Secondary License, the SPDX expression is sometimes written as EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0).
When it fits
It suits company-led ecosystems that want to keep the core of a platform or framework open while allowing extension modules on top of it to be sold commercially. A simpler file-level alternative is MPL-2.0.
Can EPL-2.0 code go into another project?
General verdicts for taking code released under this license and distributing it combined into a project under each license below. See other combinations in the compatibility checker →
| Target project | Verdict | Notes |
|---|---|---|
| Proprietary (closed-source) software | Allowed with conditions | EPL code and its modifications must remain under EPL-2.0 with source provided. Your own code in a separate module can be under another license. |
| MIT | Allowed with conditions | EPL code and its modifications must remain under EPL-2.0 with source provided. Your own code in a separate module can be under another license. |
| Apache-2.0 | Allowed with conditions | EPL code and its modifications must remain under EPL-2.0 with source provided. Your own code in a separate module can be under another license. |
| MPL-2.0 | Allowed with conditions | EPL code and its modifications must remain under EPL-2.0 with source provided. Your own code in a separate module can be under another license. |
| LGPL-2.1 | Allowed with conditions | Only if the original author designated the GPL or another license as a Secondary License via Exhibit A can the combination be distributed under a GNU license. Without that designation they are not compatible. |
| LGPL-3.0 | Allowed with conditions | Only if the original author designated the GPL or another license as a Secondary License via Exhibit A can the combination be distributed under a GNU license. Without that designation they are not compatible. |
| GPL-2.0 | Allowed with conditions | Only if the original author designated the GPL or another license as a Secondary License via Exhibit A can the combination be distributed under a GNU license. Without that designation they are not compatible. |
| GPL-3.0 | Allowed with conditions | Only if the original author designated the GPL or another license as a Secondary License via Exhibit A can the combination be distributed under a GNU license. Without that designation they are not compatible. |
| AGPL-3.0 | Allowed with conditions | Only if the original author designated the GPL or another license as a Secondary License via Exhibit A can the combination be distributed under a GNU license. Without that designation they are not compatible. |
The content on this site is general information, not legal advice. For actual distribution, contracts or disputes, consult a lawyer or other qualified professional.