大家都知道,从ExtJS 2.0.2以后开始,ExtJS的许可协议,就从LGPL变成了GPL,只是一个字母的差别,对我们有什么影响呢?我看到在一些网站上的讨论,竟有人说GPL比LGPL更加开放,因此,我想在这里把这个问题说清楚些。
GNU通用公共许可证(GNU General Public License),也就是GPL,它的主要思想可以归纳为以下几点:
1、如果一个软件使用GPL协议发行,那么这个软件的使用者都可以免费使用它,还可以免费得到它的源码,都有权对这个软件进行修改、复制、再发行作品或作品的演绎版本。
举个例子,linux 是基于GPL的,因此,我们每个人都可以得到它的源码,可以对它进行修改,复制,再发行,或者在它的基础上开发出自己的linux。因此,世界上才会有那么多的linux系统。
2、如果你对一个使用GPL协议发行的软件进行了修改,或者在它基础上开发出自己的软件,那么,你的软件也必须使用GPL协议进行发行。
还是这个例子,很多公司都在linux的基础上开发出自己的linux操作系统,比如红帽子,由于linux本身是GPL许可,因此,红帽子版本的linux操作系统也必须采用GPL发行。这就是为什么我们能够用到这么多的免费的linux系统的原因。
这里有个关键的问题,就是什么是演绎版本?如果我只是在我的产品里调用了EXT的函数,并没有对ext进行修改,那我的产品也算是ext的演绎版本吗?
这点,在很多地方都没有明确的解释,GPL的创建者,即自由软件基金会,认为即使是调用了GPL软件的函数库,那么也算是演绎版本。但是另外一些人,却认为不是。
正是如此,在美国,因为这个“演绎版本”的问题,经常打官司。
因此,如果你不想你的公司在以后的将来,可能会碰到官司,最好不要用ext 2.0.2以后的版本,除非你的公司产品也用GPL来发行。中国的公司,应该很少会开源吧,呵呵。
ext2.0.2,还是基于LGPL发行的,因此,可以用于商业用途。
由于ext协议的变化,在SF上出现了一个以ext2.0.2为基线,单独发展的ext,叫openext。不过,extjs的作者,认为openext的做法是违法的。
那么,大家还准备继续学习或使用extjs吗?欢迎大家讨论。
转载请以连接方式注明来自
AJava.org