• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Famio
V2EX  ›  程序员

开源许可证兼容问题请教

  •  
  •   Famio · Dec 5, 2020 · 1930 views
    This topic created in 1985 days ago, the information mentioned may be changed or developed.
    假设我的项目 A,依赖了一个包是 B,但是我没有修改 B 的代码再分发,仅仅引用。
    那么 A 是 GPL3.0,B 是 BSD 协议,就会产生冲突。
    问题是,我项目 A 使用 GPL3.0 是否合规?请教大佬们这里面的学问。
    9 replies    2020-12-05 00:43:21 +08:00
    chinvo
        1
    chinvo  
       Dec 5, 2020 via iPhone   ❤️ 1
    GPL 项目依赖 BSD 的包,不会冲突啊
    swulling
        2
    swulling  
       Dec 5, 2020 via iPhone   ❤️ 1
    你最终打包的产出物里面有没有 B ?

    如果有那需要用 GPLv3 发布,但是如果没有,就应该没事
    swulling
        3
    swulling  
       Dec 5, 2020 via iPhone   ❤️ 1
    看错了,你是 GPLv3 的话,没有任何问题
    baobao1270
        4
    baobao1270  
       Dec 5, 2020   ❤️ 1
    只引用二进制文件不涉及开源协议
    如果是在分发的面向最终用户的二进制包中包含 B 的二进制文件,需要注明
    swulling
        5
    swulling  
       Dec 5, 2020 via iPhone   ❤️ 1
    GPL 兼容 MIT BSD Apache,只要附加一些许可文件就行了。反过来不行
    Famio
        6
    Famio  
    OP
       Dec 5, 2020
    @swulling 我项目的最终发行物中包含了 B,那我是需要另外的著名许可文件?是需要怎样的形式,说明哪些包依赖哪些许可类型?我想尽可能的将自己的开源项目做到合规化,感谢了。
    chinvo
        7
    chinvo  
       Dec 5, 2020 via iPhone   ❤️ 1
    @Famio #6 留 license 文件在程序目录里,或者 about 之类的程序内声明
    Famio
        8
    Famio  
    OP
       Dec 5, 2020
    @chinvo 好的,非常感谢,学习了!
    Mithril
        9
    Mithril  
       Dec 5, 2020
    一般项目在选择自己的 License 时,都会保证和自己引用项目的 License 至少是兼容的。你用 GPL 去引 BSD 的是没问题的。但反过来因为 GPL 的限制更强,你只能继续用 GPL 。
    绝大多数的 License 都要求你在重分发它们的二进制的时候,带上人家的 License 。就是你打包的时候额外带一个文件夹里面装所有你引用库的 License 文件,或者其它的什么地方可以让你的用户看到人家的 License 。
    你可以参考 ElasticSearch 等等比较大型的开源项目。或者最简单的你看 Chrome 的开源说明也可以,就在帮助->关于里面,点那个开源软件的链接就可以了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4241 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:07 · PVG 08:07 · LAX 17:07 · JFK 20:07
    ♥ Do have faith in what you're doing.