BambuのAGPLv3違反に対する包括的対応
(sfconservancy.org)- Bambu Studio は AGPLv3 ベースの PrusaSlicer 改変版だが、独自のネットワーキングライブラリの完全なソースとインストール情報を提供していなかった
- AGPLv3 の Corresponding Source には、生成・インストール・実行・改変に必要なコードと、密接に結合された動的リンクライブラリのソースが含まれる
- Bambu は Paweł Jarczak に対し、Orca Slicer を Bambu サーバー構成要素と連携させるよう修正したフォークの削除を要求し、追加制限の禁止条項と衝突した
- SFC は baltobu プロジェクトにより、ネットワーキングライブラリのリバースエンジニアリング、Orca Slicer for Bambu の維持、Bambu Studio 代替フォークである viscose を推進する
- SFC は 3D プリンタの ソフトウェア修理する権利 活動のため、2か月間で US$250,007 の募金を開始し、2026年6月に常設委員会の詳細を公開する予定
確認された AGPLv3 違反
-
libbambu_networkingソースコード未提供- Bambu Lab の 3D プリンタ向けソフトウェアとファームウェアに関する AGPLv3 準拠調査 で、2つの違反が確認された
- Bambu Studio は、
STLのようなデジタル設計モデルを、プリンタが出力できる水平な 2D レイヤーへ分割する Slicer である - Bambu は 4年間にわたり、Bambu Studio が競合他社の AGPLv3 ライセンス Slicer である PrusaSlicer の改変版 だと公表してきた
- PrusaSlicer は Alessandro Ranellucci が最初に作った Slic3r の改変版である
- Bambu Studio の一部ソースコードは Bambu の GitHub 組織アカウントにあるが、Bambu は Bambu Studio を独自ライブラリと結合し、UI の対話プロンプトを通じてユーザーに配布していると 説明してきた
- AGPLv3 は、対象著作物をオブジェクトコード形式で頒布する場合、機械可読な Corresponding Source も同じライセンス条件であわせて提供しなければならないと定めている
- Corresponding Source には、オブジェクトコードを生成・インストール・実行・改変するために必要なソースコードとスクリプトが含まれる
- 著作物が密接なデータ通信や制御フローによって必要とするよう設計された共有ライブラリや、動的リンクされた下位プログラムのソースコードも Corresponding Source に含まれる
- Bambu が
libbambu_networking.so、bambu_networking.dll、libbambu_networking.dylibの 完全な Corresponding Source Code と Installation Information を提供していないことは、重大かつ継続中の AGPLv3 違反と判断される
-
Paweł Jarczak フォーク削除要求
- Bambu がネットワーキングライブラリを独自のまま維持したこととは別に、開発者であり Bambu Lab ユーザーでもある Paweł Jarczak に対する措置も AGPLv3 違反として示されている
- Paweł Jarczak は、動的リンクされたライブラリを置き換えたり改変したりせず、Bambu Studio のサーバー側構成要素と統合する別の方法を公開した
- 彼は Bambu Studio の不完全なソースコードを確認したうえで、別の AGPLv3 Slicer である Orca Slicer を改変した
- 改変された Orca Slicer は、ユーザーが Bambu Studio を置き換えつつ、Bambu Lab サーバー上で動作するが現在ソースが公開されていない部分と密接なデータ通信で結合できるようにした
- Bambu は Paweł に対し、その変更を含む OrcaSlicer フォークを GitHub から削除するよう要求した
- Bambu は自社サービス利用規約が AGPLv3 より優先すると 主張 したが、AGPLv3§10¶3 には、ライセンスによって付与または確認された権利の行使に追加制限を課してはならないと明記されている
- Paweł は 抗議の意思表示とともに Orca Slicer フォークを削除した
SFC の対応計画
-
baltobuプロジェクト- SFC は baltobu プロジェクト を開始し、Bambu 関連の AGPLv3 違反への対応と、3D プリンタの ソフトウェア修理する権利 改善のための複数のリポジトリを運営する
- Paweł Jarczak に対する Bambu の措置をきっかけに、短期的には消費者とユーザーを支援し、長期的には 3D プリンタ消費者のソフトウェア修理する権利を改善する多面的な取り組みが始まった
- Bambu はかなり以前から深刻な AGPLv3 違反者として知られていたため、法的措置よりも早く結果を出せるリバースエンジニアリングから進めることにした
-
reverse-networking- baltobu の
reverse-networkingリポジトリ は、libbambu_networking.so、bambu_networking.dll、libbambu_networking.dylibを リバースエンジニアリング するプロジェクトをホストしている - SFC は Use the Source コミュニティのボランティアに対し、この過程への参加を 要請 して いる
- SFC は、AGPLv3 ソフトウェアと結合されたオブジェクトコードも AGPLv3 の下でライセンスされるべきだ という立場を取っている
- 当該オブジェクトコードライブラリは AGPLv3 の適用対象であり、SFC とボランティアは、Bambu Studio でドロップイン代替物として動作する独自ソースコードを作成するために、これらのライブラリをリバースエンジニアリングする権利があると見ている
- baltobu の
-
orca-slicer-for-bambu- baltobu の
orca-slicer-for-bambuリポジトリ は、Paweł の作業を基に、彼が最初に公開した Orca Slicer フォークを維持・改善する 標準リポジトリ になる予定である - SFC は、Bambu 3D プリンタで動作する OrcaStudio フォークを維持するボランティアを募集している
- SFC のために活動するボランティア貢献者は、一定レベルの個人責任保護 を受けられ、Bambu がボランティアに法的脅しを行った場合、SFC は可能な限り介入したいとしている
- baltobu の
-
viscose- baltobu の
viscoseリポジトリ は、Bambu Studio 自体のアクティブなフォークを維持しようとするプロジェクトである - 先の2つの取り組みで得られた知見を基に、Bambu 3D プリンタ所有者にとってより適切に動作する Bambu Studio の代替 を作る方向で進められている
- baltobu の
-
追加違反の監視
- SFC は、Bambu Lab によるさらなる違反の可能性を引き続き監視する予定である
- 通常は違反を積極的に探し回ることはしないが、この事例では Bambu Lab を綿密に監視し、コピーレフトライセンス違反の可能性を定期的に調査している
-
3D プリンタコミュニティ常設委員会
- SFC は、3D プリンタコミュニティの ソフトウェアの自由と権利 を議論する常設委員会を立ち上げる予定である
- 委員会の詳細は 2026年6月に公開される
- 委員会は、3D プリンタメーカー、ユーザー、消費者、コピーレフトライセンスの専門家、ソフトウェアの自由を擁護する活動家が毎月会合する構成を予定している
- 3D プリンタと関連ソフトウェアに関するソフトウェア修理する権利の課題や懸念を共有し、それを解決するための行動計画を作ることが目的である
参加と支援
-
ボランティア参加
- SFC は、この作業に直ちに参加する ボランティア を募集している
- Paweł Jarczak は最初のボランティアとして加わっており、Bambu の複数の AGPLv3 違反調査で彼の作業が重要な役割を果たした
- baltobu プロジェクト の技術的作業を手伝いたい場合は、SFC の Forgejo インスタンス のアカウント申請方法を確認できる
- 他のイニシアチブに関心がある場合は、3dprint@sfconservancy.org にメールを送ることができる
-
修理する権利活動の募金
- SFC は 2か月間で US$250,007 の募金を実施する
- 新たに開始する Sustainer 寄付 と SFC 一般寄付 は、ソフトウェア修理する権利活動に充てられる
- 目標を達成すれば、長期的な活動を担う追加スタッフを採用するための募集を直ちに開始する
- 当該スタッフは、ボランティア貢献者の調整、3D プリンタのソフトウェア修理する権利改善戦略の立案、Bambu Lab に AGPLv3 準拠を実現させられなかった場合に必要となる次の段階の計画を担当する
- 目標に達しなかった場合、集まった資金は既存スタッフがこのプロジェクトに集中する時間と、関連するソフトウェア修理する権利活動に使われる
すでに貢献した人々
- Paweł Jarczak は、Bambu Lab による継続中の AGPLv3 違反 を SFC が認識するきっかけを作り、AGPLv3 が許容する方法でソースコードを変更して関連作業を進めた
- b3nsn0w は Bambu Lab の状況を追加調査し、動的リンクライブラリ違反に関して 1年以上にわたり AGPLv3 を擁護 してきた
- FULU はこの問題に注目を集め、Bambu Labs に対抗する立場 を表明した
1件のコメント
Lobste.rs の意見
FLOSS ライセンスも長く追ってきたし、AGPLv3 は動機は理解できるものの、いつも少し居心地の悪さを感じていた。Bambu のこの件の処理の仕方も気に入らず、法的にどうかまではともかく、少なくともオープンソースの精神には明らかに反していると思う
引っかかるのは、ここで言われていることが AGPLv3 ソフトウェアは非自由バイナリに
dlopen()を呼び出してはいけないという意味なのか、それとも AGPLv3 ソフトウェアと関数ポインタのシグネチャの一部だけを共有する.soファイルを配布することがライセンス違反だという意味なのか、という点だ。今回の件は、同じ主体が改変された AGPLv3 ソフトウェアと非自由バイナリを一緒に出しているので嫌悪感があるのは理解できるが、一般化すると頭の中でうまく整理できない極端に言えば、標準化された形式のプラグインをロードできる AGPLv3 ソフトウェアが、自身のライセンスと両立しないという意味にも見えうる。たとえば AGPLv3 のオーディオソフトウェアが VST(https://en.wikipedia.org/wiki/Virtual_Studio_Technology) をロードできる場合、ライセンス上の含意を正しく理解するのはかなり複雑そうに見える
dlopen()を呼び出してはいけないという意味なのか?」という解釈は、FSF の立場ではない。FSF はプラグインに関する FAQ 項目 で、メインプログラムがプラグインをどう呼び出すかによって、一つの結合プログラムなのかが変わると説明しているforkとexecで単に実行し、密接な通信がなければ別個のプログラムでありうるが、動的リンクを行い、互いに関数呼び出しやデータ構造の共有をするなら、一つの結合プログラムと見るべきだという立場だ。複雑なデータ構造を共有メモリでやり取りするのも、動的リンクとほぼ同じと見なしているこれはすべての GPL バージョンに概ね当てはまると理解している。簡単に言えば、そのプラグインが GPL プログラム向けに書かれる以前から他のソフトウェアでも使えたかどうかを基準に見る。該当する GPL プログラムでしか役に立たないなら、事実上そのプログラムの一部に近いと判断する
したがって、プラグイン対応自体は問題ない。問題は、アプリケーションの一般的な機能のために特定のプラグインが事実上必要になるときに生じる。SFC の記事に出てくる
.soはネットワーキングに関係しているように見え、ネットワークアクセスなしではプリンターを快適に使うのが難しいという点ももっともらしいより広い文脈では、オブジェクトコード形式の著作物に対する「Corresponding Source」とは、そのオブジェクトコードを生成・インストール・実行し、さらに改変するのに必要なすべてのソースコードとスクリプトを指すが、システムライブラリや、改変なしで使う汎用ツール・一般に入手可能な自由プログラムは除外されるとされている
特に、Apple がすべての OSX マシンに提供する独占的 SDK に依存する AGPL ソフトウェア を OSX 上で開発することは可能だ。Windows アプリケーションが Windows 側のコンポーネントに依存する場合も同様だ