開源早已成為很多科技企業(yè)關(guān)注的焦點(diǎn),我們也常會發(fā)現(xiàn)部分開源技術(shù)后面標(biāo)注了某種協(xié)議,這意味著這些開源代碼被框上了某種束縛,或者說這些代碼將必須遵循這些規(guī)則,否則可能會觸及法律。
總的來看,如今比較流行的開源軟件協(xié)議包括:GPL,LGPL,Apache License(2.0)和BSD。一般來講,如果使用了GPL許可證的軟件,就意味著你的軟件必須“自由”,相比之下,其他協(xié)議大多只要求使用者尊重原作就可以了,更適用于商業(yè)軟件之中,只有區(qū)分了這些開源軟件協(xié)議的含義,才能更好的利用和回饋開源軟件。
你需要了解的開源許可證
GPL(GNU General Public License Versions)
GPL協(xié)議一般還可以分為GPL2.0和GPL3.0兩種,而GPL3.0是更新一代的開源標(biāo)準(zhǔn),在對用戶專利的保護(hù)和DRM的限制方面有所更改。GPL協(xié)議同其它的自由軟件許可證一樣,許可社會公眾享有:運(yùn)行、復(fù)制軟件的自由,發(fā)行傳播軟件的自由,獲得軟件源碼的自由,改進(jìn)軟件并將自己作出的改進(jìn)版本向社會發(fā)行傳播的自由。 而GPL協(xié)議就像一種開源“病毒”,任何一款沾染上他的軟件都不得不保持開源和免費(fèi)。
GPL許可證
根據(jù)國外論壇Robbin的解釋:“GPL是針對軟件源代碼的版權(quán),而不是針對軟件編譯后二進(jìn)制版本的版權(quán)。你有權(quán)免費(fèi)獲得軟件的源代碼,但是你沒有權(quán)力免費(fèi)獲得軟件的二進(jìn)制發(fā)行版本。GPL對軟件發(fā)行版本唯一的限制就是:你的發(fā)行版本必須把完整的源代碼一同提供。”
LGPL
LGPL是GNU Lesser General Public License(GNU寬通用公共許可證)的縮寫形式,LGPL是GPL的一個為主要為類庫使用設(shè)計(jì)的開源協(xié)議。與上面的GPL不同的是,LGPL允許商業(yè)軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業(yè)軟件的代碼。使采用LGPL協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。
我們也可以簡單理解為:LGPL協(xié)議的開源代碼商業(yè)軟件可以使用,但不能修改LGPL協(xié)議的代碼。
Apache License
Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議。該協(xié)議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開源或商業(yè)軟件)。他需要滿足的條件包括:
○需要給代碼的用戶一份Apache Licence
○如果你修改了代碼,需要在被修改的文件中說明。
○在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標(biāo),專利聲明和其他原來作者規(guī)定需要包含的說明。
○如果再發(fā)布的產(chǎn)品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對Apache Licence構(gòu)成更改。
BSD開源協(xié)議(Berkerley Software Distribution)
目前BSD開源協(xié)議分為BSD 3-Clause和BSD 2-Clause兩種,分別代指兩個條款和三個條款的BSD協(xié)議。應(yīng)該說,BSD開源協(xié)議是一個給于使用者很大自由的協(xié)議?;旧鲜褂谜呖梢宰杂傻氖褂茫薷脑创a,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布。但是,不可以用開源代碼的作者/機(jī)構(gòu)名字和原來產(chǎn)品的名字做市場推廣。
這就不難理解,很多的公司企業(yè)在選用開源產(chǎn)品的時候都首選BSD協(xié)議,因?yàn)榭梢酝耆刂七@些第三方的代碼,在必要的時候可以修改或者二次開發(fā)。
除了上面的集中開源協(xié)議,還有MIT許可證(源自麻省理工,是與BSD一樣寬范的許可協(xié)議)和Mozilla許可證等,具體可參照下圖。
開源許可證(圖片來自:阮一峰blog)