其实「Redis Labs 再次更改开源许可证」这个说法有标题党的嫌疑,但看到 Redis Labs 的 CTO 也表示这次的变更确实是关于许可证的变更。既然如此,那就顺道借题发挥一下吧,还请各位轻喷。
△ Redis Labs 的官方公告 https://redislabs.com/blog/redis-labs-modules-license-changes/
先解释一下 Redis Labs 这次对许可证的变更具体是什么情况。
首先要明确的是:由始至终,Redis 本身都没有变更过其开源许可证。Redis 作者 antirez 也早已澄清过,Redis 从前,现在,将来都会继续使用 BSD 开源许可证。所以对于「Redis 不再开源」这种以讹传讹的说法,就让它到此为止吧。
△ 坚定 BSD 开源许可证不动摇 http://antirez.com/news/120
那改变许可证的是什么产品?根据开源中国此前的报道,Redis Labs 自研的某些 Redis 模块(RediSearch, Redis Graph, ReJSON, ReBloom 和 Redis-ML)从 AGPL 变更为 Commons Clause 和 Apache-2.0 相结合的许可证(Apache2 modified with Commons Clause)。也就是说,这些模块将根据 Common Clause 发布(使用 Apache-2.0 作为基本许可证)。其中,Commons Clause 是在开源许可证的基础上实施商业限制的部分。Commons Clause 禁止使用方销售来自采用其许可条款的代码的软件,还阻止他们提供相应的咨询或支持服务。所以该消息一经发布就在业界引起了不小的轰动,许多声音都认为这是在和云厂商正面硬刚。
为什么要这样做?很简单的道理 —— 天下熙熙皆为利来,天下攘攘皆为利往。Redis Labs 认为,现代云计算公司凭借其垄断性的市场地位,利用成功的开源项目赚得盆满钵满,但到头来却不为这些项目做出任何贡献。
所以说到底,还是商业利益诉求。
而今天,刚获得6000万美元融资的 Redis Labs 宣布再次改变其自研 Redis 模块的许可证 —— 变更为 Redis 源码可用许可证(Redis Source AvAIlable License, 简称 RSAL)。
△ 有了 RSAL 之后,Redis Labs 旗下产品使用的许可证构成
Redis Labs CTO 表示这次变更许可证的举措考虑到了以下三个方面的因素:
-
使用 Commons Clause 和 Apache-2.0 相结合的许可证引起了用户的困惑,他们认为只受 Apache-2.0 开源许可证条款的约束
-
Commons Clause 中对一些条款的描述不够清楚(比如包括“实质性”的含义)
-
某些 Commons Clause 支持的限制条款与 Redis Labs 计划围绕 Redis 模块发展生态系统的意图相违背
考虑到所有这些因素,并在与社区成员进行多次讨论后,Redis Labs 决定移除 Commons Clause,并将 Redis 模块的许可证更改为 Redis 源码可用许可证(RSAL)。
什么是 Redis 源码可用许可证(RSAL)?
该许可证适用于 Redis Labs 自研的某些 Redis 模块。用户仍可以获取代码、修改代码,将代码集成到应用程序中并进行分发或提供支持服务,但该应用程序不能是数据库产品、缓存引擎、流处理引擎、搜索引擎、索引引擎或者机器学习/深度学习/AI服务引擎。根据定义,开源许可证不得有限制。这个新许可证却有限制,所以严格来说它不是一种开源许可证。
Redis Labs CTO 写道:“云厂商一再利用成功的开源软件坐享渔翁之利,却没有对社区产生贡献。这些云厂商使用并非由它们开发的开源软件重新打包成竞争性的专有服务产品,并利用其市场地位从这些开源软件中获取可观的收入。”
由此可见,新许可证的目的正是为了阻止这个现象。Redis Labs 不希望其他公司以任何方式从 Redis 身上赚钱。
谈到钱,不可避免就会引起争论。尤其是在「开源」这个背景下。
所以,对于 Redis Labs 的开源立场,云原生计算基金会首席技术官 Chris Aniszczyk 毫不客气地“开喷”了:
Aniszczyk 还指出:“一些云提供商正是开源社区的最大贡献者。”比如说,谷歌和微软一直在推动其在云开源方面的工作。实际上,微软也在公司内部正式推动开源的开发模式。
Aniszczyk 并不是唯一一个反对 Redis 开源立场的人。Apache 软件基金会的联合创始人 Jim Jagielski 在推特写道:“谁要是认为开源界20多年来没有遇到过像目前这样必须面对的情况,他要么是无知,要么是故意说假话。”他还表示,Apache Web 服务器的开发者一直很乐于被商业公司“搭便车”,因为这可以进一步确保为所有 Web 用户提供一个开放公平的竞争环境。
早些时候,开源促进会(OSI)重申了对开源定义的支持,这个举动也得到了 Debian、Mozilla 和 Document 基金会等众多组织的支持。OSI 表示:“如果没有对开源的标准定义,软件开发是不可能走下去的。如果任何人都可以提出自己对开源的定义,那么这个世界就会缺乏信任,而如果没有了信任,就不会有社区,不会有合作,也不会有创新。”
围绕 Redis Labs 等开源软件和云厂商之间的纠葛已经产生了足够多的争论。现在,Redis Labs 使用了新的 RSAL 许可证,并且不是开源的,最后的结果会是如何呢,我们且静待观察。