API 限制性许可应被视为开源吗?

审视一个备受关注的关于版权和 API 的法律案件可能如何影响开源许可
135 位读者喜欢这篇文章。
Two government buildings

Opensource.com

在其 2014 年的 Oracle 诉 Google 判决中,美国联邦巡回上诉法院裁定 Java SE API 的方法声明和“结构、序列和组织”(SSO)受版权保护。这一备受批评的结果与数十年来业界和专业人士的共识假设相悖,即 API 属于公有领域,这反映在 API 的持续常见再实现实践中,并且即使在软件的一般可版权性通过法规确定后仍然存在。毫不奇怪,这种共识塑造了开源领域对 API 的看法。特别是开源许可证没有涉及 API,它们的条件通常不被理解为适用于 API。

如果版权裁决在其目前的美国最高法院 复审 中幸存下来,那么有理由担心 Oracle 诉 Google 最终会对开源许可产生一些不利影响。许可证作者可能会起草新的许可证,明确将熟悉的开源许可证条件扩展到仅涉及 API 的活动。也可能出现类似的努力,以推进受 Oracle 诉 Google 影响的对现有开源许可证的重新解释。

我们已经看到了一个限制 API 的新的类开源许可证的例子。去年,Holochain 通过其律师 Van Lindberg 提交了 加密自主许可证(CAL),供开源促进组织(OSI)批准。1.0-Beta 草案包括对仅包含或衍生自许可作品中包含或衍生的接口的作品提出的源代码可用性和许可要求。(CAL 1.0-Beta 因接口著作权共享功能以外的原因被 OSI 拒绝。CAL 的后续修订版删除了对接口的明确引用,OSI 于今年早些时候批准了 CAL 1.0。)像 CAL 1.0-Beta 这样的许可证会将著作权共享扩展到与原始代码没有共同代码的 API 的重新实现。虽然可能性较小,但新的宽松许可证也可能类似地将通知保留要求扩展到 API 的简单副本。

在我看来,API 限制性许可证虽然在其他方面类似于 FOSS,但不会被认定为开源标签。为了简化一个实际上复杂且有争议的问题,让我们接受 OSI 的许可证批准决定的观点,即解释 开源定义(OSD)是确定许可证是否为开源的权威依据。OSD 没有提及软件接口。一些主张放宽开源许可证批准标准的人认为,如果 OSD 没有明确禁止某种类型的限制,则应认为它在开源许可证中是可以接受的。为了防范这种相当于 “玩弄” OSD 的策略,OSI 在 2019 年 澄清,批准过程的目的是确保批准的许可证不仅符合 OSD,而且还提供软件自由。

尽管 Luis Villa 提出了担忧,认为这会引发 “没有真正的苏格兰人” 问题,但我认为强调软件自由作为基本原则将使 OSI 能够以合理、可预测的方式有效地处理许可证提交暴露出 OSD 中未预见的差距或模糊性的情况,而 OSD 在政治上难以修订。(披露:当对许可证审查流程进行此更改时,我曾在 OSI 董事会任职。)这也是对 OSD(如自由软件基金会维护的 自由软件定义)不可避免地是不完善和不完整的尝试的诚实承认,旨在提炼围绕 FOSS 是什么的基础社区规范和期望。

软件自由是长期文化的产物。判断将 FOSS 规范性条件扩展到 API 的许可证是否提供软件自由应从审查传统开始。这得出一个直接的结论。如上所述,从几乎编程的早期开始,一直到现代开源社区的兴起,软件开发人员一直在分享和实践对无条件重新实现软件接口的权利的信念。从历史的角度来看,很难想到有什么比这种重新实现的权利更核心的软件自由了。

然而,这种探究不能完全是回顾性的,因为对软件自由的理解必然会随着新的社会或技术发展而变化。值得问的是,背离对不受限制的 API 的传统期望是否会促进开源许可的更广泛目标。乍一看,对于著作权共享许可来说,这似乎是正确的,因为理论上,API 著作权共享许可证的合规采用可以扩大开源软件社区。但是,将著作权共享的范围扩展到 API 的重新实现——传统上被视为与原始作品无关的软件——将违反另一项开源规范,即开源许可证的有限范围,这部分体现在 OSD 9 中。

