点击上方“开源社”关注我们

| 作者:卫剑钒

| 转载自:微月人话

| 编辑:王玥敏

| 设计:周颖

上次写了GPLv3人话解读(花了我整个休假时间!),应Ted邀请,这次写一下EPL。

网上搜了一下,目前(2021年4月)还没有发现这个许可证的中文翻译版本,我这大概算第一个吧。

不过,我这并不是精准的逐字逐句翻译,我这只是人话版。

也许今后会有人做精准版翻译,希望可以参考我这篇(能帮你省不少时间)。

注:部分意义不大的、繁文缛节的、仅用于严谨性考虑的内容,会被本文节略,本文无意陷入细节之中。

注:“许可证”和“协议”是一个意思,用在不同的语境下。

注:图片来自《极速车王》

开始

本文所称的EPL,指的就是Eclipse Public License 2.0,简称EPL-2.0。(之前有个EPL-1.0,现在不怎么用了。)

该许可证由Eclipse基金会设计,协议文本:https://www.eclipse.org/legal/epl-2.0

EPL通过了OSI的认证,收录在:https://www.opensource.org/licenses/EPL-2.0

Eclipse基金会成立于2004年,其宗旨是建立一个供应商中立的、开放和透明的社区,通过培育社区和商业生态系统,为个人和组织提供一个以商业为重心的合作和创新的环境。Eclipse基金会有370多个开源项目,其中最著名的是Eclipse IDE和Jakarta EE(Oracle将Java EE捐赠给Eclipse基金会后变更的名字)。

EPL主要特点

请再次注意,如果不特指,本文所说的EPL就是EPL-2.0。

1、EPL是弱copyleft的,也即“传染性”较弱,通常情况下,如果链接或调用EPL程序,并不构成传染;但如果你修改了EPL程序,分发时就要按EPL要求公开源码。

这和强copyleft的GPL不同,对于一个GPL软件,如果你link了它,你就是衍生作品。

2、EPL有个第二许可证,就是GPLv2及以后版本(本文简称GPL)。在满足一定条件下,EPL程序可以按照GPL发布。

3、EPL是商业友好的。

下面是人话翻译

注:和Apache、GPL等许可证不一样,EPL在写作上,把“我”、“我们”、“你”这类词去掉了,为了贴近其风格,本解读也尽量不用这类词(虽然这不利于说人话,但我还是忍住了)。

本文的编排方式是:一段翻译(夹杂解读),一段原文。

Eclipse公共许可证 v 2.0

和本许可证在一起的程序,是按照EPL协议提供的。只要你使用、或复制、或分发本程序,就表明你接受了本协议。

注解:这段写得很好,直接明了,一看就懂,没有歧义,明显是方便接收者理解的。我前面介绍过的Apache、GPL、MIT等协议,都没能写得这么清楚明白。

Eclipse Public License - v 2.0THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.

根据不同语境,本文有时把使用EPL发布的程序叫做“EPL程序”。

1. 定义

“贡献”:分两种,一种是在本程序首次发布时由原初贡献者提供的内容,另一种是后续贡献者对本程序的修改和补充。

如果对本程序的修改或补充不构成“修改后作品”,那不能视为“贡献”。 (下面有“修改后作品”的定义。)

“贡献者”:任何分发本程序的个人或实体。

解读:在EPL中,只有两个角色,要么是贡献者,要么是接收者;一个单纯的分发者,也是一个贡献者。(他虽然没有写一行代码,但他的分发就是贡献!)这和其他协议是不太一样的,所以需要特别注意。

注意分发这个动作很关键的,如果一个人只是改了改程序,但没有分发,那他不是贡献者。

“许可专利”(Licensed Patents):贡献者许可给接收者使用的专利。

“本程序”:用本许可证分发的贡献。

“接收者”:在本协议或第二许可证下收到本程序的人。(后面会说什么是第二许可证)

