zeuux-universe  - 讨论区

标题:[zeuux-universe] 求教:GPL和BSD许可混合使用的情况

2014年01月21日 星期二 15:53

Paul Yang paulyang.inf在gmail.com
星期二 一月 21 15:53:35 CST 2014

Hi dudes,

请教大伙一个开源License的问题:

A:采用BSD许可的项目,准确的讲是2-clause的那种,此项目有一堆C源文件,然后能编译成一个二进制可执行程序。
B:采用GPL许可的几个C源文件(使用了一些A的源文件中声明的函数/变量),必须在编译之后和A链接起来才能成为一个完整的二进制可执行程序,否则只能编译不能链接。

那么A + B的话,当成一个整体来看,讨论如下几种情况:
1)A + B成为一个新的开源项目,那么这个开源项目的license是啥?
2)A + B编译出来的二进制程序去市场上闭源销售,是否违法了GPL?

我的理解是:GPL能“传染”BSD,就是混合许可的话得以最严格的来算,所以:
1)GPL
2)违反了GPL,但是A + B全提供源代码就没事

不知道理解的是否正确??

Paul Yang

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2014年01月21日 星期二 15:57

Zoom.Quiet zoom.quiet在gmail.com
星期二 一月 21 15:57:45 CST 2014

俺现在的看法是,作你想作的,
当被人告发时,你有90天的修正期,
到时,再说,,,

99.99999% 的情况是你项目死了,銭也没有挣到,根本没有人知道你

在 2014年1月21日 下午3:53,Paul Yang <paulyang.inf在gmail.com> 写道:
> Hi dudes,
>
> 请教大伙一个开源License的问题:
>
> A:采用BSD许可的项目,准确的讲是2-clause的那种,此项目有一堆C源文件,然后能编译成一个二进制可执行程序。
> B:采用GPL许可的几个C源文件(使用了一些A的源文件中声明的函数/变量),必须在编译之后和A链接起来才能成为一个完整的二进制可执行程序,否则只能编译不能链接。
>
> 那么A + B的话,当成一个整体来看,讨论如下几种情况:
> 1)A + B成为一个新的开源项目,那么这个开源项目的license是啥?
> 2)A + B编译出来的二进制程序去市场上闭源销售,是否违法了GPL?
>
> 我的理解是:GPL能“传染”BSD,就是混合许可的话得以最严格的来算,所以:
> 1)GPL
> 2)违反了GPL,但是A + B全提供源代码就没事
>
> 不知道理解的是否正确??
>
> Paul Yang
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe在zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org



-- 
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
KM keep growing environment culture which promoting organization be learnning!
俺: http://zoomquiet.io
许: http://creativecommons.org/licenses/by-sa/2.5/cn/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2014年01月21日 星期二 16:27

Weiwu Zhang zhangweiwu在realss.com
星期二 一月 21 16:27:30 CST 2014

2014/1/21 Paul Yang <paulyang.inf在gmail.com>:
> 我的理解是:GPL能“传染”BSD,就是混合许可的话得以最严格的来算,所以:
> 1)GPL
> 2)违反了GPL,但是A + B全提供源代码就没事
>
> 不知道理解的是否正确??

不正确。此问题已经被讨论过无数次了,BSD和GPL协议制定时不兼容是一个初衷,是设计如此的。两个协议GPL比BSD更严格,这是你(以及我国广大群众)的体会,也不是事实。比如喜欢GPL不喜欢BSD的人说要求显示协议这一条太严格了。

我这几十年来忍受tclsh不支持readline,图了个啥??要是BSD和GPL能直接约编到同一个binary里发布,tclsh他们早就把readline编进去了。结果呢?几十年来tclsh是唯一一个开源应用程序提供的命令行环境而不支持readline的。

只要不编到binary里,就容易多了。在设计上可以实现的。比如openbsd用户日常使用的软件大部分是GPL,可以这样做是因为两边的binary是分别下载的。可惜没办法分别下载readline和tclsh使其在Run
Time合作。

Zoom Quiet的说法很适合中国国情呀。其实也适合外国国情,只是外国人习惯先把事做对再做好,所以不免要讨论一下的。Zoom
Quiet一定是把“先做再请求原谅”的python精神发挥到编程以外的领域了,其实这一点我和Zoom Quiet是一样的。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2014年01月21日 星期二 16:58

Paul Yang paulyang.inf在gmail.com
星期二 一月 21 16:58:47 CST 2014

On 01/21/2014 04:27 PM, Weiwu Zhang wrote:
> 2014/1/21 Paul Yang <paulyang.inf在gmail.com>:
>> 我的理解是:GPL能“传染”BSD,就是混合许可的话得以最严格的来算,所以:
>> 1)GPL
>> 2)违反了GPL,但是A + B全提供源代码就没事
>>
>> 不知道理解的是否正确??
> 
> 不正确。此问题已经被讨论过无数次了,BSD和GPL协议制定时不兼容是一个初衷,是设计如此的。两个协议GPL比BSD更严格,这是你(以及我国广大群众)的体会,也不是事实。比如喜欢GPL不喜欢BSD的人说要求显示协议这一条太严格了。
> 
> 我这几十年来忍受tclsh不支持readline,图了个啥??要是BSD和GPL能直接约编到同一个binary里发布,tclsh他们早就把readline编进去了。结果呢?几十年来tclsh是唯一一个开源应用程序提供的命令行环境而不支持readline的。
> 
> 只要不编到binary里,就容易多了。在设计上可以实现的。比如openbsd用户日常使用的软件大部分是GPL,可以这样做是因为两边的binary是分别下载的。可惜没办法分别下载readline和tclsh使其在Run
> Time合作。
> 
> Zoom Quiet的说法很适合中国国情呀。其实也适合外国国情,只是外国人习惯先把事做对再做好,所以不免要讨论一下的。Zoom
> Quiet一定是把“先做再请求原谅”的python精神发挥到编程以外的领域了,其实这一点我和Zoom Quiet是一样的。