另一个观察结果是,软件自由受到过于复杂和不可预测的许可安排的威胁,这些安排使合规性过于困难。对于 API 限制性类 FOSS 许可证来说,尤其是在著作权共享方面,情况很可能如此。例如,著作权共享许可证通常对授予准备衍生作品的许可施加条件。试图弄清楚什么是 Java 方法声明的衍生作品,或者一组 API 的 SSO,可能会成为一场合规噩梦。它是否包括 API 的重新实现?仅仅调用 API 的代码?Oracle 诉 Google 风格的 API 版权的基本模糊性与某些类型的软件专利权主张有些相似。不难想象,API 限制性许可证涵盖的版权收购者会采取专利流氓的诉讼策略。除了这种风险之外,接受 API 限制性许可证作为开源许可证还会进一步使美国等司法管辖区的 API 可版权性合法化,而在这些司法管辖区,法律问题目前尚未解决。

Oracle 诉 Google 影响的对现有开源许可证的解释也会类似地将熟悉的开源许可证条件扩展到仅涉及 API 的活动。由于与新许可证案例相同的原因,这种重新解释会将这些许可证转变为未能提供软件自由并推进开源目标的许可证。此外,它们还会颠覆这些许可证的作者以及几乎所有许可人和被许可人的意图和期望。

可能会有人认为,由于开源许可证主要(虽然并非完全如此)是版权许可证,因此如果它们的条件密切跟踪版权向 API 的扩展,那么这是必要的,即使不是有益的。对于可以明确起草以消除 Oracle 诉 Google 影响的新开源许可证来说,情况并非如此。至于对现有开源许可证的重新解释,虽然 API 可版权性问题仍未解决,但不宜放弃传统解释,而倾向于预测受 Oracle 诉 Google 影响且不熟悉开源文化的法院会做出什么决定。关于开源许可证的诉讼仍然不常见,有影响力的开源许可证解释已在技术社区中出现,几乎没有考虑法院可能如何行动。无论如何,从事解释常用开源许可证的法院很可能会被说服将 API 视为不受约束的。

有些人建议 GPL 的解释应充分利用基础版权权利的范围。这与将著作权共享视为对版权的“黑客行为”或“柔道动作”,旨在“将压迫者的暴力力量返还给压迫者自身”的观点有关。这可以在软件自由保护协会和 FSF 赞助的 著作权共享教程 中检测到,该教程 :“最强大的著作权共享力求[尽可能广泛地使用]版权授予作者的专有权,以最大限度地提高软件自由度。” 对于具有这种观点的人来说,专门推广 GPL 的 API 版权解释似乎是合乎逻辑的。但我不知道有任何强著作权共享的倡导者这样做过,并且 GPL 的文本和解释历史不支持这种解读。

偶尔有人表达的对 API 版权和 GPL 解释的略有不同的看法是,Oracle 诉 Google 可能会使强著作权共享原则建立在更可靠的法律基础上。同样,有时有人断言,强著作权共享一直以来都基于某种 API 可版权性的概念,这表明 Oracle 诉 Google 提供了一些追溯法律合法性。自由软件基金会(FSF)不持有后一种观点,FSF 在早期曾 反对将版权扩展 到用户界面。这种立场被纳入 GPLv2,GPLv2 有一个 很大程度上被忽视的条款,授权原始许可人排除会通过专利或受版权保护的接口限制“分发和/或使用……”的国家/地区。FSF 还 严厉批评 了 Oracle 对 Java API 版权所有权的主张。并且 FSF 从未质疑在非 GPL 许可证下重新实现 GPL 许可软件的 API 的权利(例如,FSF 版权所有的 GNU Readline 和 BSD 许可的 libedit)。如果证明强著作权共享理论存在一些法律缺陷,而 API 可版权性可以在某种程度上弥补这些缺陷,我认为最好要么接受对 GPL 著作权共享的较弱理解,要么寻求对 GPL 的修订,以在不依赖 API 版权的情况下重新制定强著作权共享。

如果 API 可版权性在最高法院的复审中幸存下来,那么许可证管理者、现有开源许可证的许可人和新开源许可证的起草者应采取建设性步骤,以最大限度地减少对开源的影响。广泛使用的开源许可证的管理者(如果存在)可以发布解释性指南,澄清 API 不受许可证的限制。对现有开源许可证的更新和全新的许可证可以使不受限制的 API 成为明确的政策。现有开源许可证的许可人可以在标准化的许可证声明中或通过外部承诺明确表示,他们不会将开源许可证条件视为对仅涉及 API 的活动施加任何限制。

