Blog

Mã GitHub trong sản phẩm thương mại: giấy phép và những điều cần kiểm tra

Markdown

Các giấy phép dễ dãi MIT, Apache và BSD, giấy phép copyleft GPL/AGPL, trường hợp không có tệp LICENSE và cách kiểm tra nguồn gốc của mã do AI thêm vào.

Đọc toàn bộ bài viết

Bạn đang xây dựng một sản phẩm và tìm thấy một phần có sẵn trên GitHub: một thư viện, một mẫu, hay cả một dự án làm đúng điều bạn cần. Claude gợi ý đưa nó vào dự án của bạn. Rồi bạn chợt dừng lại: mã có vẻ được công khai, nhưng bạn có thực sự được phép dùng nó, chưa nói đến bán một sản phẩm có chứa mã đó không? Liệu sau này tác giả có thể kiện bạn không?

Tôi sẽ lần lượt giải thích vì sao mã nguồn mở trên GitHub tự nó không đồng nghĩa với việc được cấp phép, giấy phép nào cho phép bạn sử dụng mã và bán sản phẩm, điều kiện copyleft nào có thể đòi mã nguồn tương ứng cho tác phẩm được bao phủ, và cách kiểm tra giấy phép trong một phút trước khi dùng mã. Không có câu trả lời kiểu “còn tùy tình huống”.

Thông tin thực tế về cách làm việc với Ailoot có trong tài liệu hướng dẫn.

Chú ý

Tài liệu này chỉ nhằm mục đích tham khảo; tôi không phải luật sư. Dưới đây, tôi mô tả các điều khoản của những giấy phép và quy tắc phổ biến, kèm liên kết đến nguồn chính thức, nhưng hãy đối chiếu tình huống cụ thể của bạn với nội dung giấy phép; nếu sản phẩm lớn và mang tính thương mại, hãy tham khảo luật sư. Bạn tự đưa ra quyết định.

Có đúng là nếu mã nằm trên GitHub thì bạn được dùng miễn phí không?

Điểm chính

Không. Việc có thể xem mã không có nghĩa là bạn được phép dùng mã đó trong công việc của mình. Theo mặc định, mọi mã đều được bảo vệ bởi bản quyền và bạn không được sử dụng nếu tác giả chưa cấp quyền riêng. Chỉ riêng việc đăng mã lên GitHub cho phép người khác xem kho lưu trữ và tạo bản sao ngay trong GitHub. Quyền đưa mã đó vào sản phẩm của bạn đến từ giấy phép mà tác giả đính kèm với kho lưu trữ. GitHub không cấp quyền đó.

Cái bẫy chính ở đây là từ “mở”. Bạn có thể xem mã nguồn, nên có vẻ như vì mã không bị che giấu thì bạn được phép sử dụng. Lập luận đó sai. “Mở để đọc” và “được cấp phép sử dụng” là hai chuyện khác nhau.

Theo mặc định, mọi tác phẩm sáng tạo, kể cả mã, đều được bảo vệ bởi bản quyền ngay từ khi được tạo ra. Trừ khi tác giả cấp quyền rõ ràng, bạn không được sử dụng tác phẩm đó. GitHub mô tả điều này trên trang tham khảo về giấy phép của họ.

Khi bạn tạo ra một tác phẩm sáng tạo (và mã cũng là một tác phẩm sáng tạo), theo mặc định tác phẩm đó được bảo vệ bởi quyền tác giả độc quyền. Nếu không đính kèm giấy phép nêu rõ điều ngược lại, người khác không được sao chép, phân phối hoặc sửa đổi tác phẩm của bạn nếu không muốn đối mặt với khiếu nại hoặc vụ kiện.

— choosealicense.com (dự án tham khảo của GitHub), https://choosealicense.com/no-permission/

Lớp thứ hai là chính GitHub. Mọi người nghĩ rằng vì họ đã đồng ý với quy định của GitHub khi đăng mã nên họ cũng có thể dùng mã của người khác ở đó. Quy định nói ngược lại. Khi công khai một kho lưu trữ, tác giả chỉ cho phép người khác xem và fork kho đó — tức là tạo một bản sao ngay trong GitHub. Điều đó không cho phép bạn sử dụng mã trong công việc của mình.

