ELv2是一种什么样的存在?StarRocks为何惹众怒?

a3c5d7b4c553124daec32e9a8e4aec1c.gif

59d8653a95d4ac1c7b86f005fd96a6c7.png

| 作者:卫sir

| 编辑:刘雪洁

| 设计:朱亿钦

| 责编:王玥敏

引言

开源生态可持续的底线是信任, 丢掉了信任就什么都不是。而整个社会与经济运行的底层逻辑就是信任,包含了用户与投资人的信任。

国内的开源生态正在蓬勃发展,摸着石头过河磕磕碰碰在所难免,关键是坚守底线,在学习中犯错、改错、成长,不断地与时俱进才是硬道理。

开源的世界,有法律,有规则,还有潜规则。虽然践踏潜规则,并不会违反开源世界的法律,但依然会造成社会资本的损失。所谓信用破产,也是一种破产。

——开源社KAIYUANSHE,Ted、庄表伟

最近一个叫 StarRocks 的软件出圈了,这是一款MPP数据库软件,以前叫做DorisDB,源自 Apache Doris ,其厂商鼎石科技发表了一篇文章《 StarRocks 开源—携手未来,星辰大海!》,惹恼了一众开源人士,以至于有人写出了《对 StarRocks 真假开源之争的灵魂九问》,对StarRocks大加批驳,认为其所作所为实在令人不齿。另有一篇文章《你们想知道的一切,都在这里了》,是 Apache Doris 项目官方写的,想都不用想,肯定也是痛斥StarRocks的。

我以前没有关注过他们的恩恩怨怨,于是仔细看了这两篇文章,发现主要是两个点惹了众怒,一是以前叫 DorisDB 就很令人不爽,因为涉嫌碰瓷 Apache Doris 项目的品牌;二是这次号称开源更令人不爽,明明不是开源的,为什么要给自己贴金说是开源的?

有人说,人家把代码放在 Github 上了啊,那不就是开源的吗?

那还真不是,开源的标准是很高的,仅仅放在 Github 上,只能说“源码可见”( source avaliable ),不代表就是开源的。

开源的标准由 OSI 主持,它有一个开源定义( OSD ),满足 OSD 的才是开源。而StarRocks所选用的ELv2许可证并不满足 OSD ,所以它不是开源的。(具体不符合哪一条,下面会说到。)

423334e705ed723c6f110899ff39bb77.png

我对此事的态度

声明:本文尽量站在中立的角度看待此事,除了明确引用的部分,所有观点仅代表我自己。

1、 StarRocks 以前叫 DorisDB ,这一点确实不妥,但既然已经改过了,我觉得还好,知错能改,不错的。

2、自称开源是不对的,正如 Doris 不能随便用,“开源”两个字也是不能随便用的,不是就不是,不能宣传自己是。

3、至于 StarRocks 选用 Elastic License  2.0(简称ELv2)许可证,我觉得还好吧。商业公司,本来就是逐利的,如果玩真开源,可能真活不下去,选用一个商业许可证,无可厚非。

多说两句,我一直认为,真开源的道德境界比较高(尤其是真有价值的软件),在一定程度上属于无私奉献(虽然也有人能用真开源赚钱,但那需要额外的工作)。

但不能说“非开源”就道德低下,毕竟微软的 Windows 都没有开源,而且代码都没有放到 Github 上,我们不也觉得很正常嘛!(微软买了 Github ,却不把自己产品的代码放在上面,同时一直说“微软爱开源”,我怎么看怎么觉得言行不一。)

4、还有一点,有人一直说 StraRocks 没有或者很少贡献 Apache Doris ,也没有遵循 Upstream First 原则。

我的态度是:如果说因为“ DorisDB 团队在对外宣传时,宣称自己是  Apache Doris  的主创团队”这等原因,那是可以实事求是地批驳。

如果仅仅指责其 fork 后不贡献,我认为不必。贡献这事,就像捐款,全靠自觉,不能道德绑架说你必须贡献,或者说你不贡献你就不是好人。贡献不是义务,贡献是自由。

对 Upstream First 这个原则也是一样,这其实是个最佳实践,属于一种推荐,而不是一个强制。

