V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ksedz
V2EX  ›  程序员

依赖 GPL 协议组件的程序一定会被 GPL 传染吗?

  •  
  •   ksedz · 2022-05-19 20:37:06 +08:00 · 2462 次点击
    这是一个创建于 680 天前的主题,其中的信息可能已经有所发展或是发生改变。

    查了下 GPL 的解释:

    " 如果两个模块都包含在同一个可执行文件里,那么它们一定是一个程序的组件。"

    那么作为模块集成、使用插件机制且交互密切都被视为同一个程序,会被 GPL 传染。
    用这个标准衡量,自己写过的程序无一幸免,都受 GPL 约束。。。
    还是我的理解不对?

    17 条回复    2022-05-20 15:16:21 +08:00
    ysc3839
        1
    ysc3839  
       2022-05-19 20:42:27 +08:00 via Android
    建议说一下具体情况
    ly841000
        2
    ly841000  
       2022-05-19 20:43:01 +08:00
    是的。。。所以要避免使用 GPL 代码
    ksedz
        3
    ksedz  
    OP
       2022-05-19 20:52:31 +08:00
    @ysc3839 公司要求统计代码里面的 GPL 风险问题,就调研了下 “依赖树中有 GPL 组件” 和 “MySQL 插件” 两种情况。发现都会被 GPL 传染。

    就感慨下,现代语言这么用第三方包,还有递归依赖,谁的依赖树里面还没个 GPL 了(比如 mysql connector)。

    以后做开源应该加个标签 [No GPL] 做卖点 🐶
    ysc3839
        4
    ysc3839  
       2022-05-19 21:15:53 +08:00 via Android
    learningman
        5
    learningman  
       2022-05-19 21:31:04 +08:00
    你用 mysql 的不是 server 吗,那又不影响,你没有把 server 的二进制发给你的用户。AGPL 才影响。
    nightwitch
        6
    nightwitch  
       2022-05-20 00:28:17 +08:00
    GPL 只对客户端软件有威胁。
    服务端可以无视 GPL
    kwanzaa
        7
    kwanzaa  
       2022-05-20 02:59:00 +08:00
    顺势问个问题,GPL 依赖了非 GPL 的怎么说?
    Puteulanus
        8
    Puteulanus  
       2022-05-20 03:11:02 +08:00
    说起包管理,那前端算不算用了的同时自己也开源了,狗头
    Trim21
        9
    Trim21  
       2022-05-20 03:21:17 +08:00 via Android
    感觉你的理解不太对吧…你给 Photoshop 写个 GPL 的插件,打包成一个可执行文件,也传染不了 Adobe…
    ysc3839
        10
    ysc3839  
       2022-05-20 03:34:23 +08:00 via Android
    @learningman 楼主说的是 MySQL Connector ,是在自己程序里连接 MySQL 数据库用的库
    gam2046
        11
    gam2046  
       2022-05-20 08:15:41 +08:00
    mysql 是有收费版本的,会不会商业版会提供不同的 mysql connector ,以此来规避这种问题。不给钱,想用开源版本就 GPL 。
    GPLer
        12
    GPLer  
       2022-05-20 08:41:23 +08:00
    明显不会,安卓就是一个例子。
    如果 GPL 真的好使,世界上主流的开源协议就是 GPL 了,然而事实并不是这样。
    hatsuyuki
        13
    hatsuyuki  
       2022-05-20 09:08:44 +08:00
    @gam2046 付了钱就可以用商业协议了,终究是版权方说了算
    gam2046
        14
    gam2046  
       2022-05-20 09:18:26 +08:00
    @hatsuyuki #13 这个我不确定,只是猜测,商业版本是不是会有不同。

    但假如是这样也是合理的,版权方如果说了不算,那么就没有人愿意开源了。假如包括我在内的开发者,如果对于自己开发出来的产品,没有决定权,那么我当然就选择不开源。
    ksedz
        15
    ksedz  
    OP
       2022-05-20 11:24:17 +08:00
    @ysc3839 @learningman @nightwitch 因为服务不只要平时 ToC 用,还可能 ToB 打包出售 🤷‍♂️,涉及的后台服务、前端程序、底层的 libxxx 都不少,需要逐个排查 GPL 的问题,感觉不是很乐观,包括 MySQL 插件这个问题目前没有好的解决办法。

    @Trim21 我发的链接里有对插件的说明,如果插件和宿主程序的交互复杂的数据结构、相互调用,那么会被认为是同一个程序。不过显然第三方 GPL 插件不会影响到 Adobe Photoshop 发行版的协议,但是确实会影响重新打包后的文件协议。

    @gam2046 MySQL 的商业授权版本包括 client 授权
    > Oracle provides its MySQL database server and MySQL Client Libraries under a dual license model designed to meet the development and distribution needs of both commercial distributors (such as OEMs, ISVs and VARs) and open source projects.
    jones2000
        16
    jones2000  
       2022-05-20 11:26:58 +08:00
    出来混总是要还的。
    yazinnnn
        17
    yazinnnn  
       2022-05-20 15:16:21 +08:00
    你们这是魔改 mysql connector 了?还是把链接数据库作为服务卖了?

    只是当作组件使用应该没事吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2796 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:32 · PVG 21:32 · LAX 06:32 · JFK 09:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.