From:
http://www.qteverywhere.com/
Qt 4.5中提供了三種授權(quán)協(xié)議,分別是GPL, LGPL和Commercial,可能很多人要問,為什么同樣的一個產(chǎn)品要提供三種授權(quán)協(xié)議,什么情況下使用什么的樣的授權(quán)協(xié)議最合適?在這里我就大致解釋一下:
GPL全稱是The GNU General Public License,是目前大多數(shù)的GNU程序和超過半數(shù)的自由軟件使用的許可協(xié)議。GPL的出發(fā)點是代碼的開源/免費(fèi)使用和引用/修改/衍生代碼的開源/免 費(fèi)使用,但不允許修改后和衍生的代碼做為閉源的商業(yè)軟件發(fā)布和銷售。
GPL協(xié)議的主要內(nèi)容是只要在一個軟件中使用(”使用”指類庫引用,修改后的代碼或者衍生代碼)GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開源和免費(fèi)。這就是所謂的”傳染性”。GPL協(xié)議的產(chǎn)品作為一個單獨的產(chǎn)品使用沒有任何問題, 還可以享受免費(fèi)的優(yōu)勢。
回到LGPL,LGPL的全稱是 GNU Lesser General Public License,GNU 較寬松公共許可證,也是由協(xié)議是由自由軟體基金會發(fā)布的許可證,是一個主要為類庫使用設(shè)計的開源協(xié)議,和GPL要求任何使用/修改/衍生之GPL類庫的的 軟件必須采用GPL協(xié)議不同。LGPL允許商業(yè)軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業(yè)軟件的代碼。這使得采用LGPL協(xié)議的 開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。
除了GPL和LGPL兩種開源協(xié)議之外,Qt還提供了Commercial商業(yè)協(xié)議,Qt的商業(yè)協(xié)議是由Nokia定義的,由Nokia和購買方簽 訂的,具有法律效應(yīng)的Qt產(chǎn)品授權(quán)協(xié)議。 Commercial License相教與GPL和LGPL,對于商業(yè)客戶提供了更多的靈活性,客戶可以任意的修改Qt的源代碼,開發(fā)商業(yè)軟件,而不需要公開任何源代碼。并 且,在Commercial License中,我們還提供了技術(shù)支持服務(wù)。當(dāng)然,商業(yè)授權(quán)協(xié)議是需要費(fèi)用的。
到底什么時候需要選擇GPL和LGPL呢?一個最顯而易見的理由就是他們都是免費(fèi)的,使用LGPL和GPL版本的Qt是不需要支付任何費(fèi)用的,當(dāng)然 我們也相應(yīng)的不會提供技術(shù)支持。如果你打算開發(fā)真正的開源軟件,并希望使用者也可以保持開源,那么GPL是更好的選擇,因為所有人,不論你自己還是將來基 于你的代碼進(jìn)行再次開發(fā)都必須開源。如果你打算開發(fā)閉源(不開放源代碼)的商業(yè)軟件,那么LGPL則更適合,但必須滿足下面兩個條件:
1. 你的應(yīng)用程序應(yīng)該動態(tài)鏈接Qt函數(shù)庫,并使你的應(yīng)用程序與未做修改的LGPL庫分開發(fā)布。同時必須確保使用者(接受者)知道應(yīng)用程序使用了LGPL版本的Qt;
2. 如果你對LGPL版本的Qt進(jìn)行了任何修改,并發(fā)布,則必須遵循LGPL 條款發(fā)布。任何使用者有權(quán)利得到這些修改(通常情況下是源代碼),并且確保使用者可以通過這些修改自己生成相應(yīng)你修改過的Qt版本。
相信到這里大家已經(jīng)對Qt提供的這三種協(xié)議有了基本的了解,通常大家還會有一個疑問,就是基于這三種授權(quán)協(xié)議的Qt產(chǎn)品到底由多少功能上的區(qū)別,是 不是商業(yè)版本的會更完整,性能更好一些?這里我可以負(fù)責(zé)任的說:99%的代碼都是一樣的,無論是GPL, LGPL還是Commercial,功能,性能都沒有區(qū)別,唯一的區(qū)別就在于授權(quán)協(xié)議的不同。
還有一點需要說明的就是,由于LGPL是在Qt4.5這個版本里面才引入的,所以之前的Qt版本,4.4或者3.x的版本,并不提供LGPL協(xié)議,是不可逆的。同時未來發(fā)布的Qt版本,就一直會提供三種不同的授權(quán)協(xié)議版本。
下面有一些鏈接,有興趣想深入了解這些授權(quán)協(xié)議的同學(xué),可以學(xué)習(xí)學(xué)習(xí)
GPL協(xié)議原文 - http://www.gnu.org/copyleft/gpl.html
GPL協(xié)議中文譯文 - http://bergwolf.googlepages.com/gplv3_zh
LGPL協(xié)議原文 - http://www.gnu.org/copyleft/lesser.html
LGPL協(xié)議中文譯文 - http://www.thebigfly.com/gnu/lgpl/lgpl-v3.php
58種不同的開源協(xié)議 - http://www.fsf.org/licensing/licenses/
什么是動態(tài)鏈接 - http://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%BA%93
官方聲明 - http://www.qtsoftware.com/about/news/lgpl-license-option-added-to-qt
官方Q&A - http://www.qtsoftware.com/about/licensing/frequently-asked-questions