作者iincho (世界的尽头)
看板Soft_Job
标题Re: [请益] 请问要如何规避GPL?
时间Sat May 23 03:25:12 2009
※ 引述《zanyking (遥远的旅人)》之铭言:
: ※ 引述《frostfly (frostfly)》之铭言:
: : 端看 GPL 部分
: : 用静态连结是没有办法规避的没错
: : 毕竟已经把程式结合在一起了
: : 而动态联结的话
: : 则要视呼叫方式而定
: : 律师给我们的定义是这样:
: : 若用 function call 或 程式间使用相同资料结构
: : 则它们算是"同一支程式"
: : 整份程式都被 GPL 病毒感染了
: : 另外若呼叫从另一支程式的 main function
: : 用参数设定另一个程式执行行为
: : 则有机会可以视为"不同支程式"而坳过去
: : 今天刚好在公司有 GPL 的训练课程
: : 大家分享~
: 有个问题想问问看大家的看法。
: GPLv2要求的是使用者要有看到程式码(可於编译後执行)的权利。
: 你的一只程式里有叫到GPL的东西,你的程式就变成GPL的,这是GPL的病毒扩散原则。
: CASE 1:
: 那如果,我今天写了一只程式A,用到GPL lib B与一个proprietary Lib C,
: 而B跟C彼此间没有任何关系。
: 那麽,我的A因为B的关系必须声明是GPL的,那A的使用者可以要求C的 Open Source
: 权利吗?
: 如果应该的话,我开发一个GPL系统而里面却用了proprietary的东西,我岂不该死,
: 因为我侵害proprietary Lib C的权利?GPL有这麽伟大吗?
: CASE 2:
: 再来另一种情况,我开发一个proprietary 的System A, A提供一系列的介面供使用者
: 挂载模组。 今天有个快乐的开源工程师(又是敝人在下我)用GPL的Lib C基於A的介面开
: 发了模组B。
: 因为C的缘故,所以我的B一定得宣告成GPL的,但难道那个A就也得一样宣告成GPL吗?
: 那如果A不是我开发的话呢?或虽然我开发,但产权不归我呢?因为我工作得很闷搞了个
: B,我就得被C的开发社群的人押着头把System A的Source Code公布出来吗?
: 我个人认为,GPL没那麽厉害,上面那两种情况应该都是可以继续保有proprietary
: 部份的权利,而不违背GPL的规定的。
: 所以,公司要规避GPL(合理的不把proprietary 的东西变成GPL的),应该是至少可以
: 从这两个方向去思考。
注: 本人意见不代表法律意见,有问题记得请教你的律师。
http://www.fsf.org/licensing/licenses/gpl-faq.html#GPLModuleLicense
Q:If I add a module to a GPL-covered program, do I have to use the GPL
as the license for my module?
A:The GPL says that the whole combined program has to be released under
the GPL. So your module has to be available for use under the GPL.
But you can give additional permission for the use of your code.
You can, if you wish, release your program under a license
which is more lax than the GPL but compatible with the GPL.
所以答案是,你不能这样发布你的程式A。
要用请洽C的作者要求GPL或是更宽松的授权,否则不能发布。
如果要硬凹的话,底下有一条。
http://www.fsf.org/licensing/licenses/gpl-faq.html#WindowsRuntimeAndGPL
Q:I'm writing a Windows application with Microsoft Visual C++(or Visual Basic)
and I will be releasing it under the GPL. Is dynamically linking my program
with the Visual C++(or Visual Basic) run-time library permitted under the
GPL?
A:The GPL permits this because that run-time library normally accompanies
the compiler or interpreter you are using. The run-time libraries here are
“System Libraries” as GPLv3 defines them, and as such they are not
considered part of the Corresponding Source.
GPLv2 has a similar exception in section 3.
只有被归类为"system call"的library有这种特权,不过什麽是system call有得凹了
Case 2的状况应该是, B可以快乐的用System lib A。
有个简单的分别方法不知道是不是对的,就是:
除了GPL和GPL-compitable的授权能在同一支程式里面混用之外没其他可能,
system library除外。
--
Beware of bugs in the above code;
I have only proved it correct, not tried it.
※ 编辑: iincho 来自: 220.130.53.5 (05/23 03:45)