Eclipse公共许可证 (EPL) 要求,当分发对原始许可代码的修改时,必须以相同的许可证共享。 如果您更改 EPL 许可的项目并分发修改后的版本,则必须在 EPL 下提供这些更改的源代码。 这确保了对原始作品的改进保持开放并可供社区访问。 例如,如果您修复了 EPL 许可的库中的错误并分发了更新版本,则必须共享修改后的代码和对更改的清晰描述。 无论您是直接分发代码、将其包含在产品中还是将其作为服务提供,此规则都适用。
EPL 的copyleft范围比 GPL 等许可证更窄。 它适用于您修改的原始代码和文件,但不一定适用于整个项目。 如果您的工作既包含 EPL 许可的代码,又包含新的、单独的组件,则只有修改后的 EPL 文件必须保留在 EPL 下。 例如,向 EPL 许可的应用程序添加新插件并不需要插件本身获得 EPL 许可,除非它直接修改或派生自原始代码。 这种“基于文件”的方法允许开发人员将 EPL 许可的代码与专有或不同许可的组件结合使用,前提是正确披露修改后的 EPL 部分。 这种平衡鼓励了协作,同时允许更大的项目具有灵活性。
EPL 还解决了专利权问题。 贡献者授予用户与其贡献相关的任何专利的许可,该许可扩展到修改。 如果您修改 EPL 许可的代码并分发它,您会自动授予接收者对您的更改的专利许可。 这可以防止对社区贡献的专利诉讼。 但是,如果您因与原始或修改后的 EPL 代码相关的专利侵权起诉某人,您根据 EPL 使用该代码的权利将终止。 该条款保护下游用户并鼓励公平使用。 例如,增强 EPL 许可工具的公司必须确保他们的修改不会给其他人带来专利风险,从而培育一个更加开放和具有法律保障的生态系统。