Làm thế nào để quản lý, trong thực tế, các tệp giấy phép khi kết hợp mã được cấp phép GPL và BSD?


10

Tôi đang viết mã sử dụng một thư viện có giấy phép GPL (không phải LGPL) và một thư viện có giấy phép BSD 3 điều khoản . Vì tôi liên kết với thư viện được cấp phép GPL, mã của tôi cũng sẽ cần phải là GPL. Trong thực tế, tôi nên xử lý LICENSE.txt như thế nào từ thư viện BSD?

(A) Tôi có thể phân phối một dự án để mã nguồn chính được cấp phép GPL và sau đó một số thư mục con được cấp phép BSD không?

(B) Nếu tôi không chỉ liên kết với các thư viện, mà còn sử dụng và kết hợp mã BSD và GPL theo cách liên quan hơn, vậy thì phải làm gì với LICENSE.txt?

Văn bản BSD gồm 3 điều khoản cho biết: "Phân phối lại mã nguồn phải giữ lại thông báo bản quyền ở trên, danh sách các điều kiện này và tuyên bố từ chối trách nhiệm sau đây." Vì vậy, rõ ràng tôi nên giữ lại thông báo bản quyền và danh sách các điều kiện ở đâu đó. Nhưng sau đó tôi cũng cần đặt tệp txt giấy phép GPL ở đâu đó.

Hơn nữa, rõ ràng tôi không cần giữ lại "Phân phối lại và sử dụng ở dạng nguồn và nhị phân, có hoặc không có sửa đổi, được cho phép miễn là các điều kiện sau được đáp ứng:" một phần của văn bản giấy phép BSD, vì nó chỉ cho tôi biết giữ lại các bộ phận khác

Vì vậy, trong thực tế, và trong tập tin văn bản nào, tôi nên tổ chức văn bản giấy phép GPL và các phần của giấy phép BSD và bản quyền mà tôi giữ lại?

EDIT: Vì vậy, trong trường hợp B, tôi sẽ lấy mã được cấp phép BSD 3 mệnh đề và phân phối lại theo GPL, được phép, vì giấy phép BSD 3 khoản tương thích (một chiều) với GPL . Tôi chỉ hỏi làm thế nào để đối phó với các văn bản giấy phép và textfiles trong thực tế.


Đây là một ý tưởng tồi. Một tìm kiếm web đơn giản sẽ cho bạn thấy lý do tại sao. Nhưng toàn bộ sản phẩm trở thành GPL. Đã có vấn đề với điều này trước đây.
Andrew T Finnell

2
@Andrew Finnell: Tại sao nó là một ý tưởng tồi? Toàn bộ sản phẩm là GPL, vì một thành phần là vậy, nhưng điều đó có gì sai? Thư viện được cấp phép BSD vẫn được BSD cấp phép. Mọi người không sử dụng giấy phép BSD trừ khi họ muốn những thứ của họ có thể sử dụng được bởi những người muốn sử dụng giấy phép hạn chế hơn.
David Thornley

Câu trả lời:


1

Để đơn giản, có lẽ tốt nhất là phát hành toàn bộ điều theo GPL. Giấy phép BSD 3 điều khoản không có hình thức sao chép trái, vì vậy bạn có quyền đổi thương hiệu của mình, miễn là bạn duy trì thông báo của mình.

Bạn sẽ kết thúc với hai loại tệp:

  • Các tệp BSD ban đầu: cần phải có cả hai tiêu đề, thứ tự không quan trọng đối với kiến ​​thức của tôi, chỉ là chúng ở đó
  • Các tệp của bạn và các tệp GPL ban đầu: cần phải có tiêu đề GPL

Và tất nhiên đối với bất kỳ bản phát hành nhị phân nào, bạn sẽ cần bao gồm một liên kết đến nguồn và cả hai tiêu đề dưới dạng khác. Tôi muốn giới thiệu GPL tiêu chuẩn, theo sau là "Các phần của chương trình này ban đầu được phát hành theo giấy phép sau" hoặc đại loại như thế, bạn có thể tìm thấy các ví dụ về điều này xảy ra trong tự nhiên nếu bạn tìm kiếm nó.