5、有人说 DorisDB 是 fork 自 Apache Doris 项目的,而更名后的 StarRocks 将许可证改为 ELv2 ,是否违规?

这并不违规,因为 Apache  2.0协议是允许改协议的,只要符合 Apache  2.0中规定的条件。具体可见 Apache 协议的第4条。

至于 StarRocks 选用的这个 ELv2到底是个什么东西,我们下面看一看。

59e6a326324170c2e3471995d78bdfaa.png

ELv2原文及人话翻译

注意:本翻译是人话翻译,只保证意思正确易懂,不保证字字句句严密精确。

排列方式是一段人话翻译,一段原文。下面开始:

Elastic 许可证 2.0 ( ELv2)

Elastic License 2.0 (ELv2)

1、用就代表接受

如果您用本软件,表明您同意以下所有条款和条件。

Acceptance
By using the software, you agree to all of the terms and conditions below.

2、版权许可

在满足我给的限制条件下,我授予您全球范围内的非排他性、无版税的、不能再许可的、不可转让的许可,使您可以使用、复制、分发、制作本软件及其衍生品。

Copyright License
The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject to the limitations and conditions below.

3、限制条件

您不能将软件作为托管服务提供给第三方,使得用户可以使用本软件的任何实质性功能。

卫sir注:这就不让云厂商用了,如果你把软件放在云上让客户用,就是给第三方用了。除非另签其他商用协议。

您不得移除、更改、禁用或规避软件中的许可密钥功能,您不得删除或隐去软件中受许可密钥保护的任何功能。

卫sir注:普通的基础功能是免费的,高级功能是受许可密钥保护的,是收费的,想用就花钱买吧,破解许可密钥功能12是违反协议的。免费功能和收费功能有着巨大的差异,具体可见其官方网站3

您不得更改、删除或隐去软件中任何许可、版权或其他声明。对许可方的商标使用要遵循相关法律。

Limitations
You may not provide the software to third parties as a hosted or managed service, where the service provides users with access to any substantial set of the features or functionality of the software. 
You may not move, change, disable, or circumvent the license key functionality in the software, and you may not remove or obscure any functionality in the software that is protected by the license key. 
You may not alter, remove, or obscure any licensing, copyright, or other notices of the licensor in the software. Any use of the licensor’s trademarks is subject to applicable law.

4、专利许可

只要遵守本许可证的约束条件,根据专利权利要求,我授予您制造、让人制造、销售、要约销售、进口和让人进口软件的权利。但因您改动和增加代码导致的专利侵权,我们可不管。如果您或您的公司说我们侵权,本条款授予您的专利许可将立即终止。

Patents
The licensor grants you a license, under any patent claims the licensor can license, or becomes able to license, to make, have made, use, sell, offer for sale, import and have imported the software, in each case subject to the limitations and conditions in this license. This license does not cover any patent claims that you cause to be infringed by modifications or additions to the software. If you or your company make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.

5、义务

您必须确保,任何从您那里获得本软件拷贝(哪怕是其中一小部分)的人,也获得这些条款的拷贝。

卫sir注:本条结合前面第2条说的“不能再许可”,表明了再分发不可换许可证。如果你制作了衍生品,分发时也必须继续使用ELv2。

如果您修改了软件,您必须在那些修改后的文件中,明显地说明您改了。

Notices
You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms. 
If you modify the software, you must include in any modified copies of the software prominent notices stating that you have modified the software.

6、并没有其他权利

我授予您的权利,仅限于本许可证明确说的内容,并不暗示有任何别的权利。

No Other Rights
These terms do not imply any licenses other than those expressly granted in these terms.

7、违规就终止权利

如果您违反了本许可证的条款,您的许可证将自动终止。如果您收到我们发出的违规警告,并且在收到后30天内停止违规行为,您的许可将被恢复。但是,如果之后您又违规,你的权利被自动地、永久性地撤销。

Termination
If you use the software in violation of these terms, such use is not licensed, and your licenses will automatically terminate. If the licensor provides you with a notice of your violation, and you cease all violation of this license no later than 30 days after you receive that notice, your licenses will be reinstated retroactively. However, if you violate these terms after such reinstatement, any additional violation of these terms will cause your licenses to terminate automatically and permanently.

