不仅开源,而且对企业应用完全免费!ExtAspNet弃用GPL v2,拥抱Apache License 2.0

提出问题

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类似:

  1. 需要给代码的用户一份Apache Licence
  2. 如果你修改了代码,需要再被修改的文件中说明。
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  4. 如果再发布的产品中包含一个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授权协议

 

 

 

注意:

  1. ExtAspNet授权协议仅适用于ExtAspNet应用程序本身。
  2. 由于ExtAspNet是基于ExtJS的应用,所以如果您在商业应用中使用了ExtAspNet,请向ExtJS官方购买商业授权。

 

喜欢ExtAspNet,快来加入官方交流论坛:http://bbs.extasp.net/

posted @ 2012-02-11 20:05  三生石上(FineUI控件)  阅读(10678)  评论(22编辑  收藏  举报