本文部分摘自評論:從射手QQ之爭看開源許可證的選擇
首先,開源并不代表放棄自身的權力,相反,開源軟件之所以存在,正是它非常注重這種權力,并且把這種權力賦予了軟件的所有使用者。小心的選擇許可證是開發(fā)開 源軟件的第一步,也是每一個開源軟件作者所必須要了解的,這代表了你對你的軟件的最基本態(tài)度。很多的時候,這背后也隱藏著某種商業(yè)策略,特別是有商業(yè)公司 支持的項目。
比如Android為什么是Apache 2.0而不是LGPL/GPL發(fā)布?為什么Linux是以GPL發(fā)布?其中絕對不是簡簡單單的看哪個許可證用得多就選擇哪個,而是深思熟慮的結(jié)果。千萬不 要小看這個選擇,一個許可證之于軟件就相當于價值觀之于普通人,代表了這個軟件的基本品性。一個錯誤的許可證選擇可能會直接導致整個項目的失 敗,XFree86就是一個好例子,所以,選擇許可證是一件小心、謹慎的事情。
各種開源的許可證主要的限制還是在redistribution(發(fā)布),所以個人/商業(yè)公司開發(fā)的軟件包含了GPL的代碼,只要你不發(fā)布,是可以任意使用的。
GPL
這里不想再解釋長篇的GPL譯文和更長的FAQ。 簡單說,GPL軟件的使用者有權力得到軟件的代碼,只要使用了GPL,在發(fā)布(redistribution)的時候,整個項目也必須是GPL的,即主程 序和靜態(tài)鏈接的庫(Linux的.a和Windows的.lib)必須是GPL的,動態(tài)鏈接庫(Linux的.so,Windows的.dll)必須是比 GPL兼容的。所謂GPL兼容,也就是GPL軟件中可以使用的庫,這些許可證必須比GPL弱(如LGPL,BSD),而不能是某個商業(yè)許可證。這里有一個 兼容列表 List of FSF approved software licenses。正因如此,GPL是帶有很強的傳染性,只要你的軟件使用了GPL的代碼,那么就請以GPL開放源代碼吧,并且你的項目中也不能有任何和GPL不兼容的庫。
LGPL
GPL 帶有很強的傳染性,那么如果一個庫使用GPL發(fā)布,那么使用這個庫的所有軟件也必須使用GPL發(fā)布,這對不想開放源代碼的商業(yè)軟件來講是致命的打擊——你 可以不使用其他的庫,但最基本的libc是無論如何繞不開的,如果libc是以GPL發(fā)布,就相當于所有軟件必須以GPL發(fā)布了。所 以,LGPL(Lesser GPL)誕生了。LGPL定義為,在以LGPL發(fā)布的庫的基礎上開發(fā)新的庫的時候,新的庫必須以LGPL發(fā)布,但是如果僅僅是動態(tài)鏈接,那么則不受任何限 制。這樣商業(yè)軟件就可以隨意的使用LGPL的庫了。因此,LGPL也具有傳染性,但限制在在其基礎上開發(fā)的庫上,而并不限制使用它的程序本身——它的傳染 性遠小于GPL。
BSD、Apache 2.0
相對GPL/LGPL的開放源代碼,BSD,Apache 2.0就寬松許多——商業(yè)軟件可以任意的使用BSD,Apache 2.0發(fā)布的軟件代碼,而不需要開放源代碼,只需要提及代碼的原出處就可以了。BSD和Apache 2.0提及的方式稍有不同,具體可以參考協(xié)議的詳細內(nèi)容。它們是GPL兼容的。
了解了幾種常用許可證的異同,再來看許可證的選擇。
Android 使用寬松的Apache 2.0發(fā)布,因為Google作為一個商業(yè)公司,并不想失去商業(yè)軟件的支持,它希望團結(jié)一切可以團結(jié)的力量加入的Android的開發(fā)中來,壯大自己的陣 營,使用Apache 2.0就無可厚非了。而Google本身,并沒有喪失對Android的控制權,不會擔心另外一個公司拿走了Android的代碼開發(fā)出一個閉源 Android的對手。因為,只要Android不斷的出新版,社區(qū)不停的跟進,并且不停的修改API,其他基于Android開發(fā)的公司不得不把自己的 Patch提回到主干上,否則,必然將耗費大量人力物力在維護自己的Patch上(錢這方面你斗得過Google?),得不償失。而且,閉源之后,與整個 社區(qū)為敵,作為一個定位軟件平臺的項目,會流失大量應用軟件開發(fā)者,以小博大,任何一個商業(yè)公司都不會干這種勝算不高的蠢事。
在看以 GPL發(fā)布的Linux為什么比以BSD發(fā)布的FreeBSD成功。其實正是因為GPL的傳染性。當一個開發(fā)人員在Linux基礎上開發(fā)一個新功能之后, 不得不以GPL開放源代碼,貢獻回Linux,這樣Linux本身才能越來也越壯大而且留住了相當?shù)拈_發(fā)人員,形成了一個 優(yōu)秀軟件->很多使用者和貢獻者->貢獻->更優(yōu)秀的軟件->更多的使用者和貢獻者... 的良性循環(huán)。
正如每一個成功的男人背后都有一個女人,每一個成功的開源軟件背后都有一個符合它策略的開源許可證。許可證明確的版權劃分,明確的版權劃分為軟件發(fā)展提供 了一個良好的環(huán)境。正是因為老外重視版權,天天為版權爭吵,才會有一個良好的商業(yè)軟件和自由軟件大環(huán)境。相對的,漠視版權的中國無論商業(yè)還是開源軟件,才 會淪落到毫無創(chuàng)新能力,只能給外國打打下手,作點邊角外包的境地。