BambuStudio被指违反AGPL开源协议:3D打印社区掀起版权争议

Prusa创始人Josef Průša在社交媒体上公开指控BambuLab的BambuStudio软件长期违反AGPL v3开源协议,引发了3D打印社区的广泛讨论。这场争议的核心在于:BambuStudio基于PrusaSlicer的AGPL代码开发,但其关键网络组件却是闭源的。

争议的起源

BambuStudio是一款广受欢迎的3D打印切片软件,由BambuLab开发。它基于PrusaSlicer(AGPL v3协议),而PrusaSlicer本身又基于更早的Slic3r(同样是AGPL v3)。

问题出在BambuStudio的一个关键组件——bambu_networking。这个组件负责处理登录、打印机监控、局域网/云端打印、MakerWorld集成、摄像头、MQTT通信、预设管理、固件更新等核心功能。BambuLab在README中承认,这个插件基于非自由库,也就是说它的源代码是闭源的。

为什么这违反了AGPL?

AGPL v3(GNU Affero General Public License)是比GPL更严格的开源协议。它要求:如果你基于AGPL代码开发并分发软件,你的整个软件(包括所有与主程序紧密集成的组件)都必须以相同的AGPL协议开源。

从公开的BambuStudio代码来看,bambu_networking并不是一个独立的第三方插件,而是深度集成到主程序中的运行时组件:

  • BambuStudio知道确切的库名和版本号
  • 从Bambu服务器下载并安装到程序数据目录
  • 动态加载DLL/SO/DYLIB文件
  • 解析C++函数符号,传递C++结构体和回调
  • 允许插件在主UI线程上执行操作
  • 通过OTA机制自动更新

这不是简单的”兼容性”,而是设计好的运行时组件。根据AGPL的定义,这种紧密集成的动态链接库属于”Corresponding Source”(对应源代码),必须随主程序一起开源。

社区怎么看?

在Hacker News上,这条消息获得了290多个点赞。社区反应两极分化:

支持开源的一方认为,BambuLab既然选择了基于AGPL代码开发,就应该遵守协议规则。把核心功能藏在闭源组件里,是对开源社区的不尊重。

实用主义者则指出,很多商业公司都在打GPL的擦边球,BambuLab不是第一个也不会是最后一个。而且BambuStudio本身确实好用,用户不太关心许可证细节。

对站长和开发者的启示

这件事给我们几个提醒:

选开源协议要慎重。如果你的项目用了AGPL代码,你的所有相关组件都需要开源。这是AGPL和MIT/Apache最大的区别。

“插件”不等于”独立”。把闭源代码包装成”插件”并不能规避AGPL义务,关键看技术架构上是否深度集成。

商业公司对开源协议的态度正在收紧。随着开源社区法律意识的增强,类似的版权争议只会越来越多。使用开源代码前,务必搞清楚许可证要求。

本文参考来源:GitHub – Why bambu_networking violates the AGPL in Bambu Studio | Hacker News讨论

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容