8、我们不负责任

在法律允许的范围内,软件是 AS IS 的,也即没有任何质量保证,我们不负责因本软件而给您带来的任何损失。

No Liability
As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.

9、术语定义

“我们”就是许可方,我们依照所列这些条款提供本软件(或其中任何部分)。

“您”指的是同意这些条款的个人或实体。

“用”指的是对本软件行驶本许可证所授予的某种权利。

卫sir注:其余定义意思不大,这里省略了。

Definitions
The licensor is the entity offering these terms, and the software is the software the licensor makes available under these terms, including any portion of it.
you refers to the individual or entity agreeing to these terms.
your company is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. control means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
your licenses are all the licenses granted to you for the software under these terms.
use means anything you do with the software requiring one of your licenses.
trademark means trademarks, service marks, and similar rights.

注:ELv2 全文见https://www.elastic.co/licensing/elastic-license

注:相关 FAQ 可见https://mp.weixin.qq.com/s/hc700K_V8bG-D5FbhK_1Rg

8eb7edbf61b73f483c17d5f6a20e2857.png

深入理解ELv2

Q:ELv2 的核心亮点是什么?

A:主要就是那三个限制。说白了就是:

不允许对外提供云服务;不予许破解或绕过密钥保护的功能;不能用我的商标。

Q:那我能怎么使用?

A:下面以 Elasticserach 产品为例说明:

1、你可以在自己公司内部用 Elasticsearch ,此时可以托管服务形式提供给内部员工,因为这不涉及第三方。

2、可以在应用中使用 Elasticsearch (比如在对外网站中使用),但提供给用户的,应该仅限于类似搜索框这种搜索功能,不能给用户直接提供Elasticsearch的各种主要功能,如各种 API。

3、可以使用 Elastic 官方和云厂商合作提供的Elasticsearch服务(全都是收费的)。像阿里云4、腾讯云5这种云厂商都会和Elastic谈专门的商业协议,向客户提供Elasticsearch Service。此外,Elastic也在AWS上提供其官方的Elastic cloud服务6并收费7

Q:为什么说 ELv2不是开源协议?

Elastic也很明白 ELv2不符合开源的标准,而只是源码可见的( source avalibale ),所以 ELv2根本没有去送审(不像SSPL还送审试图获批)。

如果送审,会被如何拒绝呢,我想OSI至少会在两个方面指出其违反 OSD 之处。

一是违背了 OSD6:不歧视任何领域。( ELv2的第一个限制条件歧视了云厂商)

二是违背了 OSD3:允许他人修改和衍生该作品。(虽然允许修改其他部分,但ELv2的第二个限制条件不允许修改密钥许可相关部分)

如果你想了解 OSD ,可以看一下开源定义是什么?

Q:Elasticsearch 的源码到底是如何提供的呢,以 ELv2 还是以 SSPL ?

A:可以看一下官方的答复:

https://www.elastic.co/cn/blog/elastic-license-v2

总的来说,在 Elasticsearch  7.11版及其后,免费功能的源码是同时用两种协议发布的;对其收费功能,是以 ELv2 发布的。

在使用上,用户对于免费版本,还可以选择使用 SSPL ,在满足 SSPL 的条件下,可以向客户提供云服务;如果选择用 ELv2 ,就不管怎样都不能提供云服务了。

b0b35f14c3522b0cfb51b2a94755a6e4.png

StarRocks为什么要用ELv2

其实很简单,要恰饭嘛!

StarRocks 在官网上是这么声明8的:

StarRocks is a source available software licensed under Elastic License 2.0.

从这句看,他们还是懂的,知道自己不是开源,仅仅是 source available 。不过鼎石在宣传上,使用了“开源”一词,这就不好了。

在回答为什么改用 ELv2的问题上,鼎石说:

越来越多的开源软件公司,MongoDB,MariaDB,Elastic,Confluent等等,正在改变他们的许可证,以保护他们的软件不被大公司滥用和误用,这些大公司使用这些软件却没有为社区做出贡献。为了尽量减少对我们社区的影响,我们采用了Elastic 2.0许可证,以确保我们的用户可以继续免费使用、修改和分发StarRocks的源代码,同时保护StarRocks的版权和商标。

