写点什么

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:004080
用户头像

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

关注

评论

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

用100W+行代码贡献经验,带你了解如何参与OpenHarmony开源

华为云开发者联盟

开源 后端 华为云 企业号 1 月 PK 榜

更稳定!Apache Doris 1.2.1 Release 版本正式发布|版本通告

SelectDB

数据库 大数据 数据分析 bug 版本发布

前端react面试题(必备)

beifeng1996

React

滴滴前端一面常考手写面试题合集

helloworld1024fd

JavaScript

工赋开发者社区 | “低代码+MOM”,西门子的MES“进化论”

工赋开发者社区

阿里云产品专家陶炳哲:Java应用最佳实验

云布道师

阿里云 Java、

React-hooks面试考察知识点汇总

beifeng1996

React

架构模块3作业-外包学生管理系统架构文档

梁山伯

直播预约 | 微服务x容器开源开发者 Meetup 上海站回顾 & PPT下载

阿里巴巴云原生

阿里云 开源 容器 微服务 云原生

CSV:简单格式下隐藏的那些坑

华为云开发者联盟

后端 华为云 csv 企业号 1 月 PK 榜

高性能网关基石——OpenResty

C++后台开发

lua nginx openresty 后端开发 高性能网关

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

滴滴前端一面经典手写面试题

helloworld1024fd

JavaScript

SOFARegistry | 聊一聊服务发现的数据一致性

SOFAStack

SOFA SOFARegistry'

YMatrix 5.0重磅发布,以性能突破引领万物智联下的数据库最佳形态

YMatrix 超融合数据库

Machine Learning 性能提升 超融合数据库 OLTP 场景实践 YMatrix

高频js手写题之实现数组扁平化、深拷贝、总线模式

helloworld1024fd

JavaScript

React-Hooks怎样封装防抖和节流-面试真题

beifeng1996

React

vue面试之Composition-API响应式包装对象原理

bb_xiaxia1998

Vue

腾讯前端vue面试题合集

bb_xiaxia1998

Vue

可观测产品的最佳实践,涵盖端到端的可观测解决方案丨阿里云用户组深圳站

云布道师

阿里云

软件测试/测试开发 | TestNG 与 Junit 对比,测试框架如何选择?

测试人

软件测试 单元测试 JUnit 测试开发 testNG

常用EMC元器件简介——防护器件

元器件秋姐

电子工程师 元器件科普 EMC防护 硬件知识

好气啊!为什么我抓不到 baidu 的数据包?

风铃架构日知录

程序员 Java、 java程序员 抓包 数据包

前端必会react面试题合集

beifeng1996

React

面试官:请实现Javascript发布-订阅模式

helloworld1024fd

JavaScript

Flink 容错恢复 2.0 2022 最新进展

Apache Flink

大数据 flink 实时计算

Python从0到1丨细说图像增强及运算

华为云开发者联盟

Python 人工智能 华为云 企业号 1 月 PK 榜

3D游戏建模在Maya中加快建模速度的5种技巧

Finovy Cloud

云渲染 建模 maya

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