您的位置:  首页 > 技术杂谈 > 正文

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

2021-09-14 15:00 https://my.oschina.net/vigor23/blog/5261562 卫_sir 次阅读 条评论

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

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

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

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

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

我对此事的态度

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

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到底是个什么东西,我们下面看一看。

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

深入理解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,就不管怎样都不能提供云服务了。

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上使用许可密钥这种东西。

StarRocks的回应

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

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

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

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

专家观点

针对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 


本文分享自微信公众号 - 微月人话(man-mind)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接