这段话,和 Elastic 等厂商说的都差不多,就是嫌云厂商不作贡献,不过在我看来,主要是嫌大公司获取了市场,自己赚不到钱。(个人猜测,所谓嫌云厂商不做贡献并不是嫌他们不贡献代码,而更多是嫌他们没有捐金或帮助赚钱。)

另外,鼎石声明:他们目前还没有在 StarRocks 上使用许可密钥这种东西。

deda71ae4b05cfa883fb993219e65f0c.png

StarRocks的回应

对于各方质疑, StarRocks 也做了回应,发表了文章:关于 StarRocks 相关疑问的解答

其中比较重要的两点声明是:

“我们郑重声明,从 DorisDB 到 StarRocks ,从商标到代码协议,我们的工作完全在法律法规的框架下进行,也欢迎各界人士的关注和监督。”

“StarRocks虽然使用了 Apache Doris 的框架,但是其内核已经是完全独立自主研发的了。当前项目中原有的 Apache Doris 代码保留了原有的 Apache Licence 2。只有完全由我们独立开发的代码,采用了 Elastic License 2。这也是行业的常规做法。”

60d7855eb2a313b76fe1c479c23ae4c4.png

专家观点


针对 ELv2、Elastic ,在开源商业领域有15年从业经历的龚仪说:

1、ELv2本质上就是一个“专有”商业许可证。

2、开源软件采用双许可证是一个很早就有的做法,只是由于SSPL没有被OSI接受,就让Elastic变成不属于OSD定义的开源软件而显得尴尬。人们需要用一种新的角度,审视和思考如何对待“源码可见”软件。

3、所谓的“高级功能”通常不是必须的,而且国内企业大部分会习惯了“免费”,所以他们可能会放弃这些高级功能,而勉强承受没有这些功能带来的一些潜在风险,直到有其他替代方案。

4、《软件悖论》已经把闭源软件收费难这事儿认真的研究过了,这些“源码开放”的商业软件公司,就算改了协议,变得不是传统的开源,变得专有了,也不见得就能在软件收费这条路上有多顺利。

针对 StarRocks ,知识产权专家振华说:

1、新项目要注意尊重知识产权,包括但不限于在先名称/商标/License。

2、如果不是开源就不要宣称项目是开源项目了。

3、投资需要做好尽职调查,确认技术来源及构成,判断技术实力在于代码、社区基础还是工程能力。

文|卫剑钒


  1. https://blog.csdn.net/m0_37609579/article/details/80296057 

  2. https://www.cnblogs.com/dengbangpang/p/12945052.html 

  3. https://www.elastic.co/cn/subscriptions 

  4. https://cn.aliyun.com/product/bigdata/elasticsearch 

  5. https://cloud.tencent.com/product/es 

  6. https://www.elastic.co/cn/elasticsearch/service/migrate-to-elastic-cloud 

  7. https://www.elastic.co/cn/pricing/ 

  8. https://www.dorisdb.com/en-US/product/license-FAQ 

相关阅读 | Related Reading

e5e81de20a7f04312971ad381b685684.pngCOSCon'21 社区征集令--开心开源、进行到底

11c596afc55c315391e11ee679989326.png

Apache 软件基金会 2021 年度报告亮点解读

65f259a4c0014a1299dcb0ad179ad7c9.png“源”来是你——第七期发布啦~附专栏介绍

开源社简介

开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、开源项目” 为使命的开源社区联合体。开源社积极与支持开源的社区、企业以及政府相关单位紧密合作,以 “立足中国、贡献全球” 为愿景,旨在共创健康可持续发展的开源生态,推动中国开源社区成为全球开源体系的积极参与及贡献者。

2017 年,开源社转型为完全由个人成员组成,参照 ASF 等国际顶级开源基金会的治理模式运作。近七年来,链接了数万名开源人,集聚了上千名社区成员及志愿者、海内外数百位讲师,合作了近百家赞助、媒体、社区伙伴。

81b602f0621a8f1d764f571f10c8eef7.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值