“衍生作品”:基于(based on)本程序的作品,其对于本程序的修改、注解、细化、完善等等,在整体上有原创性。(英文原文是直接引用美国版权法的1

“修改后作品”:对本程序进行增加、删除或修改后的产物,包括为清晰起见而新建的、包含本程序内容的文件。若仅是为了链接、绑定、产生子类,而只是包含本程序中的声明、接口、类型、类定义、结构定义那些东西,不能算“修改后作品”。

解读:这个“修改后作品”的定义,有助于理解“弱copyleft”。如果一个作品A,仅仅是调用(比如静态链接或动态链接)了本作品,且A和本作品相对独立,那么A不能视为本作品的“修改后作品”,EPL的要求就不会“传染”到A,A就不需要提供源码。

在我看来,这块写的不太好。作者同时定义了“衍生作品”和“修改后作品”,但没有说明差异,容易让人困惑。我认为,这二者的关系应该是:“修改后作品”是“衍生作品”的子集。

还有一点不太好的是,这两个术语在EPL全文中出现得很少(事实上,“修改后作品”只在“贡献”的定义中用了一次),按道理说,引用非常少的定义就不该出现。分析作者这么写的动机,大约是:“衍生作品”的定义基本来自美国版权法,所以直接用现成的了。“修改后作品”可能是为了方便人们日后讨论和引用(虽然在EPL中只用了一次)。

“分发”:传输(transfer)本程序拷贝的行为,无论以何种方式。

“源代码”:一个作品的存在形式,并且是人们最喜欢的那种便于修改的形式,包括但不限于代码、文档和配置文件。

“第二许可证”(有翻译为第二许可证、次级许可证的):是指GPL第2版或之后的版本,初始贡献者还可以在GPL之外,额外包含一些例外许可和补充许可。

注意这里明确说明了第二许可证就是GPLv2和之后的版本(原作者可以加例外),在余下条款中都不再提GPL,而只用“第二许可证”这个术语。

1. DEFINITIONS
“Contribution” means:
a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and
b) in the case of each subsequent Contributor:i) changes to the Program, andii) additions to the Program;
where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution “originates” from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works.
“Contributor” means any person or entity that Distributes the Program.
“Licensed Patents” mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
“Program” means the Contributions Distributed in accordance with this Agreement.
“Recipient” means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors.
“Derivative Works” shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.
“Modified Works” shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof.
“Distribute” means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy.
“Source Code” means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files.
“Secondary License” means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor.

2、权利授予

A)(授予版权许可!)每位贡献者在此授予接收者非排他的、全球性的、免费的版权许可,以复制、制作衍生作品、公开展示,公开执行、分发和再授权其贡献(以及可能的衍生作品)。

B)(授予专利许可!)每位贡献者在此授予接收者非排他性的、全球范围的、免费的专利许可,接受者可根据该许可专利制造、使用、销售、要约出售、进口、转让贡献者的贡献。注意这里所说的专利只是软件方面的,并不包含硬件方面的。

C) (但不保证没有知识产权的麻烦!)接收者应该明白,任何贡献者都不能保证本程序没有侵犯其他实体的专利或知识产权。贡献者也并不为此类麻烦负任何责任,如果接收者需要那些第三方的许可,请自己想办法获取。

D)(贡献者自知他有版权!)每位贡献者知道,他对自己的贡献是有版权的,并因此有权做出授权。

E) (就这么多权利啦!)如果有接收者在第二许可证下收到本程序(如果按照第3条允许的话),尽管有第二许可证的条款,但本程序的任何贡献者都不会额外赋予超出本许可证的更多许可。

解读:最后一点也许会让人费解,他的意思是,作者就赋予这么多权利,虽然后面可能会被人拿去和GPL程序结合起来并按照GPL分发,但是作者给的权利就这么多,并不会因为GPL的条款而增多权利。

2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works.
b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3).

3. 使用条件和要求

3.1 如果一个贡献者分发本程序,无论以什么形式(源码或目标码),那么要做到以下两点:

  • a) 必须提供源码,并且是按照第3.2条的要求提供源码。伴随所分发的程序,贡献者必须声明是按照EPL分发的,并告知接收者如何获取源码。

  • b) 在满足以下条件的情况下,贡献者可以用其他许可证分发本程序:

    • i) 该许可证对所有贡献者有效提供了“没有保证”条款。

    • ii) 该许可证对所有贡献者有效提供了“免责”条款;

    • iii) 该许可证没有限制或更改EPL第3.2条所赋予接收者的源码权利。

    • iv) 要求任何后续的分发,不管用什么许可证,都要满足第3条的要求。

3.2 如果本程序以源码形式分发,那么要做到以下两点:

  • a) 要按照本协议条款提供源码。但如果同时满足以下两个条件,就可以按照第二许可证发布。

    • 条件i:本程序和其他代码(在分开的单个或多个文件中)组合在一起,而这些其他代码是用第二许可证分发的。

    • 条件ii:原始贡献者随源码附有第二许可证声明。

  • b) 要带上一份本许可证。

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许可证框架,以后的版本在此基础上做简单修改即可。)

3. REQUIREMENTS
3.1 If a Contributor Distributes the Program in any form, then:
a) the Program must also be made available as Source Code, in accordance with p 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and
b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license:i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;iii) does not attempt to limit or alter the recipients' rights in the Source Code under p 3.2; andiv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this p 3.
3.2 When the Program is Distributed as Source Code:
a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and
b) a copy of this Agreement must be included with each copy of the Program.
3.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability (‘notices’) contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices.

4. 商业分发

本许可证在设计时,专门考虑了如何方便EPL程序的商业使用。

如果一个贡献者将本程序放在商业产品中进行发售,他不应该给其他贡献者带来潜在责任。进行商业活动的贡献者被称为“商业贡献者”,他应该保护并使得其他贡献者(“免责贡献者”)免受由第三方发起的索赔、诉讼带来的任何损失。

“商业贡献者”可以对最终用户和商业伙伴等承担一定的责任。

本条所说的责任并不适用于知识产权侵权有关的责任。

为了获得免责资格,一个“免责贡献者”必须做到: a)一旦收到商业索赔,迅速通知“商业贡献者”;b)在辩护或和解谈判中,允许由“商业贡献者”主导,并和“商业贡献者”进行合作。“免责贡献者”可以自愿参与这样的索赔案件,但要自行支付相关费用。

举个例子,如果一个贡献者把本程序放在了商业产品X中,那么他就是一个“商业贡献者”。如果他对客户作出了性能承诺或提供了相关保证,那么由此带来的责任只能是他独自承担。

4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor (“Commercial Contributor”) hereby agrees to defend and indemnify every other Contributor (“Indemnified Contributor”) against any losses, damages and costs (collectively “Losses”) arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this p do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this p, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.

5. 没有保证

本程序是AS IS的。也即除非在本协议中有明文规定,并在适用法律允许的范围之内,本程序是没有任何保证的。

比如,不保证好使。

对使用和分发本程序带来的一切风险,由接收者自行判断和承担。

5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.

6. 免责

接收者和贡献者不会对本程序的使用、分发所带来的任何损失负责。除非在本协议中有明文规定,且在适用法律允许范围之内。

解读:这个写法和别的开源许可证并没有什么不同。

注意:根据第4条,商业贡献者是可以承担责任的。

6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. 总则

如果本协议的某条款在适用法律下无效或不可执行,不应影响本协议其余条款。

如果本协议的某条款在适用法律下无效或不可执行,在贡献者和接收者都无计可施时,可以对该条款进行最低限度的调整,以使得该条款有效和可执行。(由此可见,EPL确实有一定的柔韧性。)

如果有接收者胆敢对任何实体提起专利诉讼,声称本程序自身(不包括本程序与其他软件或硬件的组合)侵犯了收件者的专利,则他在2b条款获得的权利自提起诉讼之日起终止。(这条和Apache许可证的说法是类似的,算一种反制。)

如果接收者未能遵守本协议的实质性条款或条件,并且在意识到问题后,仍未能在合理时间内纠正,则本协议授予他的所有权利终止。权利终止后,接收者应立即停止使用和分发本程序,但他的责任仍然继续,他授出的许可仍然保持生效。

本许可证自身受版权保护,并且只能由许可证管理人修订和发布新版本。Eclipse基金会是首任许可证管理人,Eclipse基金会可以将许可证管理人的职责指派给某个独立实体。本程序可以始终根据其收到的许可证版本进行分发,在EPL的新版本发布之后,贡献者可以选择在新版本下分发程序。

除了2a和2b中明确指出的部分,接收者不被授权有关知识产权的任何其他权利。所有没有明确授予的权利均属保留。本协议所谈的一切,都是针对贡献者和接收者而言的,和他人无关。

7. GENERAL
If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version.Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement.

样式A:第二许可证的声明样式

“如果满足 EPL-2.0 的条件,本源码也可以按照下面列出的第二许可证提供:{ 许可证名称,版本,例外或额外的许可 } 。”

如果用第二许可证,不仅要放本协议、此声明,还应放置第二许可证。如果不放在一个文件中,要告诉接收者在哪能看到,比如在LICENSE文件中。

