GPLv3 协议跟“禁止商用”是不兼容的

33 天前
 Trim21

今天看到了一个项目,是这么授权的:

licensed under GPLv3 for non-commercial project. For commercial use, please purchase a commercial license.

感觉大家对 GPLv3 的理解仅仅停留在传染性上,实际上 GPLv3 的第七款,“Additional Terms”对作者也有约束,作者是不允许限制下游用户的使用目的的。

对此 gnu 还专门有个 FAQ:

https://www.gnu.org/licenses/gpl-faq.html#NoMilitary

我愿意按照 GPL 发布我的代码,但是我还想清楚地说明我的程序不能用于军事和/或商业。我能这样做吗?

不行,因为你的两个目标互相矛盾。GNU GPL 专门设计成禁止添加额外的限制。GPLv3 在第 7 节允许非常小的例外,但是用户可以去除任何其他后添加的限制。

更普遍地说,一个限制用户范围,或者限制用户使用目的的许可证,不是左右软件许可证。

一个类似的例子是 qt 的 GPL/商业协议双授权,商业公司买商业协议是为了避免被 GPL 传染而需要开源,不是因为 GPL 不能商用。

638 次点击
所在节点    开源软件
4 条回复
mcfog
33 天前
其实任何开源协议都和禁用商业,甚至禁止恶用冲突的,JSON 的那个 for good, not evil 都让开源社区坚持拒绝 json 库
Trim21
33 天前
@mcfog #1 倒也不是,你不说自己是开源项目就行了。

这里的问题是,你可以用 MIT 这种宽松的协议附加一个禁止商用的条款,但是 GPL 不行,GPL 协议本身不允许。
mcfog
32 天前
@Trim21 如果附加条款是与,那就和 MIT 的不受限制使用冲突(成为了一种包含 MIT 文本的非开源协议),如果是或,那么任何人都可以用 MIT 条款的那一半许可商用

开源和限制使用范围不两立
Trim21
32 天前
@mcfog #3 所以这里的情况是,GPL 协议不允许你附加“与”,但是 MIT 可以。

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

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

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

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

© 2021 V2EX