Giấy phép mã nguồn mở: MIT, Apache 2.0, GPL, AGPL khác nhau thế nào?
Vì sao cần đọc giấy phép trước khi dùng phần mềm mã nguồn mở
Giấy phép quyết định bạn được làm gì với mã nguồn: dùng nội bộ, đưa vào sản phẩm thương mại, sửa đổi, cung cấp thành dịch vụ hay phân phối lại. Hai phần mềm cùng gọi là mã nguồn mở có thể áp đặt nghĩa vụ rất khác nhau.
Bài này tóm tắt các giấy phép phổ biến ở mức tổng quan để định hướng. Đây không phải tư vấn pháp lý; với quyết định quan trọng, doanh nghiệp nên tham khảo luật sư hiểu về sở hữu trí tuệ.
MIT và BSD: giấy phép dễ dãi, ngắn gọn
MIT là giấy phép ngắn, cho phép dùng, sao chép, sửa đổi, hợp nhất, xuất bản, phân phối và bán bản sao, với điều kiện giữ thông báo bản quyền và nội dung giấy phép. Các giấy phép kiểu BSD có tinh thần tương tự, thường kèm điều khoản không dùng tên tác giả để quảng bá.
Nhóm này thường dễ đưa vào sản phẩm thương mại, kể cả sản phẩm đóng mã nguồn, vì không bắt buộc công khai mã của bạn. Đổi lại, giấy phép không đưa ra điều khoản rõ ràng về sáng chế.
Apache 2.0: dễ dãi kèm quyền sáng chế
Apache 2.0 cũng là giấy phép dễ dãi, nhưng bổ sung điều khoản cấp quyền sáng chế từ người đóng góp và yêu cầu ghi rõ các thay đổi đã thực hiện. Điều khoản này khiến nhiều tổ chức doanh nghiệp ưa dùng giấy phép Apache 2.0 cho dự án có nhiều bên đóng góp.
Khi dùng, vẫn cần giữ thông báo bản quyền và tệp NOTICE nếu có, và lưu ý giấy phép chỉ áp dụng cho đúng mã được cấp phép, không tự động bao trùm mô hình, dữ liệu hay dịch vụ đi kèm.
GPL và LGPL: copyleft
GPL là giấy phép copyleft mạnh: khi phân phối tác phẩm phái sinh, bạn phải phân phối theo cùng điều kiện và cung cấp mã nguồn. Điều này bảo vệ quyền tự do của người dùng cuối nhưng ảnh hưởng đến cách đóng gói sản phẩm thương mại có liên kết với mã GPL.
LGPL nới lỏng hơn cho thư viện: cho phép liên kết với phần mềm không theo LGPL trong những điều kiện nhất định, trong khi vẫn yêu cầu chia sẻ thay đổi đối với chính thư viện. Cách áp dụng cụ thể phụ thuộc vào phiên bản và cách liên kết.
AGPL: copyleft cho phần mềm chạy qua mạng
AGPL mở rộng ý tưởng của GPL cho trường hợp phần mềm được cung cấp qua mạng: nếu bạn sửa đổi phần mềm và cho người dùng tương tác với nó từ xa, thường phải cung cấp mã nguồn của bản sửa đổi cho những người dùng đó. Điều này quan trọng với dịch vụ SaaS.
Nhiều doanh nghiệp xem xét kỹ AGPL khi định tích hợp vào sản phẩm của mình, vì nghĩa vụ chia sẻ mã có thể lan sang phần tích hợp. Đây là điểm nên được tư vấn pháp lý trước khi quyết định.
Lõi mở, mã nguồn khả dụng và các giấy phép đặc biệt
Nhiều dự án theo mô hình lõi mở: phần lõi theo giấy phép mã nguồn mở, còn tính năng nâng cao hoặc dịch vụ đám mây theo giấy phép thương mại. Một số giấy phép như Business Source License hay Server Side Public License nhằm hạn chế việc cung cấp thành dịch vụ cạnh tranh và thường không được coi là mã nguồn mở theo định nghĩa của OSI.
Vì vậy, đừng chỉ nhìn nhãn giấy phép ở đầu trang GitHub. Hãy đọc thư mục có giấy phép riêng, tệp LICENSE tại đúng phiên bản và phần mô tả tính năng thuộc bản thương mại. Các bài nghiên cứu của chúng tôi ghi chú phần này ở mục giấy phép của từng dự án.
Quy trình kiểm tra giấy phép trước khi triển khai
Một quy trình gọn gồm bốn bước: đọc tệp LICENSE tại đúng commit hoặc phiên bản sẽ dùng; tìm thư mục hoặc thành phần có giấy phép khác; xác định cách bạn sẽ dùng (nội bộ, đóng gói, cung cấp dịch vụ) và nghĩa vụ tương ứng; ghi lại kết luận cùng ngày kiểm tra để làm bằng chứng nội bộ.
Với phần mềm AI, cần kiểm tra thêm giấy phép riêng của trọng số mô hình và dữ liệu, vì chúng thường khác giấy phép của mã nguồn chạy mô hình.
Nội dung mang tính tham khảo, không phải tư vấn pháp lý. Xem thêm mã nguồn mở là gì và danh mục phần mềm mã nguồn mở.
Câu hỏi thường gặp
MIT và Apache 2.0 khác nhau điểm chính nào?
Cả hai đều dễ dãi; Apache 2.0 bổ sung điều khoản cấp quyền sáng chế và yêu cầu ghi chú thay đổi, còn MIT ngắn hơn và không có điều khoản sáng chế rõ ràng.
GPL có cho phép dùng thương mại không?
Có thể dùng thương mại, nhưng khi phân phối tác phẩm phái sinh bạn phải theo cùng điều kiện và cung cấp mã nguồn. Cần xem cách đóng gói và liên kết của sản phẩm.
AGPL ảnh hưởng gì đến dịch vụ SaaS?
Nếu sửa đổi phần mềm AGPL và cho người dùng tương tác qua mạng, thường phải cung cấp mã nguồn bản sửa đổi cho họ. Nên tham khảo tư vấn pháp lý.