我们做项目用了 Sphinx 的中文版 coreseek 做全文检索引擎,不知道什么程度的使用不用公开源代码.
整个软件我们要卖给客户的. 当然,软件不是主体,而是信息..... 但是公开源代码会暴露一些我们不想给竞争对手看的内容,所以不好开源
所以想问一下什么程度的使用不用开源,不调用,直接使用程序跑出来的结果算吗?
1 julyclyde 2016-05-09 11:43:17 +08:00 进程间通信 |
![]() | 2 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 这个? |
![]() | 3 lhbc 2016-05-09 12:06:39 +08:00 没有对代码进行修改的话,直接在线安装然后脚本修改配置就行了吧 |
![]() | 4 402645707 2016-05-09 12:14:35 +08:00 抖个机灵 cleanroom |
5 VmuTargh 2016-05-09 12:16:03 +08:00 wrapper? |
![]() | 6 9hills 2016-05-09 12:16:14 +08:00 ![]() @kokutou 能吐槽下『按照 GPLv2 协议发行,商业使用(例如, 嵌入到其他程序中)需要联系我们以获得商业授权。 』 这个其实是冲突的么, GPLv2 本身就允许商业使用,而且不能加限制性条款。 @yangyaofei 将其视为插件,在线安装不要打包进源程序(或者分开发布,让用户手动合并) 通讯的话,使用 API 、进程间通讯均可,就不会感染。 至于上文说的不允许商业使用,无视即可,因为 Coreseek 已经被感染成 GPLv2 了,也无法限制你商业使用。。 |
7 yangyaofei OP |
8 yangyaofei OP @julyclyde 这个应该可以… |
9 yangyaofei OP @kokutou 你的 markdown 跑了....... |
![]() | 10 9hills 2016-05-09 13:41:01 +08:00 |
11 yangyaofei OP @9hills 哦……了解了,我也觉得库调用肯定会传染 |
![]() | 13 sivacohan PRO ![]() 想避免感染,学学 Android 的 HAL 层。感染到 HAL 就结束了。 |
14 onceyoung 2016-05-09 15:47:02 +08:00 via Android 请参考安卓 |
![]() | 15 hjc4869 2016-05-09 15:53:04 +08:00 让用户自己完成组装 GPL 软件和商业软件的过程(可以教客户怎么做,或者做个向导),同时自己不将商业软件和任何包含了 GPL 库的程序一起分发。 |
![]() | 16 loading 2016-05-09 15:53:20 +08:00 写个中间应用,暴露需要的 api ,然后你调用就可以了,只感染你的中间应用。 |
17 yuyang1110 2016-05-09 17:00:37 +08:00 @hjc4869 那是 lgpl , LGPL 协议是可以使用库,但是不能捆绑分发。 gpl 如果不想开源的话,必须用进程间通信。否则,必须开源的。 不过,开源也可以用在商业目的上。。这两个事情互补干扰。 |
18 yangyaofei OP @sivacohan @onceyoung @yuyang1110 谢谢 吐个槽:外包竟然说我们没和他说明白不能用 gpl 的软件....我靠,我们有说我们要给客户分发啊...现在开始说这个了..... |
19 yangyaofei OP @sivacohan @onceyoung @yuyang1110 @loading @9hills 话说如果那个软件只是作为 mysql 的引擎的话,是不是就可以规避这个问题了? 而且 mysql 和我 java 层面的软件都是用 socket 连接的,所以这样就应该没问题了吧? |
20 yuyang1110 2016-05-09 19:03:46 +08:00 ![]() @yangyaofei mysql 的引擎的话,应该没有问题的。 |
21 jsonline 2016-05-09 19:15:55 +08:00 你们说的『传染』是同一个『传染』吗…… |
22 yangyaofei OP @yuyang1110 谢谢....再问一个.....如果是用 system("shell") 来执行 shell 命令呢?我觉得不算,但是也不敢说肯定不算 |
23 yangyaofei OP @jsonline 你认为是那种传染 |
24 jsonline 2016-05-09 19:38:19 +08:00 @yangyaofei 难道不是 lisence 传染吗? |
![]() | 26 simpx 2016-05-09 21:04:49 +08:00 ![]() 用 RPC ,我在一个要使用 gpl 代码的项目里是准备这么做的: 1. 在本机上实现一个使用 GPL 代码的 server ,提供 http 接口,或者 rpc 接口 2. 自己的项目通过接口访问 server 进而使用 GPL 代码提供的功能。 3. 只需要开源 1 里面实现的 server |
![]() | 27 Zzzzzzzzz 2016-05-09 21:22:03 +08:00 @yangyaofei 我感觉你是想打包了一起交付用户吧, 那转移 mysql 上也解决不了问题, mysql 商用捆绑打包要专项授权 http://www.mysql.com/about/legal/licensing/oem/ |
![]() | 28 feelapi 2016-05-09 21:44:29 +08:00 PostgreSQL |
![]() | 29 9hills 2016-05-09 21:45:35 +08:00 via iPhone @yangyaofei 这个肯定不算,就连动态链接都有争论的 |
![]() | 30 hjc4869 2016-05-09 22:59:33 +08:00 ![]() @yuyang1110 并不是, GPL 限制的是分发者,如果你没有分发 GPL 软件,就不需要受 GPL 约束。 如果是用户自己把你的软件和 GPL 软件放在一起用的,那么就是用户自身受 GPL 的约束,换言之用户分发你的商业软件+GPL 软件时需要同时遵守你提供的商业软件使用协议和 GPL 本身(显然这是不可能的),所以用户无权分发这样的软件,但是用户有权使用这一的软件,你作为商业软件发布者不需要担心。 GPL 也没有规定你不能教用户怎么将 GPL 软件和你的商业软件一起组装使用。你可以在 Installer 结尾弹个 README ,或者干脆弹个网页,然后让用户下载另一个 GPL 程序装上。 比较有争议的是像 potplayer 那样在安装结尾处直接让用户勾选一个复选框就能装 GPL 软件,但如果是分开分发,并且两个部分提供两个不同的协议(一个商业 license 一个 GPL ),那么原则上是没有违反 GPL 的。 当然如果你的目标是 Oracle 家的 GPL 软件,就别拿上面这些理论去铤而走险了,除非自认为自己的法务部比 Oracle 牛逼( |
31 yangyaofei OP |
![]() | 32 realpg PRO @yangyaofei 卖数据啊。 好办。 你们只销售数据文件就行了 环境什么的,提供一个编译安装指导手册,就完事儿。 甲方不行搞不定可以让委托一个个人付费 100 元按照你们的指导安装程序,导入数据。这个人个人身份承接就完事。 |
33 yangyaofei OP @realpg 估计这样客户会疯的 |
![]() | 34 realpg PRO |
35 yangyaofei OP @realpg 我能说搞成那种形式基本上只能我去安装,别人都不会,现在基本上决定是,弄好一个主机直接交付弄好的硬件 |
![]() | 36 realpg PRO |
37 yangyaofei OP @realpg 明白 |
![]() | 38 wizardforcel 2016-05-12 09:15:17 +08:00 via Android gpl 是用户拿到二进制就必须拿到源代码。如果你挂网上提供 http 服务,那不算。 库的话,看最后链接不链接了。链接的话 gpl 传染, lgpl 不传染。不链接的话就是单独的程序集了,而且没必要打包分发,可以通过依赖配置(比如 maven )来配置嘛。 |