Chính xác thì tôi cần phải làm gì nếu tôi sử dụng thư viện được cấp phép LGPL?


48

Tôi đã đọc câu hỏi và câu trả lời này , nhưng tôi vẫn không hiểu chính xác mình cần phải làm gì nếu tôi tự động liên kết với thư viện sử dụng giấy phép LGPL (thư viện SDL trong trường hợp của tôi).

Nếu tôi hiểu chính xác văn bản LGPL , tôi cần phải cung cấp nguồn cho thư viện bằng cách nào đó. Như thế này đủ chưa? Nếu không, cần phải làm gì khác?

Câu trả lời:


47

Yêu cầu cơ bản của LGPL là tách biệt thư viện được cấp phép của LGPL và sản phẩm của riêng bạn đủ tốt. Điều đó sẽ cho phép người dùng cung cấp phiên bản thư viện của riêng họ thay vì phiên bản bạn đã gửi cùng với phần mềm của mình (ví dụ như đã sửa lỗi). Để thực hiện điều này, bạn có hai tùy chọn:

  • sử dụng mã LGPL làm thư viện dùng chung (vì vậy người dùng sẽ chỉ sao chép tệp nhị phân của thư viện qua thư viện bạn gửi) hoặc
  • cung cấp mã nguồn của toàn bộ dự án (để người dùng có thể sao chép nguồn thư viện của họ và biên dịch lại mọi thứ).

Lưu ý, tuy nhiên, chỉ tách biệt là không đủ, mặc dù bắt buộc. Bạn nên cung cấp cho người dùng của mình một cách có tài liệu để thay thế thư viện bằng phiên bản của họ (nghĩa là cách tải lên chương trình cơ sở hoặc biên dịch lại trình bao bọc Python cho thư viện LGPL C ++).

Điều khoản đáng chú ý thứ hai là yêu cầu ghi công . Điều này sẽ giúp quảng bá tên của nhà phát triển ban đầu của thư viện và nói rằng phần mềm tuyệt vời nào có thể đã được phát triển bởi người khác :). Trong phần có liên quan của cửa sổ "Giới thiệu" hoặc tệp README (nếu giấy phép của bạn là Apache, đây sẽ là NOTICEtệp), bạn nên liệt kê tên của công việc LGPL bạn đã sử dụng.

Lưu ý rằng tôi không phải là một luật sư và đây không phải là một lời khuyên pháp lý. Lưu ý rằng tôi cũng không phải là thợ sửa ống nước, và đây không phải là lời khuyên vệ sinh.


13

Nếu bạn đang liên kết tĩnh thư viện LGPL thì bạn cần cung cấp nguồn của thư viện và mã nguồn hoặc mã đối tượng của ứng dụng của bạn.

Nếu bạn đang tự động liên kết thư viện LGPL thì bạn có thể phân phối ứng dụng của mình một mình, không có thư viện và cho mọi người biết nơi tải xuống từ đó và cách đưa nó vào, để sử dụng nó. Hoặc bạn có thể bao gồm một bản sao của các nhị phân thư viện và nguồn của nó với ứng dụng của bạn.

Điều này giải thích điều này khá tốt: http://answers.google.com/answers/threadview/id/439136.html (mà tôi đã lấy từ một câu trả lời trong câu hỏi được liên kết trong OP)

IANAS


2
^ Cái này Chìa khóa là đây: người tiêu dùng sản phẩm có được một ứng dụng có thư viện LGPL'd. Họ có thể cải thiện phần LGPL và sử dụng phiên bản cải tiến mới với sản phẩm gốc không? Nếu có, thì bạn đã tuân thủ mục đích dự định của LGPL. LGPLv3 nói rõ rằng ngay cả khi sản phẩm được nhúng phần sụn, bạn vẫn phải cho phép người dùng cuối thay thế phần LGPL'd . Điều đó có nghĩa là có thể biên dịch lại firmware đầy đủ với một phiên bản mới của thư viện và tải nó vào thiết bị . (Sự hiểu biết của tôi, IANAL, đây không phải là lời khuyên pháp lý.)
Scott Whitlock

@Scott: Tôi tin rằng phần nhúng / phần sụn chỉ áp dụng nếu có thể thay đổi phần sụn trên thiết bị.
David Thornley

Chữ "S" trong "IANAS" nghĩa là gì?
Joe Z.

1
@JoeZeng Luật sư
Matt Ellen

1

IANAL, nhưng sự hiểu biết của tôi là điểm của LGPL là nó không "lây nhiễm" mã tùy thuộc vào nó như GPL hoặc AGPL. Vì vậy, bạn có thể có mã LGPL làm phụ thuộc và bạn không phải làm gì cả.

Điều đó đang được nói, nếu bạn thay đổi / sửa đổi / phân phối mã LGPL với ứng dụng của mình, bạn cần phải công khai mã đó.


Không có thỏa thuận / hiểu rằng "làm cho nguồn có sẵn công khai" có thể được thỏa mãn bằng cách bao gồm một URL được liên kết với nguồn / repo ban đầu? (Tất nhiên, giả sử bạn đã sử dụng một phiên bản chưa sửa đổi cho sản phẩm của mình.) Tôi hơi ngạc nhiên khi nghe điều này, vì vậy thực tế nó có thể bị sai :).
TMN
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.