ELv2是一種什麼樣的存在?StarRocks為何惹眾怒?

語言: CN / TW / HK

最近一個叫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)。
如有侵權,請聯絡 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。