目錄
引言
如何看懂所引用文件頭的版權(quán)聲明, 這是一個(gè)問題
如何為代碼開源選擇合適的許可證, 這是一個(gè)問題
如何為商業(yè)軟件引用不侵權(quán)的軟件, 這也是一個(gè)問題
帶著這么多問題, 我們就看看到底有哪些常見的開源協(xié)議
常見的五種開源協(xié)議
BSD
BSD (Berkeley Software Distribution)
BSD開源協(xié)議是一個(gè)給于使用者很大自由的協(xié)議, 基本上使用者可以"為所欲為", 因此是對(duì)商業(yè)集成很友好的協(xié)議
但"為所欲為"的前提當(dāng)你發(fā)布使用了BSD協(xié)議的代碼時(shí), 需要滿足這三個(gè)條件
如果在發(fā)布的產(chǎn)品中包含源代碼, 則在源代碼中必須帶有原來代碼中的BSD協(xié)議
如果在發(fā)布的只是二進(jìn)制類庫/軟件, 則需要在類庫/軟件的文檔和版權(quán)聲明中包含原來代碼中的BSD協(xié)議
不可以用開源代碼的作者/機(jī)構(gòu)名字和原來產(chǎn)品的名字做市場推廣
采用BSD協(xié)議的軟件有
為所欲為協(xié)議, 只是要有版權(quán)聲明, 且不侵犯"肖像權(quán)"
APL
APL (Apache License)
該協(xié)議和BSD類似, 同樣鼓勵(lì)代碼共享和尊重原作者的著作權(quán), 同樣允許代碼修改再發(fā)布
該協(xié)議相比BSD的區(qū)別是
- 如果你修改了代碼, 需要再被修改的文件中說明
采用Apache License協(xié)議的軟件有
另一個(gè)為所欲為協(xié)議屋休,只是版權(quán)聲明稍微"嚴(yán)了點(diǎn)"
MIT
MIT (Massachusetts Institute of Technology)
MIT是和BSD一樣寬范的許可協(xié)議, 作者只想保留版權(quán), 而無任何其他了限制
采用MIT協(xié)議的軟件有
如果你只想讓別人記住你, 請(qǐng)用MIT
GPL
GPL (GNU General Public License)
上面的三個(gè)協(xié)議都是鼓勵(lì)代碼重用的, 所以說他們不僅是商業(yè)友好的, 更是程序員友好的
GPL相比他們就沒有那么商業(yè)"友好"了
GPL的出發(fā)點(diǎn)是代碼的開源/免費(fèi)使用和引用/修改/衍生代碼的開源/免費(fèi)使用
但是不允許修改后和衍生的代碼做為閉源的商業(yè)軟件發(fā)布和銷售
通俗地說就是:
只要你用了任何該協(xié)議的庫蹂安、甚至是一段代碼, 那么你的整個(gè)程序, 不管以何種方式鏈接, 都必須全部使用GPL協(xié)議嫌蚤、并遵循該協(xié)議開源
采用GPL協(xié)議的軟件有
俗稱"傳染病"協(xié)議, 用了它你也就被開源了
LGPL
LGPL (GNU Lesser General Public License)
鑒于GPL是如此的隔絕商業(yè), 就出現(xiàn)了一個(gè)寬松版的GPL即LGPL
但LGPL其實(shí)只是GPL的一個(gè)為主要為類庫使用設(shè)計(jì)的開源協(xié)議
LGPL允許商業(yè)軟件通過類庫引用方式使用LGPL類庫而不需要開源商業(yè)軟件的代碼
GPL/LGPL都保障原作者的知識(shí)產(chǎn)權(quán)抖仅,避免有人利用開源代碼復(fù)制并開發(fā)類似的產(chǎn)品
采用LGPL協(xié)議的軟件有
適用于類庫引用而不是二次開發(fā)的GPL
iOS常用第三方庫的開源協(xié)議
CocoaPods/CocoaPods - MIT
Coding/Coding-iOS - MIT
facebook/SocketRocket - BSD
fastlane/fastlane - MIT
IFTTT/JazzHands - MIT
SnapKit/Masonry - MIT
YYKit - MIT
Android常用第三方庫的開源協(xié)議
alibaba/fastjson - APL
greenrobot/EventBus -APL
greenrobot/greenDAO - APL
JakeWharton/butterknife - APL
koush/AndroidAsync - APL
loopj/android-async-http - APL
PaoloRotolo/AppIntro - APL
square/okhttp - APL
附錄
更多文章, 請(qǐng)支持我的個(gè)人博客