提出問題
ExtAspNet開源以來,一直堅持開源免費的原則,但是其GPL v2的協議也讓有些開發者感到為難,比如有人提到這個問題:http://www.cnblogs.com/sanshi/archive/2012/02/05/2339242.html
為了進一步明確ExtAspNet開源免費的原則(不僅是對個人開發者開源免費,而且對企業商業應用開源免費),我們查閱了ExtJS的授權協議,並且對比了各種不同的開源協議,最終選擇了Apache License 2.0,也為您以后的商業應用免除后顧之憂。
分析問題
首先來看ExtJS的授權協議:
ExtJS Open Source License
Sencha is an avid supporter of open source software. Our open source license is the appropriate option if you are creating an open source application under a license compatible with the GNU GPL license v3. Although the GPLv3 has many terms, the most important is that you must provide the source code of your application to your users so they can be free to modify your application for their own needs.
也就是說,基於ExtJS的開源應用可以使用兼容GPL v3的開源協議,我們查閱了相關文檔,發現有很多對商業應用友好的協議:
- GNU Lesser General Public License (LGPL) version 3
-
This is the latest version of the LGPL: a free software license, but not a strong copyleft license, because it permits linking with non-free modules. It is compatible with GPLv3. We recommend it for special circumstances only.
- Apache License, Version 2.0
-
This is a free software license, compatible with version 3 of the GPL.
- Modified BSD license
-
This is the original BSD license, modified by removal of the advertising clause. It is a simple, permissive non-copyleft free software license, compatible with the GNU GPL.
- Mozilla Public License (MPL) version 2.0
-
This is a free software license. Section 3.3 provides indirect compatibility between this license and the GNU GPL version 2.0, the GNU LGPL version 2.1, the GNU AGPL version 3.0, and all later versions of those licenses.
到底該選擇哪個呢?關於這幾種協議的對比,有一些中文文檔:文檔一,文檔二
這幾種協議中,我比較熟悉的還是Apache License 2.0,因為我們身邊的很多應用都是使用的Apache License 2.0,比如Http Server、Tomcat、Maven、Subversion、Structs、Hadoop,我們來看看其中文的簡單定義:
Apache Licence 2.0
Apache Licence是著名的非盈利開源組織Apache采用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟件)。需要滿足的條件也和BSD類似:
- 需要給代碼的用戶一份Apache Licence
- 如果你修改了代碼,需要再被修改的文件中說明。
- 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
- 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。
Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售。
到底該選擇哪一種呢?一時還拿不定主意。
解決問題
后來,無意中發現的一篇文章(英文版)讓我堅定了使用Apache License 2.0的決心。
我們來看下這組數據:
1. GPL (68.9%)
2. Apache License (7.6%)
3. LGPL (6.7%)
4. BSD License (5.3%)
5. MIT License (4.1%)
被下載最多的開源項目:
1. Apache License (32.7%)
2. LGPL (21.0%)
3. GPL (14.4%)
4. BSD License (3.8%)
5. MIT License (1.6%)
企業應用使用最多的授權協議
1. Apache License (15.3%)
2. MIT License (10.8%)
3. BSD License (10.5%)
4. GPL (9.5%)
5. LGPL (8.9%)
此時已經很明朗了,ExtAspNet的應用場景大部分都是企業內管理系統,所以選擇被企業使用最多的授權協議無疑是明智的選擇,這才有了今天的這個決定:
從ExtAspNet v3.1.0開始,ExtAspNet將使用對商業應用友好的Apache License 2.0
注意:
- ExtAspNet授權協議僅適用於ExtAspNet應用程序本身。
- 由於ExtAspNet是基於ExtJS的應用,所以如果您在商業應用中使用了ExtAspNet,請向ExtJS官方購買商業授權。
喜歡ExtAspNet,快來加入官方交流論壇:http://bbs.extasp.net/