GPL协议的适用范围

本文转载至http://www.javaeye.com/topic/188442 由robbin大大发表

 

Google运行的服务器操作系统是自己改造过的Linux,而Linux采用的是GPLv2协议。按照你的理解,Google有义务向每个使用 Google搜索服务的网民提供他们的服务器操作系统源代码。但是我可以担保,你去找Google要他们的操作系统源代码,Google是绝对不会给你 的。

所谓协议的开源,指的是distribution 情况下的开源,也就是说当你向外分发 的 时候必须开源。比方说你用了EXT,然后修改了EXT的源代码,然后又把这份修改的源代码向外分发,此时你必须向你的分发者开源。但是如果你并没有向外分 发源代码,那么你就无须开源,无论你如何使用这份源代码。所以你要自己运营网站使用了EXT,并且修改了源代码,你没有任何义务向任何人提供这份代码。

我觉得要理解GPL协议的话,最好了解一下Richard Stallman当年发起GNU组织背后的那些故事,这非常有助于理解GPL协议。这个故事的简单版本就是Stallman还在MIT的时候,实验室有台 施乐的打印机,但是他的网络驱动程序有问题,于是Stallman每次打印文档不得不跑到楼下打印机旁的电脑上面去打印,而不能在楼上通过自己的电脑直接 打印。由于施乐这个早期打印机提供了驱动程序源代码,于是Stallman自己修改驱动程序解决了这个问题。后来施乐新的打印机不再提供驱动程序,那么 Stallman要根据自己的需要修改驱动程序就没有办法下手了。因为这件事情,让Stallman觉得,软件厂商在分发二进制软件的时候应该携带源代 码,给分发用户自己修改源代码的自由权利。

从这个故事来说,以及钻研GPL以及其他开源协议的文本可以看出,协议适用范围是“distribution” ,如果你没有分发的行为,当然就没有开源的必要。否则我下载了Linux源代码乱改一起,如果你找我要,我难道还非得把我这个涂鸦之作给你不可吗?这不就闹笑话了吗。

 

准确的来说是你把这个软件分发(可以是付费分发)给谁,你就必须把源代码一起提供给他。请注意你并不需要向全世界公开,你只有义务向分发者公开。

对于得到这个软件的分发者来说,他手里既有二进制版本,也有源代码版本,这时情况就不同了:他如果想把二进制版本再次分发出去是违法的,必须得到 你的授权才行;但是他可以把源代码版本向任何人分发,而不需要得到你的授权。所以如果分发者非要把这份源代码向全世界公开,你无权阻止他。

 

Q: web条件下,服务器端向客户端传输也是分发的动作吗?


A:这不叫分发,这叫使用。除非你在网站上面提供该软件的下载,提供公众下载,这才叫分发。

不过话说回来,JS这种东西本来就没有办法保护源代码,你采用不采用GPLv3协议都无关紧要,人家要看也就随时看了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值