写点什么

Eclipse 更新了 Eclipse 公共许可(EPL)

  • 2017-09-19
  • 本文字数:1481 字

    阅读完需:约 5 分钟

Eclipse 基金会发布了新版的Eclipse 公共许可(Eclipse Public License,EPL),简称EPLv2 。EPL 是Eclipse 基金会默认使用的软件许可。此次更改涉及了部分特性,但主要目的是为了在保持和开放源代码促进会(Open Source Initiative)指南相兼容的同时,兼容GPL 及更早期的许可,使其可在美国之外使用。EPLv2 将替代 EPLv1 ,而 EPLv1 已具有 13 年的历史,很大程度上基于以前的通用公共许可证(CPL,Common Public License)。

为深度解读新版许可,InfoQ 采访了 Eclipse 基金会的执行董事 Mike Milinkovich,他也是开放源代码促进会的前董事会成员。Milinkovich 指出:

Eclipse 社区开始在物联网领域启动大量运行时项目,因此必须要链接采用 GPL 许可的代码并做互操作。

但是 Milinkovich 还补充道,EPLv2 兼容 GPL 并不意味着所有的项目也应遵守 GPL。项目牵头人可以决定一个新项目是否与 GPL 兼容,并有权在得到所有贡献者明确同意的条件下,后期更改在许可上的决策。

EPLv1 的一个主要问题在于它是和美国立法明确关联的。确切地说,就是纽约州法律和美国版权法案(US Copyright Act)。一方面,与特定管辖区的关联,增加了对美国以外侵权行为提出诉讼的难度,因此可能会妨碍美国以外的开发商使用EPLv1。另一方面,要将这两个许可应用到其它相关的软件上,还存在着一些微妙的问题。

EPLv1 的应用受限于先前已得到许可的代码,以及“衍生作品”(Derivative Work)。“衍生作品”是一个法律术语,简而言之,根据美国版权法案的解释,“衍生作品”被定义为“采用了重映射、转换和采纳形式的所有工作”。EPLv1 明确表明,“衍生作品”并不适用于与EPLv1 许可的代码一并分发但是采用了不同软件许可的其它软件模块。

GPLv2 GPLv3 许可所提供的权利和义务,已经扩展到那些“基于”GPL 许可程序的工作,或是与 GPL 许可的程序“一并分发”的工作。如果要链接使用不同许可发布的代码,这一差别非常重要。

根据自由软件基金会(Free Software Foundation)的主张,如果代码A 链接到由GPL 许可的代码B(静态或动态皆可),意味着代码A 是基于代码B 的;如果代码C 链接到由EPLv1 许可的代码D,并不会使代码C 成为代码D 的“衍生作品”。这就意味着,GPL 的权利和义务可从代码B 扩展到代码A,而EPLv1 的权利和义务将不会从代码D 扩展到代码C。这导致了两种许可在行为上的差异,进而也不相互兼容。

在EPLv2 推出之前,项目可以通过EPLv1 和 Eclipse 分发许可(EDL,Eclipse Distribution License)(EDL 是 New BSD License 的一个变体)的双重许可克服这一局限。New BSD License 是一种宽松软件许可(Permissive License),兼容 GPL。正如 Milinkovich 所说:

BSD 许可实质上移除了 EPL 许可的社区友好著佐权(Copyleft)特性。EPLv2 在维护了 EPL 著佐权规的同时,允许对 GPL 许可的兼容。

Milinkovich 希望那些目前依然采用 EPLv1 许可的项目,尤其是 Eclipse 基金会所管理的项目,能逐渐迁移到 EPLv2 许可。 JUnit 5 等一些项目已经使用了 EPLv2 许可。但是 Milinkovich 指出,对于那些在 Eclipse 基金会管理下但当前仍未采用 EPLv1 许可的项目,例如 Eclipse Ceylon Eclipse MicroProfile ,可根据项目自身的需要继续使用当前的软件许可。

鉴于 EPLv2 许可是新近推出的,因此开发人员、项目和企业依然处于适应阶段。Eclipse 基金会正在创建了一个 FAQ 页面,但是截至本文发稿时为止,FAQ 依然在完善中。此外,虽然 EPLv2 宣称是 OSI 兼容的,但它并未出现在OSI 的官方网站上。这些问题有望在不远的将来得到解决。

查看英文原文: Eclipse Foundation Renews the Eclipse Public License

2017-09-19 19:003894
用户头像

发布了 391 篇内容, 共 136.7 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

OLAP计算引擎怎么选?

数据社

OLAP 七日更

快递员出售用户信息被判刑:如何防止快递行业信息泄露

石头IT视角

OTC场外交易系统开发软件定制

数字货币交易所系统开发功能方案

突破程序员基本功的16课

田维常

程序员

震闻:2021年 微服务 即将被这个取代了!!

Java架构师迁哥

合约跟单系统开发软件定制

堪称完美!阿里架构师用60个实战案例讲明白了Spring Boot

Java架构追梦

Java 架构 面试 微服务 springboot

我敢说这是全网最详细的基础讲解,附源码实例,没人学不明白

小Q

Java 学习 架构 面试 基础

差点跳起来了!全靠这份“Java核心知识笔记”我成功拿到美团offer

比伯

Java 程序员 架构 计算机 编写

波场链智能合约系统定制开发

向我看齐!京东智联云成 2020 TOP100 Summit“技术标兵”

京东科技开发者

DevOps 云原生 数字化

合成游戏app系统开发软件技术

提升awk技能的两个教程【译】

程序员架构进阶

Linux Shell awk

惊艳!阿里自爆用480页讲清楚了44种微服务架构设计模式

996小迁

程序员 面试 微服务 设计模式 架构设计

成为分布式系统架构师,都要学哪些东西?该怎么学?

四猿外

Java 程序员 分布式 分布式系统 架构师

Windows安装MySQL5.7教程

Simon

MySQL windows 安装 七日更

AWS云上安全最佳实践

雪雷

安全 AWS 云安全

iOS面试基础知识 (四)

iOSer

ios 面试 底层知识

研发团队如何实现无缝协作?

万事ONES

研发管理 团队协作 研发效能 研发工具

模糊匹配、相似度查询怎么破?看PG亿级检索毫秒响应

PostgreSQLChina

数据库 postgresql 开源

养猫了!

小林coding

生活

为什么现代系统需要一个新的编程模型?

华为云开发者联盟

编程 模型 语言

四币连发交易所系统开发技术

Spring 源码学习 09:refresh 大概流程

程序员小航

spring 源码 源码阅读

一场由fork引发的超时,让我们重新探讨了Redis的抖动问题

华为云开发者联盟

redis fork 时延抖动

软件测试之登录测试详解

测试人生路

软件测试

盘点 2020 | 鲜衣怒马少年时,不负韶华行且知!

程序员的时光

程序员 成长 编程之路 计算机 盘点2020

Gridea+GitHub搭建个人博客

Simon

GitHub Pages 博客 七日更

Polkadot系列(三)——如何实现共享安全性

QTech

区块链 polkadot 跨链

dForce挖矿APP系统开发|dForce挖矿软件开发

系统开发

Eclipse更新了Eclipse公共许可(EPL)_Java_Abraham Marín Pérez_InfoQ精选文章