顶级开源许可证详解

目录

软件许可证类型:版权左派和宽容型

顶级开源许可证详解

GNU 通用公共许可证 (GPL)

Apache 许可证

Microsoft 公共许可证 (Ms-PL)

伯克利软件发行版 (BSD)

通用开发和分发许可证 (CDDL)

Eclipse 公共许可证 (EPL)

MIT 许可证

了解你的开源许可证,或者向法官解释


开源许可证是作者和用户之间具有约束力的法律合同,它声明了软件的使用条件,这在商业应用中尤其重要。此许可证将软件组件转变为开源组件,允许开发人员使用该软件,只要他们遵守许可证中规定的特定条款和条件即可。

开源许可证有很多,实际上有 200 多个。幸运的是,几乎所有可用的开源软件都只属于少数几个许可证。下面是对每个许可证的快速粗略分析,以帮助您为您的代码做出广泛的决定。请务必关注每个部分中的链接,以更深入地分析每个许可证。

软件许可证类型:版权左派和宽容型

首先,我们来看一下开源许可证的总体情况。许可证主要分为两类:版权左派和宽容型。这种划分基于许可证对用户的要求和限制。

当作者根据版权许可发布程序时,他们会对作品的版权提出要求,并发布声明,只要保持义务的互惠性,其他人也有权使用、修改和共享作品。

简而言之,如果他们使用具有这种开源许可证的组件,那么他们也必须将他们的代码开放给其他人使用。这是否适用于他们的所有代码或仅适用于他们对许可代码所做的修改取决于许可证。宽松的开源许可证是一种非版权开放源代码许可证,它保证使用、修改和重新分发的自由,同时也允许专有的衍生作品。

宽松的许可证对其他人如何使用开源组件的限制最少。这种类型的许可证允许不同程度地自由使用、修改和重新分发开源代码,允许其用于专有衍生作品,并且几乎不需要任何回报来承担未来的义务。

顶级开源许可证详解

许可证没有好坏之分,也没有哪个许可证比另一个更好。任何人都可以创建适合自己的开源许可证,这就是开源许可证如此之多的原因。这使得选择开源许可证变得很复杂。为了帮助缩小决策范围并理解所有问题,开放源代码促进会(OSI)整理了一份已批准许可证列表,其中包括 80 多个最常用的开源许可证。

GNU 通用公共许可证 (GPL)

GPL是最普遍的版权左派许可证,有时会让法律团队感到恐惧,它是 Richard Stallman 创建的“版权左派”概念的具体实现,目的是防止 GNU 软件成为专有软件。

由于 GPL 是一种强版权左派许可证,因此基于任何 GPL 组件编写的任何软件都必须以相同或更高版本的许可证作为开源软件发布。使用这些组件的项目,无论占总代码的百分比是多少,都必须依法发布完整的源代码以及修改和分发该代码的所有权利。这包括您的项目可能使用的其他组件,例如链接库,这意味着您通常不能将 GPL 代码与其他版权左派许可代码混合使用。

这种互惠义务的触发因素是分发。如果您使用或修改 GPL 代码但不将其分发给公众,则没有法律要求将该源代码公开。这在使用 GPL 代码创建从未真正分发给用户的软件即服务 (SaaS) 应用程序时会产生某种漏洞。在 GPL v3.0 之前的所有版本中,允许用户通过网络与您的软件交互不被视为分发,但 SaaS 提供商仍应谨慎使用 GPL 组件。Affero GNU 通用公共许可证 (AGPL) 弥补了这一漏洞,并明确将用户通过网络与软件交互视为分发。

GPL 有更宽松的版本,包括宽松版 GNU 公共许可证 (LGPL) 和添加了类路径例外条款的 GPL。如果实施得当,您可以使用符合这些弱版权左翼许可证的未修改版软件(通常是库),而无需在 GPL 下发布其余代码。

Apache 许可证

Apache 2.0 许可证是由 Apache 软件基金会 (ASF) 发布的一种流行且广泛部署的开源软件许可证。

Apache 许可证是最宽松的开源软件许可证之一,它允许您根据您选择的任何许可证发布 Apache 许可产品的修改版本。无论您的用例是个人、内部还是商业,您都可以在 Apache 许可证下自由使用、修改、分发和销售软件。

与其他仅适用于版权而不适用于专利的宽松许可证不同,Apache 许可证明确授予用户可同时适用于版权和专利的权利。授予的权利是永久性的、全球性的、不可撤销的,但也是非排他性的,这意味着您可以使用许可作品,其他人也可以使用。

要重新分发带有任何 Apache 许可组件的软件,您必须包含许可证的副本,提供明确的 Apache 许可证归属,并在您修改的任何文件中添加修改通知。

您可以选择根据不同的许可证发布修改后的产品或派生产品,但软件未修改的部分必须保留 Apache 许可证。另一条规则是,您不能以任何方式命名修改后的版本,以暗示最终产品由 ASF 认可或创建。

最后,如果您想添加有关您对任何 Apache 许可软件所做的所有修改的版权声明,您可以自由地这样做。Apache 许可证不要求您根据相同的许可证发布修改后的代码,因此您可以选择添加特定的许可条款和条件,以管理其他人如何使用、复制或分发您修改后的代码。

Microsoft 公共许可证 (Ms-PL)

