2014年01月21日 星期二 15:53
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
2014年01月21日 星期二 15:57
俺现在的看法是,作你想作的, 当被人告发时,你有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/
2014年01月21日 星期二 16:27
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是一样的。
2014年01月21日 星期二 16:58
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 >
2014年01月21日 星期二 19:58
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
Zeuux © 2024
京ICP备05028076号