谈谈主流开源技术证书

这里所谓的主流就是指github上面创建仓库时,提供的lic。当然也可以自行上传其他证书,也是可以生效的。

代价是开源的证书

GPL v3:对于具备这个证书的源码进行修改需要开源

AGPL v3:同上,修补了上面证书的SaaS部署漏洞(自行查阅)

非主流SSPL证书:关于该开源代码的提供服务的代码也需要开源,强化了AGPL,属于商业条例,所以不是主流开源证书

代价是引用的证书

MIT:通常是在软件的"关于"页面、文档或者一个LICENSE文件中,写明"本产品包含了XXX项目(遵循MIT许可证)"并附上其许可证原文

Apache 2.0:在MIT基础上额外要求 如果修改了文件,需要清晰地声明修改之处。

3-Clause BSD:在MIT基础上额外要求 不要宣传,比如"本软件是基于清华大学顶尖的开源程序制作的"

编译后的软件如何检测是否违反了开源条例

Strings:来自微软官方的Sysinternals套件。它可以提取二进制文件中的可读文本字符串。

Dependencies:一个现代化的开源工具,用来替代旧的Dependency Walker,可以查看一个.exe或.dll依赖哪些其他的.dll文件。

专利与开源 lic 的关系

带有专利条款的lic (如Apache 2.0, GPLv3,AGPL v3)

  • 你修改了代码 :当你向项目贡献你的修改时,许可证的专利授权条款 就被触发了。你已经自动地将与你修改相关的专利,免费授权给了社区里的每一个人。

  • 你再去申请专利:你可以去申请,甚至可能申请成功。

  • 你用专利告别人 :当你试图用这个专利去起诉社区里的任何一个使用者时,会发生两件事: a. 对方会拿出许可证 ,说:"根据Apache 2.0许可证,你已经给了我专利授权,所以你的起诉无效。" b. 许可证的"专利报复条款"会触发,你将立刻失去从这个项目获得的所有其他人的专利授权,让你自己也暴露在风险之下。

  • 结论:在这种情况下,许可证已经提前把你的"武器"给缴了。这就成为了一个所有人都可以免费使用的假专利。

具备专利条款BUG的lic

没有明确专利条款的旧许可证 (如MIT, BSD, GPLv2)

  • 这种情况就非常危险,也就是我们之前讨论的**"专利埋伏"**。

  • 你可以修改代码,贡献给社区,然后悄悄申请专利。等大家都在用的时候,你再跳出来起诉。

  • 结论:这在法律上是可行的,也是开源社区最大的噩梦之一。正因为如此,新项目现在普遍推荐使用Apache 2.0或GPLv3(or AGPL v3)。

法律的终极解决方案

法律后果的流程和严重性

开源社区(尤其是像自由软件基金会FSF和软件自由保护协会SFC这样的组织)处理违规通常遵循一个"合规优先,诉讼最后"的原则。

  1. 初始阶段:私下沟通与教育

    • 通常,版权所有者或其代表会先给违规公司发送一封友好的邮件或信函,指出他们发现的违规问题,并解释如何才能做到合规。

    • 目标:解决问题,而不是惩罚。很多公司(尤其是小公司)违规是出于无知,而非恶意。

    • 结果绝大多数(超过90%)的违规案件都在这个阶段得到解决。 公司会选择补救措施,比如:

      a. 完全合规 :按照GPL要求,公开其软件的完整源代码。

      b. 停止分发 :立即停止销售和分发该产品。

      c. 替换组件:从软件中移除GPL代码,用其他许可证兼容的或自研的代码替换,然后重新发布。

  2. 升级阶段:法律警告

    • 如果公司忽视初次沟通或拒绝合作,将会收到更正式的法律警告信,明确指出他们的行为构成版权侵犯,并设定一个最后期限来纠正。
  3. 最终阶段:法律诉讼(最后的手段)

    • 如果公司执意不遵守,版权所有者可以将其告上法庭。诉讼的法律依据不是"违反了GPL合同",而是"在没有有效许可的情况下,非法复制和分发了受版权保护的作品"。

法庭上的可能判决

  • 许可证自动终止 (Automatic License Termination) :这是GPL最厉害的一点。一旦你违反了GPL的任何条款,你使用该软件的许可证将自动、立即终止。 从那一刻起,你每一次分发该软件的行为,都是赤裸裸的版权侵犯。

  • 禁令 (Injunction) :法院可以发布禁令,强制该公司立即停止所有分发和销售行为。对于一个靠此软件盈利的公司来说,这是致命的打击。

  • 经济赔偿 (Monetary Damages):版权所有者可以要求经济赔偿,金额可能基于违规软件带来的利润,或者是法定赔偿金。

  • 强制合规:法院也可以判决公司必须履行GPL的义务,即公开其源代码。

本内容均来源于AI,作者对于前三节进行了总结,后两节几乎没有总结。以供中国的程序员novice参考!

相关推荐
周杰伦_Jay4 小时前
【Python Web开源框架】Django/Flask/FastAPI/Tornado/Pyramid
前端·python·开源
DolphinScheduler社区14 小时前
真实迁移案例:从 Azkaban 到 DolphinScheduler 的选型与实践
java·大数据·开源·任务调度·azkaban·海豚调度·迁移案例
猫头虎15 小时前
昆仑芯 X HAMi X 百度智能云 | 昆仑芯 P800 XPU/vXPU 双模式算力调度方案落地
人工智能·百度·开源·aigc·文心一言·gpu算力·agi
说私域18 小时前
开源AI智能名片链动2+1模式S2B2C商城系统下消费点评的信任构建机制研究
人工智能·开源
福大大架构师每日一题18 小时前
⽬前 主流的开源模型体系 有哪些?
chatgpt·开源
万岳科技系统开发18 小时前
外卖开源系统源码设计思路:商家、骑手、用户三端一体化方案
开源
那些免费的砖19 小时前
Reka UI - 一款免费开源的 Vue 无头 UI 组件库,样式定制开发项目的绝佳选择
vue.js·ui·开源
DolphinScheduler社区20 小时前
Apache DolphinScheduler 3.3.2 正式发布!性能与稳定性有重要更新
大数据·开源·apache·任务调度·海豚调度·发版
SeaTunnel20 小时前
Apache SeaTunnel 支持 Metalake 开发了!避免任务配置敏感信息暴露
大数据·开源·apache·个人开发·数据集成·seatunnel·看开源之夏