什么程度的使用 GPL 软件才不用受到传染

2016-05-09 11:34:48 +08:00
 yangyaofei

我们做项目用了 Sphinx 的中文版 coreseek 做全文检索引擎,不知道什么程度的使用不用公开源代码.

整个软件我们要卖给客户的. 当然,软件不是主体,而是信息..... 但是公开源代码会暴露一些我们不想给竞争对手看的内容,所以不好开源

所以想问一下什么程度的使用不用开源,不调用,直接使用程序跑出来的结果算吗?

13618 次点击
所在节点    程序员
38 条回复
julyclyde
2016-05-09 11:43:17 +08:00
进程间通信
kokutou
2016-05-09 11:55:28 +08:00
```
1.1. 什么是 Sphinx/Coreseek

Sphinx 是一个在 GPLv2 下分发的全文检索引擎; Coreseek 是一个可供企业使用的、基于 Sphinx (可独立于 Sphinx 原始版本运行)的中文全文检索引擎,按照 GPLv2 协议发行,商业使用(例如, 嵌入到其他程序中)需要联系我们以获得商业授权。

一般而言, Sphinx 是一个独立的全文搜索引擎;而 Coreseek 是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高结果相关度的中文全文搜索能力。 Sphinx/Coreseek 可以非常容易的与 SQL 数据库和脚本语言集成。

```

http://www.coreseek.cn/docs/coreseek_3.2-sphinx_0.9.9.html#license


这个?
lhbc
2016-05-09 12:06:39 +08:00
没有对代码进行修改的话,直接在线安装然后脚本修改配置就行了吧
402645707
2016-05-09 12:14:35 +08:00
抖个机灵
cleanroom
VmuTargh
2016-05-09 12:16:03 +08:00
wrapper?
9hills
2016-05-09 12:16:14 +08:00
@kokutou
能吐槽下『按照 GPLv2 协议发行,商业使用(例如, 嵌入到其他程序中)需要联系我们以获得商业授权。 』

这个其实是冲突的么, GPLv2 本身就允许商业使用,而且不能加限制性条款。


@yangyaofei
将其视为插件,在线安装不要打包进源程序(或者分开发布,让用户手动合并)
通讯的话,使用 API 、进程间通讯均可,就不会感染。

至于上文说的不允许商业使用,无视即可,因为 Coreseek 已经被感染成 GPLv2 了,也无法限制你商业使用。。
yangyaofei
2016-05-09 13:04:42 +08:00
@kokutou 对啊………
@402645707 现阶段没有那个成本和实践来完成这个功能………以后会实现吧……
@9hills 我估计他说的商业授权指的是不公开源代码的情况下嵌入使用的授权吧……
还有,调用 api 的话不会算是么……那 lgpl 还有啥意义……

吐个槽
唉,那群外包做东西的时候肯定没想这么多……客户版竟然想装虚拟机里给客户,我说再怎么也要用 docker 之类的吧,他们一脸蒙逼,本来还挺信任他们的,现在不得不仔细审视他们用的所有工具和写的所有代码了。
yangyaofei
2016-05-09 13:05:14 +08:00
@julyclyde 这个应该可以…
yangyaofei
2016-05-09 13:07:37 +08:00
@kokutou 你的 markdown 跑了.......
9hills
2016-05-09 13:41:01 +08:00
@yangyaofei API 指的是基于 socket 的,你要是动态链接,那有较大的争议的。

你做个服务把这个东西包起来,对外暴露 api 即可
yangyaofei
2016-05-09 13:45:24 +08:00
@9hills 哦……了解了,我也觉得库调用肯定会传染
julyclyde
2016-05-09 13:45:46 +08:00
@9hills 不冲突。如果商业使用不想开源的话可以“另”申请授权
sivacohan
2016-05-09 14:13:46 +08:00
想避免感染,学学 Android 的 HAL 层。感染到 HAL 就结束了。
onceyoung
2016-05-09 15:47:02 +08:00
请参考安卓
hjc4869
2016-05-09 15:53:04 +08:00
让用户自己完成组装 GPL 软件和商业软件的过程(可以教客户怎么做,或者做个向导),同时自己不将商业软件和任何包含了 GPL 库的程序一起分发。
loading
2016-05-09 15:53:20 +08:00
写个中间应用,暴露需要的 api ,然后你调用就可以了,只感染你的中间应用。
yuyang1110
2016-05-09 17:00:37 +08:00
@hjc4869 那是 lgpl , LGPL 协议是可以使用库,但是不能捆绑分发。

gpl 如果不想开源的话,必须用进程间通信。否则,必须开源的。

不过,开源也可以用在商业目的上。。这两个事情互补干扰。
yangyaofei
2016-05-09 17:24:56 +08:00
@sivacohan
@onceyoung
@yuyang1110
谢谢
吐个槽:外包竟然说我们没和他说明白不能用 gpl 的软件....我靠,我们有说我们要给客户分发啊...现在开始说这个了.....
yangyaofei
2016-05-09 17:29:05 +08:00
@sivacohan
@onceyoung
@yuyang1110
@loading
@9hills

话说如果那个软件只是作为 mysql 的引擎的话,是不是就可以规避这个问题了?
而且 mysql 和我 java 层面的软件都是用 socket 连接的,所以这样就应该没问题了吧?
yuyang1110
2016-05-09 19:03:46 +08:00
@yangyaofei mysql 的引擎的话,应该没有问题的。

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

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

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

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

© 2021 V2EX