Spegel 是由独立开发者 Philip Laine 创建的开源项目,采用 MIT 开源许可协议。这是一个面向 Kubernetes 的 P2P 镜像分发工具,通过 P2P 分发机制有效降低对中心化镜像仓库的依赖,解决镜像仓库宕机导致集群无法扩容的问题。
https://github.com/spegel-org/spegel
2025 年 4 月,Philip Laine 在巴黎 KubeCon 大会参加一场关于加速镜像分发策略的演讲时,发现微软推出了一个名为 Peerd 的 Kubernetes 容器内容 P2P 分发工具。
他深入研究后发现 Peerd 与 Spegel 在代码层面存在大量雷同之处,包括函数签名、注释乃至多个测试用例都几乎一样,且部分测试用例直接来自 Spegel 项目。
Peerd 的代码中未保留 Spegel 原始的 MIT 许可证和版权声明,仅在 README 文件底部对 Spegel 和 Philip Laine 表示了感谢。
Philip Laine 将此事发表在网上后引发开源社区热议,许多开发者在 Hacker News 等平台上讨论自己类似的经历,并对微软的行为表示谴责,认为其违反了开源社区的道德规范,即便在法律上可能因 MIT 协议的宽松性而无可指摘,但却在道义上伤害了开源开发者。
一些开发者指出,MIT 协议的宽松性可能导致个人开发者容易被大公司 “利用”,建议对于希望保护自己代码不被滥用的开发者,可以考虑采用更具限制性的许可证,如 GPL。
还有类似经历的开发者表示,当发现大公司用了自己的开源项目,可以直接跟他们“谈钱”——Don’t work for free(不要免费干活)。
事件曝光后,微软也迅速采取行动,向 Spegel 提交了 pull request,修复 Peerd 开发者忽略的版权声明,在 Peerd 的 GitHub 仓库中添加了对 Spegel 的明确致谢和链接,并对部分代码进行了调整,以符合开源协议的要求。