注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

勇敢的劳尤条

 
 
 

日志

 
 

关于避免GPL感染、商用或者闭源的几问?【转】  

2014-01-22 14:09:42|  分类: 开源的困惑与诱惑 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

使用了GPL软件开发的产品,如何避免GPL感染?

GPL 的传染可以被两道边界阻止(但是很不幸,这两道边界都很模糊,所以你必须用最保守的方式「自我审查」):
证明你的产品不是 derived work;或者
证明你满足 system exception。

如何证明不是 Derived Work

唯一被认可的方式是建立 address space boundary。被承认的 ASD 包括:
1、基于 MMU 的内存空间隔离(进程隔离,用户态,内核态隔离)。
2、程序、数据隔离。比如 GCC 不会感染被编译的源文件。
3、虚拟机隔离。两种语言并不使用同样的 IP(instruction counter)。比如 Lua 虚拟机和其上的 Lua 代码,JVM 和 Java byte code。VM 使用硬件的 IP,而 byte code 采用 VM 提供的虚拟 IP。Byte code 到 VM 之间的控制权切换并不是简单的 IP 附值。
http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL (使用GPL解释器)都是可以避免感染的
http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins (插件以进程方式运行,可以隔离)

如何证明满足 System Exception

这个比较少见。比如说,GCC 是运行在 Linux 上的。如果 Sun 把 GCC 移植到 Solaris 上,也不会感染 Solaris。必须证明你的系统是 GPL 软件的潜在目标平台。比如说,如果有人给 Photoshop 开发 GPL 许可证的 plug-in,也不可能感染 Photoshop。

关于问题

比如我写了一个程序,这个程序使用了linux下的一些GPL程序,我想发布我的程序,但是又想私有,如何做到?
1 、如果我在发布软件的时候不同时发布使用到的GPL软件,而是让用户自己安装这些GPL软件,那么是否可以私有?
答:发布方式无关紧要,取决于ASD是否存在。如果这些GPL软件不是系统库,并且用户不安装GPL软件无法运行,那么可以断定你的程序依赖于GPL软件,整个属于一个联合作品,整体要遵循GPL。

2 、如果我使用了某种GPL的编程语言开发程序,而这个程序也必须在安装了此编程语言运行环境时才能使用,那么我发布这个程序是否必须用GPL? 这个应该不必吧?
答:这个不必。因为某种语言运行时环境,这个与VC例子有点相似。
同时,编程语言属于需要解释器或者属于下层,与你写的程序是分离的,不会感染。

3 、如果我以GPL协议发布了某种软件,我是否可以再使用其它协议发布同一款软件?
答:可以,但是前提是:整个软件没有GPL的任何代码,同时,必须保证你有整个软件copyright,或者别人授权你了。

4、 最后确定一点,如果我不发布我的软件,而只是做为一个web site运行,那么不管是否使用GPL软件,都可以私有?
答:如果私用,那么可以随便使用。只要不存在发布、复制、传播等行为,都不必开源,自己使用。但是你的知识产权很危险。因为你的整个 site 从法律上说是 GPL 的。任何人以任何手段拿到,都可以自由公开。(当然你可以惩罚签署了 NDA 的员工,但是仅此而已。如果你没有实证是哪个员工的行为,连这点也没法惩罚了。)

5、继续问, 如果我使用了GPL的程序,并在此基础上修改了部分代码,然后用到我自己的软件中,那么我是否可以把自己的程序分为两部分,其中一部分包含了修改过GPL程序的程序,另一部分完全不包含任何GPL程序,然后我再分别发布这两个程序,但是这两个程序必须同时使用才能正常运行,我可以通过这种方式私有化部分程序吗? 有没有例子说明一下这种情况?
答:可以。因为两个程序运行在不同的进程空间,LPC和RPC有效。

6、商业软件使用了GPL软件,按照GPL协议的传染性,我的产品应该要免费且开源。倘若我不这么做,会有什么后果?别人可以告我吗?中国的法律会支持吗?中国现在是否有这样的案例?
答:目前为止,最好的参考是ffmpeg耻辱柱,暴风影音、QQ播放器、KMPlayer等都违反了GPL。所以,能看到的主要后果有
(1)被开源粉发现并围攻。
(2)别人可以告你,尤其在美国。但是如果你是一直呆在大陆,美国政府对你没有司法管辖权,目前也没有听说有这方面的引渡协议。
(3)中国没有相关案例。
(4)即使 GPL 在中国有法律效力。GPL 仅仅适用于 GPL 修改/翻译/衍生作品。对于衍生作品的定义,每个国家法律不同。中国版权法对之则没有明确定义。所以,灰色地带。

7、GPL“传染性”是什么意思?
答:依据GPL 的相关规定,如果原始授权人采用GPL来发布自己的作品,那么无论该作品的任何衍生作品,都要遵从GPL 的规则,尽管你对于该衍生作品拥有著作权,但是你也不可以因此认为它是你的心血而另立新规,也即规则的“传染性”。GPL 下的软件,是允许作为学习来复制使用的。但当基于该软件源代码开发出新作品,而该作品并非是自由软件的一部分,或基于其产生的衍生作品,它是独立的,不同于该自由软件的部分,即不同作品,那么它将不受GPL 的约束;但是,一旦你把它同该自由软件作为一个整体一同发布,它就会被“传染”上GPL 的属性,从而不得不遵守GPL 的规矩了。也即作品整体的“传染性”。如果软件是非开源的,那么是不可以把GPL 下的软件源代码使用到该的程序中的。但是,倘若你非得使用该开源代码,那么你只有把你原先的非开源的代码贡献给社区了,也即GPL 下的开源性“传染”了非开源代码。

【参考资料】
上面涉及的链接,在推荐阅读里面都有详细介绍。
http://yuanshuilee.blog.163.com/blog/static/2176972752014020113022800/
  评论这张
 
阅读(927)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017