非标准开源许可证的兴起引发了争论

2020-11-11 12:51:57

开源社区正在讨论开源许可应该有多自由。这场酝酿了两年的辩论的根源在于两方面的不满:一些开源供应商不满,因为开源许可条款阻碍了他们赚钱;而一些开发者不满,因为他们的软件被坏人用到了坏处。

因此,开发人员和供应商现在正在处理大量新的开源许可证,这些许可证只是名义上的开源。开发者和供应商可以把他们想出的任何许可证称为开源的,只要他们不说他们的许可证是“OSI批准的”。

开源倡议(Open Source Initiative,简称OSI)是在1998年提出开源定义的组织,它列出了软件许可证需要什么才有资格成为开源软件的十个项目。如今,OSI的功能有点像一个标准组织,软件许可证必须盖上该组织的批准印章,才能被接受为真正的标准组织。

问题是,这些非标准的开源许可证可能会让IT部门的事情变得棘手。

开源合规和支持公司Tidelift的联合创始人路易斯·维拉(Luis Villa)告诉《今日IT》(IT Pro Today),IT部门尤其习惯于这样一种想法:如果我们是从开源资源库(比如用于JavaScript包的NPM或用于Python包的PyPI)获得的,那么我们就拥有OSI或FSF的核心权限--使用、修改、再分发的权利--而这是一个摩擦非常小的环境。如果你是一名IT人员,你知道你从这些来源得到的每一件事可能都没有多少细节,但对于系统管理员来说,最基本的事情是非常简单、非常直截了当的,而且摩擦非常小。但这些近乎开放的许可证,或者开放但不完全开放的许可证,正出现在许多相同的存储库中。突然之间,这里出现了非常粗糙的边缘。

这些许可证中有许多宣称它们是基于OSI认可的知名许可证,这可能会导致人们认为它们遵循相同的规则,这可能会使许多不太顺利的情况变得更糟,这一事实可能会使情况变得更糟。这一事实可能会让许多许可证变得更糟糕,因为这些许可证中的许多都宣称它们是基于OSI认可的众所周知的许可证。发现其他情况可能代价高昂。

当前大量的人工开源许可证始于2018年10月,当时开源数据库公司MongoDB将其许可证从AGPLv3许可证改为Mongo所称的服务器端公共许可证(SSPL),试图解决一个商业问题。这一变化的原因是为了解决该公司与云提供商之间遇到的一个问题,这些云提供商使用MongoDB代码作为托管软件即服务版本的数据库的主干,而不向Mongo发送任何现金或捐款。

MongoDB联合创始人、时任首席技术官的艾略特·霍洛维茨(Eliot Horowitz)当时表示,市场越来越多地将软件作为一种服务消费,这创造了一个令人难以置信的机会,催生了新一波伟大的开源服务器端软件浪潮,MongoDB联合创始人、时任首席技术官的艾略特·霍洛维茨(Eliot Horowitz)表示。不幸的是,一旦一个开源项目变得有趣起来,对于没有开发该软件的云供应商来说,很容易捕捉到所有的价值,但却没有为社区做出任何贡献。我们为开源做出了巨大贡献,并从中受益,在影响许多组织的问题上,我们处于独特的领导地位。我们希望这将有助于激发更多项目,保护开源创新。

对于大多数用户来说,SSPL的条款与AGPLv3相同,只影响SaaS运营商,他们必须购买商业许可证,或者将他们正在使用的所有软件开源,以支持Mongo即服务。这些警告都不是开放源码定义所允许的,特别是第九点,它规定:“许可证不得对与许可软件一起分发的其他软件施加限制。例如,许可证不得坚持在同一媒体上分发的所有其他程序必须是开源软件。

MongoDB的工作人员对其许可证进行了几次修改,试图让OSI批准他们的许可证,但当许可证显然不会被批准时,SSPL最终退出了审批过程。然而,MongoDB继续使用SSPL来许可其数据库。

2019年6月,另一家开源数据库公司Cockroach Labs将其旗舰产品CockroachDB的许可证从Apache License Version 2改为所谓的Business Source License(BSL)。在这种情况下,该公司甚至没有假装它的许可证是开源的,而是将其称为可用的源代码许可证。

