问下GPL版权对Dynamic Linked 和 static linked software的限制作用

191 views
Skip to first unread message

valpa

unread,
Jul 18, 2010, 7:31:36 PM7/18/10
to Shanghai Linux User Group
公司的私有程序,分别通过Dynamic Linked和Static Linked的方式和GPLv2的库链接,然后卖出去挣钱,这两种方式在
License上有什么区别么?
我还听说GPLv3更严格些对吧?

小马xiaoma

unread,
Jul 18, 2010, 9:10:40 PM7/18/10
to sh...@googlegroups.com
http://ccpi.gov.cn/Linux/lg-zh-issue/lg-zh-issue5/kidd.html 这篇文章解释的很清楚。

简单的来说,就是你可以“合理使用” GPL库, 但是不能包含在你的软件里分发,除非你的软件是GPL的。

也就是说,你只能用Dynamic
Linked的方式使用,而且在你销售的拷贝中,不能包含这些库。但是安装的时候可以使用一个检测程序去检测用户机器上是否有这些库,如果没有,帮助他去官方网站下载并安装这些库。

Zhang Le

unread,
Jul 18, 2010, 9:11:34 PM7/18/10
to sh...@googlegroups.com
2010/7/19 valpa <valpa...@gmail.com>:

> 公司的私有程序,分别通过Dynamic Linked和Static Linked的方式和GPLv2的库链接,然后卖出去挣钱,这两种方式在
> License上有什么区别么?

没有区别,你公司的程序都不能再私有下去了

如果是链接LGPL的库,才有区别。区别是动态链接的话,你的私有程序可以不开源;静态连接,则需要开源

--
Zhang Le, Robert
Gentoo/Loongson(龙芯) Developer
http://zhangle.is-a-geek.org

Shell Xu

unread,
Jul 18, 2010, 10:53:07 PM7/18/10
to sh...@googlegroups.com
基本正解。
我研究过这个问题,结论基本是这样的。
如果是LGPL,使用动态链接是没有限制的,你的程序可以不开源。
如果是GPL,或者静态链接,你的程序都必须开源。
然而,如果你的程序不是必须使用这些库,你可以做一个引导程序,当客户机器上没有这些库的时候下载安装编译。这并不违法,因为你的发行中并不包含这些代码。
如果你的程序必须依赖于这些库,那么这个事情似乎没有定论。理论上也可以进行下载安装编译,但是这样等于你卖的程序不完整了,用户可能会找你麻烦。
不过一个通行的办法是,将你的程序核心部分也写成一个库,使得这个库不依赖于任何开源库。然后用一个开源的程序整合几个部分。
--
无能者无所求,饱食而遨游,泛若不系之舟

Yongwei Wu

unread,
Jul 20, 2010, 8:31:40 AM7/20/10
to sh...@googlegroups.com
2010/7/19 Shell Xu <shell...@gmail.com>:

> 基本正解。
> 我研究过这个问题,结论基本是这样的。
> 如果是LGPL,使用动态链接是没有限制的,你的程序可以不开源。

这是安全的做法。但GPL/LGPL本身并不讨论静态、动态链接问题。

> 如果是GPL,或者静态链接,你的程序都必须开源。
> 然而,如果你的程序不是必须使用这些库,你可以做一个引导程序,当客户机器上没有这些库的时候下载安装编译。这并不违法,因为你的发行中并不包含这些代码。
> 如果你的程序必须依赖于这些库,那么这个事情似乎没有定论。理论上也可以进行下载安装编译,但是这样等于你卖的程序不完整了,用户可能会找你麻烦。
> 不过一个通行的办法是,将你的程序核心部分也写成一个库,使得这个库不依赖于任何开源库。然后用一个开源的程序整合几个部分。

作为一个整体,这个程序的分发仍然违反GPL。nVidia的做法是让开源的代码自动下载闭源的.o文件,在目标机上编译产生最终的驱动。我想这个模式并不适合搂主。

--
Wu Yongwei
URL: http://wyw.dcweb.cn/

机械唯物主义 : linjunhalida

unread,
Jul 20, 2010, 8:34:57 AM7/20/10
to sh...@googlegroups.com
dropbox也是发布开源代码的exe,然后连网下载闭源模块。

2010/7/20 Yongwei Wu <wuyo...@gmail.com>:

valpa

unread,
Jul 20, 2010, 10:16:49 PM7/20/10
to Shanghai Linux User Group
听了大家讨论,感觉整体分发是关键,只要不是整体,只要不分发,比如现场多次手工安装,有没有问题

很多库是LPGL的,这点不错,直接用就行了

On Jul 20, 10:34 pm, 机械唯物主义 : linjunhalida <linjunhal...@gmail.com>
wrote:
> dropbox也是发布开源代码的exe,然后连网下载闭源模块。
>
> 2010/7/20 Yongwei Wu <wuyong...@gmail.com>:
>
> > 2010/7/19 Shell Xu <shell909...@gmail.com>:

Yongwei Wu

unread,
Jul 21, 2010, 11:06:58 AM7/21/10
to sh...@googlegroups.com
如果是用户自己下载安装,问题不大。否则(比如你帮用户安装)仍然可能是个问题。

关键是用户必须自己了解GPL的许可和权利,然后自己选择和闭源的东西一起使用。GPL只限制分发,不限制使用。

2010/7/21 valpa <valpa...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages