Redis官宣不再免費(fèi)!開源界還能活多久?
無(wú)聊刷 X 時(shí),剛好著名的《Redis設(shè)計(jì)與實(shí)現(xiàn)》譯者大佬的動(dòng)態(tài),Redis 真的要拋棄貧賤的開發(fā)者,不再開源了嗎?
圖片
其實(shí),早在 19 年我大學(xué)畢業(yè)時(shí),Redis 就有了行動(dòng)。
Redis當(dāng)年增加新的可用源代碼許可證RSAL(Redis Source Available License)。
Redis的開源許可是如何規(guī)定的?
圖片
Redis Labs 2018年8月份已經(jīng)對(duì)Redis自建模塊的許可協(xié)議進(jìn)行過(guò)變更,由之前的AGPL(Affero GPL),變更為非OSI(開發(fā)源代碼促進(jìn)會(huì))規(guī)范的Apache2.0和Commons Clause相結(jié)合的許可。
圖片
2018年8月Redis Labs對(duì)于Redis及各自建模塊的授權(quán)規(guī)范。
截至 2024 年 3 月末的模塊許可證:
圖片
BSD是啥?
1979年加州大學(xué)伯克利分校發(fā)布BSD Unix,被稱為開放源代碼的先驅(qū),BSD許可證就是隨著BSD Unix發(fā)展起來(lái)的。Redis核心(Redis Core)初期就是BSD。
BSD開源協(xié)議是給于使用者很大自由,基本上使用者可以”為所欲為”,可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布。最新的BSD許可也稱3-Clause BSD,當(dāng)你發(fā)布使用了BSD協(xié)議的代碼,或則以BSD協(xié)議代碼為基礎(chǔ)做二次開發(fā)自己的產(chǎn)品時(shí),需滿足:
- 如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來(lái)代碼中的BSD協(xié)議。
- 如果再發(fā)布的只是二進(jìn)制類庫(kù)/軟件,則需要在類庫(kù)/軟件的文檔和版權(quán)聲明中包含原來(lái)代碼中的BSD協(xié)議
- 不可以用開源代碼的作者/機(jī)構(gòu)名字和原來(lái)產(chǎn)品的名字做市場(chǎng)推廣
Apache Licence
Apache Licence則是另外一個(gè)知名非盈利開源組織Apache基金會(huì)所采用的許可協(xié)議。目前的版本是Apache Licence 2.0。此前Redis部分模塊就是用該協(xié)議許可。和BSD類似,同樣鼓勵(lì)代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布。該協(xié)議需滿足:
- 需要給代碼的用戶一份Apache Licence。
- 如果你修改了代碼,需要再被修改的文件中說(shuō)明。
- 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來(lái)代碼中的協(xié)議,商標(biāo),專利聲明和其他原來(lái)作者規(guī)定需要包含的說(shuō)明
- 如果再發(fā)布的產(chǎn)品中包含一個(gè)Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對(duì)Apache Licence構(gòu)成更改
AGPL協(xié)議
1983年,自由軟件運(yùn)動(dòng)的先驅(qū)、精神領(lǐng)袖理查德·斯托曼決心要開發(fā)一個(gè)完全自由的、與Unix完全兼容但功能更強(qiáng)大的操作系統(tǒng),以便為所有的計(jì)算機(jī)使用者提供一個(gè)功能齊全、性能良好的基本系統(tǒng),為了把這個(gè)系統(tǒng)和UNIX區(qū)分開來(lái),他采用“遞歸”方式把它定義為GNU,即:GNU’s Not Unix,一般讀作[gru:]。
1985年理查德·斯托曼又創(chuàng)立了自由軟件基金會(huì)(FSD)來(lái)為GNU計(jì)劃提供技術(shù)、法律以及財(cái)政支持。GNU計(jì)劃開發(fā)了一系列知名的軟件,GNU/Linux(或簡(jiǎn)稱Linux)、Emacs文字編輯器、GCC編譯器,以及大部分UNIX系統(tǒng)的程序庫(kù)和工具。
GPL是GNU最重要的一款協(xié)議,全稱是GNU通用公共許可證(GNU General Public License)。GPL要求軟件以源代碼的形式發(fā)布,并規(guī)定任何用戶能夠以源代碼的形式將軟件復(fù)制或發(fā)布給別的用戶;如果用戶使用了受 GPL 保護(hù)的任何軟件的一部分,那么該軟件就繼承了 GPL 軟件,并因此而成為 GPL 軟件,也就是說(shuō)必須隨應(yīng)用程序一起發(fā)布源代碼,也因此GPL很難被商業(yè)軟件所應(yīng)用。所以后來(lái)GNU推出了LGPL許可證,全稱是:GNU較寬松公共許可證 (GNU Lesser General Public License)。LGPL允許實(shí)體連接私人代碼到開放源代碼,并可以在任何形式下發(fā)布這些合成的二進(jìn)制代碼。只要這些代碼是動(dòng)態(tài)連接的就沒(méi)有限制。
即不許銷售,不許存在于商業(yè)環(huán)境。
2024.3.20
就在不久前,Redis 核心模塊聲明:
圖片
Redis從 7.4 開始使用 RSALv2 與 SSPLv1,不再滿足 OSI 關(guān)于 “開源軟件” 的定義。但不要搞錯(cuò):Redis “不開源” 不是 Redis 的恥辱,而是“開源/OSI”的恥辱 —— 它反映出開源組織/理念的過(guò)氣。
開軟軟件自由的頭號(hào)大敵
是云計(jì)算服務(wù)!“開源” 與 “閉源” 也不再是軟件行業(yè)的核心矛盾,斗爭(zhēng)的焦點(diǎn)變?yōu)?“云上服務(wù)” 與 “本地優(yōu)先”。公有云廠商搭著開源軟件便車白嫖社區(qū)成果,注定引發(fā)社區(qū)的強(qiáng)烈反感!
抵御云廠商白嫖,修改協(xié)議是最常見做法:但AGPLv3 過(guò)于嚴(yán)格容易敵我皆傷,SSPL 因?yàn)槊鞔_表達(dá)這種敵我歧視,不被算作開源。業(yè)界需要一種新的歧視性軟件許可證協(xié)議,來(lái)達(dá)到名正言順區(qū)分?jǐn)澄业男Ч?/p>
開源風(fēng)格已經(jīng)過(guò)氣
真正重要的事情一直都是軟件自由,而“開源”只是實(shí)現(xiàn)軟件自由的一種手段。而如果“開源”的理念無(wú)法適應(yīng)新階段矛盾斗爭(zhēng)的需求,甚至?xí)恋K軟件自由,它一樣會(huì)過(guò)氣,并不再重要,并最終被新的理念與實(shí)踐所替代。
“我想直率地說(shuō):多年來(lái),我們就像個(gè)傻子一樣,他們拿著我們開發(fā)的東西大賺了一筆”。—— Redis Labs 首席執(zhí)行官 Ofer Bengal
當(dāng) Redis 宣布更改協(xié)議后,馬上就有 AWS 員工跳出來(lái) Fork Redis —— “Redis 不開源了,我們的分叉才是真開源!” 然后 AWS CTO 出來(lái)叫好,并假惺惺地說(shuō):這是我們員工的個(gè)人行為 —— 云廠商們真是殺人誅心,恬不知恥!
圖片