開源許可可能是使用開源代碼最重要的一環,他不僅賦予程序員使用代碼的權利,也給程序員使用開源代碼加了一定的權限。如果我們不遵守其開源規定,我們可能遭受法律的制裁。
一、GPL(GUN通用公共許可證)
GPL的英文名是General Public License。此協議規定:當一個開源軟件被聲明爲GPL時,作爲使用者的我們有權對該源代碼進行修改以及重新發布,也就是此軟件完全開放,但是與此同時,我們所修改的源代碼也要允許被其他的使用者修改和重新發布。
GPL的撰寫者是斯托曼,第一版在1989年1月發佈,斯托曼是一個熱衷於將軟件自由化的人物,他的理想就是構建一種四海之內皆可使用的許可證,這樣就能爲自由軟件的傳播帶來福音
總結:使用GPL協議二次開發的自由軟件也要完全開源
二、BSD許可協議
BSD許可協議可以說是最寬容的一種協議,這個協議基本可以認爲你可以對開源軟件“爲所欲爲”,他允許你對使用BSD協議的開源軟件進行修改並且應用在自己的軟件上進行閉源。但是“爲所欲爲”的前提你仍然要受以下三點約束:
1、如果二次發佈的作品爲源代碼,必須在文件中標註原有的BSD協議
2、如果二次發佈的作品爲二進制文件或者軟件,必須在技術文檔中標註原有的BSD協議
3、不可以使用開源代碼的作者或者機構進行宣傳
總結:爲所欲爲
三、LGPL(GUN寬通用公共許可證)
LGPL的英文名是Lesser General Public License,他是GPL的一個衍生。和GPL所規定的二次開發代碼也必須完全開源不同,你可以在自己編寫的軟件中,調用由遵循LGPL協議編譯而成的二進制庫文件,這樣你的軟件部分就可以不開源,並且可以自由發售。但是如果修改遵循LGPL協議的開源代碼,那麼你所修改的代碼也必須開源。
如果說GPL最大限度的促進了開源軟件的自由傳播,那麼LGPL則在促進軟件行業商用行爲的發展方面起了很重要的作用,並且也保證了開源代碼的自由傳播。
總結:二次開發中如果不涉及修改開源代碼,則軟件可以閉源。
四、Apache License 2.0
Apache License 2.0可以與BSD類比,在尊重作者和原創的前提下,允許使用開源代碼二次開發的軟件進行重新發布,包括開源和閉源,但是要注意遵守以下幾點:
1、在發售的軟件中包含一份Apache License協議
2、修改源代碼文件之後,要在被修改文件中添加說明
3、在修改開源代碼和對開源代碼進行衍生的部分需要帶有開源代碼原本的協議,以及作者所要求的需要包含的內容
4、如果發行軟件時包含一份參考文件,參考文件需要包含Apache License,可以包含自己的許可,但不可以對Apache License更改。
總結:允許二次開發軟件進行閉源,但需要尊重原創,並傳播Apache License
最後補上一份開源許可圖鑑(圖源:網絡)