Khi công khai một kho lưu trữ, bạn cấp cho người dùng khác giấy phép không độc quyền trên toàn thế giới để sử dụng, hiển thị và sao chép (thông qua fork) tài liệu của mình qua dịch vụ, trong phạm vi các tính năng của GitHub. Bạn có thể cấp thêm quyền bằng cách đính kèm giấy phép.

— Điều khoản dịch vụ của GitHub, Mục D, https://docs.github.com/en/site-policy/github-terms/github-terms-of-service

Những từ then chốt nằm ở câu cuối: “trong phạm vi các tính năng của GitHub” và “quyền bổ sung đến từ giấy phép”. Một bản fork vẫn nằm trong GitHub. Ngay khi muốn dùng mã trong sản phẩm của mình, chưa nói đến việc bán sản phẩm đó, bạn cần có giấy phép riêng từ tác giả. Không có giấy phép thì không có quyền — kể cả khi mã nằm ngay trước mắt bạn.

Điều gì quyết định bạn có thể dùng mã của người khác hay không?

Điểm chính

Đó là tệp giấy phép trong kho lưu trữ, thường có tên LICENSE hoặc LICENSE.md. Đây là quyền mà tác giả cấp, nêu rõ bạn được và không được làm gì với mã. Giấy phép trả lời ba câu hỏi: bạn có thể dùng mã trong sản phẩm thương mại không, bạn có thể sửa đổi mã không, và bạn có thể giữ mã nguồn của mình ở trạng thái đóng không? Các giấy phép khác nhau đưa ra câu trả lời khác nhau, vì vậy điều đầu tiên cần kiểm tra là tệp này; chỉ sau đó mới mở mã ra xem.

Mọi thứ phụ thuộc vào một tệp. Một kho lưu trữ được duy trì đúng cách có tệp giấy phép — thường là LICENSE, đôi khi là LICENSE.md, hoặc được nhắc trực tiếp trong README. Đây là quyền tác giả cấp, nêu các điều khoản bạn phải tuân theo khi dùng mã. GitHub thường hiển thị tên giấy phép trong thanh bên của trang kho lưu trữ, trước cả khi bạn mở tệp đó.

Để tránh lạc lối trong ngôn ngữ pháp lý, bạn nên đọc giấy phép thông qua ba câu hỏi liên quan đến tình huống của mình:

  1. Bạn có thể dùng mã này trong sản phẩm thương mại mà mọi người phải trả tiền để sử dụng không?
  2. Bạn có thể sửa đổi mã cho phù hợp với nhu cầu của mình không?
  3. Sau đó bạn có phải công khai mã nguồn của sản phẩm không, hay có thể giữ mã ở trạng thái đóng?

Hầu hết khác biệt giữa các giấy phép nằm ở những câu trả lời khác nhau cho câu hỏi thứ ba. Với hai câu đầu, các giấy phép mở phổ biến thường trả lời “có”: dùng, sửa đổi, bán. Nhưng việc giấy phép có buộc bạn công khai mã của mình hay không là chỗ nhiều người vấp phải. Tiếp theo, chúng ta sẽ xem các loại chính dựa trên ba câu hỏi này.

Giấy phép nào cho phép bạn dùng mã và bán sản phẩm?

Điểm chính

Các giấy phép thuận tiện nhất cho sản phẩm thương mại là giấy phép dễ dãi: MIT, Apache 2.0 và BSD. Chúng cho phép gần như mọi thứ: sử dụng mã, sửa đổi mã, bán sản phẩm và giữ mã nguồn của bạn ở trạng thái đóng. Có một nghĩa vụ: giữ nguyên nội dung giấy phép và ghi nhận tác giả. Apache 2.0 còn bảo vệ bạn trước các khiếu nại về bằng sáng chế và yêu cầu đánh dấu các tệp đã sửa đổi. Nếu mã của người khác có một trong những giấy phép này, bạn có thể yên tâm dùng trong sản phẩm thương mại.

Hãy bắt đầu với tin tốt. Với người đang xây dựng sản phẩm để bán, lựa chọn tốt nhất là nhóm giấy phép được gọi là giấy phép dễ dãi. Có một số loại, nhưng ba loại phổ biến nhất là MIT, Apache 2.0 và BSD. Cả ba đều trả lời “có” cho hai câu hỏi đầu và cho phép bạn giữ mã nguồn của mình ở trạng thái đóng.

Loại phổ biến và đơn giản nhất là MIT. Nội dung của nó chỉ gói gọn trong một đoạn văn.

Theo đây, mọi người nhận được bản sao phần mềm này đều được cấp quyền sử dụng miễn phí và không hạn chế, bao gồm quyền sử dụng, sao chép, sửa đổi, hợp nhất, công bố, phân phối, cấp phép lại và bán các bản sao, với điều kiện thông báo bản quyền và thông báo cấp phép nói trên được đưa vào tất cả các bản sao.

— Giấy phép MIT, opensource.org, https://opensource.org/license/mit

Nói đơn giản, MIT cho phép bạn làm gần như mọi thứ với mã, kể cả bán sản phẩm và giữ mã nguồn của mình ở trạng thái đóng. Nghĩa vụ duy nhất là đưa nội dung giấy phép và dòng ghi nhận tác giả vào sản phẩm. Chẳng hạn, Babel, .NET và Rails được phát hành theo MIT, nên gần như chắc chắn bạn đã dùng mã theo giấy phép này.

Apache 2.0 hoạt động tương tự nhưng bổ sung hai điểm quan trọng. Thứ nhất, giấy phép bảo vệ rõ ràng trước các khiếu nại về bằng sáng chế: tác giả mã cam kết không kiện bạn về bằng sáng chế liên quan đến mã này. Thứ hai, có thêm một số yêu cầu chính thức khi sử dụng.

Bạn có thể sao chép và phân phối các bản sao của tác phẩm hoặc tác phẩm phái sinh trên bất kỳ phương tiện nào, có hoặc không sửa đổi, với điều kiện bạn cung cấp cho người nhận một bản sao giấy phép này, đánh dấu các tệp đã sửa đổi, giữ lại thông báo bản quyền và bằng sáng chế, đồng thời đính kèm một bản sao dễ đọc của tệp NOTICE nếu có.

— Giấy phép Apache 2.0, Mục 4, https://www.apache.org/licenses/LICENSE-2.0

BSD (phiên bản 2 điều khoản và 3 điều khoản) về cơ bản tương tự MIT: sử dụng, sửa đổi, bán và giữ lại thông báo bản quyền. Tôi đã đưa cả ba vào một bảng để bạn có thể nhìn thấy khác biệt ngay.

Giấy phépBán sản phẩmGiữ mã nguồn ở trạng thái đóngViệc cần làmBảo vệ bằng sáng chế
MITcócógiữ lại thông báo bản quyền và nội dung giấy phépkhông có điều khoản
Apache 2.0cócóthông báo bản quyền, tệp NOTICE, đánh dấu các sửa đổicó
BSD (2 và 3 điều khoản)cócógiữ lại thông báo bản quyềnkhông

Cách áp dụng vào trường hợp của bạn: nếu thấy MIT, Apache 2.0 hoặc BSD trong mã của người khác, bạn có thể yên tâm — bạn được phép dùng mã đó trong sản phẩm thương mại, sửa đổi và giữ mã nguồn của mình ở trạng thái đóng. Chỉ cần đừng xóa tệp giấy phép và thông tin ghi nhận tác giả khỏi phần mã bạn đã lấy.

Nghĩa vụ mã nguồn GPL và AGPL áp dụng thế nào?

GPL và AGPL cho phép dùng thương mại. Nghĩa vụ nguồn GPL phát sinh khi chuyển giao tác phẩm được bao phủ; chỉ chạy server không chuyển bản sao không phải điều kiện đó. AGPLv3 thêm yêu cầu chào cung cấp nguồn cho người dùng tương tác từ xa với bản đã sửa. Phải xác định tác phẩm kết hợp nào được bao phủ; thành phần riêng, độc lập không tự thành một phần của nó.

Copyleft giữ tác phẩm được bao phủ và bản phái sinh dưới cùng giấy phép khi điều kiện tương ứng áp dụng. Với GPLv3, phân phối bản nguồn hoặc object-code của tác phẩm được bao phủ hay phái sinh kết hợp phải đáp ứng giấy phép và nghĩa vụ mã nguồn tương ứng. Không tự áp cho mọi chương trình độc lập cùng sản phẩm hoặc server.

Ví dụ web service: host thư viện GPL trên server riêng mà không cấp bản sao cho người dùng tự nó không buộc công khai toàn dịch vụ. Phân phối app kết hợp được bao phủ tới khách có thể kích hoạt GPL; kiểm cách tích hợp và giấy phép trước xác định nguồn phải đi kèm. Client trình duyệt giao người dùng là câu hỏi phân phối riêng.

