明确 GPL 版本号,避免许可证混淆

作者: Jeffrey Robert Kaufman 译者: 薛亮

| 2017-11-08 23:55:01   评论: 0

明确是避免许可歧义的关键所在。

在许可证的过去、当前和未来版本如何适用于软件程序方面,GPL 系列许可证在开源许可证中可谓独树一帜。如果不能完全理解其中独有的许可证特性,开源软件开发人员可能会无意中造成混淆。

GPL 许可证在其许可证的条款和条件中阐明了许可证版本如何适用于该程序。GPL v2(第 9 条)写到:

“每个版本都有一个独特的版本号,如果该程序指定了其适用的许可证的版本号以及‘任何更新的版本’,则可以选择遵循由 自由软件基金会 Free Software Foundation 发布的该版本或之后任何更新版本的条款和条件。如果该程序未指定许可证的版本号,则可以选择自由软件基金会以前发布的任何版本。”

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

多年以来,我看到很多开源项目表示遵循 GPL 许可证,但却没有明确指出版本号,同时也没有将整个 GPL 许可证(例如,v2 或 v3)副本囊括在程序内。取决于您是许可人还是被许可人等因素,这其中造成的含混不清可能对您有益或有害。

许可证的模糊如何产生影响

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

依据 GPL v3 第 14 条的下述文本可以合乎情理地做出上述理解。

“如果该程序未指定 GNU GPL 的版本号,则可以选择由自由软件基金会发布的任何版本。”

另一方面,将 GPL 特定版本的完整副本(还可能包括许可证标题块中的 GPL 版本号)包含在程序中,可以被解释为在实质上传递了特定版本的许可证。在这个例子中,那就是 GPL v3 版本并且只有 GPL v3 版本,因为 v3 中没有“任何更新的版本”的条款。

如何避免许可歧义

为了避免这种许可歧义,您应该写得非常明确。如果您只想适用 GPL v3,应该明确地声明:“本程序仅遵循 GPL v3”,并提供整个 GPL v3 许可证副本。或者,如果您希望适用 GPL v3 或之后更新的版本,请明确声明:“本程序遵循 GPL v3 或其之后更新的版本”。最后,如果您真的想要适用任何版本的 GPL 许可证,您可以提供 GPL v3 许可证,并表示:“本程序遵循由自由软件基金会发布的任何版本的 GPL 许可证”。

无论您选择哪种授权方式,都应该非常明确,让每个人都能理解您的真正意图。



最新评论


友情链接
返回顶部