接下来阅读什么
标签
Richard Fontana
Richard 是红帽法律部门产品和技术团队的高级商业律师。他的大部分工作都集中在与开源相关的法律问题上。

4 条评论

Richard,我认为您的文章应该更正。您误解了 CAL 许可证。它不是“限制 API 的新的类开源许可证”。CAL 许可证的著作权共享范围与当前使用的许多许可证完全相同,其中一些许可证早于 AGPLv3,这些许可证将著作权共享的范围定义为版权的范围。CAL 在这方面并非开创性的,如果 OSI 因此拒绝它,那么 OSI 将因其许可证审查过程是主观而非客观而受到质疑。正如您所指出的,最初的草案是专门为捕获 API 而编写的,但这方面是 OSI 在拒绝第一个版本时质疑的,并且正如您所指出的,这方面并未出现在第二个版本中,这表明 OSI 会拒绝将著作权共享扩展到版权范围之外的许可证。

现在将其称为“类开源”也是不真诚的。您在文章中没有提及您投票赞成批准 CAL 许可证作为 OSI 批准的许可证。您在 2020 年 2 月 6 日表示“在审查了最新草案后,我投了“通过”票。我对该许可证以及 Holochain 或其他未知许可人滥用的可能性仍有挥之不去的担忧,部分原因是早期的起草历史、Van 早期对这些草案的一些评论以及对狭隘商业利益专门提出的新著作权共享许可证的普遍怀疑。但是,我不认为这些担忧充分扎根于当前的许可证文本中,以至于我会建议拒绝或进行更长时间的讨论。如果该许可证获得批准,我不会建议任何人使用它。但从表面上看,该许可证,包括核心有趣的“用户数据要求”功能,在我看来符合 OSD 和软件自由的精神。”

嗨 Pam,我在该段落中提到的“类开源许可证”不是 CAL 1.0(今年早些时候 OSI 批准的许可证),而是 CAL 1.0-Beta,即 Van Lindberg 在 2019 年初最初提交的早期草案。您说得对,我支持 OSI 批准 *后来的* CAL 版本,该版本没有接口著作权共享功能。我还提出了关于 *早期* CAL 版本 CAL 1.0-Beta 的 OSD 合规性担忧,因为接口著作权共享功能。自从收到您的评论以来,我已经阅读了该段落多次,并与我在红帽的一些同事讨论过,我觉得它足够清楚,不需要对文章进行编辑,但我希望我对您的评论的回复有助于为读者澄清事情。

回复 作者 pchestek

作为一个外行,我能够理解它是类开源的 CAL 1.0-Beta 许可证,而不是通过 OSD 的 CAL 1.0 许可证。

顺便说一句,我认为这个讨论很吸引人。我必须说,我的第一反应是 API 的著作权共享似乎没问题,但您已经彻底说服了我,我们需要倡导重新实现 API 的内在权利,而与软件许可证无关。我现在认为这是最佳选择,堆栈排名。根据您的观点,我认为第二好的选择是,如果 Oracle 诉 Google 案使 API 具有版权,那么开源许可证应明确扩展以包括这项权利。至少,这将保护开源代码,开源代码正在成为世界上越来越大部分的代码,因此它自然会扩展。

回复 作者 fontana

与仅软件源代码相比,API 的主要区别(简单来说)是 API 需要数据和/或其他资源才能工作。您可以传输和复制源代码,但是除非您拥有数据或设备、照明、建筑物或 API 公开的任何资源,否则仅源代码许可模型将无法保证 API 的可用性。或者,如果代码安装在其他地方,API 将提供相同的资源并以相同的方式工作。因此,从这个意义上讲,许可 API 并不(总是)与许可软件相同。如果有人感兴趣,我们今年在芬兰开源、开放数据和 API 社区花费了大量时间来弄清楚这一点。我们的一些发现在这篇长文 https://www.osaango.com/blog/what-is-an-open-api 中。总的来说,我们认为开源许可涵盖并且可以涵盖 API 许可的很大一部分,但并非全部。

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