用户须知:修改后的 AGPLv3 移除自由,增加法律难题

之前的文章中,我们报道了一项美国地方法院的裁决,该裁决认定一家公司声称根据Affero 通用公共许可证版本 3 加上 Commons Clause(在本案中称为“Neo4j Sweden 软件许可证”)许可的软件是“自由和开源”软件,属于虚假广告。不幸的是,该案件包含另一项裁决,已经引起了开源社区的担忧。

本案的被告分叉了 Neo4j 软件,并从他们现在采用 AGPLv3 许可的分叉版本中移除了 Commons Clause。他们这样做是依据 AGPLv3 第 7 节,该节允许被许可人移除任何超出 AGPLv3 中列出的“进一步限制”——例如非商业用途。然而,法院裁定,被告不得在没有 Commons Clause 许可证的情况下重新分发该软件。

该结论违背了 AGPLv3 起草者的意图。GPLv3 第二次讨论草案理由 在脚注 73 中指出,该限制旨在针对版权所有者自身:“在此,我们特别关注程序作者的做法,他们声称根据 GPL 许可其作品,并附加与 GPL 条款相矛盾的额外要求,例如禁止商业用途。”

尽管如此,Neo4j 地方法院得出了不同的结论,法官依据他在另一起针对相关被告的早期案件 Neo4j, Inc. v. Graph Foundation, Inc. 中自己的意见。Commons Clause 不是独立的许可证,而是设计为开源许可证的修改器。Commons Clause 增加了对“销售”软件的限制,“销售”是一个定义不明确的术语。毫无疑问,添加 Commons Clause 会使自由和开源许可证变为非自由,Clause 本身的常见问题解答中也说明了这一点。

被告赖以移除 Commons Clause 的 AGPLv3 许可证部分规定,“如果您收到的程序或其任何部分包含声明其受本许可证管辖以及进一步限制条款的通知,您可以移除该条款。” 为什么法院不允许移除 Commons Clause,从而认定仅根据 AGPLv3 分发分叉版本被正确地宣传为开源软件?

审判法院认为,AGPLv3 中的这项规定仅适用于下游被许可人,而不适用于原始许可人添加它们的情况

被告指出的 AGPLv3 形式中的两项规定均未赋予被许可人移除相关信息的权利。纳入 Neo4J Sweden 软件许可证的 AGPLv3 第 10 节规定:“您不得对本许可证授予或确认的权利的行使施加任何进一步的限制。” 第 7 节规定:“[如果] 您收到的程序或其任何部分包含声明其受本许可证管辖以及进一步限制条款的通知,您可以移除该条款。” 被告辩称,这些规定意味着“移除 Neo4j 纳入许可证的进一步许可限制,即 Commons Clause,不应承担任何责任”。 然而,正如原告指出的那样,AGPLv3 将“您”定义为被许可人,而不是许可人。AGPL § 0(“每个被许可人都被称为‘您’”)。因此,正确解读,第 7 节和第 10 节禁止被许可人施加进一步的限制,但不禁止许可人这样做。事实上,将这些规定解释为限制 Neo4J Sweden 根据其选择的条款许可其受版权保护的软件的专有权,将违反合同和版权法的原则。

PureThink 现已从诉讼中撤回对此问题的考虑,因此,纠正法院意见的正确性将取决于另一方。

为何重要

从中可以吸取几个教训。这是一个意想不到的结果。软件自由保护组织称之为“错误的”自由软件基金会 (FSF) 的意图(脚注 73)是,如果许可人添加更多限制,下游用户可以移除这些限制。

但归根结底,法院会解释法律协议的含义,无论起草者多么熟练,结果都可能是意想不到的。这就是 许可证审查 流程如此严格的原因之一。OSI 批准的许可证 可能会在未来几十年内使用,我们会尽最大努力确保它们能够按照预期进行解释。

这也证明了将开源许可证与其他条款结合使用将创建一个新的许可证,该许可证既未获得 OSI 批准,也可能无法获得批准。任何更改开源许可证条款的努力都应受到怀疑,因为它们很可能旨在剥夺自由,否则已经适合使用 OSI 批准的许可证。这种诡计旨在“开放洗白”软件,声称使用开源许可证,并希望没有人会过于仔细地查看。

因此,使用任何根据非 OSI 批准的许可组合的软件都需要就所授予权利的范围寻求专业建议。但这在很大程度上违背了使用开源许可证的目的,即依靠社区共识,即该许可证提供了享受软件所需的所有权利,而无需与其制造者协商,并且最有可能利用在使用所有人都了解和理解的许可证时可用的网络效应。坚持使用 OSI 批准的许可证是确保满足所有人期望的方式。