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.