前段時間有件關於開源軟件的事情挺熱鬧的,關於國內一個開發者把本身做品開源出來被別的公司的人拿去包裝成本身的產品高價賣出去。大部分作開源軟件的開發者都不太怎麼關注版權這些,具體微博以下:jquery
hoowa_sun:
作開源後,發現大部分都被別人拿去學習,而後copy,而後本身閉源賣出去。這裏不缺少大公司,有一家公司拿個人開源系統修改後賣給了一個國內的運營商,賣的還很是貴至少幾十萬一套。因此我鄭重的建議你們,作軟件仍是要英文版開源,中文版封閉不要開源。nginx
在國內你們習慣了使用盜版、破解,看到這種免費的軟件也以爲是理所固然的拿來主義,甚至直接封裝到本身的商業組件賣出去。若是你正在這樣作,立刻停下來研究一下使用的這些開源組件的許可協議,否則某一天你會意外收到一封法院的傳票。若是你在開發或者準備開發開源軟件,但尚對開源許可協議不瞭解,也看下這篇文章,選擇一種開源許可協議保護你的開源軟件。git
常見的開源許可協議有:GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT。這些協議有什麼區別呢?github
GPL,全稱 GNU General Public License。它的主要內容爲:只要在一個軟件中使用(「使用」指類庫引用或者修改後的代碼) GPL 協議的產品,則該軟件產品必須也採用GPL協議,既必須也是開源和免費。這個協議就不太適合商用軟件,或者準備使用GPL開源組件的商用項目。基於這個協議的項目,極大的提升了開源軟件的數量。上面那個微博的案例,若是做者使用了GPL協議,而使用方所寫代碼的軟件包再發布時沒有公開源代碼就是違反了協議(多謝Sunny2038糾正)。目前用的多的是GPLV1,GPLV2。這兩個什麼區別看後面那張樹形圖。採用這個協議的開源軟件有:Linux、 MySQL 。apache
LGPL,最初是Library GPL的縮寫,後來改稱做Lesser GPL。因爲GPL太嚴格,限制了不少商用軟件使用GPL組件才推出了這個LGPL。LGPL容許商業軟件經過引用類庫的方式使用LGPL組件(不直接使用源代碼),這樣能夠不須要開源商業軟件的代碼。可是若是要修改原始組件的代碼,則涉及修改部分的代碼和基於原來代碼衍生的代碼都必須採用LGPL協議。LGPL不適合以LGPL協議爲基礎的代碼進行二次開發的商業軟件,可是商用軟件能夠採用編譯後的類庫引用就不須要公開源代碼了。採用這個協議的開源軟件有: JBoss、 FCKeditor 、 Hibernate。以前extjs就由於從LGPL轉換到GPL帶來了很多的震動。詳情點擊。oop
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構成更改。ui
除了這些條件它還有這些好處:spa
1)永久權利 一旦被受權,永久擁有。
2)全球範圍的權利 在一個國家得到受權,適用於全部國家。假如你在美國,許但是從印度受權的,也沒有問題。
3)受權免費 無版稅, 前期、後期均無任何費用。
4)受權無排他性 任何人均可以得到受權
5)受權不可撤消 一旦得到受權,沒有任何人能夠取消。好比,你基於該產品代碼開發了衍生產品,你不用擔憂會在某一天被禁止使用該代碼.net
使用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上項目採用的許可協議比例圖: