正文

关于GPL-转2007-02-04 17:34:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/23108.html

分享到:

关于GPL

最近的在公司的项目里用到了SharpDevelop中的几个类库,因为是开源的,就要考虑一下具体的协议会有什么约束。一查不好,发现SharpDevelop遵循的是GPL协议,也就是说凡是使用其中的类库得代码必须开源,OMG,要是这样公司还赚什么钱??同时又发现一个LGPL得协议,使用遵循这个协议的类库的程序的代码可以不必公开。看来我的想办法找找有没有遵循这个协议的替代软件。再不成就得花钱买了。唔唔唔。下付对于GPL和LGPL的简单说明。
 
GPL ( Gun General Public License ) version 2.0  1991
最常见的开源协议,使用它作为授权协议的有大名鼎鼎的 Linux 。 GPL 最显著的两个特点就是网上称为的“病毒性传播”和“不允许闭源的商业发布”。
所谓的“病毒性传播”,指的是, GPL 规定,所有从 GPL 协议授权的源码衍生出来的(即上面提到的 Derivative Module ),或者要跟 GPL 授权的源码混着用的 Project ,都要遵循 GPL 协议,就像病毒一样,粘上了关系,就“中毒”了。 GPL 这样规定的目的是,保证 在 GPL 协议保护下的产品,不会再受到其他协议或者授权的约束。即让跟 GPL 有关系的源码都能免费获取。举个例子,如果你的改进的 Linux 中使用了 GPL 授权下的开源模块(也必须使用,你不可能自己重新去做个内核吧,如果做出来了,你也没必要叫 Linux 了。),那么你整个 Linux 产品也必须遵循 GPL 协议去开源,不能以其他方式去开源发布,更不允许闭源发布。这样一来,就不会出现这样一个 Linux --这个功能是 GPL 协议授权的,可以免费获取源码,而另外一个功能是其他协议下的,拿不到源码。这点规定对使用或者研究该产品的人来说,是一个极大的便利。
而“不允许闭源商业发布”指的是,在 GPL 授权下,你的软件产品可以商业发布,拿去卖钱,但是在这同时,你也必须将该产品的源码以 GPL 协议方式开源发布出去,供他人免费获取。也许有人会迷惑,拿去卖,又同时开源,那谁来买阿?这个产品怎么赚钱呢??这就涉及到开源产品的商业模式的问题了。
GPL 协议下的商业发布的一个关键点就像 Java 视线论坛的 Robin 所说的, GPL 是针对软件源代码的版权,而不是针对软件编译后二进制版本的版权。你有权免费获得软件的源代码,但是你没有权力免费获得软件的二进制发行版本。 GPL 对软件发行版本唯一的限制就是:你的发行版本必须把完整的源代码一同提供。
 
LGPL
LGPL 是 GPL 的一个为主要为类库使用设计的开源协议。和 GPL 要求任何使用 / 修改 / 衍生之 GPL 类库的软件必须采用 GPL 协议不同。 LGPL 允许商业软件通过类库引用 (link) 方式使用 LGPL 类库而不需要开源商业软件的代码。这使得采用 LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售。
但是如果修改 LGPL 协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用 LGPL 协议。因此 LGPL 协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以 LGPL 协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

阅读(4914) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册