AGPLv3 thêm điều kiện mạng: nếu sửa chương trình và người dùng tương tác từ xa với bản đó, phải chào cung cấp nổi bật mã nguồn tương ứng cho họ. Điều này chính xác hơn nói chỉ host thành phần AGPL là mở mọi phần độc lập của dịch vụ.

Với sản phẩm độc quyền, xem tác phẩm được bao phủ, cách kết hợp, việc phân phối bản sao và tương tác mạng AGPL có áp dụng không. Chọn bản permissive tương thích hoặc xin quyền riêng nếu không đáp ứng được nghĩa vụ. Dùng thương mại tự nó được phép; vấn đề là tuân giấy phép và tích hợp thực.

Bạn nên làm gì nếu kho lưu trữ hoàn toàn không có tệp giấy phép?

Điểm chính

Không có tệp giấy phép nghĩa là bạn không được dùng mã. Điều đó không có nghĩa là “mã miễn phí”: ngược lại, nếu không có giấy phép, mã vẫn thuộc toàn bộ quyền tác giả của người viết và bạn không có quyền sử dụng, sao chép hoặc sửa đổi. Quyền xem và fork trong GitHub không giúp được gì ở đây — nó không cho bạn quyền đưa mã vào sản phẩm của mình. Nếu thực sự cần mã đó, cách duy nhất minh bạch là viết cho tác giả để xin phép hoặc chờ họ thêm giấy phép.

Một sai lầm phổ biến là cho rằng nếu không có giấy phép thì cũng không có hạn chế và bạn được tự do sử dụng mã. Thực tế ngược lại. Không có giấy phép không đồng nghĩa với được phép; theo mặc định, điều đó có nghĩa là không được phép. Mã không có giấy phép vẫn thuộc toàn bộ quyền tác giả của người viết và bạn không được đụng đến.

Quy tắc chúng ta đã bắt đầu cũng áp dụng ở đây: theo mặc định, mã được bảo vệ bởi bản quyền, và nếu không có sự cho phép rõ ràng, bạn không được sao chép, sửa đổi hoặc phân phối mã. Khả năng xem và fork mã trong GitHub không phá vỡ rào cản đó — nó không cấp cho bạn quyền dùng mã trong sản phẩm của mình.

Trong thực tế, nếu mã không có giấy phép nhưng bạn thật sự cần nó, hãy làm như sau:

  1. Viết cho tác giả. Liên hệ trực tiếp trong phần thảo luận của kho lưu trữ hoặc qua email, hỏi xem bạn có thể dùng mã không và theo những điều khoản nào. Đôi khi tác giả chỉ quên thêm giấy phép và sẽ bổ sung nếu được đề nghị.
  2. Tìm mã thay thế. Với gần như mọi công việc, đều có kho lưu trữ tương tự thứ hai, thứ ba và thứ mười — trong số đó bạn sẽ tìm được một kho có giấy phép MIT hoặc Apache phù hợp.
  3. Đừng sử dụng mã đó. Nếu bạn không có quyền và cũng không có mã thay thế, mã đó không thuộc về bạn và bạn không thể đưa nó vào sản phẩm định bán. Ý nghĩ “ai mà biết được?” thường kết thúc tệ đúng lúc sản phẩm bắt đầu sinh lời và thu hút sự chú ý.

Nếu chính Claude thêm mã của người khác vào dự án thì sao?

Điểm chính

Đây là trường hợp riêng và điều quan trọng là không nhầm lẫn với việc trực tiếp sao chép một kho lưu trữ. Khi tự lấy mã từ một kho cụ thể, bạn phải tuân thủ giấy phép của kho đó. Khi Claude hoặc AI khác tạo mã để trả lời yêu cầu của bạn, thông thường nó tạo ra văn bản của riêng mình, được tổng hợp cho nhiệm vụ đó, thay vì sao chép tệp của người khác; khi ấy câu hỏi chuyển sang quyền đối với mã được tạo ra. Nhưng nếu AI rõ ràng tái tạo một phần dễ nhận ra trong mã có giấy phép của người khác, các điều khoản giấy phép vẫn áp dụng. Trong cả hai trường hợp, bạn nên kiểm tra nguồn gốc.

Còn có một lớp thứ hai ở đây, và rất dễ nhầm với trường hợp đầu. Một chuyện là bạn vào kho lưu trữ rồi sao chép một tệp từ đó: khi ấy mọi điều ở trên về giấy phép là nghĩa vụ trực tiếp của bạn. Chuyện khác là Claude viết mã cho bạn để đáp ứng một yêu cầu.

Trong những trường hợp thông thường, AI tạo ra văn bản của riêng mình cho nhiệm vụ của bạn thay vì sao chép tệp của người khác. Khi ấy câu hỏi chuyển sang lĩnh vực khác: ai sở hữu mã được tạo ra và bạn có thể bán nó không? Đây là chủ đề lớn riêng biệt, và tôi đã đề cập trong bài viết về ai sở hữu mã do AI viết.

Nhưng có một ngoại lệ cần lưu ý. Đôi khi AI tạo ra một phần mã của người khác dễ nhận ra, gần như từng chữ một — chẳng hạn như toàn bộ một hàm từ thư viện nổi tiếng. Trong trường hợp đó, giấy phép của thư viện vẫn áp dụng, bất kể ai là người thực sự gõ phím. Vì vậy, các khối mã dựng sẵn lớn mà Claude đưa vào nguyên vẹn cần được kiểm tra như thể chính bạn sao chép chúng.

Cách kiểm tra giấy phép trước khi dùng mã: các bước cần làm

Điểm chính

Quy trình như sau: mở trang kho lưu trữ và kiểm tra tên giấy phép trong thanh bên, mở chính tệp LICENSE, xác định loại giấy phép — dễ dãi (MIT, Apache, BSD) hay copyleft (GPL, AGPL) — đối chiếu với tình huống của bạn rồi quyết định dùng mã hay tìm mã thay thế. Nếu hoàn toàn không có giấy phép thì đừng sử dụng mã. Toàn bộ quá trình kiểm tra chỉ mất vài phút và cần được thực hiện trước khi đưa mã vào dự án, chứ không phải sau đó.

Hãy chuyển tất cả nội dung thành một danh sách kiểm tra ngắn để áp dụng với mọi mã của bên thứ ba trước khi đưa vào dự án. Thực hiện từ trên xuống.

  1. Tìm tên giấy phép trên trang kho lưu trữ

    Mở kho lưu trữ trên GitHub. Tên giấy phép thường hiện ở cột bên phải hoặc bên dưới danh sách tệp — chẳng hạn “MIT License”, “Apache-2.0” hoặc “GPL-3.0”. Nếu phần này để trống và không có tệp giấy phép, đó đã là dấu hiệu đáng ngại; hãy quay lại kiểm tra ở bước cuối.

  2. Mở chính tệp giấy phép

    Tìm LICENSE, LICENSE.md hoặc COPYING trong danh sách tệp rồi mở. Đảm bảo tên khớp với nội dung hiển thị trong thanh bên và giấy phép áp dụng cho mã bạn đang dùng, chứ không chỉ cho một phần riêng biệt của kho lưu trữ.

  3. Xác định loại: dễ dãi hay copyleft

    MIT, Apache 2.0 và BSD là giấy phép dễ dãi; bạn có thể dùng mã trong sản phẩm thương mại đóng. GPL và AGPL là copyleft; kiểm tác phẩm được bao phủ, phân phối và điều kiện mạng AGPL trước xác định nghĩa vụ nguồn. Tên riêng chưa xác lập thành phần độc lập nào bị bao phủ.

  4. Đối chiếu với tình huống của bạn

    Trả lời ba câu hỏi: bạn có bán sản phẩm không, bạn có sửa đổi mã không, và bạn có muốn giữ mã nguồn ở trạng thái đóng không? MIT, Apache và BSD phù hợp với sản phẩm đóng để bán. Với GPL/AGPL, xác định tác phẩm được bao phủ hoặc kết hợp cần nguồn tương ứng nào và khi nào nghĩa vụ kích hoạt; đánh giá khả năng đáp ứng.

  5. Không có giấy phép thì đừng dùng

    Nếu không có tệp giấy phép và README không nói gì về việc cấp quyền, bạn không được sử dụng mã. Hãy viết cho tác giả để xin phép hoặc tìm mã tương đương có giấy phép phù hợp. “Mã được công khai” không phải là sự cho phép.

