揭示有关模糊不清的 GPL 许可的真相

清晰度是避免许可歧义的关键。
560 位读者喜欢这个。
Open lightbulbs.

Opensource.com

GPL 许可系列在开源许可中是独一无二的,因为该许可的过去、当前和未来版本都可能适用于软件程序。由于未完全理解这种独特的许可特性,开源软件开发人员可能会无意中造成歧义。

GPL 许可在其条款和条件中明确说明了许可版本如何应用于程序。 GPL v2(第 9 条)中的适用语言部分内容如下:

“每个版本都有一个可区分的版本号。如果程序指定了适用于它的本许可证的版本号以及‘任何后续版本’,您可以选择遵循该版本或自由软件基金会发布的任何后续版本的条款和条件。如果程序未指定本许可证的版本号,您可以选择自由软件基金会发布的任何版本。”

GPL v3 第 14 条中的条款与 GPL v2 中的条款非常相似。

多年来,我见过许多开源项目声称它们已获得 GPL 许可,但没有明确指出版本号,同时还包含了完整 GPL 许可的文本(例如 v2 或 v3)。这种潜在造成的歧义可能对您有利或不利,具体取决于您是许可方还是被许可方等因素。

歧义如何发挥作用

例如,假设某个应用程序的许可证声明:“本程序根据 GPL 许可”,并完整包含了 GPL v3 许可证的副本。由于该项目没有明确说明适用哪个许可证版本号,因此合理的解释是,自由软件基金会发布的任何和所有 GPL 版本都可能适用——v3、v2 甚至 v1!

GPL v3 第 14 条中的这句话可以证明这种解释是合理的:

“如果程序未指定 GNU 通用公共许可证的版本号,您可以选择自由软件基金会发布的任何版本。”

另一方面,包含特定 GPL 版本的完整副本(其中可能还包括许可证标题块中的 GPL 版本号)可以被解释为本质上是在传达特定版本的许可证。在本例中,是 v3 且仅是 v3,因为没有“任何后续版本”条款。

如何避免歧义

为了避免这种许可歧义,您应该非常清楚。如果您只想应用 v3,请明确说明:“本程序仅根据 GPL v3 许可”并且提供完整的 GPL v3 许可证。或者,如果您希望 v3 或任何后续版本的 GPL 适用,请明确声明:“本程序根据 GPL v3 或任何后续版本许可。” 最后,如果您真的希望任何版本的 GPL 都适用,您可以提供 v3 许可证并说:“本程序根据自由软件基金会发布的任何版本的 GPL 许可。”

无论您做出哪种许可选择,都要非常清楚,以便每个人都理解您的真实含义。

标签
Picture of Jeffrey Robert Kaufman
Jeffrey R. Kaufman 是 Red Hat, Inc.(全球领先的开源软件解决方案提供商)的高级商业顾问(开源法律团队)。 Jeffrey 还担任北卡罗来纳大学法学院的兼职教授。

2 条评论

您能否指出一些好的网站,描述 GPL 的这些不同版本之间有何不同?我知道随着时间的推移,尤其是在 v2 和 v3 之间进行的更改存在一些争议,因此务必了解您究竟想做什么,以及许可证如何实现或混淆您的意图。

区分 GPLv2、GPLv2+ 和 GPLv3 可能很有用,可以使用常用的符号。或者,根据 SPDX 标准,使用 GPL-2.0、GPL-2.0+ 和 GPL-3.0。“+”运算符表示“或任何后续版本”。例如,GPLv2 与 GPLv3 不向内兼容,而 GPLv2+ 则兼容。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.