1 คะแนน โดย GN⁺ 3 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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

  • 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 ความคิดเห็น

 
GN⁺ 3 시간 전
ความคิดเห็นจาก Lobste.rs
  • ก็รู้สึกขอบคุณสำหรับความพยายามนี้อยู่ ตัวผมเองเป็นผู้ใช้โอเพนซอร์สมานานและบางครั้งก็ร่วมพัฒนา อีกทั้งยังใช้เครื่องพิมพ์ของ Bambu ด้วย แต่ก็ยังไม่เคยทำให้ Bambu Studio หรือ OrcaSlicer ที่บิลด์จากซอร์สทำงานได้ดีบนเครื่อง Debian ที่สภาพค่อนข้างยุ่งเหยิงเครื่องหนึ่ง
    ผมติดตามเรื่องไลเซนส์ FLOSS มานานเหมือนกัน และแม้จะเข้าใจแรงจูงใจของ AGPLv3 แต่ก็รู้สึกไม่ค่อยสบายใจกับมันอยู่เสมอ ส่วนวิธีที่ Bambu จัดการเรื่องนี้ก็ไม่ถูกใจผม และถึงอาจจะไม่ถึงขั้นผิดกฎหมาย อย่างน้อยก็เห็นได้ชัดว่าขัดกับจิตวิญญาณของโอเพนซอร์ส
    จุดที่ผมติดใจคือ สิ่งที่พูดกันอยู่นี่หมายความว่าซอฟต์แวร์ภายใต้ AGPLv3 ห้ามเรียก dlopen() ไปยังไบนารีที่ไม่เสรีใช่ไหม หรือว่าการแจกจ่ายไฟล์ .so ที่แชร์เพียงบางส่วนของลายเซ็นฟังก์ชันพอยน์เตอร์กับซอฟต์แวร์ AGPLv3 ก็ถือว่าละเมิดไลเซนส์แล้ว? กรณีนี้ยังพอเข้าใจได้ว่าทำไมคนถึงไม่ชอบ เพราะผู้พัฒนารายเดียวกันปล่อยทั้งซอฟต์แวร์ AGPLv3 ที่ถูกแก้ไขและไบนารีไม่เสรีออกมาด้วยกัน แต่พอจะสรุปเป็นหลักทั่วไปแล้วผมยังนึกภาพไม่ค่อยออก
    ถ้ามองแบบสุดโต่ง มันอาจตีความได้ว่าซอฟต์แวร์ AGPLv3 ที่สามารถโหลดปลั๊กอินในรูปแบบมาตรฐานได้นั้นเข้ากับไลเซนส์ของตัวเองไม่ได้เลย เช่น ถ้าซอฟต์แวร์เสียงภายใต้ AGPLv3 สามารถโหลด VST(https://en.wikipedia.org/wiki/Virtual_Studio_Technology) ได้ ผลทางไลเซนส์ก็ดูซับซ้อนมากทีเดียว
    • จากเธรดนี้ ดูเหมือนว่า Bambu ตั้งใจบังคับให้การทำงานด้านเครือข่ายทั้งหมดต้องผ่าน ไลบรารีปิดซอร์ส ตัวนี้ ถ้าไม่มีมัน ซอฟต์แวร์ก็แทบจะไร้ประโยชน์ และดูเหมือนยังมีฟังก์ชัน ต่อต้านการดีบัก ที่ทำให้โปรแกรมแครชถ้าพยายามตรวจสอบการทำงานด้วย
    • การตีความแบบที่ว่า “ซอฟต์แวร์ AGPLv3 ห้ามเรียก dlopen() ไปยังไบนารีที่ไม่เสรีหรือ?” ไม่ใช่จุดยืนของ FSF โดย FSF อธิบายใน คำถามพบบ่อยเรื่องปลั๊กอิน ว่า การจะถือว่าเป็นโปรแกรมรวมชุดเดียวกันหรือไม่นั้นขึ้นอยู่กับว่าโปรแกรมหลักเรียกปลั๊กอินอย่างไร
      ถ้าแค่รันผ่าน fork และ exec โดยไม่มีการสื่อสารที่แนบแน่น ก็อาจนับเป็นคนละโปรแกรมได้ แต่ถ้ามีการลิงก์แบบไดนามิกและมีการเรียกฟังก์ชันรวมถึงแชร์โครงสร้างข้อมูลกัน ก็มีจุดยืนว่าควรมองเป็นโปรแกรมรวมชุดเดียวกัน การส่งผ่านโครงสร้างข้อมูลที่ซับซ้อนผ่าน shared memory ก็ถือว่าใกล้เคียงกับการลิงก์แบบไดนามิกมาก
      เท่าที่ผมเข้าใจ เรื่องนี้ใช้ได้ค่อนข้างครอบคลุมกับ GPL ทุกเวอร์ชัน พูดง่าย ๆ คือดูว่าปลั๊กอินนั้นสามารถใช้กับซอฟต์แวร์อื่นได้อยู่แล้วก่อนที่จะถูกเขียนมาสำหรับโปรแกรม GPL นั้นหรือไม่ ถ้ามันมีประโยชน์เฉพาะกับโปรแกรม GPL ตัวนั้น ก็แทบจะถือได้ว่าเป็นส่วนหนึ่งของโปรแกรมนั้นโดยพฤตินัย
    • SFC ได้ยกข้อความส่วนที่เกี่ยวข้องจากตัวไลเซนส์มาอ้าง โดย Corresponding Source รวมถึงซอร์สโค้ดของซับโปรแกรมที่ลิงก์แบบไดนามิกและไลบรารีที่แชร์ ซึ่งถูกออกแบบมาให้ผลงานนั้นต้องพึ่งพาเป็นการเฉพาะ
      เพราะฉะนั้น การรองรับปลั๊กอินเองไม่ใช่ปัญหา ประเด็นคือเมื่อแอปพลิเคชันต้องพึ่งปลั๊กอินบางตัวอย่างมีนัยสำคัญเพื่อให้ฟังก์ชันทั่วไปใช้งานได้ ไฟล์ .so ที่กล่าวถึงในบทความของ SFC ดูเกี่ยวข้องกับระบบเครือข่าย และก็ฟังดูสมเหตุสมผลว่าถ้าไม่มีการเข้าถึงเครือข่าย การใช้งานเครื่องพิมพ์อย่างสะดวกก็ทำได้ยาก
      ในบริบทที่กว้างขึ้น สำหรับงานในรูปแบบอ็อบเจ็กต์โค้ด “Corresponding Source” หมายถึงซอร์สโค้ดทั้งหมดและสคริปต์ที่จำเป็นในการสร้าง ติดตั้ง รัน และแก้ไขอ็อบเจ็กต์โค้ดนั้น แต่ไม่รวม system libraries หรือเครื่องมืออเนกประสงค์ที่ใช้งานแบบไม่ต้องแก้ไข รวมถึงโปรแกรมเสรีที่หาได้ทั่วไป
      โดยเฉพาะอย่างยิ่ง การพัฒนาซอฟต์แวร์ AGPL บน OSX ที่พึ่งพา SDK แบบปิดซอร์สซึ่ง Apple จัดให้ในเครื่อง OSX ทุกเครื่องนั้นยังทำได้ เช่นเดียวกับกรณีที่แอปพลิเคชันบน Windows พึ่งพาส่วนประกอบฝั่ง Windows