V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sneezry
V2EX  ›  问与答

在项目中不加修改地引入 GPL 协议项目 release 的二进制文件需要遵循 GPL 协议开源吗

  •  
  •   sneezry · 2020-01-31 23:13:54 +08:00 · 1551 次点击
    这是一个创建于 1539 天前的主题,其中的信息可能已经有所发展或是发生改变。
    为一个项目贡献了一些代码来提供新的功能,但使用到了一个 GPL 协议开源项目 release 的二进制文件,那么我所贡献的这个项目需要也遵循 GPL 协议开源吗?
    7 条回复    2020-02-01 09:18:16 +08:00
    BrettD
        1
    BrettD  
       2020-01-31 23:32:47 +08:00 via iPhone   ❤️ 1
    如果是跨进程调用没事,如果是以动态链接库形式载入调用似乎有 GPL 传染问题
    sneezry
        2
    sneezry  
    OP
       2020-01-31 23:35:22 +08:00
    @BrettD 是通过 Node 的 child_process.spawn 调用命令行进行调用的,那么这么看应该不会带来 GPL 的问题。谢谢~
    westoy
        3
    westoy  
       2020-01-31 23:51:34 +08:00
    我印象里 N 年前 CPyUG 有过类似的讨论, 结论是
    如果你的程序脱离了调用这个 binary 不能跑, 那就得视为单一的程序遵循 GPL 协议
    此外如果你的程序和这个 binary 涉及到共享内存、pipe 之类的数据交换, 那也得遵循 GPL 协议
    sneezry
        4
    sneezry  
    OP
       2020-02-01 00:12:45 +08:00
    @westoy 好复杂啊,看项目管理者的决定吧,如果担心 GPL 的问题就只能我自己用了……
    secondwtq
        5
    secondwtq  
       2020-02-01 01:03:10 +08:00
    一个绕过的方法:自己写一个功能兼容但是实现很糙的版本。这样就不是“脱离了调用这个 binary 不能跑”了
    secondwtq
        6
    secondwtq  
       2020-02-01 01:10:38 +08:00
    不过我不记得有“脱离了调用这个 binary 不能跑”这条(或者说简单的情况并不会考虑),主要还是看调用的具体方式
    qiguai2017
        7
    qiguai2017  
       2020-02-01 09:18:16 +08:00
    你分发给自己用户的最终程序包里面,有包含其他 GPL 的代码,那你的程序也要遵循 GPL。

    如果你的应用里面没有提供 GPL 的代码,只是要求自己的用户去下载相关的 GPL 代码应用到你的本地,来让你的代码可以引用,这时候你的代码就可以不遵循 GPL 协议。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5674 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:06 · PVG 10:06 · LAX 19:06 · JFK 22:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.