对开源许可证异同的对比并非源自担忧。对开源许可证进行比较并不容易,什么 copyleft 啦,什么宽松许可证啦,光 GNU 就有 GPL 2 和 GPL 3 之分,OSI 批准的许可证就有八十多个,而开源生态下存在了数百个许可证。
对于我们这些只想发布开源项目的人来讲,有些开源许可证非常简短,而且措辞也非常简单;而另一些则显得冗长、复杂,需要法律团队花费时间去了解。为了消除疑惑,我们列出了一些要素,可以帮助我们进行可行的开源许可证的对比。
基础比较
宽松与 Copyleft 开源许可证
开源许可证通常可以分为两类:一类是宽松许可证(permissive),又称「怎么都行(anything goes)」,另一类是 copyleft,又称「病毒」(译者注:意味着许可证的条款和条件具有传染性)。本文基于许可证的限制性进行比较——如你所想那般——在使用开源软件组件时所附加的要求和限制的数量,即针对许可证的宽松程度进行对比。
当开源组件是根据 copyleft 许可证发布的,那么开发人员有权使用、修改和分享该作品,只要保证义务对等(reciprocity of the obligation)即可。使用此种开源组件意味着你也需要把你的组件开放给别人使用。GPL 许可证族是第一种这一大类的许可证,也是最受欢迎的一个,它饱含了许多版本和变形。
与 copyleft 相对的是宽松许可证。这是一种 non-copyleft 的许可证,可确保使用者自由地使用、修改和再分发,同时还允许持有衍生作品的所有权。宽松开源许可证对组件的使用几乎不设限制,而且也几乎不需要回报。本大类中,对那些只想开源自己项目的开发者来讲,MIT 许可证最受欢迎,因为它文本最短。
许可限制、条件与权限
尽管宽松许可证和非宽松许可证之间的区别很重要,但各大类内部不同的许可证和许可证族也多有不同。
比如 MIT 和 Apache许可证都属于「怎么都行」类型,但它们并不完全相同。而 Eclipse 和 GPLv3 之间也是如此,尽管他们都属于「病毒」类型,但并不意味着它们的条款和条件完全相同。
每种开源许可证都有它们特有的限制、条件和权限,以区别于其他许可证。GitHub 的 chooselicense.com 网站旨在帮助开发人员轻松找到适合自己需求的开源许可证,并提供了一份附录(https://choosealicense.com/appendix/)供开发人员比较开源许可证,并根据许可证的授权和限制进行差异性对比。
根据这份附录,开源许可证对项目授予做一些版权或其他知识产权法所不允许做的事的权利。这些许可通常要符合条件,同时大多数开源许可证可能还具有其它一些限制,这些限制不会对担保和责任做任何承诺,有时还会明确将专利或商标排除在许可之外。
开源许可证中的权限
开源许可证中最常用的授权是针对商业用途(包括使用、分发和修改)和个人用途的。
专利使用是一大区别。在某些条件下,一些开源许可证提供了来自贡献者的明确专利权,如 GPLv3、Apache License 2.0、Eclipse 公共许可证 1.0 和 2.0,以及其它许可证。其它开源许可证会明确声明不会授予贡献者专利的任何权利。拒绝专利权授权的许可证包括 BSD 3-Clause Clear License、Creative Commons Attribution 4.0 International、Creative Commons Attribution Share Alike 4.0 International、Creative Commons Zero v1.0 Universal 和 ODC Open Database License v1.0。
虽然所有开源许可证都授予了商用、发行、修改和个人使用的权利,但这些权利受限于某些条件的约束,具体条件因许可证而异(vary from license to license)。这些条件可能是通过网络或其他渠道分发时要包含可用的源码、在开源项目中使用时需要包含许可和版权声明、在相同许可证下发布修改版代码,以及记录对代码所做的修改等。
开源许可证中的条件
一般来讲,与宽松的开源许可证比,copyleft 许可证具有更多的条件(conditions)。这是它们受欢迎程度持续下降的原因之一,因为商业组织使用开源产品已是一种常态。
GPL 族许可证是个著名例子。在通过网络分发时,我们可以看到一个很好的例子,也被叫做「SaaS 漏洞(SaaS loophole)」。尽管 GPLv2 和 GPLv3 的条件(conditions)并没有说网络使用是不是一种分发,但 AGPLv3 被认为是最强大的 copyleft 许可证,对此做了要求,当修改过的版本被用于通过网络提供服务时,必须提供修改后的版本的完整源代码。
开源许可证中的限制
比较开源许可证异同的另一个视角是看它的限制。开源许可证的限制设计义务(liability)、对不授予商标权利的明确声明以及对不提供担保的明确声明。
此处的主要区别是关于商标的使用。与 Apache 许可证 2.0 明确包含此类限制相对,大多数 GPL 族许可证并未明确声明不授予商标权利。值得一提的是,GitHub 在 Choose a License 网站的目录中指出,没有此类声明的许可证可能不会授予任何隐含的商标权利。
对比 Copyleft 许可证
GNU GPL 系列与 Eclipse 开源许可证
Eclipse 开源许可证(EPL)和整个 GNU GPL 族许可证都属于 copyleft,每种类型在不同程度上都是「非宽松」的。GNU GPL 族许可证具有很强的 copyleft 条款,不管用户所包含的 GPL 版本代码量的多少,都要求用户释放其软件的完整源代码。
非宽松类型许可证的另一面是 Eclipse 许可证,它被认为是弱 copyleft 许可证。EPL 不需要用户共享整个软件项目,只需要在以源码形式分发时开源包含使用 EPL 组件的那部分源码,并在需要时提供 object 形式的源码。
两种许可证之间的另一个区别是 EPL 要求用户在源码形式分发时公开那部分源码,而二进制文件形式分发时不需要;而强 copyleft 的 GPL 族许可证要求不管是源码还是二进制文件形式的副本或衍生品再分发时使用同一许可证。
对比宽松许可证
Apache 许可证 2.0 与 BSD 开源许可证
BSD 许可证是一个高度宽松的许可证,它允许用户根据需要修改和再分发签署有 BSD 许可证的软件。尽管 Apache 许可证的早期版本与 BSD 许可证相同,但与 Apache 许可证 2.0 存在一些主要区别——现在这两个许可证有所不同。
第一个区别是关于是否明确授予专利权。Apache 许可证 2.0 明确规定在使用、修改或分发签署有 Apache 许可证的软件时授予专利权利的使用,并列出撤销此类授权的情况。
另一个区别是对所涉概念的明确定义。Apache 许可证 2.0 明确定义了它所用术语和概念,不存在二义性。
第三个显著差异是 Apache 许可证 2.0 可不经修改直接复用。其他项目可以轻易使用,不需要在许可文档内修改任何内容。因为怕浪费时间的开发人员比较多,所以它也成为了最受欢迎的许可证之一。
开源许可证对比
全面了解
不管你是否开发过附加开源许可证的软件项目以便可以共享,还是要确保附加到所使用的软件组件的开源许可证是否与你的项目和需求相兼容,对你来说,了解每个许可证附带的不同限制、条件和权限是十分重要的。
尽管这些区别看似微妙,但它们通常定义了开源之间的使用和分发方式,更不用说用户在使用过程中必须遵循的许多条件。与法律事务一样,细节决定一切。因此,对我们来说,我们最好去熟悉它们,最次也得知道它们的存在,以便你咨询组织内相关法律专家。
开源许可证的来龙去脉(ins or outs)是一件棘手的事情,全面了解开源许可证的异同是一个挑战。现在有了这些基本的检验标准来了解需要对比的内容,可以帮你确定哪个许可证更适合你的项目,或至少再下一次在工作中讨论许可证合规性时你能胜人一筹。
免责声明:本文不是什么法律建议,仅供参考。如果你需要法律咨询,请联系具有相关经验或资质的律师。
原题:Open Source License Comparison Connecting — and Contrasting — the Dots
原文:https://resources.whitesourcesoftware.com/blog-whitesource/open-source-licenses-comparison-guide
作者:Ayala Goldstein
开源许可证相关推荐:
一文读懂常用开源许可证
你点的每个赞,我都认真当成了喜欢