跳转到主要内容
Chinese, Simplified

在我们关于流行开源软件(OSS)许可证的系列文章中,前一篇文章详细介绍了GNU GPL v2许可证的细节,该许可证最初由GNU项目发布。然而,2.0版并不是GNU GPL(通用公共许可证)的最新版本,也不一定是最流行的版本。这将是GNU通用公共许可证3.0版,简称GPLv3。

尽管GPLv3在2007年发布,也就是GPLv2发布16年后,但它与它的前任有很多共同之处。两者都要求用户在发布基于许可作品的任何二进制文件时包含完整许可文本的副本,并提供原始源代码,以及其他类似之处。关键的差异是试图解决和/或弥补一些人认为的2.0版的弱点或漏洞的结果。

那么,这两个版本的GNU GPL如何比较呢?为什么开发者或软件公司会选择使用GPLv3许可的代码?我们将在本指南中详细介绍这些问题。

GPLv3许可证:基础

与GPL v2一样,GPL 3是一个强大的copyleft许可证,这意味着原始代码的任何副本或修改也必须在GPL v3下发布。换句话说,你可以把GPL3的代码,添加到它或作出重大改变,然后分发你的版本。但是,您的版本也需要遵守相同的许可证要求,这意味着它也必须在GPL v3下——任何人都可以看到您修改的代码,并为自己的目的安装它。

GPLv3要求

GPL v2和GPL v3的许可条款类似。它们要求代码用户:

  1. 包括完整许可证文本的副本
  2. 说明对原始软件所做的所有重大更改
  3. 在基于许可作品分发任何二进制文件时,请提供原始源代码
  4. 包括版权声明原件的副本

此外,GPL v3规定,任何将代码作为消费者设备的一部分的人都必须包含更新和重新安装软件所需的任何安装信息。

使用许可代码

GPL v3许可证允许代码用户:

  • 将代码用于商业目的:与GPL v2一样,GPL v3对软件的内部使用不施加任何条件。
  • 更改代码:用户可以更改或返工代码,但如果他们以二进制形式发布这些更改/修改,他们还需要在GPL v3许可证下以源代码形式发布这些更新。
  • 分发代码的副本或修改:只要这些修改也在GPLv3许可下发布,它们就可以分发给其他人。
  • 放置保修:原始代码的分销商可以对许可软件提供他们自己的保修。

与它的前身一样,GPLv3不允许用户对代码进行再授权。换句话说,您不能对代码进行返工、修改或添加,然后对公众关闭这些更改。原始代码的“开源性”遵循任何更新或添加。

GPLv3与GPLv2

我们已经讨论了GPL v2和GPL v3之间的一些细微差异。现在,让我们讨论更重要的问题:专利权的授予以及与Apache License 2.0的兼容性。

专利权的授予

与流行的许可协议Apache license 2.0一样,GPL v3也包含明确的专利权授予。这到底是什么意思?这意味着原始许可代码的创建者或贡献者实质上“放弃”了他们对软件后续任何重用的专利权。通常,如果你对你创造的东西拥有专利,而有人制造、使用、销售或进口它,你可以在法庭上对他们提出质疑。如果您明确地将专利权授予其他用户,则情况并非如此,因为所有贡献者在GPLv3下授权其代码时都会这样做。

虽然GPL v2许可证确实讨论了专利权,但它更一般地讨论专利权,而且没有代码贡献者的明确授权。GPL v3通过在许可证全文中明确说明专利授予来解决这一问题。

与Apache 2.0的兼容性

假设一个开发者使用来自两个不同许可证下的两个不同OSS库的组件来构建一个软件。如果许可证是兼容的——换句话说,具有不同许可证的软件组件可以合法地一起分发——一切都很好,开发者可以在更强大的许可证条件下分发聚合的工作。如果不是,那可能会带来问题。

与GPL v2不同,GPL v3与常用的Apache许可证2.0兼容。然而,这种兼容性只有一种作用。根据Apache 2.0许可的代码可以与GPL 3许可的代码结合使用,生成的作品根据GPL 3许可。相反——将GPL 3代码合并到一个更大的作品中,然后根据Apache 2.0获得许可——是不允许的。

GPLv3用例

GPLv3和GPLv2至今仍在使用,一些OSS项目使用早期版本,另一些则采用最新版本。下面,我们将介绍开发人员和软件公司选择GPLv3许可证进行开源工作的几个原因。

对于开发者来说

研究表明,开源软件贡献者的动机更多的是希望学习和成为OSS社区的一部分,而不是经济回报。许多OSS开发者相信软件应该是免费的,每个人都可以访问,这使得GPL v2和GPL v3这样的版权许可特别有吸引力。

GPL v3可能是基于国外或面向全球受众的开发人员的更好选择,因为它包括国际化方面的改进。而且,如果开发人员计划将Apache2.0d组件合并到他们的工作中,他们必须选择GPLv3而不是GPLv2。

如果你不能决定选择哪一个,你也可以使用GPL v2或任何更高版本,目前包括GPL v2或GPLv3。

对公司来说

对于软件组织来说,这两个GPL之间的一个主要区别在于明确授予专利权。任何公司都不想提起诉讼,GPL v3中明确的专利授权提供了法律保护和安全感。

GPLv3的兼容性对于公司和开发人员来说都是一个难题。由于Apache2.0是这样一个常用的许可证,软件组织可能希望保留使用Apache2许可代码的选项。

然而,许多公司不愿在物联网或嵌入式系统中使用GPL v3代码,因为它需要“安装信息”。

GPLv3的众所周知的用途

2015年被企业OSS巨头红帽收购的IT自动化公司Ansible在GPL v3下授权其开源软件。其他著名的例子包括图像编辑器GIMP和Unix shell Bash,它们都是作为GNU项目的一部分构建的。

GPLv3的未来

最近的研究表明,虽然不像许可的项目那样受欢迎,但copyleft许可证仍被相当一部分OSS项目使用。在GPL系列许可中,GPLv3是最受欢迎的。

如果您仍然对GNU项目和/或各种GPL许可证有疑问,请访问他们的综合常见问题页面。

原文:https://fossa.com/blog/open-source-software-licenses-101-gpl-v3/

本文:https://jiagoushi.pro/node/1824

Article
知识星球
 
微信公众号
 
视频号