• CBYellowstone

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

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

    常见的开源协议有 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自己自用(真自己用)修改闭源一般是不违反的。


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

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

    比如:

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

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

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

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

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

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

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

    多选观点投票:

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

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

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

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

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

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

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

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

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

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

    0
    投票人

    主楼
  • CBYellowstone

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

    #1
  • ВГТРК

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

    #2
  • CBYellowstone

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

    #3
  • ВГТРК

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

    #4
  • CBYellowstone

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

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

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

    #5
  • SpookerV5

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

    #6
  • Hifumi_Mizuhara

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

    图片

    图片

    图片

    #7
  • CBYellowstone

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

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

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

    #8
  • 哈雷彗星

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

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

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

    #9
  • CBYellowstone

    图片

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

    #10
  • Hifumi_Mizuhara

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

    #11
  • CBYellowstone

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

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

    #12
  • 哈雷彗星

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

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

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

    #13
  • 重度粉毛厨

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

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

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

    #14

发表回复

登录后回复