V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ksedz
V2EX  ›  程序员

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

  •  
  •   ksedz · May 19, 2022 · 3261 views
    This topic created in 1440 days ago, the information mentioned may be changed or developed.

    查了下 GPL 的解释:

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

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

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

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

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

    但假如是这样也是合理的,版权方如果说了不算,那么就没有人愿意开源了。假如包括我在内的开发者,如果对于自己开发出来的产品,没有决定权,那么我当然就选择不开源。
    ksedz
        15
    ksedz  
    OP
       May 20, 2022
    @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  
       May 20, 2022
    出来混总是要还的。
    yazinnnn
        17
    yazinnnn  
       May 20, 2022
    你们这是魔改 mysql connector 了?还是把链接数据库作为服务卖了?

    只是当作组件使用应该没事吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5995 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 06:15 · PVG 14:15 · LAX 23:15 · JFK 02:15
    ♥ Do have faith in what you're doing.