与MongoDB的许可证一样,这一变化不会影响用户,除非他们将其用于商业SaaS服务。

该公司在一份声明中表示,CockroachDB用户可以将CockroachDB扩展到任意数量的节点。他们可以使用CockroachDB或将其嵌入到他们的应用程序中(无论他们是将这些应用程序交付给客户还是将其作为服务运行)。他们甚至可以在内部将其作为一项服务运行。你唯一不能做的事情就是在没有购买许可证的情况下提供商业版本的CockroachDB作为服务。

Tidelift的维拉表示,这个问题与IT部门被迫应对的不断演变的软件许可环境有关。

在早期,理解你所有的执照是很容易的,因为它们只有5个。维拉说:你有一盏灯;你需要知道四张驾照,而且你很棒。

当我们得到更复杂的生态系统时,它又变得非常复杂,你不得不追踪几十或数百个许可证。然后我们有了一大堆工具-黑鸭,潮汐,诸如此类的东西-所以它又变得更容易了。现在,我们又在许可层增加了一大堆复杂性,钟摆又摆了起来。想必,工具会对此有所帮助,我们会迎头赶上并提供帮助。但它的具体形式仍是我们仍在研究的问题。

并不是所有创建开放源码许可证的尝试都是为了保护商业利益。例如,就在蟑螂实验室更改许可证的同时,Contributor Covenant(Linux和其他组织使用的行为准则)的创建者Coraline Ada Ehmke提出了Hippocratic许可证,这是麻省理工学院修改后的许可证,旨在确保软件只用于道德目的。

Ehmke在许可证的网站上写道,政治和软件是如此错综复杂,以至于无法合理地分开。考虑一下GPS软件,它可以告诉你如何到达餐厅;它也可以用来引导军用无人机指向目标。解锁你手机的面部识别软件?它被用来记录、跟踪和瞄准持不同政见者的活动。

该许可证试图通过禁止使用许可证涵盖的软件来解决这些问题,以违反联合国或任何司法管辖区的人权法规定的人权原则。这一意图与OSI开放源码定义中的第六条相矛盾:“许可证不得限制任何人在特定的努力领域使用该程序。例如,它可能不会限制该程序用于商业或用于基因研究。

希波克拉底许可远不是通过软件许可来解决道德、政治或伦理问题的唯一尝试。

事实上,大约在Ehmke创建希波克拉底许可证的同时,她创立了伦理来源运动(Ethical Source Movement),倡导其他伦理许可证。例如,《不伤害许可证》禁止使用受保护软件宣扬暴力、仇恨、破坏环境或造成身体或精神伤害或从中获利;《大气许可证》附带化石燃料撤资条款;《(合作)非暴力公共许可证》《旨在确保对现代世界中创作经常被利用的各种形式的暴力、胁迫和歧视提供基本保护》。这份许可证涵盖了几种形式的创意作品,但考虑到它作为一种创新工具的力量,它对软件有额外的条款,而不是它的创意能力。

合乎道德的开源许可的问题之一是,它们的警告往往含糊不清,这可能会导致未来的困难。作为一个例子,维拉指出了第一个道德许可,即JSLint许可,这是麻省理工学院的许可,但只有一行字进行了修改,该软件应该用于好的方面,而不是坏的方面。

只要有一位JSLint贡献者在该许可下就能真正推动这一点,那么道德许可肯定是正确的,但我认为商业甚至传统的开源许可也是如此。这只是一个谁利用了这种含糊不清的问题。

这些许可证都没有得到OSI的批准,也不太可能得到批准。普遍的共识是,这些许可证试图解决的问题超出了单纯的软件许可的范围。

尽管Ehmke说她打算最终将Hippocratic许可证提交给OSI批准,OSI主席约书亚·西蒙斯表示,到目前为止还没有实现这一目标。他补充说,如果最终提交,批准的可能性不大。

西蒙斯说:我个人的观点是,它不会通过审查。对许可证和其他类似问题的讨论已经确定了许多需要解决的问题,我怀疑,如果不从根本上改变许可证,其中一些问题就无法得到解决。