การตอบสนองอย่างครอบคลุมต่อการละเมิด AGPLv3 ของ Bambu
(sfconservancy.org)- Bambu Studio เป็นเวอร์ชันดัดแปลงของ PrusaSlicer ที่ใช้ AGPLv3 แต่ไม่ได้จัดเตรียมซอร์สทั้งหมดและข้อมูลการติดตั้งของไลบรารีเครือข่ายแบบปิดซอร์ส
- Corresponding Source ตาม AGPLv3 รวมถึงซอร์สโค้ดที่จำเป็นต่อการสร้าง ติดตั้ง รัน และแก้ไข รวมถึงซอร์สของไลบรารีที่ลิงก์แบบไดนามิกซึ่งผูกกันอย่างใกล้ชิด
- Bambu เรียกร้องให้ลบฟอร์กที่ Paweł Jarczak แก้ไขเพื่อให้ Orca Slicer เชื่อมต่อกับองค์ประกอบฝั่งเซิร์ฟเวอร์ของ Bambu ซึ่งขัดกับข้อห้ามเรื่องการกำหนดข้อจำกัดเพิ่มเติม
- SFC กำลังผลักดันโครงการ baltobu เพื่อย้อนวิศวกรรมไลบรารีเครือข่าย ดูแล Orca Slicer for Bambu และพัฒนา viscose ซึ่งเป็นฟอร์กทดแทนของ Bambu Studio
- SFC เริ่มระดมทุน US$250,007 เป็นเวลา 2 เดือนสำหรับกิจกรรมด้าน สิทธิในการซ่อมซอฟต์แวร์ ของเครื่องพิมพ์ 3D และจะเปิดเผยรายละเอียดคณะกรรมการถาวรในเดือนมิถุนายน 2026
การละเมิด AGPLv3 ที่ยืนยันแล้ว
-
ไม่จัดเตรียมซอร์สโค้ดของ
libbambu_networking- จากการตรวจสอบ การปฏิบัติตาม AGPLv3 ของซอฟต์แวร์และเฟิร์มแวร์สำหรับเครื่องพิมพ์ 3D ของ Bambu Lab พบการละเมิด 2 กรณี
- Bambu Studio คือ Slicer ที่แบ่งโมเดลออกแบบดิจิทัลอย่าง
STLออกเป็นชั้น 2D แนวนอนเพื่อให้เครื่องพิมพ์สามารถพิมพ์ได้ - ตลอด 4 ปีที่ผ่านมา Bambu เปิดเผยว่า Bambu Studio เป็นเวอร์ชันดัดแปลงของ PrusaSlicer ซึ่งเป็น Slicer ของคู่แข่งที่อยู่ภายใต้ไลเซนส์ AGPLv3
- PrusaSlicer เป็นเวอร์ชันดัดแปลงของ Slic3r ที่สร้างขึ้นครั้งแรกโดย Alessandro Ranellucci
- ซอร์สบางส่วนของ Bambu Studio อยู่ในบัญชีองค์กร GitHub ของ Bambu แต่ Bambu ระบุมาโดยตลอด ว่าแจกจ่าย Bambu Studio ให้ผู้ใช้ผ่านพรอมป์ตโต้ตอบใน UI โดยผนวกเข้ากับไลบรารีแบบปิดซอร์ส
- AGPLv3 กำหนดว่า เมื่อมีการส่งมอบงานที่อยู่ภายใต้ไลเซนส์ในรูปแบบออบเจ็กต์โค้ด ต้องส่งมอบ Corresponding Source ที่เครื่องอ่านได้ภายใต้เงื่อนไขไลเซนส์เดียวกันไปพร้อมกันด้วย
- Corresponding Source ครอบคลุมซอร์สโค้ดและสคริปต์ที่จำเป็นต่อการสร้าง ติดตั้ง รัน และแก้ไขออบเจ็กต์โค้ด
- ซอร์สโค้ดของ shared library และโปรแกรมย่อยที่ลิงก์แบบไดนามิกซึ่งถูกออกแบบให้ผลงานนั้นต้องพึ่งพาเพื่อการสื่อสารข้อมูลอย่างใกล้ชิดหรือโฟลว์ควบคุม ก็ถือเป็นส่วนหนึ่งของ Corresponding Source เช่นกัน
- การที่ Bambu ไม่จัดเตรียม Complete Corresponding Source Code และ Installation Information ของ
libbambu_networking.so,bambu_networking.dll,libbambu_networking.dylibถูกมองว่าเป็นการละเมิด AGPLv3 อย่างร้ายแรงและต่อเนื่อง
-
การเรียกร้องให้ลบฟอร์กของ Paweł Jarczak
- นอกเหนือจากการที่ Bambu ยังคงทำให้ไลบรารีเครือข่ายเป็นแบบปิดซอร์สแล้ว มาตรการที่ใช้กับนักพัฒนาและผู้ใช้ Bambu Lab อย่าง Paweł Jarczak ก็ถูกยกเป็นการละเมิด AGPLv3 เช่นกัน
- Paweł Jarczak เปิดเผยวิธีอื่นในการผสานการทำงานกับองค์ประกอบฝั่งเซิร์ฟเวอร์ของ Bambu Studio โดยไม่ต้องแทนที่หรือแก้ไขไลบรารีที่ลิงก์แบบไดนามิก
- หลังจากตรวจสอบซอร์สโค้ดที่ไม่สมบูรณ์ของ Bambu Studio เขาได้แก้ไข Orca Slicer ซึ่งเป็น Slicer AGPLv3 อีกตัวหนึ่ง
- Orca Slicer ที่ถูกแก้ไขทำให้ผู้ใช้สามารถใช้แทน Bambu Studio ได้ ขณะเดียวกันก็เชื่อมต่อกับส่วนที่ทำงานบนเซิร์ฟเวอร์ของ Bambu Lab ซึ่งปัจจุบันยังไม่เปิดเผยซอร์ส และผูกกันผ่านการสื่อสารข้อมูลอย่างใกล้ชิด
- Bambu เรียกร้องให้ Paweł ลบฟอร์ก OrcaSlicer ที่มีการเปลี่ยนแปลงดังกล่าวออกจาก GitHub
- Bambu อ้าง ว่าเงื่อนไขการให้บริการของบริษัทมีผลเหนือ AGPLv3 แต่ AGPLv3§10¶3 ระบุชัดว่าไม่อาจกำหนดข้อจำกัดเพิ่มเติมต่อการใช้สิทธิที่ไลเซนส์ได้มอบหรือยืนยันไว้
- Paweł ลบฟอร์ก Orca Slicer พร้อมแสดงการประท้วง
แผนการตอบสนองของ SFC
-
โครงการ
baltobu- SFC เริ่ม โครงการ baltobu เพื่อดูแลหลายรีโพซิทอรีสำหรับรับมือการละเมิด AGPLv3 ที่เกี่ยวข้องกับ Bambu และปรับปรุง สิทธิในการซ่อมซอฟต์แวร์ ของเครื่องพิมพ์ 3D
- จากมาตรการของ Bambu ที่มีต่อ Paweł Jarczak จึงเริ่มงานหลายด้านเพื่อช่วยผู้บริโภคและผู้ใช้ในระยะสั้น และปรับปรุงสิทธิในการซ่อมซอฟต์แวร์ของผู้บริโภคเครื่องพิมพ์ 3D ในระยะยาว
- เนื่องจาก Bambu เป็นที่รู้จักมานานแล้วว่าเป็นผู้ละเมิด AGPLv3 อย่างหนัก จึงเริ่มจากการย้อนวิศวกรรมก่อน เพราะอาจให้ผลได้เร็วกว่าการดำเนินการทางกฎหมาย
-
reverse-networking- รีโพซิทอรี
reverse-networkingของ baltobu เป็นที่โฮสต์โครงการ ย้อนวิศวกรรมlibbambu_networking.so,bambu_networking.dll,libbambu_networking.dylib - SFC กำลังขอ ให้ผู้สมัครใจในชุมชน Use the Source เข้าร่วม กระบวนการนี้
- SFC มีจุดยืนว่า ออบเจ็กต์โค้ดที่ผนวกรวมกับซอฟต์แวร์ AGPLv3 ก็ควรอยู่ภายใต้ AGPLv3 ด้วย
- ไลบรารีออบเจ็กต์โค้ดดังกล่าวอยู่ภายใต้ AGPLv3 และ SFC กับอาสาสมัครเห็นว่าตนมีสิทธิย้อนวิศวกรรมไลบรารีเหล่านี้เพื่อสร้างซอร์สโค้ดของตนเองที่ทำงานเป็นตัวแทนแบบดรอปอินสำหรับ Bambu Studio
- รีโพซิทอรี
-
orca-slicer-for-bambu- รีโพซิทอรี
orca-slicer-for-bambuของ baltobu จะเป็น รีโพซิทอรีมาตรฐาน สำหรับดูแลและพัฒนาฟอร์ก Orca Slicer ที่ Paweł เปิดเผยไว้เป็นครั้งแรกต่อจากงานของเขา - SFC กำลังขออาสาสมัครมาดูแลฟอร์ก OrcaStudio ที่ทำงานกับเครื่องพิมพ์ 3D ของ Bambu
- ผู้มีส่วนร่วมแบบอาสาสมัครที่ทำงานในนามของ SFC อาจได้รับการคุ้มครองความรับผิดส่วนบุคคลในระดับหนึ่ง และหาก Bambu ใช้การข่มขู่ทางกฎหมายกับอาสาสมัคร SFC จะพยายามเข้าแทรกแซงเท่าที่ทำได้
- รีโพซิทอรี
-
viscose- รีโพซิทอรี
viscoseของ baltobu เป็นโครงการที่มุ่งดูแลฟอร์กแบบแอ็กทีฟของ Bambu Studio เอง - โดยอาศัยข้อค้นพบจากสองงานก่อนหน้า โครงการนี้จะมุ่งไปสู่การสร้าง ตัวทดแทน Bambu Studio ที่ทำงานได้ดีกว่าสำหรับเจ้าของเครื่องพิมพ์ 3D ของ Bambu
- รีโพซิทอรี
-
การเฝ้าติดตามการละเมิดเพิ่มเติม
- SFC จะติดตามความเป็นไปได้ของการละเมิดเพิ่มเติมจาก Bambu Lab ต่อไป
- โดยทั่วไป SFC ไม่ได้ออกตามหาการละเมิดอย่างแข็งขัน แต่ในกรณีนี้จะจับตา Bambu Lab อย่างใกล้ชิดและตรวจสอบความเป็นไปได้ของการละเมิดไลเซนส์คอปิเลฟต์เป็นประจำ
-
คณะกรรมการถาวรของชุมชนเครื่องพิมพ์ 3D
- SFC มีแผนเริ่มคณะกรรมการถาวรเพื่อหารือเรื่อง เสรีภาพและสิทธิด้านซอฟต์แวร์ ของชุมชนเครื่องพิมพ์ 3D
- รายละเอียดของคณะกรรมการจะเปิดเผยในเดือนมิถุนายน 2026
- คณะกรรมการมีแผนให้ผู้ผลิตเครื่องพิมพ์ 3D ผู้ใช้ ผู้บริโภค ผู้เชี่ยวชาญด้านไลเซนส์คอปิเลฟต์ และนักเคลื่อนไหวด้านเสรีภาพซอฟต์แวร์ ประชุมร่วมกันทุกเดือน
- เป้าหมายคือแบ่งปันปัญหาและข้อกังวลเกี่ยวกับสิทธิในการซ่อมซอฟต์แวร์ของเครื่องพิมพ์ 3D และซอฟต์แวร์ที่เกี่ยวข้อง และจัดทำแผนปฏิบัติการเพื่อแก้ไข
การมีส่วนร่วมและการสนับสนุน
-
การเข้าร่วมแบบอาสาสมัคร
- SFC กำลังขอ อาสาสมัคร ให้เข้าร่วมงานนี้ทันที
- Paweł Jarczak เข้าร่วมเป็นอาสาสมัครคนแรก และงานของเขามีบทบาทสำคัญในการสืบสวนการละเมิด AGPLv3 หลายกรณีของ Bambu
- หากต้องการช่วยงานด้านเทคนิคของโครงการ baltobu สามารถดูวิธีขอบัญชีบน Forgejo instance ของ SFC ได้
- หากสนใจโครงการริเริ่มอื่น ๆ สามารถส่งอีเมลไปที่ 3dprint@sfconservancy.org
-
การระดมทุนเพื่อกิจกรรมด้านสิทธิในการซ่อม
- SFC กำลังระดมทุน US$250,007 เป็นเวลา 2 เดือน
- การสนับสนุนแบบ Sustainer ที่เพิ่งเริ่ม และการบริจาคทั่วไปให้ SFC จะถูกจัดสรรไปยังกิจกรรมด้านสิทธิในการซ่อมซอฟต์แวร์
- หากบรรลุเป้าหมาย จะเริ่มการสรรหาพนักงานเพิ่มเติมทันทีเพื่อขับเคลื่อนงานระยะยาว
- พนักงานดังกล่าวจะรับผิดชอบการประสานงานกับอาสาสมัคร การวางกลยุทธ์เพื่อปรับปรุงสิทธิในการซ่อมซอฟต์แวร์ของเครื่องพิมพ์ 3D และการวางแผนขั้นตอนถัดไปหากไม่สามารถผลักดันให้ Bambu Lab ปฏิบัติตาม AGPLv3 ได้
- หากไม่ถึงเป้าหมาย เงินที่ระดมได้จะนำไปใช้กับเวลาทำงานของพนักงานปัจจุบันที่มุ่งเน้นโครงการนี้และกิจกรรมด้านสิทธิในการซ่อมซอฟต์แวร์ที่เกี่ยวข้อง
ผู้ที่มีส่วนร่วมแล้ว
- Paweł Jarczak ทำให้ SFC รับรู้ถึง การละเมิด AGPLv3 ที่ยังดำเนินอยู่ของ Bambu Lab และได้แก้ไขซอร์สโค้ดในลักษณะที่ AGPLv3 อนุญาตเพื่อดำเนินงานที่เกี่ยวข้อง
- b3nsn0w ได้สืบสวนสถานการณ์ของ Bambu Lab เพิ่มเติม และปกป้อง AGPLv3 ในประเด็นการละเมิดที่เกี่ยวข้องกับไลบรารีลิงก์แบบไดนามิกมานานกว่าหนึ่งปี
- FULU ช่วยให้ประเด็นนี้ได้รับความสนใจ และได้เผยแพร่จุดยืนเพื่อต่อต้าน Bambu Labs
1 ความคิดเห็น
ความคิดเห็นจาก Lobste.rs
ผมติดตามเรื่องไลเซนส์ FLOSS มานานเหมือนกัน และแม้จะเข้าใจแรงจูงใจของ AGPLv3 แต่ก็รู้สึกไม่ค่อยสบายใจกับมันอยู่เสมอ ส่วนวิธีที่ Bambu จัดการเรื่องนี้ก็ไม่ถูกใจผม และถึงอาจจะไม่ถึงขั้นผิดกฎหมาย อย่างน้อยก็เห็นได้ชัดว่าขัดกับจิตวิญญาณของโอเพนซอร์ส
จุดที่ผมติดใจคือ สิ่งที่พูดกันอยู่นี่หมายความว่าซอฟต์แวร์ภายใต้ AGPLv3 ห้ามเรียก
dlopen()ไปยังไบนารีที่ไม่เสรีใช่ไหม หรือว่าการแจกจ่ายไฟล์.soที่แชร์เพียงบางส่วนของลายเซ็นฟังก์ชันพอยน์เตอร์กับซอฟต์แวร์ AGPLv3 ก็ถือว่าละเมิดไลเซนส์แล้ว? กรณีนี้ยังพอเข้าใจได้ว่าทำไมคนถึงไม่ชอบ เพราะผู้พัฒนารายเดียวกันปล่อยทั้งซอฟต์แวร์ AGPLv3 ที่ถูกแก้ไขและไบนารีไม่เสรีออกมาด้วยกัน แต่พอจะสรุปเป็นหลักทั่วไปแล้วผมยังนึกภาพไม่ค่อยออกถ้ามองแบบสุดโต่ง มันอาจตีความได้ว่าซอฟต์แวร์ AGPLv3 ที่สามารถโหลดปลั๊กอินในรูปแบบมาตรฐานได้นั้นเข้ากับไลเซนส์ของตัวเองไม่ได้เลย เช่น ถ้าซอฟต์แวร์เสียงภายใต้ AGPLv3 สามารถโหลด VST(https://en.wikipedia.org/wiki/Virtual_Studio_Technology) ได้ ผลทางไลเซนส์ก็ดูซับซ้อนมากทีเดียว
dlopen()ไปยังไบนารีที่ไม่เสรีหรือ?” ไม่ใช่จุดยืนของ FSF โดย FSF อธิบายใน คำถามพบบ่อยเรื่องปลั๊กอิน ว่า การจะถือว่าเป็นโปรแกรมรวมชุดเดียวกันหรือไม่นั้นขึ้นอยู่กับว่าโปรแกรมหลักเรียกปลั๊กอินอย่างไรถ้าแค่รันผ่าน
forkและexecโดยไม่มีการสื่อสารที่แนบแน่น ก็อาจนับเป็นคนละโปรแกรมได้ แต่ถ้ามีการลิงก์แบบไดนามิกและมีการเรียกฟังก์ชันรวมถึงแชร์โครงสร้างข้อมูลกัน ก็มีจุดยืนว่าควรมองเป็นโปรแกรมรวมชุดเดียวกัน การส่งผ่านโครงสร้างข้อมูลที่ซับซ้อนผ่าน shared memory ก็ถือว่าใกล้เคียงกับการลิงก์แบบไดนามิกมากเท่าที่ผมเข้าใจ เรื่องนี้ใช้ได้ค่อนข้างครอบคลุมกับ GPL ทุกเวอร์ชัน พูดง่าย ๆ คือดูว่าปลั๊กอินนั้นสามารถใช้กับซอฟต์แวร์อื่นได้อยู่แล้วก่อนที่จะถูกเขียนมาสำหรับโปรแกรม GPL นั้นหรือไม่ ถ้ามันมีประโยชน์เฉพาะกับโปรแกรม GPL ตัวนั้น ก็แทบจะถือได้ว่าเป็นส่วนหนึ่งของโปรแกรมนั้นโดยพฤตินัย
เพราะฉะนั้น การรองรับปลั๊กอินเองไม่ใช่ปัญหา ประเด็นคือเมื่อแอปพลิเคชันต้องพึ่งปลั๊กอินบางตัวอย่างมีนัยสำคัญเพื่อให้ฟังก์ชันทั่วไปใช้งานได้ ไฟล์
.soที่กล่าวถึงในบทความของ SFC ดูเกี่ยวข้องกับระบบเครือข่าย และก็ฟังดูสมเหตุสมผลว่าถ้าไม่มีการเข้าถึงเครือข่าย การใช้งานเครื่องพิมพ์อย่างสะดวกก็ทำได้ยากในบริบทที่กว้างขึ้น สำหรับงานในรูปแบบอ็อบเจ็กต์โค้ด “Corresponding Source” หมายถึงซอร์สโค้ดทั้งหมดและสคริปต์ที่จำเป็นในการสร้าง ติดตั้ง รัน และแก้ไขอ็อบเจ็กต์โค้ดนั้น แต่ไม่รวม system libraries หรือเครื่องมืออเนกประสงค์ที่ใช้งานแบบไม่ต้องแก้ไข รวมถึงโปรแกรมเสรีที่หาได้ทั่วไป
โดยเฉพาะอย่างยิ่ง การพัฒนาซอฟต์แวร์ AGPL บน OSX ที่พึ่งพา SDK แบบปิดซอร์สซึ่ง Apple จัดให้ในเครื่อง OSX ทุกเครื่องนั้นยังทำได้ เช่นเดียวกับกรณีที่แอปพลิเคชันบน Windows พึ่งพาส่วนประกอบฝั่ง Windows