嗯,实际上已经在做了……

我们弄的一个开源项目SEnginx,就是是这种情况,基础的nginx是BSD的(相当于A),我们对nginx的修改和集成的其他模块也都是BSD,但是我们在SEnginx的代码库中放了一份naxsi(nginx的一个第三方模块,相当于B)并且默认编译,这东西是GPL,之前一直没关心license的问题,今天偶然想到这事了,所以来问问,:-)


> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe在zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
> 
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org
> 


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2014年01月21日 星期二 19:58

Paul Yang paulyang.inf在gmail.com
星期二 一月 21 19:58:08 CST 2014

2014/1/21 Paul Yang <paulyang.inf在gmail.com>:
> On 01/21/2014 04:27 PM, Weiwu Zhang wrote:
>> 2014/1/21 Paul Yang <paulyang.inf在gmail.com>:
>>> 我的理解是:GPL能“传染”BSD,就是混合许可的话得以最严格的来算,所以:
>>> 1)GPL
>>> 2)违反了GPL,但是A + B全提供源代码就没事
>>>
>>> 不知道理解的是否正确??
>>
>> 不正确。此问题已经被讨论过无数次了,BSD和GPL协议制定时不兼容是一个初衷,是设计如此的。两个协议GPL比BSD更严格,这是你(以及我国广大群众)的体会,也不是事实。比如喜欢GPL不喜欢BSD的人说要求显示协议这一条太严格了。

唔,我又研究了一下这个问题,结论大概是这样:混合代码后应该是GPL,但是A中的BSD许可不能删除。
理由:
首先,因为2 clause的BSD是和GPL兼容的,所以二者(A和B)可以混合(也就是没有了那个obnoxious BSD
advertising clause),所以A+B这种形态形成新的项目,本身是没问题的;
其次,就是混合之后的整体的license的问题,应该还是GPL,因为GPL比2
clause的BSD要更加严格(不只是我国,国外的部分群众也是这么体会的,例如这伙计也是这观点:http://stackoverflow.com/questions/4854519/gpl-component-in-bsd-project),这里“严格”的含义,我的理解是:如果某个行为遵守了GPL的条款,则一定也是遵守了BSD条款的(这里的BSD说的都是2
clause的,不包括最老的4
clause的那种),而如果某个行为遵守了BSD的条款,则不能代表它也遵守了GPL的条款,即BSD能“容忍”GPL,所以把整体的A+B声明成GPL是没问题的,因为在GPL的约束下,用户产生的合法行为,也都是符合BSD的,也就是即没有破坏A的license,也没破坏B的license。但是由于发布A+B的人(假设不是A或B的作者),没有对A和B的所有权,也就无法重新声明A和B的license,所以对于新项目A+B,需要保留A和B各自的license,而只定义整体的license为GPL,这样就可以实现约束用户,达到既不损害A的权利,也不损害B的权利的目的。

>>
>> 我这几十年来忍受tclsh不支持readline,图了个啥??要是BSD和GPL能直接约编到同一个binary里发布,tclsh他们早就把readline编进去了。结果呢?几十年来tclsh是唯一一个开源应用程序提供的命令行环境而不支持readline的。
>>
>> 只要不编到binary里,就容易多了。在设计上可以实现的。比如openbsd用户日常使用的软件大部分是GPL,可以这样做是因为两边的binary是分别下载的。可惜没办法分别下载readline和tclsh使其在Run
>> Time合作。
>>
>> Zoom Quiet的说法很适合中国国情呀。其实也适合外国国情,只是外国人习惯先把事做对再做好,所以不免要讨论一下的。Zoom
>> Quiet一定是把“先做再请求原谅”的python精神发挥到编程以外的领域了,其实这一点我和Zoom Quiet是一样的。
>
> 嗯,实际上已经在做了……
>
> 我们弄的一个开源项目SEnginx,就是是这种情况,基础的nginx是BSD的(相当于A),我们对nginx的修改和集成的其他模块也都是BSD,但是我们在SEnginx的代码库中放了一份naxsi(nginx的一个第三方模块,相当于B)并且默认编译,这东西是GPL,之前一直没关心license的问题,今天偶然想到这事了,所以来问问,:-)
>
>
>> _______________________________________________
>> zeuux-universe mailing list
>> zeuux-universe在zeuux.org
>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>> ZEUUX Project - Free Software, Free Society!
>> http://www.zeuux.org
>>
>



-- 
Regards

Paul Yang

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号