Giấy phép mã nguồn mở là gì
Giấy phép nguồn mở là một thỏa thuận pháp lý giữa tác giả và người sử dụng phần mềm. Thoả thuận cho phép phần mềm được sử dụng trong các ứng dụng thương mại theo các điều kiện cụ thể. Đây là yếu tố quan trọng để biến mã nguồn thành nguồn mở, vì nếu không có giấy phép, mã nguồn, dù công khai, cũng không thể sử dụng hợp pháp.
Mỗi giấy phép đều quy định quyền và trách nhiệm của người dùng, bao gồm những gì họ có thể làm và các nghĩa vụ tuân thủ. Tuy nhiên, với hơn 200 loại giấy phép nguồn mở hiện nay, việc lựa chọn giấy phép phù hợp với chính sách tổ chức trở thành một thách thức do sự đa dạng về yêu cầu và độ phức tạp.
Phân loại giấy phép mã nguồn mở hiện nay
Hiện có hai loại giấy phép mã nguồn mở, Copyleft (Bản quyền cho dùng) và Permissive (Cấp phép tự do). Mỗi loại có quyền và hạn chế khác nhau đối với việc sử dụng và phân phối phần mềm.
Giấy phép Copyleft:
Đây là giấy phép yêu cầu người dùng phải giữ nguyên quyền truy cập mã nguồn khi phân phối phần mềm đã sửa đổi hoặc phái sinh. Điều này có nghĩa là nếu ai đó sử dụng một thành phần phần mềm có giấy phép Copyleft, họ phải công khai mã nguồn của dự án phái sinh. Mục đích để người khác cũng có thể tiếp cận và sử dụng. Loại giấy phép này thường áp dụng các quy định nghiêm ngặt hơn để bảo vệ tính mở của phần mềm. Ví dụ: GPL (General Public License) là một dạng giấy phép Copyleft phổ biến.
Giấy phép Permissive:
Khác với Copyleft, giấy phép Permissive linh hoạt hơn, cho phép người dùng tự do sử dụng, sửa đổi và phân phối phần mềm, kể cả việc tích hợp vào các dự án độc quyền. Loại giấy phép này không yêu cầu người dùng phải công khai mã nguồn của sản phẩm phái sinh. Các giấy phép phổ biến trong nhóm này bao gồm MIT License và Apache License, thường được ưa chuộng vì ít hạn chế, giúp phát triển các dự án thương mại dễ dàng hơn.
Có thể thấy Copyleft bảo vệ tính mở của phần mềm bằng cách áp đặt các điều kiện cụ thể. Trong khi Permissive ưu tiên tính linh hoạt, ít ràng buộc, thúc đẩy sự sáng tạo và ứng dụng rộng rãi.
Tổng hợp giấy phép mã nguồn mở phổ biến nhất
Không có giấy phép nguồn mở nào là “tốt nhất” hay “tệ nhất” vì mỗi loại phục vụ mục đích khác nhau. Dưới đây là những giấy phép mã nguồn mở phổ biến nhất mà ai cũng biết:
GPL (GNU General Public License)
GPL là giấy phép nguồn mở phổ biến nhất, được Richard Stallman phát triển nhằm ngăn phần mềm GNU bị thương mại hóa thành độc quyền. Là một giấy phép copyleft, GPL yêu cầu tất cả phần mềm sử dụng thành phần GPL phải công khai mã nguồn và cho phép sửa đổi, phân phối lại toàn bộ mã.
Phiên bản GPLv3 mang lại ba điểm cải tiến lớn so với GPLv2:
- Rõ ràng hơn về nghĩa vụ: FSF làm rõ các quy định về chia sẻ mã nguồn và sự phụ thuộc giữa các tác phẩm. Đặc biệt trong trường hợp sử dụng mã GPL.
- Tăng tính tương thích: GPLv3 mở rộng khả năng tích hợp với các giấy phép khác. Tạo thêm cơ hội cho sự phát triển phần mềm kết hợp.
- Hỗ trợ quốc tế: Ngôn ngữ trong GPLv3 được thiết kế phù hợp với luật pháp toàn cầu, không tập trung vào Hoa Kỳ như GPLv2. Đồng thời hỗ trợ nhà phát triển từ chối trách nhiệm địa phương.
Những cải tiến này giúp GPLv3 phù hợp hơn với cộng đồng quốc tế và nhu cầu phát triển phần mềm ngày nay.
Giấy phép Apache
Giấy phép Apache, do Apache Software Foundation (ASF) phát hành, là giấy phép nguồn mở phổ biến. Apache cho phép sử dụng, sửa đổi, và phân phối phần mềm miễn là tuân thủ các điều khoản kèm theo.
Phiên bản đầu tiên ra đời năm 1995, nhưng ít được sử dụng rộng rãi. Năm 2000, ASF giới thiệu phiên bản 1.1, loại bỏ điều khoản quảng cáo. Nghĩa là không cần ghi nhận giấy phép trong tài liệu quảng cáo, chỉ cần ghi công trong tài liệu đi kèm. Đến năm 2004, phiên bản 2.0 được phát hành, bổ sung cấp quyền sáng chế và định nghĩa rõ ràng hơn về các thuật ngữ. Từ đó giấy phép Apache chặt chẽ và phù hợp hơn với nhiều ứng dụng.
Giấy phép BSD
Giấy phép BSD hay Berkeley Software Distribution, gồm ba phiên bản chính: BSD Gốc (4 điều khoản), BSD Sửa đổi (3 điều khoản), và BSD Đơn giản hóa/FreeBSD (2 điều khoản). Đây là các giấy phép phần mềm miễn phí được công nhận rộng rãi.
- BSD Gốc bao gồm điều khoản quảng cáo và không chứng thực.
- BSD Sửa đổi loại bỏ điều khoản quảng cáo, chỉ giữ lại điều khoản không chứng thực.
- BSD Đơn giản hóa tiếp tục loại bỏ điều khoản không chứng thực, chỉ còn 2 điều khoản cơ bản.
Giấy phép BSD cho phép sửa đổi, phân phối mã nguồn hoặc mã nhị phân. Miễn là vẫn giữ nguyên thông báo bản quyền và điều khoản sử dụng.
Giấy phép EPL
Giấy phép Cộng đồng Eclipse (EPL), do Quỹ Eclipse phát triển từ Giấy phép Cộng đồng Chung (CPL), là một giấy phép nguồn mở phổ biến. Mã nguồn Eclipse hiện nay được phát hành theo EPL.
Để sử dụng mã EPL, người dùng cần chỉnh sửa, phân phối mã nguồn công khai theo EPL. Ngoài ra cần phân phối kèm theo cách thức để người nhận có thể yêu cầu mã nguồn. Người phân phối cần có trách nhiệm kèm giấy phép và bản quyền đầy đủ.
Giấy phép EPL bảo vệ tác giả khỏi các rủi ro pháp lý. Đồng thời cung cấp quyền sáng chế khi mã được dùng trong mục đích thương mại.
Giấy phép CDDL
Giấy phép Phân phối và Phát triển chung (CDDL) là một giấy phép nguồn mở do Sun Microsystems (nay là Oracle) phát hành. Giấy phép được thiết kế để thay thế Giấy phép Cộng đồng Sun (SPL) và lấy cảm hứng từ Giấy phép Mozilla (MPL). CDDL cho phép người dùng sao chép và phân phối phần mềm gốc hoặc phái sinh miễn là giữ nguyên các thông báo về bản quyền, bằng sáng chế và nhãn hiệu. Bên cạnh đó, người dùng cũng phải duy trì thông tin về quyền cấp phép và đóng góp của tác giả ban đầu. Khi phân phối phần mềm dưới dạng thực thi, bạn phải cung cấp mã nguồn đầy đủ theo CDDL và chia sẻ các phần sửa đổi, bổ sung của mình nếu có.
Tuy nhiên, nếu các phần bổ sung không chứa mã gốc hoặc được phát hành dưới dạng độc lập, việc phát hành theo CDDL là không bắt buộc. Cuối cùng, khi phân phối mã nguồn, bạn cần đính kèm bản sao giấy phép CDDL và ghi nhận các sửa đổi mình thực hiện.
Giấy phép Microsoft (Ms – PL)
Giấy phép Ms-PL (Microsoft Public License) là giấy phép phần mềm mã nguồn mở miễn phí do Microsoft phát hành. Giấy phép này cho phép bạn sao chép, phân phối và sửa đổi phần mềm được cấp phép, bao gồm cả các sản phẩm gốc hoặc phái sinh. Tuy nhiên, bạn không thể sử dụng tên, logo hay nhãn hiệu của các tác giả khi phân phối phần mềm. Giấy phép này không cung cấp bất kỳ bảo hành nào, vì vậy tác giả không chịu trách nhiệm về sự cố hoặc lỗi phần mềm.
Khi phân phối phần mềm dưới giấy phép Ms-PL, bạn không bắt buộc phải chia sẻ mã nguồn. Tuy nhiên, nếu bạn làm vậy, cần giữ lại các thông báo bản quyền và giấy phép gốc. Nếu phân phối phần mềm dưới dạng mã nguồn, bạn phải bao gồm bản sao giấy phép. Còn nếu phân phối dưới dạng mã biên dịch hoặc đối tượng, bạn có thể phân phối theo bất kỳ giấy phép nào miễn là tuân thủ Ms-PL. Giấy phép Ms-PL được viết rõ ràng và ngắn gọn, giúp người dùng dễ dàng hiểu và áp dụng.
Giấy phép MIT
Giấy phép MIT là một trong những giấy phép phần mềm mã nguồn mở phổ biến và dễ sử dụng nhất. Nó cho phép người dùng tự do sao chép, thay đổi và phân phối phần mềm mà không gặp phải những ràng buộc phức tạp. Điều kiện duy nhất là bạn cần giữ lại bản sao của giấy phép MIT và thông báo bản quyền gốc trong phần mềm phân phối.
Sự đơn giản này giúp MIT trở thành sự lựa chọn phổ biến của các nhà phát triển. Bởi vì họ có thể tự do làm bất kỳ điều gì với mã nguồn mà không lo ngại về các hạn chế pháp lý. Tính dễ hiểu và không yêu cầu quá nhiều điều khoản phức tạp là lý do chính giúp giấy phép MIT có tỷ lệ chấp nhận cao trong cộng đồng mã nguồn mở.
Nên chọn sử dụng giấy phép mã nguồn mở nào?
Câu trả lời cho câu hỏi này phụ thuộc vào một số yếu tố, nhưng yếu tố quan trọng nhất là bạn muốn người khác làm gì với mã nguồn của mình: Bạn muốn giữ mã nguồn mở hay chấp nhận để mã của mình trở thành một phần của phần mềm sở hữu hoặc phần mềm thương mại? Bạn cũng cần cân nhắc xem liệu bạn có muốn được ghi nhận là tác giả trong giấy phép (attribution).
Dưới đây là một số điều cần xem xét khi chọn giấy phép nguồn mở cho phần mềm của mình:
- Hãy suy nghĩ xem bạn có thoải mái khi ai đó phát triển, lưu trữ, bán hoặc phân phối phiên bản phần mềm mã nguồn mở của bạn hay không. Nếu bạn đồng ý với điều đó, một giấy phép linh hoạt (permissive) sẽ là sự lựa chọn phù hợp, và bạn có thể chọn giữa các giấy phép như MIT, Apache hoặc những giấy phép linh hoạt khác, tùy thuộc vào sự khác biệt nhỏ giữa chúng.
- Nếu bạn muốn đảm bảo rằng các sửa đổi mã nguồn vẫn được giữ là mã nguồn mở, bạn có thể chọn một giấy phép copyleft.
- Đối với phần mềm nguồn mở trong môi trường làm việc, bạn nên tham khảo ý kiến của luật sư hoặc chuyên gia pháp lý về bản quyền và giấy phép nguồn mở. Một đội ngũ pháp lý sẽ giúp bạn chọn giấy phép phù hợp nhất cho tổ chức của mình.
>>> Xem thêm: Ứng dụng thực tế của Apache Server là gì?
Câu hỏi thường gặp
Tôi có cần tư vấn pháp lý khi chọn giấy phép mã nguồn mở không?
Đối với các dự án lớn hoặc khi có các yếu tố pháp lý phức tạp, việc tham khảo ý kiến của một luật sư hoặc chuyên gia pháp lý là rất quan trọng. Để đảm bảo lựa chọn giấy phép phù hợp cho phần mềm của bạn.
Điều gì xảy ra khi giấy phép nguồn mở thay đổi?
Khi một dự án mã nguồn mở thay đổi giấy phép, điều này có thể ảnh hưởng lớn đến cộng đồng và tổ chức liên quan. Ví dụ, HashiCorp đã chuyển các dự án phổ biến như Terraform, Consul và Vault sang giấy phép “Business Service License” (BUSL), cấm thương mại hóa phần mềm, khiến nó không còn là mã nguồn mở nữa. Việc thay đổi giấy phép có thể dẫn đến các bản fork, như OpenTofu từ Terraform. Do đó, tổ chức cần quyết định giấy phép ngay từ đầu và giữ nguyên để duy trì mối quan hệ tốt với người đóng góp và cộng đồng.
Lời kết
Trên đây, LANIT đã chia sẻ mọi điều bạn cần biết về giấy phép mã nguồn mở. Qua những chia sẻ trên, bạn nên lựa chọn giấy phép mã nguồn mở cho dự án cá nhân hay tổ chức của mình ngay từ đầu. Việc này không chỉ bảo vệ quyền lợi cho người dùng mà còn đảm bảo duy trì quan hệ giữa sản phẩm của bạn và người dùng.
Mọi người cùng tìm hiểu:
Lợi ích mà Apache Ambari mang lại