java開源項目研究 3.許可協議介紹
來源:互聯網
上載者:User
項目
如果你只是想學習使用一下開源項目,那麼你可以跳過本節(瞭解一下更好^_^),但是如果你想在自己的產品(不管是開源的還是商業的)中整合開源項目,那麼你必須瞭解許可協議。
開源項目的License可以分為三大類:
OSI-Approved Open Source:被開放源碼組織(www.opensource.org)所獲批准的開放源碼授權協議。像大家經常看到的Apache,GPL,LGPL,MIT Licence,都屬於OSI-Approved的授權協議,OSI 的要求之一是二進位檔案和原始碼的自由發放。
Other/Proprietary License:其他的,私人的授權協議。指軟體作者提供原始碼,但是對軟體的分發和發布有其他的限制。
Public Domain:公用域授權。將軟體授權為公用域,表示作者完全放棄著作權,任何人都可以隨意使用。
大部分開源工程都屬於OSI-Approved Open Source,下面對常見的License做簡單的介紹:
對商業友好的License,這些License雖然保留著作權申明,但是不但免費修改、免費重新發布,而且允許商業使用,允許商業修改後不公布修改的軟體代碼(拿到商用產品中就不用擔心了^_^)。這些License包括:Apache License,Artistic License,BSD License,Python License,XWindows License,Zope License等。
GPL License,允許免費修改、免費重發布,但要求修改代碼必須也遵守GPL。這樣非GPL License的項目就不能使用GPL License的源碼。這種授權方式大大限制了從開源中牟利的手段,因此是對商業不友好的授權。GPL授權的項目特別多,包括有linux、gnome、kde、gcc等。LGPL License對比GPL較為寬鬆,允許商業代碼連結LGPL項目的庫。
MPL License,允許免費重發布、免費修改,但要求修改後的代碼著作權歸軟體的發起者。這種授權維護了商業軟體的利益,,它要求基於這種軟體得修改無償貢獻著作權給該軟體。這樣,圍繞該軟體得所有代碼得著作權都集中在發起開發人得手中。但MPL是允許修改,無償使用得。MPL軟體對連結沒有要求。
還有部分開源項目有多重協議,比如MySQL(著名的開來源資料庫)同時擁有Commercial License和GPL License,如果是GPL項目,那麼可以免費使用MySQL,但是在商業軟體中使用MySQL則要購買commercial license。
總之,當你準備在商用項目中使用開源項目,就需要仔細閱讀它的License,看是能否能夠免費使用。(不能免費,估計老闆就不同意了^_^)從商用的角度看,當然是選擇對商業友好的License比較好,比如Apache License,BSD License,MPL,另外LGPL也是可以使用的。在我們關注的java領域,選擇餘地還是比較大的(在以後的內容中會見到)。
聯絡作者: dawanjia@126.com