引言:
数据库制造商 Redis Labs 本周将公司开发的Redis 模块从 AGPL 迁移到将 Apache v2.0 与 Commons Clause 相结合的许可证,对许可证涵盖的软件作了限制。许可证的变更意味着自研 Redis 模块 - RediSearch,Redis Graph,ReJSON,ReBloom 和 Redis-ML 将不再是开源软件,而是源码可用(source available)。
新许可证限制了云提供商向客户提供这些 Redis 模块的能力,Redis Labs 可能会成为包含这些附加组件的唯一服务销售商。 但是,Redis 数据库代码仍属于 BSD 许可证。
Redis Labs 并不是唯一一家做出这样改变的公司。5月,Neo4j 图数据库在其 AGPL 许可证中添加了 Commons Clause。
Redis Labs 的联合创始人兼首席技术官 Yiftach Shoolman 表示:“多年来,云提供商通过销售基于开源项目的云服务,可从中获利数亿美元,可这些项目实际上并不是他们自己开发的,如 Docker,Elasticsearch,Hadoop,Redis 和 Spark。这阻碍了社区投资开发开源代码,因为任何潜在的好处都归云提供商而不是代码开发人员或他们的赞助商。”
Redis的license变更许可证引发开源社区热议,大家比较关心的问题主要集中在这几个方面:Redis 还开源吗?新出现的 Commons Clause 到底包含哪些内容?协议变更对用户的直接影响有哪些?下面就由小编为您详细解答,关于此次Redis开源协议变更大家关心的一些问题。
Q:Redis协议到底做了哪些变更?
A:为了让大家更清楚的了解变更点,小编特意梳理了如下表格供大家参考:
| 变更前 | 变更后 | 备注 |
Redis Core | BSD | BSD | 不变 |
Redis Modules | AGPL | AGPL | 不变 |
Redis Modules(RedisLabs公司创办) | AGPL | Apache 2.0 with Commons Clause | 涉及模块:RediSearch, Redis Graph, ReJSON, Redis-ML, Rebloom |
表1.Redis协议变更范围
Q:新出现的 Commons Clause 到底是什么东东?
A:Commons Clause v1.0 的介绍:
本软件由许可方根据以下定义的条款提供给您,但须符合以下条件。
在不限制许可中的其他条件的情况下,根据许可证授予的权利不包括、并且不授予您销售软件的权利。
综上所述,“出售”是指根据许可证授予您的任何或所有权利,以向第三方提供费用或其他报酬(包括但不限于与软件相关的托管或咨询/支持服务的费用),产品或服务的价值完全或基本上来自软件的功能。许可证要求的任何许可声明或归属也必须包含此 Commons Cause License Condition 声明。
简单地说就是:不许销售,不存在商业环境。
Q:Redis作者对此是怎么看的?
A:Redis作者antirez表态:“对于我将开发的Redis模块,比如Disque,我会选择AGPL
我们生活在云时代,所以使用新许可证会强制其他SaaS公司重新提交回他们的改进。然而,这不适用于Redis本身。 Redis是10年集体努力的成果,是我们可以一起做其他事情的基础,这个基础必须有尽可能多的可能性,即使用BSD许可证。”
Q:Redis中国用户组(CRUG)如何解读这件事情?
A:Commons Clause 的初衷,是为了抵御一些不良行为。如那些使用源代码,却不对开源代码维护做出补偿的公司,但这个License在开源界存在很在的争议。如OSI VM Brasseur 副总裁吐槽 Commons Clause 的销售禁令表述不明晰,可能会面临法律问题。OSI 总裁则认为,这种许可证剥夺了软件自由。
的确,新许可证对使用Redis Module的商业公司影响较大,Commons Clause 并未给出支持开源软件的解决方案,而是将开源软件变成了专有软件,并将所有开发者的开源贡献成果交由 Redis Labs 来控制,因为Redis Labs 是这些组件的唯一服务销售商。
这限制了其他商用公司向客户提供这些 Redis 模块的能力。Redis Labs 是否能够通过Commons Clause获得更多好处,需要持续观望。
Q:云服务厂商的表现如何?
A:华为云分布式缓存服务DCS提供云上的Redis服务,为用户提供Redis Core的基础能力,并未提供Redis Module相关能力,此次协议变更对用户是没有影响的。华为云在积极参与开源活动的同时,尊重开源代码的知识产权,严格遵守开源协议的要求,为用户提供更优质的云服务。