天天看點

實戰做項目如何選擇開源許可協定(一)-了解協定

目前國内開源項目正在逐漸升溫,中國也開始有不少優秀的開源項目突顯出來。在大家摩拳擦掌準備加入開源大軍時,也要知道這個圈子裡的規則。技術人員不能隻是研究技術,任何圈子都有規則,要知道了才能玩得好。前段時間有件關于開源軟體的事情挺熱鬧的,關于國内一個開發者把自己作品開源出來被别的公司的人拿去包裝成自己的産品高價賣出去。大部分做開源軟體的開發者都不太怎麼關注版權這些,具體微網誌如下:

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上項目采用的許可協定比例圖:

實戰做項目如何選擇開源許可協定(一)-了解協定

下一篇介紹一下如何在項目網站上添加開源許可協定。

參考:

http://www.aqee.net/a-short-guide-to-open-source-and-similar-licenses/

http://www.iteye.com/news/27616

原創文章,轉載請注明: 轉載自LANCEYAN.COM

本文連結位址: 實戰做項目如何選擇開源許可協定(一)-了解協定