关于在 Store App 中使用 LGPL 库带来的法律风险的一些疑问

2015-02-17 14:11:17 +08:00
 hjc4869

LGPL规定是必须公开库源代码,编译方法,并给用户relink的权利。
也就是严格意义上用户必须能用他们喜欢的库版本替换掉你软件里的库版本。

理论基础

以Windows为例
如果你动态链接了一个LGPL库,并且延迟加载(使用LoadLibrary等),用户可以随时替换掉你的dll文件,那么你只需要公开你修改的LGPL dll的源代码。如果你没修改源代码,那么你什么都不需要做。
如果你静态链接了一个LGPL库/静态链接了一个dll,那么你需要提供链接方dll/exe的obj文件,以及被链接的LGPL库源代码,这样用户可以修改LGPL库后,重新链接到你的程序上。

这是LGPL FAQ里的内容,加上部分我自己的理解。如有任何问题请指正。

实际问题

在开放的平台上(如Windows,Linux,Mac OS X等桌面操作系统),平台本身不限制用户修改程序,只要你拥有管理员/root权限,你可以替换任何程序的任何部分。只要软件开发者遵守LGPL,用户就可以享受LGPL所带来的权利。
但如果目标平台是一个封闭环境,比如Windows (Phone) Store,苹果App Store,那么用户不借助一些ugly workaround(如改Windows权限,越狱iPhone/WP),实际上是没有办法享受LGPL规定的这些权利的。
这种情况下,开发者在Store app中使用LGPL库是否算违反了使用协议?

3755 次点击
所在节点    问与答
14 条回复
Akiyori
2015-02-17 14:24:57 +08:00
我在想是不是只要协议内指定就可以了? 至于用于使用什么方法去达成这个目的自己不需要担心
hjc4869
2015-02-17 14:28:36 +08:00
@Akiyori 事实是大部分人都是这么做的。。
但是要真的严格起来,我有一种后怕的感觉,因为我的一个windows store播放器项目用到了ffmpeg的LGPL版,这个项目是打算收费&盈利的。。
Elethom
2015-02-17 14:42:37 +08:00
開源不等於免費。
akfish
2015-02-17 14:52:39 +08:00
并无问题。
用户可以自己去买个开发证书,拿你的源代码去修改,自己发布到store,自己部署。
至于这一过程中可能存在的任何障碍都不是你造成的,而是第三方造成的。
LGPL并不要求你手把手的带着用户完成这一过程,只需要提供原材料。
yangff
2015-02-17 14:57:41 +08:00
@akfish 他不想开源。
lingo233
2015-02-17 14:58:03 +08:00
好像只要给出鸣谢和使用的库的名字就行了。
akfish
2015-02-17 14:59:45 +08:00
@yangff lz只需要按LGPL的约定,该给用户提供什么就提供什么,至于用户怎么用、能不能用、容不容易用,不是lz的问题。
hjc4869
2015-02-17 15:24:21 +08:00
@akfish
@yangff
也就是说如果我想静态链接以LGPL选项编译的ffmpeg,我只需要在关于中写清楚我用了ffmpeg,附上协议以及我链接的那个dll的obj文件下载地址,并给出我修改过的ffmpeg源码即可?
zhicheng
2015-02-17 19:00:36 +08:00
在 iOS 的 App Store,自己打包的GPL和各种GPL衍生协议授权的代码统统不能用,不要考虑了。
hjc4869
2015-02-17 19:02:16 +08:00
@zhicheng LGPL和GPL是完全不同的两个协议,而且VLC也上架了。。
zhicheng
2015-02-17 19:22:56 +08:00
@hjc4869 你说不同就不同咯。
sandtears
2015-02-17 19:31:50 +08:00
@zhicheng 他这不是举例子了么… VLC 就是因为包含 GPL 代码被下架的,重新上架就是通过采用 LGPL 的库代替原本的库。换而言之, APP Store 是允许包含 LGPL 库的应用发布的
zhicheng
2015-02-17 19:47:57 +08:00
@sandtears 如果那个库是你自己写的,我们没有讨论的意义。
Starduster
2015-02-17 20:51:49 +08:00
@zhicheng 他又不是做 iOS 的 store,是 Windows 的 store,不要一提到 APP store 就只想到水果啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/171489

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX