Các hạn chế cấp phép nguồn mở GPL và LGPL [đã đóng]


107

Tôi gặp sự cố khi hiểu quyền sử dụng của mã nguồn mở. Tôi đọc ở đâu đó rằng GPL hoặc LGPL bắt buộc phần mềm sử dụng phần mềm GPL cũng phải được phát hành mã nguồn mở. Tôi muốn tạo một ứng dụng sử dụng một số thư viện nhận dạng hình ảnh mã nguồn mở. Tôi có thể bán ứng dụng này không hay nó phải là mã nguồn mở?

Cảm ơn!

Câu trả lời:


80

LGPL cho phép bạn sử dụng và phân phối phần mềm nguồn mở cùng với ứng dụng của mình mà không cần phát hành mã nguồn cho ứng dụng của bạn.

GPL yêu cầu bạn phát hành mã nguồn của ứng dụng nếu bạn chọn sử dụng và phân phối phần mềm nguồn mở được cấp phép GPL cùng với ứng dụng của mình. Nói cách khác, ứng dụng của bạn cũng phải được cấp phép theo GPL.


14
Lưu ý rằng LGPL nói rằng thư viện đã sử dụng phải có thể thay thế được. Vì vậy, liên kết tĩnh không thể thực hiện được.
Dykam

1
Vì vậy, một "DLL" (Thư viện liên kết động) sẽ hợp pháp, đúng không?
Robert Harvey

Chỉ khi bạn cung cấp mã nguồn cho DLL đó, cũng như các tệp tiêu đề hoặc tài liệu bắt buộc để có thể giao tiếp với phần còn lại của ứng dụng, nếu bất kỳ ai muốn sửa đổi nhiều hoặc viết lại từ đầu, DLL.
thomasrutter

48
  • GPL

    Các nhà phát triển khác có thể mượn và sửa đổi mã và phân phối lại như một phần của dự án của riêng họ, chỉ khi toàn bộ dự án của họ cũng được cấp phép theo GPL.

    Điều này ngăn không cho mã được sử dụng trong phần mềm độc quyền.

  • LGPL

    Các nhà phát triển khác có thể mượn và sửa đổi mã và phân phối lại nó như một phần của dự án của riêng họ, miễn là phần được sử dụng theo LGPL được cấp phép lại theo LGPL. Các phần khác của dự án được phép có giấy phép khác.

    Điều này cho phép mã được sử dụng trong phần mềm độc quyền.

LGPL có một số điều kiện bổ sung cần được đáp ứng để có thể phân phối nó trong một dự án với giấy phép khác. Ví dụ, nó phải có thể cho bất kỳngười sử dụng phần mềm đã hoàn thiện để sửa đổi, biên dịch lại hoặc thay thế phần của phần mềm được cấp phép theo LGPL và sử dụng mã đã sửa đổi này với cùng một phần mềm. Nếu bạn đang xuất bản phần mềm độc quyền có chứa một số mã LGPL, một cách để đáp ứng yêu cầu này là đặt mã LGPL vào một thư viện được liên kết động riêng biệt và phân phối với phần mềm của bạn các tệp tiêu đề cần thiết và tài liệu cần thiết để biên dịch lại LGPL theo cách mà nó vẫn có thể được liên kết và sử dụng với phần mềm như được cung cấp. Không thể chấp nhận thực hiện các bước để ngăn chặn việc sửa đổi mã LGPL chẳng hạn như làm xáo trộn bản thân mã hoặc tệp API hoặc tiêu đề.

Lưu ý rằng LGPL tương thích với GPL: bạn có thể chọn "nâng cấp" mã lên GPL và kết hợp nó vào một dự án được cấp phép hoàn toàn GPL như đã nêu trong gạch đầu dòng đầu tiên của tôi nếu bạn muốn. Tuy nhiên, bạn không thể làm theo cách khác và cấp phép lại mã được cấp phép GPL là LGPL.


30

IANAL, nhưng các khái niệm khá đơn giản.

