开源许可证兼容问题请教

2020-12-05 00:11:22 +08:00
 Famio
假设我的项目 A,依赖了一个包是 B,但是我没有修改 B 的代码再分发,仅仅引用。
那么 A 是 GPL3.0,B 是 BSD 协议,就会产生冲突。
问题是,我项目 A 使用 GPL3.0 是否合规?请教大佬们这里面的学问。
1564 次点击
所在节点    程序员
9 条回复
chinvo
2020-12-05 00:19:52 +08:00
GPL 项目依赖 BSD 的包,不会冲突啊
swulling
2020-12-05 00:20:13 +08:00
你最终打包的产出物里面有没有 B ?

如果有那需要用 GPLv3 发布,但是如果没有,就应该没事
swulling
2020-12-05 00:20:47 +08:00
看错了,你是 GPLv3 的话,没有任何问题
baobao1270
2020-12-05 00:21:50 +08:00
只引用二进制文件不涉及开源协议
如果是在分发的面向最终用户的二进制包中包含 B 的二进制文件,需要注明
swulling
2020-12-05 00:22:10 +08:00
GPL 兼容 MIT BSD Apache,只要附加一些许可文件就行了。反过来不行
Famio
2020-12-05 00:36:59 +08:00
@swulling 我项目的最终发行物中包含了 B,那我是需要另外的著名许可文件?是需要怎样的形式,说明哪些包依赖哪些许可类型?我想尽可能的将自己的开源项目做到合规化,感谢了。
chinvo
2020-12-05 00:40:30 +08:00
@Famio #6 留 license 文件在程序目录里,或者 about 之类的程序内声明
Famio
2020-12-05 00:42:44 +08:00
@chinvo 好的,非常感谢,学习了!
Mithril
2020-12-05 00:43:21 +08:00
一般项目在选择自己的 License 时,都会保证和自己引用项目的 License 至少是兼容的。你用 GPL 去引 BSD 的是没问题的。但反过来因为 GPL 的限制更强,你只能继续用 GPL 。
绝大多数的 License 都要求你在重分发它们的二进制的时候,带上人家的 License 。就是你打包的时候额外带一个文件夹里面装所有你引用库的 License 文件,或者其它的什么地方可以让你的用户看到人家的 License 。
你可以参考 ElasticSearch 等等比较大型的开源项目。或者最简单的你看 Chrome 的开源说明也可以,就在帮助->关于里面,点那个开源软件的链接就可以了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/732311

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX