GPLv3 中“程序”的含义是什么?
摘要
在 GNU 通用公共许可证 (GPLv3) 的第 3 版中,“程序”一词指的是根据 GPLv3 许可,并由特定的被许可人从上游许可人或分销商处获得的特定作品。“程序”是您在特定 GPLv3 许可实例中接收到的特定软件作品,按您接收时的原样。
“程序”不能指“所有曾经根据 GPLv3 许可的作品”;这种解释毫无意义,因为“程序”是单数的:那些许多不同的程序并不构成一个程序。
特别是,这适用于 GPLv3 第 10 节第 3 段中的条款,该条款规定
[您]不得提起诉讼(包括诉讼中的反诉或反请求),指控任何专利权利要求通过制造、使用、销售、提供销售或进口程序或其任何部分而受到侵犯。
这是一个限制 GPLv3 被许可人提起诉讼,指控被许可人收到的特定 GPLv3 涵盖软件侵犯专利的能力的条件。它不适用于以下情况:作为 GPLv3 涵盖的程序 A 的被许可人,但不是不相关的 GPLv3 涵盖的程序 B 的被许可人的一方,提起诉讼指控程序 B 侵犯专利。如果该方是 A 和 B 的被许可人,则该方可能会失去对 B 的权利,但不会失去对 A 的权利。
由于软件专利对所有软件开发人员、所有软件分销商和所有软件用户构成不公正的威胁,如果可以的话,我们将废除它们。事实上,我们正在为此努力。但我们认为,让任何一个受 GPL 保护的程序的许可条件走得太远,以至于要求承诺永远不攻击任何受 GPL 保护的程序,将是适得其反的。
进一步分析
GPLv3 将“程序”定义如下
“程序”是指根据本许可证许可的任何可版权作品。
有些人认为,这个定义可以被解读为所有受 GPLv3 许可的作品,而不是被许可人在给定的许可环境中接收到的一个特定的受 GPLv3 许可的作品。这些读者对这种解释对 GPLv3 新的专利条款,特别是第 10 节第三段中的专利终止条件以及上游贡献者在第 11 节第三段下做出的明确的专利许可授予的后果表示特别关注。这种对“程序”的过于宽泛的解读是不正确的,并且与我们作为 GPLv3 起草者的意图相悖。
“任何”一词在英语中可以有多种细微差别的含义。在某些情况下,“任何”表示“每个”或“所有”;在其他情况下,包括 GPLv3 中“程序”的定义,它表示“从许多可能性中选择的一个特定实例”。这种可变性必须通过上下文来解决。这种上下文可以解决它,但这需要一些思考。
我们可以以不同的方式措辞“程序”的定义,例如使用“一个特定的”而不是“任何”,但这并不会消除思考的必要性。 短语“根据本许可证许可的特定作品”,如果孤立地看待,不一定表示 该 特定作品,该作品由特定“您”在特定的许可或分发行为中接收。我们对其他自由软件许可证的审查表明,它们也提出了类似的解释问题,其中使用了通用引用的词语以方便许可证的重复使用。
鉴于没有哪种选择是如此清晰,以至于必须拒绝所有其他候选含义,“任何”都有一定的优势。它比可能的替代方案更非正式和更少法律化,这对于阅读和应用许可证的开发人员来说是合适的。此外,“任何”的使用,通过暗示从许多合格的可能性中进行选择,具有强调 GPLv3 在多个软件作品和多个许可情况下的可重用性的效果。GNU GPL 旨在被许多开发人员在其程序上使用,这一点也需要明确。
在 GPLv3 下引起解释问题的对“任何”的相同使用方式也存在于 GPLv2 中,在其相应的定义中。GPLv2 第 0 节指出
本许可证适用于任何程序或其他作品,其中包含版权所有者放置的声明,表明它可以在本通用公共许可证的条款下分发。 下面的“程序”是指任何此类程序或作品,“基于程序的作品”是指程序或版权法下的任何衍生作品......
然而,FSF 和 GPL 使用社区中的其他人一直理解,GPLv2 中的“程序”是指您收到的特定受 GPL 保护的作品,在您对其进行任何可能的修改之前。GPLv3 中“程序”的定义旨在保留此含义。
我们无法在 GPLv3 中找到任何条款,其中应用所建议的对“程序”(和超集术语“涵盖作品”)的广泛解释会具有意义或任何实际意义,与该条款的措辞及其起草历史一致。GPLv3 的专利条款就是一个例子。
第 11 节的第三段规定
每位贡献者都会授予您一项非独占的、全球性的、免版税的专利许可,该许可基于贡献者的基本专利权利要求,允许您制造、使用、销售、提供销售、进口以及以其他方式运行、修改和传播其贡献者版本的內容。
“贡献者”定义为“授权根据本许可证使用程序或基于程序的作品的版权所有者”。
有人认为,对“程序”的广泛解读会导致不合理地广泛的专利许可授予。理由是,对于给定的 GPLv3 被许可人,授予专利许可的贡献者集合将成为世界上所有受 GPLv3 保护的作品的所有 GPLv3 许可人,而不仅仅是在特定许可行为中该被许可人收到的特定作品的许可人。
然而,仔细注意专利许可授予的措辞表明,这些担忧是没有根据的。为了行使专利许可授予的权限,GPLv3 被许可人必须拥有“[贡献者的]贡献者版本的內容”。如果他拥有,那么他必然是该材料的接收者,根据 GPLv3 许可给他。
因此,贡献者始终是作为专利许可授予主题的材料的实际版权许可人。受益于专利许可授予的用户最终从这些贡献者那里收到了该授予所涵盖的材料。如果不是这样,专利许可授予将毫无意义,因为行使其权限与贡献者的“贡献者版本”相关联。贡献者和第 11 节专利被许可人存在直接或间接的分发关系。因此,第 11 节第 3 段不要求您向任何并非您的版权被许可人的人授予专利许可。(非贡献者再分销商仍受适用的隐含专利许可原则和第 11 节第 6 段的特殊“自动延期”条款的约束。)
当考虑第 10 节第三段中与专利相关的条款时,同样没有对“程序”进行广泛解读的基础。此条款规定
[您]不得提起诉讼(包括诉讼中的反诉或反请求),指控任何专利权利要求通过制造、使用、销售、提供销售或进口程序或其任何部分而受到侵犯。
结合第 11 节第 3 段的专利许可授予和第 8 节的终止条款,第 10 节的此条款产生与 Apache 许可证 2.0 版中包含的范围相似的专利终止条件。
FSF 同情某些自由软件许可证中广泛的专利报复条款的意图,因为非常希望废除软件专利。但是,我们认为,软件许可证中的广泛专利报复条款不太可能使社区受益,特别是那些可以通过与被终止许可权限的软件无关的其他程序的专利诉讼触发的条款。我们非常谨慎地采取措施将专利报复纳入 GPLv3,并且第 10 节第 3 段的条款旨在比其他几个著名的许可证(特别是 Mozilla 公共许可证 1.1 版)中的专利报复条款更狭隘,关于专利许可的终止。
如果所建议的对“程序”的解释适用于第 10 节第 3 段的条款,那么结果将是对我们过去关于专利报复的一贯声明和政策的彻底背离,这显然不是我们的意图。
GPL 第 3 版中的其他文本显示了相同的政策。第 10 节中的专利诉讼条款作为对先前条款 7(b)(5)(在草案 2 中)的一部分的替代而添加到 GPLv3 的草案 3 中。条款 7(b)(5) 允许对受 GPLv3 许可的作品放置两类专利终止条款
全部或部分终止或允许终止对使用其涵盖材料的许可的条款,针对提起软件专利诉讼的用户(即,指控某些软件侵犯专利的诉讼),而不是为报复或防御先前提起的另一项软件专利诉讼而提起的诉讼,或者指控侵权的软件包括某些涵盖的材料,可能与其他软件组合...
第 7 节没有说明 GPL 自身的政策;相反,它说明了其他兼容许可证可以走多远。因此,第 7 节中的文本不会建立广泛的专利报复;它只会允许将受 GPL 保护的代码与其他具有此类广泛专利报复的许可证组合。
尽管如此,正如草案 3 的理由中所解释的那样,这种广泛的报复受到了批评,因为它可能适用于被指控的软件与许可主题软件无关的软件专利诉讼。 考虑到没有广泛使用的许可证可以提供兼容性,在草案 3 中,我们从 GPL 兼容性的范围中删除了广泛的专利报复。
我们通过在第 10 节中用文本替换 7(b)(5) 来实现这一点,其中我们只保留了与第二类对应的部分。 因此,第一类恢复为 GPL 不兼容的“进一步限制”,在草案 3 中,以及在实际发布的 GPL 第 3 版中也是如此。