从法律上讲,它是其软件创造者的知识产权,而软件开发社区对该软件拥有的任何权利,都是由软件创造者通过软件许可证授予的。
然而,这种授权是否会改变软件创造者对其软件最初的构思主张?更为重要的是,授权是否将创造者开发者排除在围绕软件使用和开发而自然形成的市场之外,使其丧失专有权?
换句话说,如果一家初创软件厂商通过开源的方式,在全新的市场上异军突起,那么该软件的共建开发者是否可以平等享有这一创新成果的权利?
同样的,开发者社区能否将其所贡献的内容,转移到其他平台上?反之,如果因此造成客户流失等损失,软件创造者能否通过合法可诉的渠道进行维权?
如今,Terraform 的贡献开发者与其创建者和供应商 HashiCorp 之间的裂痕将以上问题推到了风口浪尖。今年8月,HashiCorp宣布将Terraform和其他产品的许可模式从自由、措辞宽松的许可模式Mozilla Public License 2.0,转为MariaDB的Business Source License 1.1这一严苛、简短的条款。(译者注:Business Source License 1.1并非开源协议,用户可以获取源代码,在非生产环境下使用不受限,但商用受限。)
商业源代码许可
BUSL(Business Source License,简写BSL/BUSL)非常简短,甚至可以写在餐巾纸上。BUSL的第一句且最重要的一句话是:专利许可人特此授予您复制、修改、创建衍生作品、重新分发和非生产性使用许可作品的权利。这里的关键词是 “非生产”,即不能通过开源产品获得商业利益,除了专利许可人以书面形式许可、并在条款下允许的活动以外。(HashiCorp和数据库制造商MariaDB均拒绝对此条例发表评论)。
然而,HashiCorp(其股票于 2021 年 12 月在纳斯达克交易所上市)这种放弃开放许可条款的行为绝非首例,也远非最后一次。最近的类似情况还有:
红帽公司(Red Hat)限制其 RHEL 的代码只对商业客户开放。
MongoDB 在 2018 年推出了服务器端公共许可证(SSPL),这是一种”源代码可用”许可证,规定任何为代码做出贡献的人,都必须公开为所有人提供让代码可操作所需的一切内容。
Redis 限制使用专门用于其内存缓存和数据库附加模块的代码,并在一篇经过修改的网帖中(未直接提及 AWS ElastiCache)声称 ”云提供商”试图从重新打包的专有管理服务中获利。
因此,产生了一个更深层次的问题:软件的创造者是否应该被授予或允许拥有并运营该产品形成的市场,或者生态系统的独家权利?如果不可以,那么这意味着开源许可证可能会被供应商锁定,也违背开源的初衷;如果可以,那么开发将有机会随时围绕该产品建立自己的市场,作为自己谈判的工具。
当然,从另外一个角度考量,如果许可方试图利用其软件制定的任何标准形成的生态系统牟取利益,这一协议可以用以约束许可方,以防其改变条款。
SUSE 在去年 7 月分叉了最新公开的 RHEL 代码,以构建新的发行版,与红帽 CentOS 的最新构建版不同,该发行版将与 RHEL 兼容。
亚马逊网络服务公司(Amazon Web Services)于 2021 年分叉了 Elasticsearch 的代码,命名为 OpenSearch,表面上是为了回应 Elasticsearch 强加给 AWS 的新条款,AWS 称这将限制其在云平台上提供搜索服务的能力。
Node.js社区成员多次对Node.js进行分叉,因为他们认为Node.js的许可条款遭到了未经许可的修改。
也许最突出的例子是 2015 年发生的,当时Google将新兴容器生态系统从 Docker 移植到了 Kubernetes。这一切发生得如此迅速而干脆,由此带来的市场转变相当彻底,以至于当时的市场分析师都无法理解发生了什么。
如果开放是相对的,那么仁义也是有度的。一个组织可以多大程度向开源社区开放,而又不会使其资产在投资者眼中贬值呢?如果没有能力控制谁应该从技术中获利,那么一开始发明这种技术的意义何在?
非生产与商用的较量
HashiCorp 对这个问题的立场已非常明确。在 2022 年 10 月接受The New Stack采访时,HashiCorp 首席执行官David McJannet说,其公司建立了 Terraform 控制台(基础设施即代码语言的解释器)“以使我们的项目成为开源项目”。
但McJannet又补充声明道:“需要说明的是,这一Terraform 控制台100%是由HashiCorp控制的。”
结果如何呢?广大的 Terraform 开发者社区的第一反应是脱离 HashiCorp,采用最新的开源许可 Terraform,构建名为 OpenTofu 的新平台,并将其捐赠给 Linux 基金会。更重要的是,这些开发人员正在将他们支持 Terraform 的产品和项目迁移到 OpenTofu,从而将 Terraform 生态系统的大部分迁移到一个全新的平台上。
OpenTofu 的主要贡献开发者之一 Pawel Hytry 在接受采访时说:”使用基础设施即代码(Infrastructure as Code)构建基础设施部署的公司,其工作前提是保持代码开源。这意味着,他们完全有信心耗费数年时间在此框架基础上构建自己的基础设施。”
“现在这个前提被打破了,”Hytry 接着说。“在我看来,在广泛的生态系统下,如果前提被打破,总会出现新的开源项目替代(不再开源的项目)。”
“我认为这可能是一个真正的转折点,”杨百翰大学法律系教授Clark Asay说。
“很明显,开源软件运动多年来已经被显著地商业化了……围绕特定项目的开源社区与领导、收购或指导他们的组织之间产生了相当多的负面事件。与过去二三十年的情况完全不同,这些类型的事件可能会将软件开发推向与之相悖的方向。”
改变开源协议合法吗?
HashiCorp从开源转而采用限制性更强的许可证,是否真的触犯了法律?
美国法律规定,想法或方法的创作者对其作品的使用范围具有解释权,但如果这个想法被指属于公共领域,任何人声称对其原创都是不合法的。
众所周知,开源软件不属于公共领域,其原创者保留通过授权许可开放其可用性的权利。从技术上讲,这意味着一款软件的开源状态永远不能被假定为永久性的。但是,如果其许可证的措辞让人认为其期限是无限的,那么在此之后添加新限制,就可能会被判违反最初的许可证条款和声明。
换句话说,任何法律都不能保证软件作品发布方式的相对开放性。但是,违反软件最初发布时所依据的条款可能是违法的。从广义上讲,当一个厂商从许可协议转向限制性协议,而限制性协议又与先前许可协议的条款相抵触时,这样做是否合法?
Red Hat公司高级商业顾问、通用公共许可证第 3 版的合著者Richard Fontana认为:“这不一定合法。”而取决于具体情况。他解释道,如果某软件不包含其他人授权的组件,那么软件的唯一版权持有者就拥有多种授权方式。
从开源模式转向专有许可模式是一种选择。但 GPLv3 等这类典型的开源许可是永久且不可撤销的,且会对转换模式施加限制。正如 Fontana 所说:“这些限制是社区(在使用这类开源协议前)认可的。”
“只要你遵守条件,你的许可证就是永久的。”因此,开源软件的许可方不能取消他们授予的许可。但是,今后项目或代码库中进行新的修改或添加的时候,他们有权决定使用不同的许可证。
Fontana 补充说,在特殊情况下,比如其代码库已经积累了其他公司或领域的贡献,许可方可能就无权对其之前公开的许可条款施加限制。
“大多数公司对该问题往往会非常小心谨慎。”Fontana 说,“但我也确实看到开源社区发生这样的事情,大家会质疑他们是否有权这样做?甚至问题愈演愈烈。”
“但事实上,这是合法的,”杨百翰大学的Clark Asay回复道,“但我要补充几点注意事项。”
“大家聚集并一同合作数年,为这些项目投入了大量的时间和资源,很大程度上是基于这些规范和成员之间的信任,即每个人在某种程度上都是站在同一条战线上的。但严格来说,根据版权法,只要组织被认为是该软件的作者、共同作者或多个作者之一,那么他们就可以根据一套非常宽松的条款对其进行许可,然后再选择非常严格的条款。”
Clark Asay还解释了创始人与共建者之间的关系:在外人看来,这两种角色之间的界限可能会随着时间的推移而变得模糊,但从法律的角度来看通常不会。
而原创者和被许可人之间出现的协议违背,是信任问题。
然而,Clark Asay认为,他们之间身份的很难界定,双方被视为共同作者也并非不可能,法律上也有判定外部贡献者为作品主体提供了大部分内容的先例。
【这一先例虽然在我们所处领域之外,却对我们产生了深远的影响:2000 年,美国第九巡回上诉法院对纪录片合作者 Jefri Aalmuhammed 控告该片主要制片人兼导演Spike Lee一案的判决。Aalmuhammed 辩称,由于电影《Malcolm X》中有很多内容都是他本人直接负责制作的,因此他事实上已成为Spike Lee的 “合著者”。因此,他认为自己有权分享影片的利润。(1976 年的《版权法》没有明确定义“作者”,但后来的判例法却将制片人、导演、甚至编辑都归结为 “作者”。)】
或许这个判决并未让任何人满意,但却指明了在没有明确合同的情况下,判定某人是否有资格成为作品共同作者的三点检验标准:
个人或实体对整个作品的控制程度;
各方共同合作意图的某种象征(假定存在信任的某种重要理由);
缺乏评估各方对作品的贡献程度的公式,否则将无法确定某人是否为共同作者。
Clark Asay教授认为,许可证不是合同,因此,如果许可证没有说明共建者不是共同作者,那么集体或自愿参与的共建者能否判定为开源软件的共同作者,这还是个有待商榷的问题。但如果开源产品没有出售或产生收入,那么划分收益问题可能就没有实际意义。
最后,问题可能会归结为:谁应该是软件的最大获利者?这需要最高法院进行决议,但人们可能对此产生分歧:作品所依赖的市场,能否成为作品本身的一部分?或者说产品生态能否体现一个软件的价值?
中心共享服务
“Terraform 的建立始终基于开源的期望。”OpenTofu 的 Pawel Hytry 解释说,“我们的前提是:我们有社区,我们一起构建这个系统。当然,HashiCorp是推动者,但也有其他贡献者。这意味着,在基础设施即代码(Infrastructure as Code)构建基础架构部署的公司,其工作的前提是保持开源,这意味着,他们完全有信心耗费数年时间在此框架基础上构建自己的基础设施。。”
Hytry担任Spacelift公司的首席执行官,Spacelift是基础设施即代码策略代理和管理平台的制造商,该平台旨在与Terraform以及Red Hat Ansible、Pulumi和现在的OpenTofu等平台协同工作。HashiCorp 将 Terraform 推向市场时,已因生产集群管理平台 Vagrant 而闻名。但可以说,是 Spacelift 和其他类似产品让 Terraform 崭露头角,并赋予其合法地位。
曾几何时,HashiCorp 可能也会提出同样的论点。一年半前,且就在本刊物上,HashiCorp被视为建立 “培育社区 ”的典范,正如撰稿人Emily Omier所说,其并不是一个为了与公司进行更多交易的团体。
现在,根据 Hytry 的说法,希望成为 HashiCorp Terraform 注册表中配置模块官方提供商的组织,必须事先承诺生产 Terraform 专属的模块。这一条款的变化,可能会让自以为遵循Mozilla公共许可证规定的HashiConf合作供应商感到意外。
“因此,我们建立了自己的开放式注册表,”Hytry 继续说,“这有点像玩猫捉老鼠的游戏......没有一家大型云计算提供商会同意有人规定他们的提供商、他们的连接器可以被用来制造垄断。”
OpenTofu基础设施定义注册表或“供应商”目前出现在GitHub上,不过有消息称GitHub只是一个临时主机。就目前而言,它可能是处于过渡阶段的生态系统的临时家园。
如果你不熟悉供应商的情况,那么对McJannet 于 10 月 10 日在 HashiConf 第一天主题演讲中对与会者使用的措辞可能会有完全不同的理解。在演讲中,他解释了他一直称之为 “开源 ”的 Terraform 在商业产品生命周期中的作用。在他身后,一张幻灯片将生命周期分为三个阶段,其中后两个阶段代表了生命周期的商业部分。
他解释说,客户刚签约时,会有大约六个月的时间在苦苦寻找方向,他们的平台团队被混乱的局面压得喘不过气来,他们的安全模式也是空中楼阁。McJannet 说,“而在这段的时间里,因为已经完成的整合工作有助于将一些核心概念标准化,所以我们的开源产品得到了广泛应用,甚至可能比云原生产品的应用还要多。”
“然后,总得有人将其置于控制之下。”他继续说,“一个核心团队将被指派建立秩序”。有了秩序,与客户之间的工作安排就会更加统一、易于管理和交易。这位首席执行官将该核心团队或平台团队称为公司采用 Terraform 的自然结果。
McJannet 表示:“这一直是我们产品理念的基础。”如果不清楚的话,我们的开源产品一直都是为了解决用户1.0版本的问题而设计的;而我们的商业产品是为了满足全球2000强公司的需求,其能够满足公司中心共享服务的运行需求。”
改变开源协议合乎道德吗?
Red Hat 的 Richard Fontana说:“当我们谈论开源软件时,我发现有不同的道德体系在发挥作用。”如果你有权将一个项目的许可证从非常宽松的开源许可证变更为非开源许可证(一种限制性更强的开源许可证),那么从某种程度来说,这触及了道德底线,但却在法律体系允许的范围内。
但 Fontana 断言,在开源环境下,情况会更加复杂。
当一些有争议的许可证发生变更时,就如同我们经常听到“诱饵替换(bait-and-switch)”这个短语一样,是可能涉及到道德问题的。”(译者注:诱饵替换,又称诱售法,指针对某些关键词制作网页,使其位于搜索引擎的结果前列之后,再把网页替换成其他内容。)
Fontana 看到了一种新出现的模式,它与McJannet (HashiCorp 首席执行官)的会议幻灯片看起来非常吻合:新成立的公司先主张使用一个非常宽松的开源许可证(比 GPLv3 更宽松,更像 MPL),直到他们成功建立起一个开源社区。”他说:“如果你一开始没有使用开源许可证,那么你可能就不会如此成功地围绕项目建立社区。但如果你使用的许可证有限制,那么它就不是开源的!”
“厂商需要几年的时间才能建立起社区的好感和正向期望。然后,在完全合法的情况下,厂商将许可证改为非开放源码许可证。”Fontana说:“我认为这涉及到一个道德问题。问题的一部分在于,你是否对社区通知到位?你是否为社区提供机会,给你想更改许可证的问题提供反馈意见?我相信,在一个开源项目花费大量时间建立期望后,再切换到不同的模式,这是有问题的。”
可以断言,McJannet(HashiCorp 首席执行官)已经发出了这样的通知——从他的采访中推断出的线索能被解释为“通知 ”吗?通知必须是以书面或是法律文书的形式传达吗?
这就需要法律人士通过法律来解决了。
杨百翰大学法律系教授Clark Asay评论道:“我认为,很大程度上开源社区是在规范和信任的基础上运作的,具备公认的定义和理解。但是,一旦这种信任开始瓦解,就需要仲裁者——由某个人或某件事来定义游戏规则。过去,游戏是基于这些规范进行的,如果这些规范消失了,那么就需要其他东西来替代。取而代之的‘可能是’版权法和专利法中的默认规则(但有些规则是非常不明确的,因为开源软件多年来并没有太多的法律诉讼)让法院介入这一领域处理,可能有助于提供明确的指导原则。但与此同时,也可能很快出现更多的问题。
OpenTofu 的 Hytry 说:“人们需要开源,他们希望拥有开源的自由。任何人、用户、公司都不喜欢依赖别人,尤其是当别人破坏了自己最初建立的框架和初衷。因此,无论公司规模有多大,开源最终都会获得胜利。”
如果字段的最大可能长度超过255字节,那么长度值可能…
只能说作者太用心了,优秀
感谢详解
一般干个7-8年(即30岁左右),能做到年入40w-50w;有…
230721