開(kāi)源定義是什么?為什么OSI不接受SSPL?
前言
大家都知道,Elasticsearch是大名鼎鼎的開(kāi)源搜索引擎,但你知道嗎,它現(xiàn)在已經(jīng)不是開(kāi)源軟件了,這是怎么回事呢?
今年年初,Elastic公司把其主打產(chǎn)品Elasticsearch搜索引擎和Kibana可視化平臺(tái)的許可證都改了,從Apache 2.0換成了SSPL(服務(wù)器端公共許可證),而SSPL是MongoDB在2018年推出的一種偽開(kāi)源許可證。幾天后,AWS宣布了分支(fork)作為回應(yīng),也就是說(shuō),AWS要自己另整一套了,而且,AWS還說(shuō),自己玩的才是真開(kāi)源。1。
Elastic為什么要這么做?SSPL是個(gè)啥?為啥就不是開(kāi)源的?
Elastic在官網(wǎng)上是這么解釋的:2
在過(guò)去三年中,市場(chǎng)不斷發(fā)展,社區(qū)逐漸認(rèn)識(shí)到,開(kāi)源公司只有更好地保護(hù)自己的軟件,才能保持高水平的投資和創(chuàng)新。隨著以 SaaS 作為交付模式的轉(zhuǎn)變,一些云服務(wù)提供商利用了開(kāi)源產(chǎn)品的優(yōu)勢(shì),將其作為一項(xiàng)服務(wù)對(duì)外提供,而不向社區(qū)提供任何回饋。這種做法轉(zhuǎn)移了本可以再投資到產(chǎn)品上的資金,損害了用戶和社區(qū)的利益。
從即將發(fā)布的 Elastic 7.11 版開(kāi)始,我們將把根據(jù) Apache 2.0 許可授權(quán)的 Elasticsearch 和 Kibana 源代碼變更為雙重授權(quán)許可模式(即 SSPL + Elastic 許可),以便用戶選擇適合自己的許可。SSPL 是 MongoDB 原創(chuàng)的一個(gè)可獲得源代碼的許可,它既體現(xiàn)了開(kāi)放原則,同時(shí)又起到了保護(hù)作用,防止公共云提供商在不向社區(qū)提供任何回饋的情況下將開(kāi)源產(chǎn)品作為一項(xiàng)服務(wù)對(duì)外提供。SSPL 雖然允許免費(fèi)隨意地使用及修改產(chǎn)品源代碼,但有一個(gè)基本要求,也就是,在 SSPL 協(xié)議下,如果您將產(chǎn)品作為服務(wù)對(duì)外提供,則必須同時(shí)公開(kāi)發(fā)布任何修改以及您自己管理層的源代碼。
簡(jiǎn)單地說(shuō),就是ELastic看見(jiàn)一些云廠商用Elasticsearch和Kibana賺了大錢(qián),但沒(méi)有給自己帶來(lái)回饋,很不爽,決心改許可證。
因?yàn)榘凑誂pache 2.0許可證,人家不回饋,也是合規(guī)合法的,所以必須要改許可證,強(qiáng)制要求云廠商回饋。
云廠商豈能就范?
SSPL是偽開(kāi)源許可證?
在OSI的官網(wǎng)上3,明確說(shuō)SSPL是偽開(kāi)源許可證(fauxpen source license)。
OSI(Open Source Initiative)即開(kāi)放源代碼促進(jìn)會(huì),于1998年2月成立,創(chuàng)始人為大名鼎鼎的Bruce Perens和人稱黑客長(zhǎng)老的Eric S. Raymond。它維護(hù)著開(kāi)源定義(OSD)以及其認(rèn)可的開(kāi)源許可證列表4。OSI的目標(biāo)是促進(jìn)和保護(hù)開(kāi)源軟件及開(kāi)源社區(qū)。
OSI這個(gè)聲明,其實(shí)就是對(duì)著Elastic來(lái)的,它說(shuō):
雖然那些切換到偽開(kāi)源許可證的公司聲稱,他們的產(chǎn)品在新許可證下繼續(xù)保持“開(kāi)放”(open),但新許可證實(shí)際上剝奪了用戶權(quán)利。
Elastic公司的這個(gè)舉動(dòng),并不意味著開(kāi)源許可模式的失敗或不足,只能說(shuō)明Elastic目前的商業(yè)模式和開(kāi)源許可證的設(shè)計(jì)不一致,他們需要的是專有許可證(雖然也是源碼可用的)。
OSI說(shuō),SSPL的管理方曾經(jīng)提出申請(qǐng),試圖獲得OSI認(rèn)證,當(dāng)他們發(fā)現(xiàn)這不太可能時(shí),主動(dòng)撤下了申請(qǐng)。
我專門(mén)找來(lái)SSPL看了看,其實(shí)和GPL差不多,就只有個(gè)別一兩條有點(diǎn)區(qū)別,總體上,還是給人源碼、讓人修改、讓人發(fā)布的。但在OSI看來(lái),這是不夠的。
那什么樣的許可證,才能被稱為開(kāi)源許可證?
OSI是在官網(wǎng)上明確給出過(guò)開(kāi)源定義(The Open Source Definition)的,也即OSD。所以看一個(gè)許可證是不是開(kāi)源的,就看是否符合OSD了。
我以前介紹過(guò)的MIT、Apache 2.0(以下簡(jiǎn)稱Apache)、GPL v2、v3,都是滿足OSD的,也即都是開(kāi)源許可證。
下面就學(xué)習(xí)一下OSD吧。
開(kāi)源定義
一個(gè)軟件,是不是開(kāi)源軟件,要看它的許可證有什么樣的條款,只要許可證滿足以下10條要求,它就是開(kāi)源的。
以下,“該軟件”、“該程序”、“該作品”,指的都是許可證所保護(hù)的軟件。“被許可人”、“接收者”、“用戶”指的都是使用該軟件的人(包括法人)。“發(fā)行”、“發(fā)布”、“分發(fā)”都是一個(gè)意思。
OSD1. 分發(fā)自由
許可證不應(yīng)限制任何人將該軟件作為某軟件發(fā)行版的一部分售出,或免費(fèi)送出,不應(yīng)該對(duì)這種銷售收取版稅或其他費(fèi)用。
人話說(shuō):不應(yīng)該限制別人賣(mài)你的軟件,也不該限制別人免費(fèi)送。如果人家賣(mài)了你的軟件,你也不能向人家要錢(qián)。
1. Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.
點(diǎn)評(píng):我只能說(shuō),不要錢(qián),這一點(diǎn)還是挺高尚的,很多人做不到,比如改了許可證的那些。
說(shuō)實(shí)話,這條乍一看還是有點(diǎn)費(fèi)解的,什么component、aggregate、software distribution、several different sources,想說(shuō)什么呢。后來(lái)我才想明白,OSD是來(lái)自The Debian Free Software Guidelines (DFSG)的,而Debian,是一個(gè)Linux發(fā)行版,在Linux發(fā)行版里面,天然會(huì)有很多的自由軟件和開(kāi)源軟件。所以,在OSI看來(lái),大凡一個(gè)開(kāi)源軟件,似乎或多或少都在某個(gè)發(fā)行版中,哪怕是原作者自己搞的發(fā)行版。
OSD1沒(méi)有明說(shuō),對(duì)于單獨(dú)一個(gè)開(kāi)源軟件,是否適用這條,但看那個(gè)意思,應(yīng)該也是適用的。我咨詢了若干業(yè)內(nèi)人士的觀點(diǎn),他們都說(shuō),即便不是任何軟件發(fā)行版的一部分,也是讓人賣(mài)的。從這點(diǎn)看,OSD寫(xiě)得并不嚴(yán)謹(jǐn)。
現(xiàn)在看一下MIT、Apache、GPL是不是都符合這條:MIT在第一段,Apache在第3條,GPL v2第1條,GPL v3第4條,都明確寫(xiě)了可以賣(mài)源碼或者目標(biāo)碼的。
此外,GPL v3在第4、5、6條里說(shuō)(第5、6條引用了第4條),如果以源碼形式分發(fā),源碼可以隨意收費(fèi)。但如果賣(mài)的是目標(biāo)代碼,源碼就只能頂多收復(fù)制費(fèi),避免有些人賣(mài)目標(biāo)時(shí)不想交出源碼(目標(biāo)代碼收費(fèi)尚可,源碼收天價(jià))。
OSD2. 源代碼
軟件必須附有源代碼,并且必須允許以源碼形式或目標(biāo)碼形式發(fā)布。如果發(fā)布時(shí)沒(méi)有帶源碼,則必須要有一種廣為宣傳的方式,讓人能夠以不超過(guò)合理的復(fù)制費(fèi)用獲得源代碼,最好是能通過(guò)互聯(lián)網(wǎng)免費(fèi)下載。故意混淆源代碼是不允許的,所提供的源代碼,必須是程序員在修改程序時(shí)最樂(lè)意使用的那種形式。基于同樣的道理,預(yù)處理過(guò)的、或者翻譯過(guò)的源碼,都是不允許的。
人話說(shuō):程序必須附帶源碼,不帶源碼的不叫開(kāi)源軟件。如果發(fā)布時(shí)不帶源碼,那必須讓人能免費(fèi)或以很便宜價(jià)格得到源碼。給源碼,就要大大方方地給,不能摳摳索索。
- 2. Source Code
- The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost, preferably downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.
點(diǎn)評(píng):注意對(duì)于再次發(fā)布的要求,是必須允許以源碼或目標(biāo)碼形式發(fā)布,而不是必須帶源碼,這就使得MIT、Apache這種許可證滿足這條,因?yàn)檫@類寬松許可證,對(duì)別人再次分發(fā)時(shí)帶不帶源碼,是不作要求的。(GPL則是強(qiáng)制要求的。)
OSD3. 衍生作品
要必須允許別人修改和衍生該作品,并且必須允許它們以相同的許可證分發(fā)。
人話說(shuō):要能讓人改,還得讓人能分發(fā),如果你不想讓別人以別的許可證分發(fā),至少也得允許按你的許可證分發(fā)。
- 3. Derived Works
- The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
點(diǎn)評(píng):不讓人改,那不是開(kāi)源。不要那么封閉嗎。
MIT、Apache、GPL都允許修改和衍生,而且也都允許以相同的許可證再次發(fā)布。MIT在第一段中說(shuō)允許sublicense,Apache在第2條允許sublicense,這就表明允許使用相同的許可證。GPL v2的第6條、GPL v3的第10條,則說(shuō)下游自動(dòng)獲得GPL許可。
注意:sublicense,根據(jù)Black's Law Dictionary,是指“A license or contract granting to a third party a portion or all of the rights granted to the licensee under an original license。”也即sublicense是指被原始許可的人,可以向第三方進(jìn)行再次許可,許可的內(nèi)容是他獲得的全部或部分權(quán)利。
OSD4. 原作者源碼的完整性
可以要求“源碼不可改動(dòng)”,但只能在“源碼+補(bǔ)丁”這種分發(fā)場(chǎng)合下。許可證必須明確允許分發(fā)修改后源碼構(gòu)建的軟件。許可證可以要求衍生作品帶有不同的軟件名稱或版本號(hào)。
人話說(shuō):可以要求修改的代碼能和原作者的代碼清晰劃分出來(lái);允許別人分發(fā)修改后的代碼;可以要求他用別的名字或版本號(hào)(不做此要求當(dāng)然更好)。
- 4. Integrity of The Author's Source Code
- The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.
點(diǎn)評(píng):這條是一個(gè)妥協(xié)。OSI原本是鼓勵(lì)“允許任意修改”的。但考慮到有些開(kāi)源作者非常在意完整性,所以O(shè)SD允許在許可證中加一些這類要求,避免因別人低質(zhì)量的修改,污染了原作者的名譽(yù)。
OSD5. 不歧視個(gè)人或團(tuán)體
不得歧視任何個(gè)人或群體。
人話說(shuō):不能說(shuō)只給什么人用,不能給什么人用。尤其不能說(shuō),不給中國(guó)人用,這是堅(jiān)決不可以的。
考慮到法律問(wèn)題,在OSD的注解(annotated OSD)5中,專門(mén)提到了出口限制的問(wèn)題,注解說(shuō):“一些國(guó)家(包括美國(guó))對(duì)某些類型的軟件有出口限制。許可證可以做出警告,提醒被許可人有義務(wù)遵守法律,但許可證本身可以不包含這種限制。”
- 5. No Discrimination Against Persons or Groups
- The license must not discriminate against any person or group of persons.
點(diǎn)評(píng):這是OSI人文主義精神的表現(xiàn),對(duì)所有人一視同仁。只不過(guò),不管在哪,法律還是要遵守的。
OSD6. 不歧視任何領(lǐng)域
不得限制說(shuō)不讓在某個(gè)領(lǐng)域使用該程序。例如,不能說(shuō)不讓商用,不能說(shuō)不讓用于基因研究。
人話說(shuō):不能只讓這個(gè)行業(yè)用,不讓那個(gè)行業(yè)用。尤其不能說(shuō),不讓商用,不讓云服務(wù)用。
- 6. No Discrimination Against Fields of Endeavor
- The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
點(diǎn)評(píng):一個(gè)不讓商用的軟件,一定不是開(kāi)源軟件。因?yàn)镺SI明白商業(yè)的價(jià)值。
下面舉個(gè)例子,美國(guó)在2018年有一個(gè)Abolish ICE活動(dòng),在這個(gè)活動(dòng)中,有人違反了OSD6。
ICE是美國(guó)911恐怖襲擊之后成立的部門(mén),主要用于移民相關(guān)的國(guó)內(nèi)調(diào)查和執(zhí)法和調(diào)查,有羈押和遣送非法移民的權(quán)力,ICE采取了一種被稱作”親子分離“的政策,就是一旦抓住非法移民,就把大人和孩子分開(kāi)關(guān)押,很多孩子因此和父母完全失去聯(lián)系,還有數(shù)百名兒童徹底和父母失聯(lián),流入美國(guó)兒童收養(yǎng)系統(tǒng)。這種政策激起了巨大的社會(huì)反感,Abolish ICE運(yùn)動(dòng)因此開(kāi)始。
在Abolish ICE過(guò)程中,人們發(fā)現(xiàn)ICE科技水平頗高,而且一線互聯(lián)網(wǎng)和軟件公司都在為他們提供服務(wù),從軟件到AI,基本上各種高科技用全了,抓人效率前所未有的高。而這些軟件,絕大多數(shù)是基于開(kāi)源軟件和自由軟件開(kāi)發(fā)的。所以除了抗議各大廠商之外,開(kāi)源社區(qū)中開(kāi)始有了“能不能想個(gè)辦法不讓ICE用我們寫(xiě)的程序”相關(guān)討論。
javascript包管理工具lerna成為了第一個(gè)行動(dòng)者,他們修改了自己的開(kāi)源協(xié)議,把包括微軟、亞馬遜在內(nèi)的一堆公司列入了“因協(xié)助ICE而禁止使用”范圍。但這顯然是不符合OSD6的,Eric Raymond為此發(fā)表文章:“非歧視條款是開(kāi)源軟件的核心價(jià)值”。一天之后,lerna恢復(fù)了原始的MIT許可證,并且為此道歉。
—以上摘自“圍繞RMS、開(kāi)源、自由軟件的兩場(chǎng)'戰(zhàn)爭(zhēng)'”6
OSD7. 許可的分發(fā)
軟件重新分發(fā)時(shí),所有接收者都獲得許可證所描述的關(guān)于該軟件的權(quán)利。任何接收者都不必執(zhí)行額外的協(xié)議以獲取這些權(quán)利。
人話說(shuō):開(kāi)源軟件是有一個(gè)傳播過(guò)程的,原作者發(fā)布給第一批用戶,第一批用戶又發(fā)布給第二批用戶,以此類推,可以不斷流轉(zhuǎn)下去。在這個(gè)再分發(fā)過(guò)程中,原作者給任何接收者的權(quán)利,中間人不能加碼,不能要求被分發(fā)人執(zhí)行額外協(xié)議才能獲取。
- 7. Distribution of License
- The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.
點(diǎn)評(píng):一個(gè)開(kāi)源軟件,原作者所賦予用戶的權(quán)利,在傳遞過(guò)程中,不能附加額外要求。
從Annotated OSD來(lái)看,這條是用來(lái)確保自由傳遞的,防范有人把一個(gè)開(kāi)源項(xiàng)目給閉源了。仔細(xì)看看GPL v2的第6條就知道,這條大概是從GPL中提煉出來(lái)的精神。
GPL v2第6條、GPL v3的第10條,都明確表達(dá)了這樣的意思。
但對(duì)于MIT和Apache這種寬松許可證,如果再次分發(fā)時(shí)還用原協(xié)議,那是滿足OSD7的,但如果再次分發(fā)時(shí)讓人給閉源了或者換許可了(也即MIT和Apache是允許他人加碼的),就不滿足這條了,所以這兩個(gè)許可證對(duì)OSD7的滿足是很弱的。
所以我覺(jué)得,OSD7寫(xiě)得也不夠嚴(yán)謹(jǐn)。
OSD8. 許可不能針對(duì)特定產(chǎn)品
許可證賦予接收者的權(quán)利,不應(yīng)該和特定軟件發(fā)布版綁定。不論該程序是從哪個(gè)軟件發(fā)布版中得到,它的用戶都擁有與原始軟件發(fā)布版一樣的權(quán)利。
人話說(shuō):比如,假設(shè)有個(gè)軟件叫wu-ftpd,它的許可證不能說(shuō),“如果您從Kali Linux發(fā)行版中拿到本軟件,您的權(quán)利是1、2、3,如果從Rcoky Linux中拿到,您的權(quán)利是3,4,5,只有在wu-ftpd網(wǎng)站下載的本軟件,您才擁有所有的權(quán)利”。
- 8. License Must Not Be Specific to a Product
- The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.
點(diǎn)評(píng):開(kāi)源不和具體產(chǎn)品綁定,開(kāi)源是傲然獨(dú)立于世的。
OSD9. 許可證不能限制其他軟件
許可證不得對(duì)一起分發(fā)的其他軟件加以限制。例如,許可證不能要求在同一媒介上發(fā)布的所有其他程序都必須是開(kāi)源軟件。
人話說(shuō):比如,wu-ftpd不能對(duì)放在同一張光盤(pán)上的Li-httpd、mi-gui這些軟件提出要求,因?yàn)槟蔷筒皇悄愕能浖?,你沒(méi)有權(quán)利提出這些要求。
- 9. License Must Not Restrict Other Software
- The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.
點(diǎn)評(píng):做好自己的事,不要要求別人。
OSD10. 不能以專門(mén)的技術(shù)或界面完成授權(quán)
許可證的任何條款都不能以任何專門(mén)的技術(shù)或界面風(fēng)格為條件。
人話說(shuō):在進(jìn)行許可時(shí),不能要求用戶必須點(diǎn)擊一個(gè)“我同意”、“我接受”這樣的方框,因?yàn)樵趥鹘y(tǒng)上,軟件的分發(fā)是通過(guò)ftp、cd、web鏡像形式的,這些場(chǎng)合下,用戶根本沒(méi)有點(diǎn)擊的地方,如果許可證必須要求人們點(diǎn)擊,人們就不能用他們習(xí)慣和喜愛(ài)的方式發(fā)布軟件了,這是很令人惱火的。
- 10. License Must Be Technology-Neutral
- No provision of the license may be predicated on any individual technology or style of interface.
點(diǎn)評(píng):對(duì)用戶好一點(diǎn),不要搞形式主義。
總體評(píng)價(jià)
有朋友問(wèn),OSD為什么選這10條,而不是別的10條?
我回答,選這10條,體現(xiàn)了OSI初創(chuàng)人員(以及他們所代表的開(kāi)源人)的道德優(yōu)越感:我們就是要提供免費(fèi)的源碼,而且是無(wú)差別的提供,我們要把開(kāi)源推進(jìn)到每個(gè)國(guó)家、每個(gè)地區(qū),推進(jìn)到每個(gè)領(lǐng)域、每個(gè)行業(yè),我們要讓開(kāi)源造福社會(huì)、造福人類,我們不歧視、不限制,我們推崇自由、平等,我們要的是全人類的繁榮和進(jìn)步!
差不多就這個(gè)意思吧。
有人說(shuō)開(kāi)源和道德無(wú)關(guān),我說(shuō),這10條顯然反映了道德,至少是人文主義的道德。
有人說(shuō)這背后有陰謀(商業(yè)陰謀,政治陰謀),我就不想說(shuō)啥了。
為什么SSPL不是開(kāi)源協(xié)議
現(xiàn)在仔細(xì)看看SSPL,全文在這里:
https://spdx.org/licenses/SSPL-1.0.html
我看了看,除了第13條,基本上GPL v3是一模一樣的(但沒(méi)有GPL闡述自由精神的那段“序言”)。
畢竟人人都愿意站在巨人肩上。
那么這個(gè)體現(xiàn)SSPL獨(dú)特性的第13條是什么樣的?
SSPL 13. Offering the Program as a Service
- SSPL 13. Offering the Program as a Service
- If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Program or modified version.
- “Service Source Code” means the Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.
這條的正經(jīng)翻譯:
如果您使用本程序或本程序的修改版本,以服務(wù)的形式提供給第三方,你就必須按照本許可相關(guān)條款,通過(guò)網(wǎng)絡(luò)下載形式,免費(fèi)向所有人提供“服務(wù)源代碼”。本條款所說(shuō)的“以服務(wù)形式提供給第三方”,是說(shuō)第三方能夠通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與本程序或修改版本的功能進(jìn)行遠(yuǎn)程交互,所提供服務(wù)的價(jià)值,全部或主要來(lái)自本程序或修改版本,或者,提供給用戶的服務(wù),來(lái)自于本程序或修訂版本主要用途的履行。
所謂“服務(wù)源代碼”,是指本程序或修改版本的源碼,以及您用來(lái)使本程序或修訂版本成為可用服務(wù)的所有相關(guān)程序的源碼,包括但不限于管理軟件,用戶界面,應(yīng)用程序接口,自動(dòng)化軟件,監(jiān)視軟件,備份軟件,存儲(chǔ)軟件和宿主軟件,也即所有你用來(lái)使用戶獲取服務(wù)實(shí)例的源碼。
這條的人話翻譯:
如果你不分發(fā)本程序(包括本程序的修改版本,下同),而是把它弄成一個(gè)服務(wù),放到網(wǎng)上讓人使用,那你必須把這個(gè)服務(wù)相關(guān)的源碼免費(fèi)讓人下載。這里說(shuō)的服務(wù)相關(guān)源碼,不僅僅是本程序的源碼,還包括能讓這個(gè)服務(wù)很好跑起來(lái)的其他相關(guān)軟件的源碼,比如管理軟件、用戶界面、應(yīng)用程序接口、自動(dòng)化軟件、監(jiān)控軟件、備份軟件、存儲(chǔ)軟件和宿主軟件??傊@一整套軟件的源碼都要提供,因?yàn)樗鼈兟?lián)合起來(lái)才能為用戶提供完整的服務(wù)。
本質(zhì)要求:
你用了我的程序,讓他跑成一個(gè)服務(wù),那么,你要把所有能讓本程序跑成服務(wù)的源碼都貢獻(xiàn)出來(lái),這樣,別人也能依此提供服務(wù)。
也就是說(shuō):
如果你把它弄成了服務(wù),你就要大方地把整個(gè)配方(包括前后臺(tái))都交出來(lái)。
評(píng)價(jià):
說(shuō)實(shí)話,這個(gè)有點(diǎn)狠,“本程序”是提供了服務(wù),但整個(gè)配套都要提供,是要的多了一點(diǎn),因?yàn)槟切┡涮椎臇|西,要花費(fèi)的工作成本也許要比“本程序”多得多!
這明顯是違背了OSD9,你管好自己就行了,不應(yīng)該要求別人太多!
當(dāng)然,許可證這東西,就是一個(gè)愿打,一個(gè)愿挨,如果有人愿意接受SSPL,我們也樂(lè)見(jiàn)其成。
不過(guò)大多數(shù)情況下,廠商估計(jì)都不會(huì)接受的。所以,改SSPL,那就是告訴別人,你們要么交錢(qián)買(mǎi)商業(yè)版,要么自己建分支玩吧。
也即pay me or fork this!
此句來(lái)自faker.js的維護(hù)者 Marak,他傷透了心之后,在github項(xiàng)目下發(fā)帖子7,決定“我不再免費(fèi)為世界500強(qiáng)公司工作了,要么給我一份年薪六位數(shù)的合同,要么 fork 這個(gè)項(xiàng)目然后自己維護(hù)去”。這個(gè)帖子的標(biāo)題就叫做“No more free work from Marak - Pay Me or Fork This”。—摘自《開(kāi)源社區(qū)的暗面》8
讓我感到有趣的是,第一個(gè)回帖子的居然是asim,此人就是當(dāng)年和華為叫板的go-micro維護(hù)者9,看來(lái)Marak也是說(shuō)到他心坎上了。
我覺(jué)得,以前吧,大家玩開(kāi)源,都是你弄個(gè)東西,我弄個(gè)東西,大家其樂(lè)融融就把一個(gè)完整的開(kāi)源世界搭起來(lái)了,大家就覺(jué)得,這就是我們的理想社會(huì),我們也沒(méi)想著賺錢(qián),我們就是不和那幫閉源的資本家玩,我們就是要弄一個(gè)人人平等、人人奉獻(xiàn)、人人自由、自給自足的和諧世界。但現(xiàn)在可好,自己用共產(chǎn)主義精神做出來(lái)的東西,又讓資本家給拿過(guò)去賺錢(qián)了,這心態(tài)上立刻就不是滋味了。
幾句多余的話
有一次,我給人瞎出主意。
因?yàn)榭吹揭恍╅_(kāi)源作者,發(fā)現(xiàn)自己的開(kāi)源作品被商業(yè)使用,他們心里很不舒服,各種吐槽10。
我就說(shuō),你如果不舒服,可以改協(xié)議啊,比如你用的是MIT,你在MIT里加一句:
“凡是將本作品或本作品衍生品用于商業(yè)用途的,請(qǐng)主動(dòng)將合理估值的10%,打到我的賬號(hào)上來(lái):1XXXXX”
這樣,還是不是開(kāi)源協(xié)議了,我當(dāng)時(shí)還猶豫了一下。
后來(lái)一看OSD1,就知道這是在收版稅(royalty)了,這當(dāng)然不是開(kāi)源協(xié)議了。
不過(guò),這也沒(méi)關(guān)系,你覺(jué)得怎么舒服怎么來(lái),不是說(shuō)非要道德綁架讓你做開(kāi)源的。
當(dāng)然你要權(quán)衡一下,這樣改,會(huì)不會(huì)產(chǎn)生你最愿意看到的效果。
說(shuō)實(shí)話,這次Elastic改許可證,包括之前MongoDB、CockroachDB、RedisLabs、TimescaleDB、Graylog這些改許可證,我都沒(méi)有什么太多感覺(jué),畢竟他們都是公司,都是要盈利的嘛!先用免費(fèi)獲得用戶,然后開(kāi)始分情況適度收費(fèi),也屬于一種常見(jiàn)套路吧。像極了我們?cè)?jīng)可以免費(fèi)使用的互聯(lián)網(wǎng)應(yīng)用,后來(lái)紛紛收各種會(huì)員費(fèi)一樣。
這個(gè)世界不可能要求每個(gè)人都無(wú)私奉獻(xiàn),也不會(huì)是非黑即白,不會(huì)是只有開(kāi)源和非開(kāi)源,每個(gè)主體都有權(quán)利找到一種自己覺(jué)得合適的方法,讓他覺(jué)得自己的付出值得。
我想,如果區(qū)塊鏈發(fā)展到更成熟的階段(NFT和DAO都是有益的嘗試),作者能夠根據(jù)源碼使用情況自動(dòng)獲得回報(bào),那一定會(huì)給開(kāi)源帶來(lái)革命性的變化。
非要OSI同意了才算開(kāi)源軟件嗎?
是不是開(kāi)源,只有OSI說(shuō)了算?
這個(gè)怎么說(shuō)呢,Open Source這兩個(gè)單詞的組合是他們提出的,他們?cè)?jīng)還試圖把Open Source注冊(cè)成商標(biāo)呢。“開(kāi)源”這個(gè)翻譯,當(dāng)然是從Open Source來(lái)的。
所以,OSI說(shuō)一個(gè)東西是不是開(kāi)源,顯然更權(quán)威一些。
不過(guò),你硬要說(shuō)中文的“開(kāi)源”,不是OSI的Open Source,我也攔不住你。
那就看大家認(rèn)不認(rèn)了,至少就我所見(jiàn),整個(gè)業(yè)界,都還是認(rèn)可OSD的。
BTW:我國(guó)的木蘭寬松許可證就是獲得了OSI的認(rèn)證的,是正經(jīng)八百的開(kāi)源許可證11。
- https://mp.weixin.qq.com/s/_1Dbc6FyUQUvOqk6nFKMTw
- https://www.elastic.co/cn/blog/licensing-change
- https://opensource.org/node/1099
- https://opensource.org/licenses/category
- https://opensource.org/osd-annotated
- https://mp.weixin.qq.com/s/Kr0FzkpA-EHT51F7PVX76A
- https://github.com/Marak/faker.js/issues/1046
- https://mp.weixin.qq.com/s/2kYb93_V3TMdgKFAV3HG4Q
- https://mp.weixin.qq.com/s/y6rysKAifxefqfhSzcQcHg
- https://mp.weixin.qq.com/s/IiM63raAH38rEoSUScR-eQ
- https://opensource.org/licenses/MulanPSL-2.0
本文轉(zhuǎn)載自微信公眾號(hào)「微月人話」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系微月人話公眾號(hào)。