雙授權(quán)只要是軟件的版權(quán)所有者,就可以以任何授權(quán)發(fā)布自己控制下的軟件。雙授權(quán)甚至多授權(quán),總是行得通的??蛻?hù)只需要(明示或暗示的)簽署任一許可證,并遵照其條款使用軟件,而干脆不管其他許可證是什么。軟件的版權(quán)所有者,可以對(duì)軟件做任何事。所有的許可證,都是版權(quán)所有者自愿將部分的權(quán)利讓渡他人,而不約束版權(quán)所有者自己。就像市場(chǎng)擔(dān)心MySQL被Oracle收購(gòu)之后會(huì)閉源——這是正確的。Oracle擁有MySQL,有權(quán)利宣稱(chēng)MySQL從某個(gè)版本之后閉源(或更改許可證)。GPL非商業(yè)的無(wú)效性必須明確一點(diǎn):GPL與軟件的用途是否商業(yè)是完全脫鉤的。GPL在開(kāi)源的基本點(diǎn)之外的關(guān)鍵點(diǎn)只有一個(gè):衍生品仍然是GPL(含引用GPL部分代碼的作品)。GPL保護(hù)以下的權(quán)利:任何人使用,不在于是好人,或者壞人任何用途使用,不在于是商業(yè),或者非商業(yè)(其實(shí)到頭來(lái),什么是“商業(yè)使用”又怎么定義呢?)直接銷(xiāo)售,只要不修改,或提供修改部分的源碼私有使用,衍生品如果不傳播,則可以不開(kāi)源也就是說(shuō)從許可證本身的概念上,“GPL用于非商業(yè)用戶(hù)”或“禁止商業(yè)用戶(hù)按GPL使用”,都不是有效的命題。GPL非商業(yè)的有效性但GPL防止Shareware等閉源商業(yè)軟件侵吞代碼,在實(shí)際上是很有效的。這一點(diǎn)源于GPL的傳染性:引用GPL的代碼會(huì)造成整個(gè)軟件GPL。(注:小心——?jiǎng)討B(tài)鏈接GPL代碼是否適用GPL傳染性,這是開(kāi)源世界里長(zhǎng)期扯皮,數(shù)十年?duì)幷摬恍莸囊粓?chǎng)大戰(zhàn)。為了規(guī)避GPL的不明確之處,建議最好在用GPL時(shí),特別注明“動(dòng)態(tài)鏈接行為視為引用了GPL的代碼”。)所以事實(shí)上采用“GPL+自定義”雙授權(quán),是一個(gè)好辦法。只是從概念上,并不是強(qiáng)制商業(yè)/非商業(yè)用戶(hù)分開(kāi)走兩個(gè)授權(quán),而只是平行提供兩個(gè)授權(quán),任何用戶(hù)愛(ài)用哪個(gè)用哪個(gè)。另外,與GNU的態(tài)度不同,我認(rèn)為如果你的軟件是一個(gè)函數(shù)庫(kù),那么采用LGPL是一個(gè)好主意。LGPL明示了動(dòng)態(tài)鏈接函數(shù)庫(kù)不傳染整個(gè)軟件,保護(hù)了商業(yè)軟件與非GPL的其他開(kāi)源系統(tǒng)的使用權(quán)。但LGPL也同時(shí)規(guī)定了:雖然不必開(kāi)源整個(gè)軟件,但對(duì)LGPL庫(kù)本身做的更改,仍然必須交出不得私吞——應(yīng)當(dāng)開(kāi)源并同時(shí)遵守LGPL。達(dá)到你的目的,但不做無(wú)效的“定義”雖然開(kāi)源軟件的名稱(chēng)和管理權(quán)利總是屬于版權(quán)所有者(這往往通過(guò)商標(biāo)進(jìn)行保護(hù)),但任何其他人總是有fork(分支)的權(quán)力——只要發(fā)布的時(shí)候改個(gè)名字。所以發(fā)布了開(kāi)源軟件,軟件的代碼就屬于全世界,控制軟件本身的權(quán)力就不再完全屬于版權(quán)所有者自己了。了解許可證,利用許可證達(dá)到目的,但還是請(qǐng)不要做一些一廂情愿的期待。