實戰如何選擇開源許可協議
目前國內開源專案正在逐漸升溫,中國也開始有不少優秀的開源專案突顯出來。在大家摩拳擦掌準備加入開源大軍時,也要知道這個圈子裡的規則。技術人員不能只是研究技術,任何圈子都有規則,要知道了才能玩得好。前段時間有件關於開源軟體的事情挺熱鬧的,關於國內一個開發者把自己作品開源出來被別的公司的人拿去包裝成自己的產品高價賣出去。大部分做開源軟體的開發者都不太怎麼關注版權這些,具體微博如下:
hoowa_sun:
做開源後,發現大部分都被別人拿去學習,然後copy,然後自己閉源賣出去。這裡不缺乏大公司,有一家公司拿我的開源系統修改後賣給了一個國內的運營商,賣的還非常貴至少幾十萬一套。所以我鄭重的建議大家,做軟體還是要英文版開源,中文版封閉不要開源。
在國內大家習慣了使用盜版、破解,看到這種免費的軟體也覺得是理所當然的拿來主義,甚至直接封裝到自己的商業元件賣出去。如果你正在這樣做,馬上停下來研究一下使用的這些開源元件的許可協議,不然某一天你會意外收到一封法院的傳票。如果你在開發或者準備開發開源軟體,但尚對開源許可協議不瞭解,也看下這篇文章,選擇一種開源許可協議保護你的開源軟體。
常見的開源許可協議有:GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT。這些協議有什麼區別呢?
GPL
全稱 GNU General Public License。它的主要內容為:只要在一個軟體中使用(“使用”指類庫引用或者修改後的程式碼) GPL 協議的產品,則該軟體產品必須也採用GPL協議,既必須也是開源和免費。這個協議就不太適合商用軟體,或者準備使用GPL開源元件的商用專案。基於這個協議的專案,極大的提高了開源軟體的數量。上面那個微博的案例,如果作者使用了GPL協議,而使用方沒有公開原始碼就是違反了協議。目前用的多的是GPLV1,GPLV2。這兩個什麼區別看後面那張樹形圖。採用這個協議的開源軟體有:Linux、 MySQL 。
LGPL
最初是Library GPL的縮寫,後來改稱作Lesser GPL。由於GPL太嚴格,限制了很多商用軟體使用GPL元件才推出了這個LGPL。LGPL允許商業軟體通過引用類庫的方式使用LGPL元件(不直接使用原始碼),這樣可以不需要開源商業軟體的程式碼。但是如果要修改原始元件的程式碼,則涉及修改部分的程式碼和基於原來程式碼衍生的程式碼都必須採用LGPL協議。LGPL不適合以LGPL協議為基礎的程式碼進行二次開發的商業軟體,但是商用軟體可以採用編譯後的類庫引用就不需要公開原始碼了。採用這個協議的開源軟體有: JBoss、 FCKeditor 、 Hibernate。之前extjs就因為從LGPL轉換到GPL帶來了不少的震動。
BSD
全稱 Berkeley Software Distribution。這個協議相對上面兩個協議寬鬆很多,允許使用者修改和重新發布程式碼,也允許使用或在BSD程式碼基礎上開發商業軟體釋出和銷售,因此是適用於商業軟體的。
使用者別太高興,使用時還必須做到滿足三個條件:
1)如果再發布的產品中包含原始碼,則在原始碼中必須帶有原來程式碼中的BSD協議。
2)如果再發布的只是二進位制類庫/軟體,則需要在類庫/軟體的文件和版權宣告中包含原來程式碼中的BSD協議。
3)不可以用開原始碼的作者/機構名字和原來產品的名字做市場推廣。適用BSD協議的開源軟體有: nginx、CruiseControl、Redis。
apache Licence vesion 2.0
這個協議除了為使用者提供版權許可之外,還有專利許可。與BSD協議許可權類似, 允許程式碼修改,再發布,適用商業軟體。
但是也需要滿足以下條件:
1)需要給程式碼的使用者一份Apache Licence。
2)如果你修改了程式碼,需要再被修改的檔案中說明。
3)在延伸的程式碼中(修改和有原始碼衍生的程式碼中)需要帶有原來程式碼中的協議,商標,專利宣告和其他原來作者規定需要包含的說明。
4)如果再發布的產品中包含一個Notice檔案,則在Notice檔案中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。
除了這些條件它還有這些好處:
1)永久權利 一旦被授權,永久擁有。
2)全球範圍的權利 在一個國家獲得授權,適用於所有國家。假如你在美國,許可是從印度授權的,也沒有問題。
3)授權免費 無版稅, 前期、後期均無任何費用。
4)授權無排他性 任何人都可以獲得授權
5)授權不可撤消 一旦獲得授權,沒有任何人可以取消。比如,你基於該產品程式碼開發了衍生產品,你不用擔心會在某一天被禁止使用該程式碼
使用apache Licence vesion 2.0協議的開源軟體有:Hadoop 、apache httpserver、Spring Framework、MongoDB 。
MIT
源自麻省理工學院(Massachusetts Institute of Technology, MIT),又稱X11協議。MIT與BSD類似,但是比BSD協議更加寬鬆,是目前最少限制的協議。這個協議唯一的條件就是在修改後的程式碼或者發行包包含原作者的許可資訊。適用商業軟體。使用MIT的軟體專案有:jquery、Node.js。
列出了常用協議,還有一些比較常用的大家就谷歌了,比如: Mozilla Public License、Creative Commons、Eclipse Public License 1.0等。
相關文章
- 看懂開源許可協議協議
- 開源軟體許可協議介紹協議
- 在選擇開源時需要基於自身需求選擇合適的開源協議協議
- 為何《貢獻者許可協議》不利於開源社群?協議
- GitHub如何選擇合適的license(許可證)Github
- MongoDB宣佈其開源許可協議從AGPLv3切換到ServerMongoDB協議Server
- 4種傳輸協議設定,檔案傳輸協議如何選擇?協議
- 開源協議協議
- MySQL 開源許可研究MySql
- 大白話開源協議協議
- MySQL許可權管理實戰MySql
- 鴻蒙無許可權實現圖片選擇拍照和錄影片鴻蒙
- 主流開源協議對比協議
- 開源協議的分類協議
- HTTP快取協議實戰HTTP快取協議
- 許可權之選單許可權
- 帶您瞭解PAX:Android網路交叉許可協議Android協議
- 開源≠免費 常見開源協議介紹協議
- 常見開源協議詳解協議
- ASP.NET Core 修改開源協議為MIT,.NET全平臺 MIT協議開源了ASP.NET協議MIT
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Kotlin實戰【三】表示與選擇Kotlin
- SpringSecurity許可權管理系統實戰—九、資料許可權的配置SpringGse
- 企業如何選擇開源的零程式碼開發平臺
- 常用開源協議商用限制解讀協議
- Labs宣佈將其Redis模組的許可協議由AGPLRedis協議
- 七問七答理清MySQL開源許可MySql
- Fecbbc多商戶正式開源免費,BSD開源協議協議
- 8款OKR開源系統與非開源系統:如何選擇適合的?OKR
- 如openGauss、PolarDB、OceanBase等選擇開源
- 開源 | SOFAMesh 的通用協議擴充套件協議套件
- 何為開源,聊聊軟體開發中的那些開源協議協議
- 選單許可權和按鈕許可權設定
- 基於.NET 5實現的開源通用許可權管理平臺
- Django實戰1-許可權管理功能實現-01:搭建開發環境Django開發環境
- Android元件化開發實戰:封裝許可權管理請求框架Android元件化封裝框架
- 百奧賽圖與翰森製藥簽署抗體許可協議協議
- 實戰 target 選擇器,解放生產力!
- 動態選路協議協議