2009年03月21日 星期六 14:01
有几个让我困惑的法律问题,希望大家不吝赐教。 我以前一直以为,对于GPL协议,只有使用修改它的代码才必须也跟着GPL,而 如果只使用GPL协议下软件的二进制类库,就可以以自己发布自己的商业协议。但 显然,这个许可是LGPL才有的,GPL没有。也即使说,只要你使用了GPL软件的类 库,哪怕只是二进制的,你就必须也跟着GPL。 我们知道很多Linux发行版中上有不少专有软件,这也是RMS绝对反对的,听 说,Linus本人也不喜欢这个东西,但他没有RMS那么倔强,还是默认了。那么,问 题来了,这些专有软件是如何规避GPL协议之约束的? 我举个例子吧: QQ for Linux, 我下了它的软件包,虽然它使用了静态库, 但ldd一下,就知道它要在Linux上跑,肯定要用Linux的东西,比如 libpthread.so,按照GPL的要求,使用了这个东西,你就必须也GPL才对啊,但QQ for Linux似乎心安理得。 请问,是QQ违法了呢,还是我这里对GPL的理解不正确? 另一个问题是关于LGPL的。就说GTK+吧,众所周知,它是LGPL的,但是,在 Linux上发行的GTK+ 软件包,不可避免地要使用Linux的软件,那么用GTK+怎么能 够合法地做到闭源发布呢? 按理说,GTK+应该也被GPL才对啊?为什么它没有被 GPL“传染”呢? 另一个问题是多协议发行版的问题。我想知道我下面的推理是否合法: 某作者写一个程序,然后,他把代码分成两份,这两份内容基本是一样的。 然后,我告诉大家,这两份代码是不一样的,尽管他们看起来很像,而且也是在同 一个过程中产生的,但实际上是两个实体,其中一个用商业协议发布,另一个用 GPL发布。 这个过程就像一个动物只受精个了一次,但是却能生出一对双胞胎一 样,一次投入,两个(或者更多)结果。 如果上面这个推理没有问题,那么,我想我也就能够理解为什么同一个软件可 以在多个不同协议下发布了。 这些法律是怎样的逻辑,我实在理不清楚,望指点。谢谢!
2009年03月22日 星期日 20:34
2009/3/21 Kermit Mei <kermit.mei在gmail.com>: > 有几个让我困惑的法律问题,希望大家不吝赐教。 > > 我以前一直以为,对于GPL协议,只有使用修改它的代码才必须也跟着GPL,而 > 如果只使用GPL协议下软件的二进制类库,就可以以自己发布自己的商业协议。但 > 显然,这个许可是LGPL才有的,GPL没有。也即使说,只要你使用了GPL软件的类 > 库,哪怕只是二进制的,你就必须也跟着GPL。 这个理解基本正确。但不是任何“使用”都有问题。构成“派生”作品的话才有 问题。对协议文本的一般理解是,跨进程没有问题(比如用system运行,或用管 道接收数据)。但把GPL代码连接到一个可执行程序里,不管是动态连接还是静 态连接,都会导致整个可执行程序只能以GPL发布。 > 我们知道很多Linux发行版中上有不少专有软件,这也是RMS绝对反对的,听 > 说,Linus本人也不喜欢这个东西,但他没有RMS那么倔强,还是默认了。那么,问 > 题来了,这些专有软件是如何规避GPL协议之约束的? 这不是个人喜欢的问题,而是法律问题。在Linux上发行商业软件本身并不违法。 Linux核心是GPLv2,但Linus本人都认为在用户态对核心进行调用不构成成为 “派生作品”。反过来,在核心态运行的代码,因为一般和核心发生紧密交互, 则应当以GPLv2发布。所以,非开源的驱动程序在法律上是有问题的。 > 我举个例子吧: QQ for Linux, 我下了它的软件包,虽然它使用了静态库, > 但ldd一下,就知道它要在Linux上跑,肯定要用Linux的东西,比如 > libpthread.so,按照GPL的要求,使用了这个东西,你就必须也GPL才对啊,但QQ > for Linux似乎心安理得。 > > 请问,是QQ违法了呢,还是我这里对GPL的理解不正确? 目前我没有pthread库的许可文本。但一般而言,这样的基本库不是GPL的(或者 是GPL,但有特殊的条款允许商业应用)。我知道glibc和libstdc++都是这样的。 > 另一个问题是关于LGPL的。就说GTK+吧,众所周知,它是LGPL的,但是,在 > Linux上发行的GTK+ 软件包,不可避免地要使用Linux的软件,那么用GTK+怎么能 > 够合法地做到闭源发布呢? 按理说,GTK+应该也被GPL才对啊?为什么它没有被 > GPL“传染”呢? 如上所说,基本库一般是允许商业使用的。所以GTK+的许可也不会有问题。 > 另一个问题是多协议发行版的问题。我想知道我下面的推理是否合法: > > 某作者写一个程序,然后,他把代码分成两份,这两份内容基本是一样的。 > 然后,我告诉大家,这两份代码是不一样的,尽管他们看起来很像,而且也是在同 > 一个过程中产生的,但实际上是两个实体,其中一个用商业协议发布,另一个用 > GPL发布。 这个过程就像一个动物只受精个了一次,但是却能生出一对双胞胎一 > 样,一次投入,两个(或者更多)结果。 > > 如果上面这个推理没有问题,那么,我想我也就能够理解为什么同一个软件可 > 以在多个不同协议下发布了。 你这个比喻实在有点怪,我不太理解。我还是只谈我的理解吧。多协议发行只是 对作者而言的,只能应用于完全由该作者开发的代码(或者你把版权转让给了作 者;copyright assignment)。对于用户,你只能选择许可之一。拿一般的GPL+ 商业许可(如MySQL)而言,你如果用了这样的代码的话,要么把整个程序以GPL 发布(可以使用其它的GPL代码和兼容协议的开源代码,但不能使用商业软件代 码),要么花钱、但整个程序以你自己选择的协议发布(肯定不会是GPL吧;可 以在程序中使用其它较为开放的许可的开源代码如BSD许可,也可以使用商业软 件代码)。 -- Wu Yongwei URL: http://wyw.dcweb.cn/
2009年03月22日 星期日 23:12
On Sun, 2009-03-22 at 20:34 +0800, Yongwei Wu wrote: > 2009/3/21 Kermit Mei <kermit.mei在gmail.com>: > > 有几个让我困惑的法律问题,希望大家不吝赐教。 > > > > 我以前一直以为,对于GPL协议,只有使用修改它的代码才必须也跟着GPL,而 > > 如果只使用GPL协议下软件的二进制类库,就可以以自己发布自己的商业协议。但 > > 显然,这个许可是LGPL才有的,GPL没有。也即使说,只要你使用了GPL软件的类 > > 库,哪怕只是二进制的,你就必须也跟着GPL。 > > 这个理解基本正确。但不是任何“使用”都有问题。构成“派生”作品的话才有 > 问题。对协议文本的一般理解是,跨进程没有问题(比如用system运行,或用管 > 道接收数据)。但把GPL代码连接到一个可执行程序里,不管是动态连接还是静 > 态连接,都会导致整个可执行程序只能以GPL发布。 > > > 我们知道很多Linux发行版中上有不少专有软件,这也是RMS绝对反对的,听 > > 说,Linus本人也不喜欢这个东西,但他没有RMS那么倔强,还是默认了。那么,问 > > 题来了,这些专有软件是如何规避GPL协议之约束的? > > 这不是个人喜欢的问题,而是法律问题。在Linux上发行商业软件本身并不违法。 > > Linux核心是GPLv2,但Linus本人都认为在用户态对核心进行调用不构成成为 > “派生作品”。反过来,在核心态运行的代码,因为一般和核心发生紧密交互, > 则应当以GPLv2发布。所以,非开源的驱动程序在法律上是有问题的。 恩,理解了,感谢你的回复。 其实,我之所以以前会有这个问题,是我没有搞清楚内核的接口机制。下面是 我现在的理解: GPL其实是针对“是否使用代码”而言的,内核的接口是通过系统调用来提供 的,使用系统调用只要知道规定就可以了,不用使用它的源代码,所以不构成“派 生作品”。而链接程序,无论是动态的还是静态的,都至少要使用库的头文件,这 也就是使用了它的代码,所以必须跟着GPL走。 LGPL是针对“是否改动代码”而言的,如果程序员只使用了LGPL的库,使用了头 文件代码,那么他不必发自己的代码也开源,或者也LGPL。如果他改动了LGPL的代 码,那么,他必须把改动的部分在LGPL或者GPLv2以上版本的协议下开源发布。 > > > 我举个例子吧: QQ for Linux, 我下了它的软件包,虽然它使用了静态库, > > 但ldd一下,就知道它要在Linux上跑,肯定要用Linux的东西,比如 > > libpthread.so,按照GPL的要求,使用了这个东西,你就必须也GPL才对啊,但QQ > > for Linux似乎心安理得。 > > > > 请问,是QQ违法了呢,还是我这里对GPL的理解不正确? > > 目前我没有pthread库的许可文本。但一般而言,这样的基本库不是GPL的(或者 > 是GPL,但有特殊的条款允许商业应用)。我知道glibc和libstdc++都是这样的。 这个是我不够严谨:Linux上的pthread等所有系统库基本上都是LGPL的。因此,开 发像QQ这样的商业作品是完全合法的。> 你这个比喻实在有点怪,我不太理解。我还是只谈我的理解吧。多协议发行只是 > 对作者而言的,只能应用于完全由该作者开发的代码(或者你把版权转让给了作 > 者;copyright assignment)。对于用户,你只能选择许可之一。拿一般的GPL+ > 商业许可(如MySQL)而言,你如果用了这样的代码的话,要么把整个程序以GPL > 发布(可以使用其它的GPL代码和兼容协议的开源代码,但不能使用商业软件代 > 码),要么花钱、但整个程序以你自己选择的协议发布(肯定不会是GPL吧;可 > 以在程序中使用其它较为开放的许可的开源代码如BSD许可,也可以使用商业软 > 件代码)。 恩,理解了! 其实,我之所以会有那个奇怪的比喻,主要是因为我不理解这 样一个问题:代码这个东西一旦GPL了,那么它从前的商业版本也就被默认地GPL 了,因为我认为所有的代码都应该是同一个东西。 现在经你这么一说,我倒是有点理解了。再说一下我现在对这个问题的理解: 我以前一直犯有一个错误,那就是我一直认为GPL是一个协议,但事实上,对 于软件的第一作者而言,它是一种授权。这里面有个很微妙的区别: 就像你上面说的,对于作者而言——要强调一下,这个作者必须是所有代码的作 者,在他所写的这些代码中,不能含有GPL协议的代码,这个作者如果决定把这些 代码按照GPL协议发布,那么这时候,GPL协议就是一种“授权”而不是一种协议。 这就意味着,这个作者可以继续按照其他方式发布自己的代码。 另一方面,对于使用了其他GPL代码的软件作者而言,这时候GPL对于他而言就 是一种协议,他必须遵守,而且,他没有权力再按照其他的方式发布自己的代码。 用GPL反对者的话来讲,他的代码被感染了。因此,如果我使用了MySQL的GPL版 本,我就必须GPL,我不能合法地发布自己的代码。如果要商业发布,我必须购买 其商业版本中的代码。 Thanks, have fun! Kermit
2009年03月22日 星期日 23:26
2009/3/22 Kermit Mei <kermit.mei在gmail.com>: > On Sun, 2009-03-22 at 20:34 +0800, Yongwei Wu wrote: >> 你这个比喻实在有点怪,我不太理解。我还是只谈我的理解吧。多协议发行只是 >> 对作者而言的,只能应用于完全由该作者开发的代码(或者你把版权转让给了作 >> 者;copyright assignment)。对于用户,你只能选择许可之一。拿一般的GPL+ >> 商业许可(如MySQL)而言,你如果用了这样的代码的话,要么把整个程序以GPL >> 发布(可以使用其它的GPL代码和兼容协议的开源代码,但不能使用商业软件代 >> 码),要么花钱、但整个程序以你自己选择的协议发布(肯定不会是GPL吧;可 >> 以在程序中使用其它较为开放的许可的开源代码如BSD许可,也可以使用商业软 >> 件代码)。 > > 恩,理解了! 其实,我之所以会有那个奇怪的比喻,主要是因为我不理解这 > 样一个问题:代码这个东西一旦GPL了,那么它从前的商业版本也就被默认地GPL > 了,因为我认为所有的代码都应该是同一个东西。 > 现在经你这么一说,我倒是有点理解了。再说一下我现在对这个问题的理解: > > 我以前一直犯有一个错误,那就是我一直认为GPL是一个协议,但事实上,对 > 于软件的第一作者而言,它是一种授权。这里面有个很微妙的区别: > 就像你上面说的,对于作者而言――要强调一下,这个作者必须是所有代码的作 > 者,在他所写的这些代码中,不能含有GPL协议的代码,这个作者如果决定把这些 > 代码按照GPL协议发布,那么这时候,GPL协议就是一种“授权”而不是一种协议。 > 这就意味着,这个作者可以继续按照其他方式发布自己的代码。 > 另一方面,对于使用了其他GPL代码的软件作者而言,这时候GPL对于他而言就 > 是一种协议,他必须遵守,而且,他没有权力再按照其他的方式发布自己的代码。 > 用GPL反对者的话来讲,他的代码被感染了。因此,如果我使用了MySQL的GPL版 > 本,我就必须GPL,我不能合法地发布自己的代码。如果要商业发布,我必须购买 > 其商业版本中的代码。 正确。所以,想要双重许可的公司一般不轻易接受别人的代码,即使接受的话, 也会要求别人转让版权(否则,商业版本就没法发布了)。但是,很多这样的项 目,商业许可和GPL许可的代码本身是完全一样的。 记得,前不久看到SUN的OpenOffice上的一个争议。有人写了一个很有用的模 块,但是,只肯以LGPL发布,也不愿将版权转让给SUN。虽然LGPL已经是一个比 较宽松的许可了,但SUN为了双重许可的方便,情愿自己完全重新实现这一模 块。 -- Wu Yongwei URL: http://wyw.dcweb.cn/
2009年03月22日 星期日 23:39
On Sun, 2009-03-22 at 23:26 +0800, Yongwei Wu wrote: > 2009/3/22 Kermit Mei <kermit.mei在gmail.com>: > > On Sun, 2009-03-22 at 20:34 +0800, Yongwei Wu wrote: > >> 你这个比喻实在有点怪,我不太理解。我还是只谈我的理解吧。多协议发行只是 > >> 对作者而言的,只能应用于完全由该作者开发的代码(或者你把版权转让给了作 > >> 者;copyright assignment)。对于用户,你只能选择许可之一。拿一般的GPL+ > >> 商业许可(如MySQL)而言,你如果用了这样的代码的话,要么把整个程序以GPL > >> 发布(可以使用其它的GPL代码和兼容协议的开源代码,但不能使用商业软件代 > >> 码),要么花钱、但整个程序以你自己选择的协议发布(肯定不会是GPL吧;可 > >> 以在程序中使用其它较为开放的许可的开源代码如BSD许可,也可以使用商业软 > >> 件代码)。 > > > > 恩,理解了! 其实,我之所以会有那个奇怪的比喻,主要是因为我不理解这 > > 样一个问题:代码这个东西一旦GPL了,那么它从前的商业版本也就被默认地GPL > > 了,因为我认为所有的代码都应该是同一个东西。 > > 现在经你这么一说,我倒是有点理解了。再说一下我现在对这个问题的理解: > > > > 我以前一直犯有一个错误,那就是我一直认为GPL是一个协议,但事实上,对 > > 于软件的第一作者而言,它是一种授权。这里面有个很微妙的区别: > > 就像你上面说的,对于作者而言――要强调一下,这个作者必须是所有代码的作 > > 者,在他所写的这些代码中,不能含有GPL协议的代码,这个作者如果决定把这些 > > 代码按照GPL协议发布,那么这时候,GPL协议就是一种“授权”而不是一种协议。 > > 这就意味着,这个作者可以继续按照其他方式发布自己的代码。 > > 另一方面,对于使用了其他GPL代码的软件作者而言,这时候GPL对于他而言就 > > 是一种协议,他必须遵守,而且,他没有权力再按照其他的方式发布自己的代码。 > > 用GPL反对者的话来讲,他的代码被感染了。因此,如果我使用了MySQL的GPL版 > > 本,我就必须GPL,我不能合法地发布自己的代码。如果要商业发布,我必须购买 > > 其商业版本中的代码。 > > 正确。所以,想要双重许可的公司一般不轻易接受别人的代码,即使接受的话, > 也会要求别人转让版权(否则,商业版本就没法发布了)。但是,很多这样的项 > 目,商业许可和GPL许可的代码本身是完全一样的。 > > 记得,前不久看到SUN的OpenOffice上的一个争议。有人写了一个很有用的模 > 块,但是,只肯以LGPL发布,也不愿将版权转让给SUN。虽然LGPL已经是一个比 > 较宽松的许可了,但SUN为了双重许可的方便,情愿自己完全重新实现这一模 > 块。 这回总算是清楚了,谢谢!
2009年03月22日 星期日 23:58
> > >>> 我举个例子吧: QQ for Linux, 我下了它的软件包,虽然它使用了静态库, >>> 但ldd一下,就知道它要在Linux上跑,肯定要用Linux的东西,比如 >>> libpthread.so,按照GPL的要求,使用了这个东西,你就必须也GPL才对啊,但QQ >>> for Linux似乎心安理得。 >>> >>> 请问,是QQ违法了呢,还是我这里对GPL的理解不正确? >>> >> 目前我没有pthread库的许可文本。但一般而言,这样的基本库不是GPL的(或者 >> 是GPL,但有特殊的条款允许商业应用)。我知道glibc和libstdc++都是这样的。 >> > > 这个是我不够严谨:Linux上的pthread等所有系统库基本上都是LGPL的。因此,开 > 发像QQ这样的商业作品是完全合法的。 > 当初RMS称之为战略妥协,也是为了让自由软件能够扩大市场占有率。由于是妥 协,因此不能妥协太多,只有几个不得不妥协的库被列入LGPL,这也是当初叫 Libary GPL的原因。后来,担心大家误以为FSF推荐Libary都用LGPL发布,改名 了,改为Lesser GPL。 很多其他比较常用的库但非必须的,还继续用GPL,比如readline。 >> > >> 你这个比喻实在有点怪,我不太理解。我还是只谈我的理解吧。多协议发行只是 >> 对作者而言的,只能应用于完全由该作者开发的代码(或者你把版权转让给了作 >> 者;copyright assignment)。对于用户,你只能选择许可之一。拿一般的GPL+ >> 商业许可(如MySQL)而言,你如果用了这样的代码的话,要么把整个程序以GPL >> 发布(可以使用其它的GPL代码和兼容协议的开源代码,但不能使用商业软件代 >> 码),要么花钱、但整个程序以你自己选择的协议发布(肯定不会是GPL吧;可 >> 以在程序中使用其它较为开放的许可的开源代码如BSD许可,也可以使用商业软 >> 件代码)。 >> > > 恩,理解了! 其实,我之所以会有那个奇怪的比喻,主要是因为我不理解这 > 样一个问题:代码这个东西一旦GPL了,那么它从前的商业版本也就被默认地GPL > 了,因为我认为所有的代码都应该是同一个东西。 > 现在经你这么一说,我倒是有点理解了。再说一下我现在对这个问题的理解: > > 我以前一直犯有一个错误,那就是我一直认为GPL是一个协议,但事实上,对 > 于软件的第一作者而言,它是一种授权。这里面有个很微妙的区别: > 就像你上面说的,对于作者而言——要强调一下,这个作者必须是所有代码的作 > 者,在他所写的这些代码中,不能含有GPL协议的代码,这个作者如果决定把这些 > 代码按照GPL协议发布,那么这时候,GPL协议就是一种“授权”而不是一种协议。 > 这就意味着,这个作者可以继续按照其他方式发布自己的代码。 > 另一方面,对于使用了其他GPL代码的软件作者而言,这时候GPL对于他而言就 > 是一种协议,他必须遵守,而且,他没有权力再按照其他的方式发布自己的代码。 > 用GPL反对者的话来讲,他的代码被感染了。因此,如果我使用了MySQL的GPL版 > 本,我就必须GPL,我不能合法地发布自己的代码。如果要商业发布,我必须购买 > 其商业版本中的代码。 > 简单点说,版权持有人决定用什么样的许可证发行自己的软件。 > > Thanks, have fun! > > Kermit > > > > > > > > > > > > _______________________________________________ > 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 -------------- 下一部分 -------------- 一个HTML附件被移除... URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20090322/f938fd26/attachment-0001.html>
2009年03月23日 星期一 13:38
On Sun, 2009-03-22 at 23:58 +0800, Bill Xu wrote: > 当初RMS称之为战略妥协,也是为了让自由软件能够扩大市场占有率。由于是妥 > 协,因此不能妥协太多,只有几个不得不妥协的库被列入LGPL,这也是当初叫 > Libary GPL的原因。后来,担心大家误以为FSF推荐Libary都用LGPL发布,改名 > 了,改为Lesser GPL。 > > 很多其他比较常用的库但非必须的,还继续用GPL,比如readline。 > 巨汗! Bill提出的问题才让我注意到下面的区别,不知道我有没有理解错: /usr/include/c++/4.3.2/set (C++STL的头文件) : // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 2, or (at your option) // any later version. 这个是C语言的stdio.h头文件: The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. gcc中的C是LGPL的,而C++是GPLv2的,这是否意味着,所有使用gcc开发的,链接 到libstdc++上的程序,都必须GPL? 我还是觉得我理解有问题,不然很多程序都 有问题了。
2009年03月23日 星期一 15:09
2009/3/23 Kermit Mei <kermit.mei在gmail.com>: > On Sun, 2009-03-22 at 23:58 +0800, Bill Xu wrote: > > >> 当初RMS称之为战略妥协,也是为了让自由软件能够扩大市场占有率。由于是妥 >> 协,因此不能妥协太多,只有几个不得不妥协的库被列入LGPL,这也是当初叫 >> Libary GPL的原因。后来,担心大家误以为FSF推荐Libary都用LGPL发布,改名 >> 了,改为Lesser GPL。 >> >> 很多其他比较常用的库但非必须的,还继续用GPL,比如readline。 是的,比如libvncserver就是GPL的。 > 巨汗! Bill提出的问题才让我注意到下面的区别,不知道我有没有理解错: > > /usr/include/c++/4.3.2/set (C++STL的头文件) : > > // This file is part of the GNU ISO C++ Library. This library is > free > // software; you can redistribute it and/or modify it under > the > // terms of the GNU General Public License as published by > the > // Free Software Foundation; either version 2, or (at your > option) > // any later version. > > 这个是C语言的stdio.h头文件: > The GNU C Library is free software; you can redistribute it > and/or > modify it under the terms of the GNU Lesser General > Public > License as published by the Free Software Foundation; > either > version 2.1 of the License, or (at your option) any later version. > > > gcc中的C是LGPL的,而C++是GPLv2的,这是否意味着,所有使用gcc开发的,链接 > 到libstdc++上的程序,都必须GPL? 我还是觉得我理解有问题,不然很多程序都 > 有问题了。 你读得不够仔细。你得再往下看: // As a special exception, you may use this file as part of a free // software library without restriction. Specifically, if other files // instantiate templates or use macros or inline functions from this // file, or you compile this file and link it with other files to // produce an executable, this file does not by itself cause the // resulting executable to be covered by the GNU General Public // License. This exception does not however invalidate any other // reasons why the executable file might be covered by the GNU General // Public License. -- Wu Yongwei URL: http://wyw.dcweb.cn/
2009年03月23日 星期一 16:05
On Mon, 2009-03-23 at 15:09 +0800, Yongwei Wu wrote:> 你读得不够仔细。你得再往下看: > > // As a special exception, you may use this file as part of a free > // software library without restriction. Specifically, if other files > // instantiate templates or use macros or inline functions from this > // file, or you compile this file and link it with other files to > // produce an executable, this file does not by itself cause the > // resulting executable to be covered by the GNU General Public > // License. This exception does not however invalidate any other > // reasons why the executable file might be covered by the GNU General > // Public License. 哦,谢谢指出,学习了。 我对法律的术语不是很敏感,尤其是英文的……所以看到这里以为是一些通常的说 明,就一笔带过了。 而且,我更没有想到可以做这种例外的声明,还是对“授 权”一词的理解不够深入。其实在这里,作者是行使自己的权力,而不是履行自己 的义务,因此可以声明这种例外。
2009年03月23日 星期一 22:05
2009/3/23 Kermit Mei <kermit.mei在gmail.com>: > On Mon, 2009-03-23 at 15:09 +0800, Yongwei Wu wrote: >> >> 你读得不够仔细。你得再往下看: >> >> // As a special exception, you may use this file as part of a free >> // software library without restriction. Specifically, if other files >> // instantiate templates or use macros or inline functions from this >> // file, or you compile this file and link it with other files to >> // produce an executable, this file does not by itself cause the >> // resulting executable to be covered by the GNU General Public >> // License. This exception does not however invalidate any other >> // reasons why the executable file might be covered by the GNU General >> // Public License. > > 哦,谢谢指出,学习了。 > 我对法律的术语不是很敏感,尤其是英文的......所以看到这里以为是一些通常的说 > 明,就一笔带过了。 而且,我更没有想到可以做这种例外的声明,还是对"授 > 权"一词的理解不够深入。其实在这里,作者是行使自己的权力,而不是履行自己 > 的义务,因此可以声明这种例外。 事实上,我前一封就提到libstdc++了,因为我知道它是GPL的,还知道在商业使 用上发生过一些争议。这样的例外并不少见。又如,OpenSSL许可和GPL是不兼容 的,所以,WGet以GPL发布,里面也有一个例外条款,允许和OpenSSL连接。否则 HTTPS就有点问题了。(当然,现在还有新的选择,GNU TLS;但我想大部分人还 是只知道OpenSSL。特别喜欢GPL的可能会选择这个库。) -- Wu Yongwei URL: http://wyw.dcweb.cn/
Zeuux © 2024
京ICP备05028076号