V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Trim21
V2EX  ›  开源软件

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

  •  
  •   Trim21 · 16 天前 · 480 次点击

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

    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 不能商用。

    4 条回复    2024-05-16 19:29:22 +08:00
    mcfog
        1
    mcfog  
       16 天前 via Android
    其实任何开源协议都和禁用商业,甚至禁止恶用冲突的,JSON 的那个 for good, not evil 都让开源社区坚持拒绝 json 库
    Trim21
        2
    Trim21  
    OP
       16 天前
    @mcfog #1 倒也不是,你不说自己是开源项目就行了。

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

    开源和限制使用范围不两立
    Trim21
        4
    Trim21  
    OP
       16 天前
    @mcfog #3 所以这里的情况是,GPL 协议不允许你附加“与”,但是 MIT 可以。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1566 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:09 · PVG 01:09 · LAX 10:09 · JFK 13:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.