微软公共许可证(Microsoft Public License)是微软针对其自家的开源项目发布的一个免费开源软件许可证。

Ms-PL 是一种简短、简洁且直白的许可证,允许您自由复制和分发受其管辖的任何软件的原创或衍生作品。但是,在这样做时,您不得使用任何贡献者的名称、徽标或商标。Ms-PL 还通过明确不提供任何明示担保或保证来保护软件作者,这意味着如果作者的代码在某些情况下无法正常运行,作者无需承担责任。

在根据 Ms-PL 分发软件时,无论软件是经过修改的还是未经修改的,无论是全部还是部分,您都没有义务分发源代码。但是,您必须保留最初存在的所有版权、专利、商标和归属声明。如果您选择以源代码形式分发软件的任何部分(经过修改的还是未经修改的),则必须仅在 Ms-PL 下进行分发,并在分发中包含许可证的完整副本。如果您选择以编译或目标代码形式发布代码,则可以根据任何兼容的许可证发布它。

伯克利软件发行版 (BSD)

BSD 许可证是一类宽松许可证。BSD 许可证允许您自由修改和分发源代码或二进制格式的软件代码,只要您保留一份版权声明、条件列表和免责声明即可。

原始的 4 条款 BSD 许可证包含广告条款,要求在使用 BSD 许可代码的软件的任何广告中对先前的作者进行一定的认可。最常用的 BSD 许可证是 3 条款的修改版 BSD 许可证,它删除了广告条款,而 2 条款的 FreeBSD 许可证则删除了广告条款和非认可条款。

通用开发和分发许可证 (CDDL)

CDDL是 Sun Microsystems(现为 Oracle)发布的开源许可证,用于替代 Sun 公共许可证 (SPL),被认为是 SPL 版本 2。它受到 Mozilla 公共许可证 (MPL) 的启发。CDDL 通常被认为是MPL 的清理版本,旨在促进可重用性。

您可以自由复制和分发任何根据 CDDL 许可的软件的原创或衍生作品,但您不得删除或更改软件中存在的任何版权、专利或商标声明。您还必须保留任何许可声明或任何说明任何贡献者或初始作者的描述性文字。

当您以源代码以外的任何形式分发软件时,您必须根据 CDDL 提供包含 CDDL 代码的任何文件的源代码(无论是修改版还是原始版本),并在分发中附上许可证的副本。可执行文件形式和任何不包含 CDDL 代码的项目文件均可根据 CDDL 或任何兼容许可证发布。

此外,对于您所做的每个修改,您都必须在修改的文件中添加声明以表明自己是修改者。

CDDL 被视为弱版权左派许可证,因为其使用不会授予程序的下游用户与要求您的整个代码成为开源程序相同的权利,就像 GPL 等强版权左派许可证一样。只有包含 CDDL 代码或对 CDDL 代码的修改的文件才受版权左派义务约束。其他文件和整个程序的可执行文件可以遵循与 CDDL 兼容的任何许可证。

Eclipse 公共许可证 (EPL)

Eclipse 许可证是一种弱版权许可证。如果您根据 EPL 修改代码并将源代码作为程序的一部分分发,则需要根据 EPL 对修改后的代码进行许可。如果您以目标代码形式分发此类程序,则需要声明接收者可以根据请求获得 EPL 源代码,并分享提出该请求的方法。

Eclipse 基金会明确表示,“仅仅与 Eclipse 插件交互或互操作”并不会使您的代码成为该插件的衍生作品。与所有弱版权许可一样,如果您希望对其余代码使用不同的许可,将 EPL 代码保存在单独的文件中是最佳做法,即使不是必需的。EPL 版本 1.0 对此不太明确,但版本 2.0 明确是每个文件的版权许可。

EPL 保护作者免受因公司在商业产品中使用其组件而可能引发的诉讼或损害。商业贡献者对 EPL 代码做出的任何保证均属于他们自己,而非先前贡献者的保证。与许多其他开源许可证一样,EPL 还包括明确的专利授权。

MIT 许可证

MIT 许可证是最宽松、最受欢迎的许可证之一。实际上,同一种许可证有两种变体,通常被称为“MIT 许可证”:Expat 许可证和 X11 许可证。Expat 许可证是第一个变体,也是软件包数据交换 (SPDX) 将其标识为“MIT”,因此我们将 Expat 许可证称为 MIT 许可证。

MIT 许可证包含语言,表明软件按原样提供且不提供任何保证。作为一项宽松的许可证,没有要求对 MIT 许可代码的修改也按照 MIT 许可证发布,这使其成为专有和商业用途的绝佳选择。该许可证对用户的唯一要求是许可证必须包含在“软件的所有副本或重要部分”中。不到 200 个字,这只是代码中的几行注释。MIT 许可证占所有开源许可证用途的近三分之一是有原因的。

了解你的开源许可证,或者向法官解释

几乎所有软件开发人员都严重依赖开源组件,因此了解开源许可的基础知识以及目前流行的开源许可之间的主要区别至关重要。这就是为什么开源许可管理工具是保护您的代码、软件和应用程序以及降低组织财务和法律风险的关键要素。它们加强了您使用的组件和依赖项的完整性,并确保您对这些组件的使用不会损害您的组织或您创建的产品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络研究观

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值