Redis Labs 再次更改开源许可证,但 Redis 本身不受影响

news/2024/7/7 20:13:23 标签: 数据库, 人工智能

其实「Redis Labs 再次更改开源许可证」这个说法有标题党的嫌疑,但看到 Redis Labs 的 CTO 也表示这次的变更确实是关于许可证的变更。既然如此,那就顺道借题发挥一下吧,还请各位轻喷。

a66abeeabfc890ff69a19c82fec077f6a09.jpg
△ Redis Labs 的官方公告 https://redislabs.com/blog/redis-labs-modules-license-changes/

先解释一下 Redis Labs 这次对许可证的变更具体是什么情况。

首先要明确的是:由始至终,Redis 本身都没有变更过其开源许可证。Redis 作者 antirez 也早已澄清过,Redis 从前,现在,将来都会继续使用 BSD 开源许可证。所以对于「Redis 不再开源」这种以讹传讹的说法,就让它到此为止吧。

f868701ad565a67c61f4abcd6f8096026d7.jpg
△ 坚定 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 毫不客气地“开喷”了:

4a58eeaaa3b14c00b5e6a035c3a3f77361e.jpg

Aniszczyk 还指出:“一些云提供商正是开源社区的最大贡献者。”比如说,谷歌和微软一直在推动其在云开源方面的工作。实际上,微软也在公司内部正式推动开源的开发模式。

Aniszczyk 并不是唯一一个反对 Redis 开源立场的人。Apache 软件基金会的联合创始人 Jim Jagielski 在推特写道:“谁要是认为开源界20多年来没有遇到过像目前这样必须面对的情况,他要么是无知,要么是故意说假话。”他还表示,Apache Web 服务器的开发者一直很乐于被商业公司“搭便车”,因为这可以进一步确保为所有 Web 用户提供一个开放公平的竞争环境。

9592c137af4b3ab33d85a771cb5fd740c8f.jpg

早些时候,开源促进会(OSI)重申了对开源定义的支持,这个举动也得到了 Debian、Mozilla 和 Document 基金会等众多组织的支持。OSI 表示:“如果没有对开源的标准定义,软件开发是不可能走下去的。如果任何人都可以提出自己对开源的定义,那么这个世界就会缺乏信任,而如果没有了信任,就不会有社区,不会有合作,也不会有创新。

围绕 Redis Labs 等开源软件和云厂商之间的纠葛已经产生了足够多的争论。现在,Redis Labs 使用了新的 RSAL 许可证,并且不是开源的,最后的结果会是如何呢,我们且静待观察。


http://www.niftyadmin.cn/n/835530.html

相关文章

Python--day38--JoinableQueue解决生产者消费者模型

############################# # 在消费者这一端:    #每次获取一个数据    #处理一个数据    #发送一个记号:标志一个数据被处理成功#在生产者这一端:  #每一次生成一个数据  #且每一次生产的数据都放在队列中  #在队列中…

黑客帝国装逼的代码雨

在桌面新建一个.txt文件&#xff0c;把下面代码放进去&#xff0c;再把后缀名改成.html&#xff0c;双击打开就好了 <!DOCTYPE html> <html> <head><title>黑客帝国</title> </head> <body> <canvas id"canvas">&l…

如何将数组数据写入文件

使用file_put_contents()将数组数据写入文件 $arr array( name>李逵&#xff0c; age>99, sex>男 ) $str var_export($arr,TRUE); 文章来源&#xff1a;刘俊涛的博客 地址&#xff1a;http://www.cnblogs.com/lovebing 欢迎关注&#xff0c;有问题一起学习欢迎留言、…

Android Bundle详解

1.Bundle简介&#xff1a; Bundle主要用于传输数据&#xff0c;它保存的数据&#xff0c;是以key-value的形式存储的。Bundle常用于在Activity间传递数据 &#xff0c;当不bundle传递的是对象或对象数组时&#xff0c;必须实现Serializable或Parcelable接口&#xff0c;下面分别…

公共DNS服务器整理

转载请注明文章出处&#xff1a;https://tlanyan.me/public-dns... 本文整理知名的国内外公共DNS服务器。稳定、可靠、优质的DNS服务会消耗不少资源&#xff0c;因此对公众开发的DNS服务一般由大公司、机构或ISP提供。 不少公司提供了各具特色的DNS服务&#xff0c;本文将根据官…

15分钟在笔记本上搭建 Kubernetes + Istio开发环境

2019独角兽企业重金招聘Python工程师标准>>> 11月13~15日&#xff0c;KubeCon 上海大会召开&#xff0c;云原生是这个秋天最火热的技术。很多同学来问如何上手 Kubernetes和Istio 服务网格开发。本文将帮助你利用Docker CE桌面版&#xff0c;15分钟在笔记本上从零搭…

我的文章01号

测试一下博客怎么样 看样还不错&#xff01;哈哈

JavaScript函数--声明和调用、形参与实参

1、JavaScript函数的声明和调用&#xff1a; JavaScript函数的声明和调用:就是把一段相对独立的具有特定功能的代码块封装起来&#xff0c;(写到一个地方) 会形成一个独立实体&#xff0c;就是函数&#xff0c;可以起个名字(函数名)&#xff0c;在后续的开发中可以反复调用函数…