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