Tại sao bambu_networking bị cáo buộc vi phạm giấy phép AGPL trong Bambu Studio
Một phân tích kỹ thuật chi tiết chỉ ra rằng Bambu Studio, phần mềm được cấp phép theo AGPL v3, đang tích hợp sâu module mạng đóng "bambu_networking" vào hoạt động cốt lõi. Do cơ chế liên kết động, chia sẻ cấu trúc dữ liệu và sự phụ thuộc thiết kế, việc không công bố mã nguồn của module này được cho là vi phạm nghiêm trọng các điều khoản của giấy phép AGPL.

Bambu Studio, phần mềm cắt lát (slicer) phổ biến dành cho máy in 3D của Bambu Lab, đang đối mặt với cáo buộc vi phạm giấy phép GNU AGPL v3. Vấn đề không nằm ở việc liệu Bambu Lab có phải cho phép mọi bản fork (phiên bản sửa đổi) truy cập vào đám mây của họ hay không, mà nằm ở cách họ tích hợp một thành phần mã nguồn đóng có tên là bambu_networking.
Dựa trên mã nguồn công khai của Bambu Studio, bằng chứng cho thấy module này không đơn thuần là một plugin bổ trợ, mà là một phần không thể tách rời của chương trình, được thiết kế để hoạt động cùng với mã nguồn mở theo cách có thể vi phạm luật lệ về "Mã nguồn tương ứng" (Corresponding Source) của AGPL.
Nền tảng pháp lý và vấn đề cốt lõi
Bambu Studio là một chương trình dẫn xuất từ PrusaSlicer và Slic3r, cả hai đều được cấp phép theo GNU AGPL v3. Theo quy định của AGPL, "Mã nguồn tương ứng" của chương trình phải được cung cấp, bao gồm cả mã nguồn của các thư viện chia sẻ và chương trình con được liên kết động, nếu chương trình được thiết kế đặc biệt để yêu cầu chúng thông qua trao đổi dữ liệu mật thiết hoặc luồng điều khiển.
Trong README của Bambu Studio, chính hãng thừa nhận rằng phần mềm được cấp phép AGPL, nhưng plugin mạng bambu_networking lại dựa trên các thư viện không tự do (non-free libraries). Điều này tạo ra một mâu thuẫn lớn: một chương trình AGPL đang phụ thuộc vào một thành phần đóng để thực hiện các chức năng cốt lõi.
bambu_networking không phải là một add-on độc lập
Mặc dù được gọi là "plugin", kiến trúc thực tế của chương trình cho thấy bambu_networking được quản lý và tích hợp sâu hơn nhiều so với một tiện ích mở rộng thông thường.
Mã nguồn công khai cho thấy Bambu Studio:
- Biết chính xác tên thư viện và phiên bản của tác nhân mạng.
- Tự động tải xuống plugin từ máy chủ của Bambu Lab.
- Tự cài đặt plugin vào thư mục dữ liệu của ứng dụng.
- Tải động các tệp thư viện như
bambu_networking.dll(Windows) hoặclibbambu_networking.so(Linux). - Giải quyết (resolve) 108 ký hiệu hàm từ thư viện đóng này.
Điều này chứng tỏ đây là một thành phần thời gian chạy (runtime component) được thiết kế có chủ đích, chứ không phải sự tương thích ngẫu nhiên.
Sự tích hợp sâu về dữ liệu và luồng điều khiển
Điểm quan trọng nhất khiến cáo buộc vi phạm AGPL trở nên có cơ sở là mức độ trao đổi dữ liệu và kiểm soát giữa Bambu Studio và bambu_networking.
Mã nguồn AGPL của Bambu Studio định nghĩa một giao diện nhị phân ứng dụng (ABI) chia sẻ để giao tiếp với plugin. Điều này bao gồm:
- Cấu trúc dữ liệu chia sẻ: Các cấu trúc C++ phức tạp như
PrintParams,TaskQueryParamsđược truyền qua lại giữa ứng dụng và plugin. - Hàm callback (Callback functions): Plugin nhận các hàm callback để thực hiện các tác vụ trên luồng UI chính của ứng dụng thông qua
QueueOnMainFn. Điều này cho phép plugin kiểm soát luồng thực thi của ứng dụng chính.
Theo định nghĩa của AGPL và FAQ của Free Software Foundation (FSF), khi hai thành phần liên kết động, gọi hàm lẫn nhau và chia sẻ cấu trúc dữ liệu phức tạp, chúng được coi là một chương trình kết hợp (combined program), chứ không phải là hai chương trình độc lập.
Các chức năng bị khóa và phụ thuộc
Sự phụ thuộc vào bambu_networking không chỉ dừng lại ở kết nối mạng. Nhiều tính năng quan trọng của Bambu Studio bị chặn hoặc không thể hoạt động nếu không có plugin này:
- Đăng nhập tài khoản và truy cập MakerWorld/MakerLab.
- Tab Monitor (giám sát máy in) yêu cầu plugin phải được cài đặt.
- Các công việc in qua mạng (LAN print) và in qua đám mây (cloud print) đều được định tuyến qua lớp
bambu_networking.
Thậm chí, cơ chế cập nhật phần mềm (OTA) của Bambu Studio cũng coi plugin này là một tài nguyên chính thức, quản lý việc phiên bản của nó khớp với phiên bản của Bambu Studio.
"Tùy chọn" không phải là lý do biện hộ
Bambu Lab có thể lập luận rằng plugin là "tùy chọn" vì người dùng vẫn có thể in từ thẻ SD mà không cần nó. Tuy nhiên, theo quan điểm của AGPL, việc đóng gói một thành phần là tùy chọn không xóa bỏ thực tế kỹ thuật rằng mã nguồn AGPL được thiết kế để tải, liên kết và sử dụng thư viện đóng đó thông qua một ABI nghiêm ngặt.
Nếu chương trình được thiết kế đặc biệt để yêu cầu một thư viện đóng để hoạt động đầy đủ (như in mạng, giám sát, quản lý đám mây), thì thư viện đó trở thành một phần của chương trình theo nghĩa của giấy phép.
Kết luận
Dựa trên các bằng chứng trong mã nguồn công khai, bambu_networking hoạt động như một thành phần thời gian chạy được liên kết động, chia sẻ dữ liệu mật thiết và kiểm soát luồng ứng dụng. Do đó, nó phù hợp với định nghĩa của "Mã nguồn tương ứng" theo AGPL v3.
Việc Bambu Lab phân phối Bambu Studio (một chương trình AGPL) cùng với bambu_networking (một thành phần đóng) mà không cung cấp mã nguồn của module này dưới các điều khoản AGPL tương thích được coi là một vấn đề tuân thủ nghiêm trọng. Trừ khi Bambu Lab có sự cho phép đặc biệt hoặc ngoại lệ cấp phép từ tất cả các chủ sở hữu bản quyền của mã nguồn AGPL gốc, hành động này có thể cấu thành vi phạm bản quyền và giấy phép phần mềm.
Bài viết liên quan

Công nghệ
Cerebras, đối tác thân thiết của OpenAI, sẵn sàng cho đợt IPO kỷ lục định giá tới 26,6 tỷ USD
04 tháng 5, 2026

Công nghệ
Cảnh sát bắt giữ nghi can được cho là "ông trùm" của trang web buôn bán ma túy Dream Market
14 tháng 5, 2026

Công nghệ
Microsoft giới thiệu Surface Pro 12 và Surface Laptop 8: Sức mạnh chip Intel, giá thành gây sốc
19 tháng 5, 2026