Lưu ý rằng tôi không phải là luật sư, tôi cũng không chuyên về cấp phép nguồn mở hoặc cấp phép nói chung. Tôi chỉ đơn giản là chuyển tiếp cách giải thích của tôi về việc cấp phép kết hợp sẽ như thế nào.


1

Ok, đọc phần 7 của GPLv3 , không cho phép "các quyền bổ sung [mà] chỉ áp dụng cho một phần của Chương trình" [1]. Vì vậy, giữ một số tệp hoặc thư mục theo giấy phép BSD có vẻ ổn, vì tôi đoán "làm bất cứ điều gì bạn muốn" của giấy phép BSD là "quyền bổ sung".

Ngoài ra, phần 7 cho phép "bổ sung các điều khoản của Giấy phép này bằng các điều khoản:" (danh sách 6 điểm về loại điều khoản được phép theo sau) và tất cả 3 điều khoản (+ từ chối trách nhiệm) của giấy phép BSD đều được bảo vệ, vì vậy trong trường hợp khi trộn mã BSD và GPL trong một tệp duy nhất, có lẽ tôi chỉ cần đặt ADD ADDAL_TERMS.txt ở đâu đó, chứa 3 mệnh đề + từ chối trách nhiệm từ giấy phép BSD.

.

[1] Miễn là người nhận chương trình sẽ được phép xóa các quyền bổ sung nếu anh ta phân phối lại. Và giấy phép BSD cho phép điều này.


-1

Điều này chỉ đơn giản là không thể theo nhiều cách hiểu về các điều khoản cấp phép.

gnu.org nói cho phiên bản 2:

Bởi vì nó áp đặt một yêu cầu cụ thể không có trong GPL; cụ thể là yêu cầu về quảng cáo của chương trình. GPL tuyên bố:

Bạn không được áp đặt bất kỳ hạn chế nào nữa đối với việc thực hiện các quyền của người nhận được cấp ở đây.

Điều khoản quảng cáo chỉ cung cấp một hạn chế hơn nữa và do đó không tương thích GPL.

Giấy phép BSD sửa đổi không có điều khoản quảng cáo, giúp loại bỏ vấn đề.

và cho GPL v3 :

Tại sao giấy phép BSD ban đầu không tương thích với GPL? (#OrigBSD)

Bởi vì nó áp đặt một yêu cầu cụ thể không có trong GPL; cụ thể là yêu cầu về quảng cáo của chương trình. Mục 6 của GPLv2 nêu rõ:

Bạn không được áp đặt bất kỳ hạn chế nào nữa đối với việc thực hiện các quyền của người nhận được cấp ở đây.

GPLv3 nói điều gì đó tương tự trong phần 10. Điều khoản quảng cáo chỉ cung cấp một hạn chế hơn nữa và do đó không tương thích với GPL.

Giấy phép BSD sửa đổi không có điều khoản quảng cáo, giúp loại bỏ vấn đề.

Các luật sư / thẩm phán khác, tất nhiên, có thể có ý kiến ​​khác nhau.


1
Bạn có chắc chắn rằng bạn không nói về giấy phép BSD 4 điều khoản? "Không thể sử dụng tên của <tổ chức> cũng như tên của những người đóng góp để xác nhận hoặc quảng bá các sản phẩm có nguồn gốc từ phần mềm này mà không có sự cho phép trước bằng văn bản cụ thể." không đề cập đến quảng cáo dưới bất kỳ hình dạng hoặc hình thức nào và thực sự có liên quan đến nhãn hiệu của tổ chức, không phải bản quyền của mã nguồn.
Guvante

1
Thật! Tôi đã nhầm lẫn (một lần nữa) về các phiên bản khác nhau!
johannes
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.