哲思官方群认证群组  - 讨论区

标题:[zeuux-universe] 请教和GPL相关的法律问题

2009年03月21日 星期六 14:01

Kermit Mei kermit.mei在gmail.com
星期六 三月 21 14:01:11 CST 2009

有几个让我困惑的法律问题,希望大家不吝赐教。

    我以前一直以为,对于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发布。 这个过程就像一个动物只受精个了一次,但是却能生出一对双胞胎一
样,一次投入,两个(或者更多)结果。

   如果上面这个推理没有问题,那么,我想我也就能够理解为什么同一个软件可
以在多个不同协议下发布了。


   这些法律是怎样的逻辑,我实在理不清楚,望指点。谢谢!


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

2009年03月22日 星期日 20:34

Yongwei Wu wuyongwei在gmail.com
星期日 三月 22 20:34:19 CST 2009

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/

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

2009年03月22日 星期日 23:12

Kermit Mei kermit.mei在gmail.com
星期日 三月 22 23:12:32 CST 2009

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
    











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

2009年03月22日 星期日 23:26

Yongwei Wu wuyongwei在gmail.com
星期日 三月 22 23:26:31 CST 2009

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/

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

2009年03月22日 星期日 23:39

Kermit Mei kermit.mei在gmail.com
星期日 三月 22 23:39:19 CST 2009

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为了双重许可的方便,情愿自己完全重新实现这一模
> 块。

这回总算是清楚了,谢谢!


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

2009年03月22日 星期日 23:58

Bill Xu bill在zeuux.org
星期日 三月 22 23:58:07 CST 2009

>
>   
>>>    我举个例子吧: 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>

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

2009年03月23日 星期一 13:38

Kermit Mei kermit.mei在gmail.com
星期一 三月 23 13:38:05 CST 2009

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?  我还是觉得我理解有问题,不然很多程序都
有问题了。


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

2009年03月23日 星期一 15:09

Yongwei Wu wuyongwei在gmail.com
星期一 三月 23 15:09:44 CST 2009

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/

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

2009年03月23日 星期一 16:05

Kermit Mei kermit.mei在gmail.com
星期一 三月 23 16:05:37 CST 2009

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.

哦,谢谢指出,学习了。 
我对法律的术语不是很敏感,尤其是英文的……所以看到这里以为是一些通常的说
明,就一笔带过了。 而且,我更没有想到可以做这种例外的声明,还是对“授
权”一词的理解不够深入。其实在这里,作者是行使自己的权力,而不是履行自己
的义务,因此可以声明这种例外。



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

2009年03月23日 星期一 22:05

Yongwei Wu wuyongwei在gmail.com
星期一 三月 23 22:05:37 CST 2009

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/

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

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

    你的回复:

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

    Zeuux © 2024

    京ICP备05028076号