你可以加入更多有关版权归属的声明信息。

Exhibit A – Form of Secondary Licenses Notice“This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), version(s), and exceptions or additional permissions here}.”Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses.If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.You may add additional accurate notices of copyright ownership.

下面是一个带第二许可证的文件头示例(来自FAQ):

/********************************************************************************
* Copyright (c) {date} {owner} [and others]
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License, v. 2.0 are satisfied: GNU General Public License, version 2
* with the GNU Classpath Exception which is
* available at https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
********************************************************************************/

关于弱copyleft的再理解

在官方的EPL-2.0 FAQ中,有这么一段可以好好读读:

问:我是程序员,不是律师,你能给我一个清晰的例子,说明一个东西是或不是衍生作品吗?

答:如果您复制了现有的Eclipse代码,并对它进行了一些小的修订,那将是一个衍生作品。如果您使用自己的代码100%编写了自己的Eclipse平台插件,以实现Eclipse中目前不包含的功能,那么它不是衍生作品。对于这两个极端之间的情景,在您判别是否构成衍生作品时,可能需要征求法律顾问的意见。不过,明白地说,仅与Eclipse Platform插件API接口交互,不会使Eclipse Platform插件成为衍生作品。

上面这段没有使用术语“修改后作品”,但是,如果都不是“衍生作品”,一定就不是“修改后作品”,因为“修改后作品”是“衍生作品”的子集。

附记:不久前发生的一件事

2021年3月5日,在某开源社区,有人指出,AliOS Things3使用了Eclipse基金会下的paho.mqtt.embedded-c项目4(以下简称paho.mqtt)的开源代码,但是违反了EPL的要求,在文件头部并没有声明版权。

AliOS Things是一个面向IoT领域的轻量级物联网嵌入式操作系统。

截图(3月5日时)如下:

文件头声明该文件的版权归Alibaba。

但从github上paho.mqtt项目中可以看到,这个文件的版权是IBM的。

很快,AliOS Things团队做出了反应,修改了相应的文件头(和原文件保持完全一致),并做出了如下声明。

经此声明,此事才算告一段落。

不过,仍有人提出:AliOS Things是用 Apache 发布的,而 paho.mqtt 是用EPL的,EPL是弱 copyleft 的,AliOS Things 这样做是否兼容了EPL的要求?

我仔细看了一下paho.mqtt的README文件,发现它居然是使用双许可证的。

里面明确说明,使用者可以根据意愿选择使用EPL或EDL5

而EDL的要求很宽松,类似于MIT或BSD许可证。

所以,依我看,这应该是没问题的。

致谢:本文在撰写过程中,与知识产权研究者孙振华先生有多次交流。

文|卫剑钒


  1. https://www.copyright.gov/title17/92chap1.html

  2. https://www.eclipse.org/legal/epl-2.0/faq.php

  3. https://github.com/alibaba/AliOS-Things/tree/master/components/linkkit/mqtt

  4. https://github.com/eclipse/paho.mqtt.embedded-c/blob/master/MQTTPacket/src/MQTTConnectClient.c

  5. http://www.eclipse.org/org/documents/edl-v10.php

开源社简介

开源社成立于2014年,是由志愿贡献于开源事业的个人成员,依“贡献、共识、共治”原则,所组成的厂商中立、公益非营利的开源联盟,是最早以“开源治理、国际接轨、社区发展、开源项目”为使命的开源组织。开源社积极与支持开源的社区、企业以及政府相关单位紧密合作,旨在共创健康可持续发展的开源生态,并推动中国开源社区成为全球开源体系的积极参与及贡献者。

相关阅读 | Related Reading

论“GPL就是给软件开发者们准备的坑”

人话解读GPLv3

人话版GPL 2.0协议

