各位佬友,来谈谈你们对违反开源协议的看法

CBYellowstone 2026-07-20 20:05 1

众所周知,我们日常使用的很多软件、项目,都是基于一定的“开源协议”进行开源的。

这使得广大社区开发者可以共享项目的发展成果,同时也能让项目获得更多人的参与和贡献。


常见的开源协议有 MIT、GPLv2、GPLv3、LGPL、AGPLv3 等。

这些协议都规定了源码使用者被授予的权利,以及使用、修改、分发源码时需要履行的义务。


例如 MIT 协议相对宽松,通常只要求保留版权和许可证声明;而 GPL、AGPL 等协议则会要求修改或分发后的项目继续开源,其中 AGPLv3 还涉及通过网络提供服务时的源码开放义务。


然而,违反开源许可证的情况并不少见,一个著名的例子就是 FFmpeg 耻辱柱:



FFmpeg 被大量音视频软件使用,但过去有不少软件在使用 FFmpeg 后,没有按照 LGPL 或 GPL 的要求提供源码、保留许可证声明,或者公开说明使用了 FFmpeg。


因维权法律成本高昂,FFmpeg 项目只能通过设立一个 Hall of Shame 页面,公开列出被认为违反许可证的软件,以此来声讨。

其中出现过一些比较耳熟能详的软件,例如暴风影音、格式工厂、QQ 影音、PotPlayer、KMPlayer、GOM Player 等。



另外对不熟悉开源协议的佬友们再补充一下:



Fork 一个项目后仅供自己使用,没有向他人分发,也没有通过网络向外提供修改后的服务的话,一般不会触发 GPL、AGPL 等许可证的源码公开义务。



大家Fork自己自用(真自己用)修改闭源一般是不违反的。




我想知道各位佬友怎么看待这种事情。


你们认为,违反开源许可证是否应该区分“善意违反”和“恶意违反”?


比如:



  1. 刚入门的小白因为不了解开源许可证而违规,和熟悉开源规则的老手仍然违规,是否应该区别看待?

  2. 同样是违反许可证,个人开发者、小团队

    和商业公司、大型企业,是否应该采用不同的评价标准?

  3. 个人项目或非商业项目的违规 和 以商业获利为目的的违规 是否应该区别对待?

  4. 被指出问题后立即整改,和明知违规却拒绝整改,是否可以作为区分“善意违反”和“恶意违反”的标准?

  5. 在你看来,什么样的情况属于善意违反,什么样的情况又属于恶意违反?


希望各位佬友能谈谈自己的看法。


多选观点投票:


第三项是 小白了解,不小心删了个字,不好意思





  • 无论出于什么原因,违反开源许可都应该受到批评

  • 违反开源许可要区分善意和恶意,也可能存在特殊情况

  • 小白了解许可证而违规,可以适当宽容

  • 老手或商业主体明知许可证要求仍然违规,性质更加严重

  • 是否及时整改,比最初是否违规更重要

  • 开源协议就是君子协议,违反了也很难维权,防不住小人

  • 社区应对违反开源协议的行为大力批评,以正视听

  • 应先私下提醒,拒不整改后再公开批评

  • 我有不同看法(欢迎在下面一起讨论)






0
投票人



最新回复 (14)
  • CBYellowstone 楼主 07-20 20:10
    1

    佬友们别光顾着投票呀,也说一下你们的看法 ^-^

  • ВГТРК 07-20 20:11
    2

    用什么开源协议就应该遵守什么开源协议

  • CBYellowstone 楼主 07-20 20:12
    3

    佬平时喜欢用什么协议?我个人的话喜欢用AGPLv3

  • ВГТРК 07-20 20:14
    4

    常用的嘛就是MIT和BSD,感觉自己的代码质量不太配得上GPL)

  • CBYellowstone 楼主 07-20 20:17
    5

    虽然我的代码质量也是依托 ^-^

    但是我是觉得用AGPLv3能够更好地服务开源社区,防止被偷去闭源

    我很喜欢GPL系列强传染性,尽管有人觉得这会让自己的代码失去被部分不接受APGL的商业公司使用的机会

  • SpookerV5 07-20 20:19
    6

    在大模型横行的当下,开源协议越来越像君子协议了

  • Hifumi Mizuhara 07-20 20:20
    7

    我对我的代码质量有清楚的认知,所以我倾向于用




  • CBYellowstone 楼主 07-20 20:24
    8

    确实,我之前就见过有一个国外公司提供一键“Clean Room”服务,提交GPL协议依赖或者包的名称给他们,由该公司用LLM实现一个完全兼容的、没有“使用源代码”的包,这样就能中断传染性。


    不好评价这类争议性内容。


    但是最近我发现有些项目被大范围违反开源协议使用,却鲜有佬友对此感到疑惑,所以才发这贴想问问大家的看法。

  • 哈雷彗星 07-20 20:24
    9

    无论如何 违反别人选择的协议从本质上都是一种不尊重


    说难听点就是明着偷 没发现就是偷 发现了就是抢了说是


    是你的代码吗你就用你就拿 妈妈咪呀

  • CBYellowstone 楼主 07-20 20:27
    10



    不知道触发什么关键词了。。

  • Hifumi Mizuhara 07-20 20:27
    11

    我记得好像是有的,我只选取了被维基百科收录的部分,以免有人说我是瞎编的,因为第一次看到这个协议的时候我也以为是谁瞎编的 ^-^

  • CBYellowstone 楼主 07-20 20:27
    12

    哈雷佬,想听一下你的看法:


    如果偷去“做好事”,你会怎么看待呢? ^-^

  • 哈雷彗星 07-20 20:29
    13

    做好事是怎么个定义 无论出于什么初衷 都不彳亍w


    一直以来我要写个终端模拟器 都避不开Termux是GPL的事实


    想要闭源只能自己重新手搓个 害

  • 重度粉毛厨 07-20 20:35
    14

    如果是开发一些相对底层或者基础的工具,我更倾向于宽松开源,因为对于新手而言,宽松协议的上手门槛和合规压力显著低于GPL。

    不过,宽松协议也好,Copyleft也罢,本身并没有绝对的优劣之分,它更多地取决于创建者的喜好,是实现战略目标的工具,而不是评价道德优劣的标尺。

    违反开源协议,无论是有意的还是无意的,在开源社区中几乎总是不可避免。与其讨论“违反开源协议”这件事本身的善意与恶意,不如看一看侵权者被告知侵权以后采取了怎样的方式修正和弥补。

* 帖子来源Linux.do
返回