注:该译文系原样复制于:https://mp.weixin.qq.com/s/muPDVThX5S4vsXuM5PEoIw ,译者为卫剑钒。EPL 2.0英文原文见于:https://www.eclipse.org/legal/epl-2.0
Eclipse公共许可证 v 2.0
注:部分意义不大的、繁文缛节的、仅用于严谨性考虑的内容,会被本文节略,本文无意陷入细节之中。
注:“许可证”和“协议”是一个意思,用在不同的语境下。
Eclipse公共许可证 v 2.0
和本许可证在一起的程序,是按照EPL协议提供的。只要你使用、或复制、或分发本程序,就表明你接受了本协议。
注解:这段写得很好,直接明了,一看就懂,没有歧义,明显是方便接收者理解的。我前面介绍过的Apache、GPL、MIT等协议,都没能写得这么清楚明白。
1. 定义
“贡献”:分两种,一种是在本程序首次发布时由原初贡献者提供的内容,另一种是后续贡献者对本程序的修改和补充。
如果对本程序的修改或补充不构成“修改后作品”,那不能视为“贡献”。 (下面有“修改后作品”的定义。)
“贡献者”:任何分发本程序的个人或实体。
解读:在EPL中,只有两个角色,要么是贡献者,要么是接收者;一个单纯的分发者,也是一个贡献者。(他虽然没有写一行代码,但他的分发就是贡献!)这和其他协议是不太一样的,所以需要特别注意。
注意分发这个动作很关键的,如果一个人只是改了改程序,但没有分发,那他不是贡献者。
“许可专利”(Licensed Patents):贡献者许可给接收者使用的专利。
“本程序”:用本许可证分发的贡献。
“接收者”:在本协议或第二许可证下收到本程序的人。(后面会说什么是第二许可证)
“衍生作品”:基于(based on)本程序的作品,其对于本程序的修改、注解、细化、完善等等,在整体上有原创性。(英文原文是直接引用美国版权法的1)
“修改后作品”:对本程序进行增加、删除或修改后的产物,包括为清晰起见而新建的、包含本程序内容的文件。若仅是为了链接、绑定、产生子类,而只是包含本程序中的声明、接口、类型、类定义、结构定义那些东西,不能算“修改后作品”。
解读:这个“修改后作品”的定义,有助于理解“弱copyleft”。如果一个作品A,仅仅是调用(比如静态链接或动态链接)了本作品,且A和本作品相对独立,那么A不能视为本作品的“修改后作品”,EPL的要求就不会“传染”到A,A就不需要提供源码。
在我看来,这块写的不太好。作者同时定义了“衍生作品”和“修改后作品”,但没有说明差异,容易让人困惑。我认为,这二者的关系应该是:“修改后作品”是“衍生作品”的子集。
还有一点不太好的是,这两个术语在EPL全文中出现得很少(事实上,“修改后作品”只在“贡献”的定义中用了一次),按道理说,引用非常少的定义就不该出现。分析作者这么写的动机,大约是:“衍生作品”的定义基本来自美国版权法,所以直接用现成的了。“修改后作品”可能是为了方便人们日后讨论和引用(虽然在EPL中只用了一次)。
“分发”:传输(transfer)本程序拷贝的行为,无论以何种方式。
“源代码”:一个作品的存在形式,并且是人们最喜欢的那种便于修改的形式,包括但不限于代码、文档和配置文件。
“第二许可证”(有翻译为第二许可证、次级许可证的):是指GPL第2版或之后的版本,初始贡献者还可以在GPL之外,额外包含一些例外许可和补充许可。
注意这里明确说明了第二许可证就是GPLv2和之后的版本(原作者可以加例外),在余下条款中都不再提GPL,而只用“第二许可证”这个术语。
2、权利授予
-
a) (授予版权许可!)每位贡献者在此授予接收者非排他的、全球性的、免费的版权许可,以复制、制作衍生作品、公开展示,公开执行、分发和再授权其贡献(以及可能的衍生作品)。
-
b) (授予专利许可!)每位贡献者在此授予接收者非排他性的、全球范围的、免费的专利许可,接受者可根据该许可专利制造、使用、销售、要约出售、进口、转让贡献者的贡献。注意这里所说的专利只是软件方面的,并不包含硬件方面的。
-
c) (但不保证没有知识产权的麻烦!)接收者应该明白,任何贡献者都不能保证本程序没有侵犯其他实体的专利或知识产权。贡献者也并不为此类麻烦负任何责任,如果接收者需要那些第三方的许可,请自己想办法获取。
-
d) (贡献者自知他有版权!)每位贡献者知道,他对自己的贡献是有版权的,并因此有权做出授权。
-
e) (就这么多权利啦!)如果有接收者在第二许可证下收到本程序(如果按照第3条允许的话),尽管有第二许可证的条款,但本程序的任何贡献者都不会额外赋予超出本许可证的更多许可。
解读:最后一点也许会让人费解,他的意思是,作者就赋予这么多权利,虽然后面可能会被人拿去和GPL程序结合起来并按照GPL分发,但是作者给的权利就这么多,并不会因为GPL的条款而增多权利。
3. 使用条件和要求
3.1 如果一个贡献者分发本程序,无论以什么形式(源码或目标码),那么要做到以下两点:
-
i) 该许可证对所有贡献者有效提供了“没有保证”条款。
-
ii) 该许可证对所有贡献者有效提供了“免责”条款;
-
iii) 该许可证没有限制或更改EPL第3.2条所赋予接收者的源码权利。
-
iv) 要求任何后续的分发,不管用什么许可证,都要满足第3条的要求。
3.2 如果本程序以源码形式分发,那么要做到以下两点:
- a) 要按照本协议条款提供源码。但如果同时满足以下两个条件,就可以按照第二许可证发布。
3.3 贡献者不得从他们发布的程序副本中删除或更改其中包含的任何版权、专利、商标、归属声明、无保证声明或免责声明 ,但可以添加适当的声明。
解读:整个第3条是EPL的核心要求,但如果不仔细推敲,不太容易看出弱copyleft的逻辑。下面我阐释一下:
第3条第一句:“如果一个贡献者分发本程序”,那么就要提供源码,而“本程序”的定义说了,本程序就是“贡献”,在“贡献”的定义里又说,如果不能构成“修改后作品”,那就不是贡献。所以,和本程序仅仅是链接或调用关系的相对独立的作品,不是贡献,不能算作本程序,也就不用提供源码。
解读:关于能否用其他许可证,写得也很不清晰。阐释如下:在3.1b里面说,在满足第3.2款的条件下,可以使用其他许可证;但在第3.2款里说必须按EPL分发或第二许可证发布,所以,所谓的“其他许可证”,就是第二许可证;根据第1条的定义,这个第二许可证也就是GPL;那么,3.1b里面所说的“其他许可证”,其实也就只是GPL了。这绕来绕去的,简直不是给人看的。设计者的原意可能是为了有一定的灵活性,但由于第1条对“第二许可证”的定义,灵活性在事实上已经完全消失。
解读:为什么第二许可证的概念被添加到EPL 2.0中?在EPL 2.0 FAQ2中,官方解答是:许多Eclipse项目需要和GPL兼容。EPL允许GPL作为第二许可证后,就可以和GPL的内容组合,按照GPL分发,并可以直接链接GPL程序。注意:除非在使用EPL时指定了第二许可证,否则EPL和GPL并不兼容。
解读:把第3条整个看下来,我高度怀疑,EPL的作者是一位程序员。他用写程序的方法,写了这个许可证,他宁可让各条款之间相互调用,也不愿意明说。(我猜测他可能想搭一个EPL许可证框架,以后的版本在此基础上做简单修改即可。)
4. 商业分发
本许可证在设计时,专门考虑了如何方便EPL程序的商业使用。
如果一个贡献者将本程序放在商业产品中进行发售,他不应该给其他贡献者带来潜在责任。进行商业活动的贡献者被称为“商业贡献者”,他应该保护并使得其他贡献者(“免责贡献者”)免受由第三方发起的索赔、诉讼带来的任何损失。
“商业贡献者”可以对最终用户和商业伙伴等承担一定的责任。
本条所说的责任并不适用于知识产权侵权有关的责任。
为了获得免责资格,一个“免责贡献者”必须做到: a)一旦收到商业索赔,迅速通知“商业贡献者”;b)在辩护或和解谈判中,允许由“商业贡献者”主导,并和“商业贡献者”进行合作。“免责贡献者”可以自愿参与这样的索赔案件,但要自行支付相关费用。
举个例子,如果一个贡献者把本程序放在了商业产品X中,那么他就是一个“商业贡献者”。如果他对客户作出了性能承诺或提供了相关保证,那么由此带来的责任只能是他独自承担。
5. 没有保证
本程序是AS IS的。也即除非在本协议中有明文规定,并在适用法律允许的范围之内,本程序是没有任何保证的。
比如,不保证好使。
对使用和分发本程序带来的一切风险,由接收者自行判断和承担。
6. 免责
接收者和贡献者不会对本程序的使用、分发所带来的任何损失负责。除非在本协议中有明文规定,且在适用法律允许范围之内。
解读:这个写法和别的开源许可证并没有什么不同。
注意:根据第4条,商业贡献者是可以承担责任的。
7. 总则
如果本协议的某条款在适用法律下无效或不可执行,不应影响本协议其余条款。
如果本协议的某条款在适用法律下无效或不可执行,在贡献者和接收者都无计可施时,可以对该条款进行最低限度的调整,以使得该条款有效和可执行。(由此可见,EPL确实有一定的柔韧性。)
如果有接收者胆敢对任何实体提起专利诉讼,声称本程序自身(不包括本程序与其他软件或硬件的组合)侵犯了收件者的专利,则他在2b条款获得的权利自提起诉讼之日起终止。(这条和Apache许可证的说法是类似的,算一种反制。)
如果接收者未能遵守本协议的实质性条款或条件,并且在意识到问题后,仍未能在合理时间内纠正,则本协议授予他的所有权利终止。权利终止后,接收者应立即停止使用和分发本程序,但他的责任仍然继续,他授出的许可仍然保持生效。
本许可证自身受版权保护,并且只能由许可证管理人修订和发布新版本。Eclipse基金会是首任许可证管理人,Eclipse基金会可以将许可证管理人的职责指派给某个独立实体。本程序可以始终根据其收到的许可证版本进行分发,在EPL的新版本发布之后,贡献者可以选择在新版本下分发程序。
除了2a和2b中明确指出的部分,接收者不被授权有关知识产权的任何其他权利。所有没有明确授予的权利均属保留。本协议所谈的一切,都是针对贡献者和接收者而言的,和他人无关。
样式A:第二许可证的声明样式
“如果满足 EPL-2.0 的条件,本源码也可以按照下面列出的第二许可证提供:{ 许可证名称,版本,例外或额外的许可 } 。”
如果用第二许可证,不仅要放本协议、此声明,还应放置第二许可证。如果不放在一个文件中,要告诉接收者在哪能看到,比如在LICENSE文件中。
你可以加入更多有关版权归属的声明信息。
下面是一个带第二许可证的文件头示例(来自FAQ):