Việc kiểm tra này có vẻ phiền phức cho đến lần đầu sản phẩm của bạn phát triển, bắt đầu kiếm tiền và có người hỏi về mã của bên thứ ba bên trong. Dành hai phút lúc đầu sẽ tốn ít hơn xử lý tranh chấp sau này. Tôi đề cập riêng đến việc nên làm gì với sản phẩm sau đó để sản phẩm không bị đình trệ sau khi ra mắt trong bài viết: Tôi đã xây dựng sản phẩm bằng AI; tiếp theo là gì.

Câu hỏi thường gặp

Bạn có thể bán sản phẩm chứa mã của người khác từ GitHub không?

Có, nếu mã có giấy phép dễ dãi — MIT, Apache 2.0 hoặc BSD. Các giấy phép này cho phép bạn dùng mã trong sản phẩm thương mại, bán sản phẩm và giữ mã nguồn của mình ở trạng thái đóng; yêu cầu duy nhất là giữ nguyên nội dung giấy phép và ghi nhận tác giả. GPL và AGPL cũng cho phép thương mại, nhưng nghĩa vụ nguồn tùy tác phẩm được bao phủ và việc phân phối hoặc điều kiện mạng AGPL áp dụng. Nếu không có tệp giấy phép, bạn hoàn toàn không được dùng mã.

Kho lưu trữ GitHub không có giấy phép nghĩa là gì?

Điều đó có nghĩa là bạn không được dùng mã. Theo mặc định, không có giấy phép nghĩa là không được phép; không có nghĩa là “miễn phí”. Mã vẫn thuộc toàn bộ quyền tác giả của người viết. Quyền xem và fork kho lưu trữ trong GitHub không cho bạn quyền sử dụng mã trong sản phẩm. Nếu cần mã đó, hãy viết cho tác giả để xin phép hoặc tìm mã tương đương có giấy phép mở.

MIT khác GPL như thế nào đối với sản phẩm của tôi?

MIT cho phép bạn dùng và sửa đổi mã, bán sản phẩm và giữ mã nguồn của mình ở trạng thái đóng — nghĩa vụ duy nhất là giữ nguyên nội dung giấy phép. GPL cũng cho thương mại, nhưng chuyển giao tác phẩm kết hợp hoặc phái sinh được bao phủ phải đáp ứng nguồn tương ứng và cùng giấy phép. Chỉ host không chuyển bản sao là khác; thành phần riêng độc lập không tự bị bao phủ.

Tôi có phải làm gì nếu dùng mã theo giấy phép MIT không?

Có, chỉ một việc nhỏ: giữ nguyên nội dung giấy phép MIT và dòng ghi nhận tác giả của phần mã bạn đã dùng trong dự án. Thông thường, đó chính là tệp LICENSE đi kèm với bản gốc. MIT không yêu cầu điều gì khác — bạn có thể sửa đổi mã, bán sản phẩm và giữ mã nguồn ở trạng thái đóng.

Nếu chính Claude thêm mã của người khác chứ không phải tôi thì sao?

Bạn vẫn nên kiểm tra nguồn gốc. AI thường tạo ra văn bản của riêng mình cho nhiệm vụ của bạn, khi ấy câu hỏi chuyển sang quyền đối với mã được tạo ra — đây là chủ đề riêng. Nhưng nếu AI gần như sao chép nguyên văn một phần mã dễ nhận ra từ thư viện nổi tiếng của người khác, giấy phép của thư viện đó vẫn áp dụng. Hãy kiểm tra các khối mã dựng sẵn lớn được đưa vào nguyên vẹn như cách bạn kiểm tra phần mình tự sao chép và dán.

Truy cập Ailoot.

Xem thêm chi tiết

Câu hỏi thường gặp

Hosting thư viện GPL có buộc công khai toàn web service không?

Chỉ hosting mà không chuyển bản sao không kích hoạt phân phối GPL. Nếu phân phối ứng dụng kết hợp hoặc phái sinh được GPL bao phủ, nghĩa vụ mã nguồn có thể áp cho tác phẩm đó; thành phần độc lập không tự bị bao phủ.

AGPLv3 thêm điều kiện gì cho web service?

Chương trình AGPL đã sửa có tương tác mạng từ xa phải cung cấp mã nguồn tương ứng cho người dùng đó. Xem chương trình và cách tích hợp; đừng mặc định không cần nguồn hoặc mọi dịch vụ độc lập đều phải mở.

Tất cả bài viết