一个持续存在的 3D 打印机 AGPL 违规案例
Hacker News 摘要原标题:An ongoing 3D-printer AGPL violation
在 FOSSY 2026 大会上,软件自由保护组织(SFC)的成员布拉德利·库恩、凯伦·桑德勒和丹佛·金格里奇就拓竹科技(Bambu Lab)违反 AGPLv3 协议的持续性行为进行了专题报告。这一违规案例之所以引人注目,是因为该公司所采用的规避手段正是 AGPL 协议最初设计时想要阻止的行为。
案件背景与 3D 打印文化
库恩指出,3D 打印领域早期是一个纯粹的爱好者社区。因为当时市场上没有现成的设备,用户必须自己组装打印机。这种深厚的黑客文化使得 3D 打印社区对自由软件有着天然的认同感。
在 3D 打印中,切片软件是必不可少的工具,它能将 3D 模型转换为打印机可识别的指令。 Alessandro Ranellucci 创建了名为 Slic3r 的程序,并特意选择了 AGPLv3 协议。他当时就预见到可能会有公司将切片软件做成在线服务来逃避开源义务。
后来,基于 Slic3r 派生出的 PrusaSlicer 成为了行业主流。 Prusa 公司通过提供开源计划、自由软件和固件,在市场上占据了主导地位。
拓竹科技的市场地位与违规行为
拓竹科技是一家近年来崛起的中国公司,在 500 到 3000 美元级别的打印机市场中占据了约 38% 到 48% 的份额。为了配套其硬件,拓竹推出了基于 PrusaSlicer 修改的 Bambu Studio 软件。
在早期,拓竹科技发布软件时完全没有提供源代码。在社区的压力下,他们虽然发布了源代码,但库恩指出那并不是完整的、对应的源代码。拓竹科技采用了巧妙的规避手段:
• 动态加载私有组件:Bambu Studio 会提示用户下载额外的组件,这些组件是编译好的 .so 动态链接库。源代码中可以清楚地看到使用 dlopen() 调用这些库的代码。
• 网络化违规:这些动态库作为薄薄的一层,通过网络连接到拓竹服务器上的复杂 3D 应用程序。访问这些服务器需要一个特定的 User-Agent 字符串。
• 对抗 AGPL 的核心宗旨:AGPLv3 的核心就是防止开发者将程序的一部分放在服务器上并保持私有。拓竹科技的做法正是试图利用网络边界来保留其私有功能。
逆向工程与法律争端
一名波兰用户 Paweł Jarczak 逆向工程了拓竹的网络代码和 User-Agent 字符串,并在其派生版软件 OrcaSlicer 中发布。拓竹科技随后向 GitHub 发送了 DMCA 版权清理通知,要求删除相关代码,微软旗下的 GitHub 照办了。
目前,SFC 正在其代码仓库中镜像这些受争议的代码,并启动了名为 baltobu 的项目,旨在绕过拓竹的限制。
金格里奇补充道,拓竹科技还违反了 GPLv2 协议。他们的打印机固件使用了基于 Buildroot 的 Linux 系统和其他受保护的组件,但用户无法从其官方渠道获得对应的源代码。
社区反应与 SFC 的应对策略
金格里奇认为,虽然可以直接起诉,但发动社区进行逆向工程并开发替代方案通常比打官司更快。他指出,拓竹科技拥有雄厚的风险投资,他们本可以从头编写软件,却选择了走捷径并违反开源协议。
桑德勒提到,这个案例吸引了大量新成员关注自由软件社区。许多人以前从未听说过版权保护(Copyleft),现在他们开始意识到这些授权协议赋予了他们权利。
SFC 此前为此类维权活动发起了筹款,最终筹得超过 25 万美元,远超预期。这笔资金将允许 SFC 聘请全职的诉讼律师。
维权的意义与未来
桑德勒强调,如果没人对违规行为较真,公司就不会遵守规则。她建议消费者向厂商索要所有购买设备的完整对应源代码,以展示市场对这种权利的需求。她还指出,起诉不仅是为了惩罚,也是为了帮助那些想要合规的公司内部律师,让他们有理由说服公司管理层遵守协议。
金格里奇认为,这种维权行动有助于用户夺回对设备的控制权,让设备按照用户的意愿运行,而不是按照厂商的意愿运行。桑德勒最后总结道,这类运动的最终目标是通过改进产品、技术和立法,解决权力不平衡的根源问题,但这需要技术人员和非技术人员共同参与。