Trước tiên, bạn và luật sư của bạn phải đọc giấy phép GPLLGPL . Thứ hai, bạn nên đọc Câu hỏi thường gặp về GPL . Theo như tôi hiểu, bạn có thể nghĩ đến việc sử dụng thư viện GPL / LGPL theo cách này:

  • Nếu bạn liên kết động hoặc tĩnh với thư viện GPL hoặc LGPL, bạn đã tạo một tác phẩm phái sinh.
  • Nếu bạn sử dụng thư viện là GPL và bạn liên kết với thư viện đó, phần mềm của bạn phải được phát hành với giấy phép tương thích .
  • Nếu bạn sử dụng thư viện là LGPL và bạn liên kết động với thư viện đó, thì phần mềm của bạn không phải được phát hành với giấy phép tương thích, nhưng bạn vẫn phải tuân thủ LGPL.
  • Nếu bạn sử dụng một thư viện là LGPL và bạn liên kết tĩnh với thư viện đó, phần mềm của bạn phải được phát hành với giấy phép tương thích.
  • Giấy phép GPL / LGPL có nghĩa là "miễn phí" như trong "tự do ngôn luận", không phải "bia miễn phí" . Bạn có thể tạo tác phẩm phái sinh và bán nó với số tiền lớn, nhưng bạn phải tuân thủ GPL / LGPL.

29
"Trước tiên, bạn và luật sư của bạn phải đọc giấy phép GPL và LGPL." - giết tôi ngay bây giờ
d512

10
"thẳng thắn". Thực tế, đơn giản là bạn cần phải thuê một luật sư chỉ để xem liệu bạn có thể sử dụng một chút mã hay không. Đây là lý do tại sao các nhà phát triển không bao giờ nên sử dụng giấy phép GPL.
Womble

9

Nếu bạn cắt và dán hoặc liên kết với mã GPL'd vào ứng dụng của mình, ứng dụng của bạn phải được cấp phép theo GPL và sau đó bạn được yêu cầu phát hành mã.

Tuy nhiên, bạn vẫn có thể bán ứng dụng của mình và afaik, lỗi duy nhất là bạn phát hành mã nguồn cho khách hàng của mình.

Nếu thư viện bạn liên kết chống lại là Giấy phép Công cộng Lesser Gnu hay còn gọi là LGPL thì bạn không cần phát hành mã ứng dụng của riêng mình nhưng bạn vẫn được yêu cầu phát hành tất cả các sửa đổi nếu bạn đã sửa đổi mã lgpl'd.


"phát hành mã nguồn cho khách hàng của bạn" - thực sự? chỉ cho họ? Tôi nghĩ rằng src phải công bố công khai?
relascope

Tôi không phải là người nói tiếng Anh bản ngữ cũng như luật sư. gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid tuyên bố rằng một hầu hết cung cấp nguồn cho bất kỳ ai có quyền truy cập vào tệp nhị phân. Nó không nói rằng bất kỳ ai cũng có thể yêu cầu nguồn, nhưng bất kỳ ai đã được cung cấp mã nhị phân, trực tiếp từ bạn hoặc khách hàng trực tiếp của bạn.
rasjani

nói trực tiếp, chỉ cho khách hàng ... "Nhưng nếu bạn phát hành phiên bản đã sửa đổi ra công chúng theo một cách nào đó, GPL yêu cầu bạn cung cấp mã nguồn đã sửa đổi cho người dùng của chương trình, theo GPL."
relascope

7

GPL không cấm bạn bán phần mềm. Tuy nhiên, bạn phải cung cấp các nguồn cho phần mềm.

Câu hỏi về cách sử dụng phức tạp hơn một chút. GNU / Linux được phát hành theo GPL. Không có gì cấm bạn viết phần mềm chạy trên Linux bất kể giấy phép phần mềm của bạn là gì. Tuy nhiên, bạn không thể phân phối Linux cùng với phần mềm của mình. Đó thường là một vấn đề với các thư viện cần phải là một phần của chương trình. Đó là những gì giấy phép LGPL dành cho. Bạn có thể biên dịch chương trình ac bạn viết bằng gcc (do đó sử dụng thư viện quy trình thời gian chạy được cấp phép của LGPL từ gcc) và vẫn phát hành phần mềm của bạn mà không bị giới hạn bởi GPL.

Tôi nghĩ đó là ý chính chung của nó. Tuy nhiên, đây không phải là cách tư vấn pháp lý. Đối với lời khuyên pháp lý, bạn phải có một luật sư được chứng nhận, người có thể cung cấp cho bạn lời khuyên pháp lý phù hợp với hoàn cảnh cụ thể của bạn.

Hi vọng điêu nay co ich.


3

Sự khác biệt giữa GPL và LGPL xác định liệu bạn có / không phải phát hành nguồn cho ứng dụng của mình cho bất kỳ ai có bản sao nhị phân. Dù thế nào bạn vẫn có thể bán ứng dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.