EPL许可证人话翻译相关推荐

  1. GPLv2许可证正经人话翻译

    作者:卫剑钒 上次写了篇"人话版GPL 2.0协议",有读者建议把英文原文一并贴出,所以这次发一篇带原文的,带上正经版翻译,然后是人话版翻译. 英文原版网址: https://ww ...

  2. python实现多句话翻译多语种(调翻译接口)

    代码 import requests,time import json from langdetect import detect from langdetect import detect_lang ...

  3. 大连话翻译成普通话(看谁翻译的准确)

    小归娘和小小四老对. 小归娘长得血带人亲,小小长得也血姿势. 但是小归娘跟小小不太对付. 小归娘觉得小小太的色, 小小觉得小归娘太赖塞. 小小管多不学习. 有一天上自习,小小偷偷在下面讲话: 小小很得 ...

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

    Eclipse基金会发布了新版的Eclipse公共许可(Eclipse Public License,EPL),简称EPLv2.EPL是Eclipse基金会默认使用的软件许可.此次更改涉及了部分特性, ...

  5. 人话解读LGPLv3

    大家都知道:你调用了 LGPL的库,你还是可以开发一个闭源程序. 这就说明,LGPL比GPL要宽松. 但并不像想象的那么简单. 一.为什么会有LGPL 作为GPL的发明人Stallman,是自由软件的 ...

  6. voltDB官方文档第三章翻译

    序:本文章是自己再网上查看VoltDB相关资料的时候没有找到太好的学习资料,就前去官方网站上翻译了一部分,约束于个人英语能力有限.实际记录下来的翻译只有第三章. 注:文章翻译自voltDB官方提供的学 ...

  7. 丁磊:噢买尬,买它,华少别抢话

    茕茕 发自 凹非寺 量子位 报道 | 公众号 QbitAI 赴港二次上市之后,前首富丁磊,也紧跟潮流跑来卖货了. 白天上市,晚上直播.有钱人的生活,可能就是这么朴实无华,且枯燥. 这卖着卖着,还卖出花 ...

  8. 撕掉伪善——用人话解释马云的996两次发言

    作为一个演说家,马云先生的话很有张力和说服力,一般情况下他很容易说服他人!但是他的996宣言不行,仔细阅读过后,我把两篇文章用人话翻译给大家听! 先说较早那个内部分享,第一部分大致是前面三段,用白话文 ...

  9. 【乡音】海安话四级考试

    海安话四级考试 海安话国家四级考试试卷-------------启用前★绝密------------(中国标准话语言研究中心命题) 准考证号___________ 姓名_____________ 座位 ...

  10. 电话销售话术模板有哪些 电话销售技巧

    电话销售是十分普遍的营销手段,电话销售要求销售员具有良好的讲话技巧.清晰的表达能力和一定的产品知识.那么电话销售员在与客户沟通时如何才能让客户不挂电话,今天分享几个电话销售话术技巧以及不同问题的话术模 ...

最新文章

  1. javascript 构造函数类和原型 prototyp e定义的属性和方法的区别
  2. Web应用开发技术(1)-html
  3. ActiveMQ的消息重发策略和DLQ处理
  4. 四、数据仓库和Hive环境搭建
  5. java.util.concurrent.TimeUnit
  6. python pillow无法安装_Pillow
  7. ZYNQ ZCU102视频编码开发
  8. tts语音合成小玩具
  9. Classic Poems ----Tagore, Stray birds
  10. 利用Vmware workstation安装MS-DOS使用Turbo C 2.0
  11. 三星530换固态硬盘_韩国三星网红固态硬盘PM981系列惨遭黑苹果和INTEL10代主板嫌弃...
  12. 用Linux命令备份oracle表,Linux系统上Oracle数据库备份和还原操作说明
  13. 洛谷P1512伊甸园的日历游戏题解
  14. 华为怎么显示返回按键_你见过这台会跑的“华为手机”吗?深度体验极星Polestar 2车机系统...
  15. Word Embeddings 学习笔记
  16. 【C语言实用库】cJSON-解析json数据的利器
  17. 开启投简历找工作新征程
  18. python创建httpserver,并处理get、post请求
  19. Termux开发环境搭建
  20. FreeEIM 2.6 最新版飞鸽传书

热门文章

  1. JML 规格设计分析
  2. ppapi获取html,在HTML中给PPAPI插件配置参数
  3. 关于雅克比矩阵与黑塞矩阵
  4. 绿联串口线linux驱动下载,绿联usb转串口驱动
  5. 全国、省、地级市、区县乡镇级矢量地图2021年(最新)
  6. linux snmp 命令oid,snmpwalk命令_Linux snmpwalk命令使用详解:通过SNMP GET-NEXT类型PDU
  7. 2022年智慧城市大脑及智慧城市驾驶舱大数据资源平台建设总体架构方案
  8. 服务器芯片封装,【芯极速】干货|一文看懂集成电路芯片封装及芯片组!
  9. java入门必备基础知识(超超超详细讲解)
  10. 计算机基础知识五笔,教你简单快速学习五笔打字