GPL có thể được ngụ ý cho một tác phẩm phái sinh?


13

Có ba dự án phần mềm: A, B và C.

A được xuất bản cho bất cứ ai và được cấp phép theo GPL.

B mở rộng A, cũng được xuất bản, nhưng không có thông tin giấy phép hoặc bị cấp phép sai theo LGPL. Về cơ bản, nó vi phạm giấy phép của A bằng cách không phải là GPL. Mã nguồn của B vẫn có sẵn.

C kéo dài B. C có thể được công bố theo GPL không? Động lực sẽ là "A là GPL, bất kỳ đạo hàm nào cũng phải là GPL, vì vậy B là GPL và C cũng có thể là GPL".


5
Phần nào của B là C kéo dài? Nếu tất cả họ đã ở trong A, tôi thấy không có vấn đề gì. Nếu C mở rộng các phần của B mà không thuộc A, mọi thứ sẽ trở nên thú vị.

Tôi sẽ đặt tên cho các dự án A, B, C và liên hệ với các tác giả của B.
Basile Starynkevitch

1
Ngoài ra, tôi tin rằng ít nhất bạn có thể xuất bản C theo GPL, vì GPL tương thích với LGPL. Nhưng IANAL
Basile Starynkevitch

2
@Tichodroma, C mở rộng các phần của B, nhưng B không thể tồn tại mà không có A :)
Andrej

Có phải tác giả của C cũng đã viết (một phần của) A? Nếu không, chúng tôi không biết các tác giả của A đã cấp giấy phép gì cho B, vì vậy chúng tôi không biết liệu chúng tôi có thể xây dựng dựa trên nó không?
dcorking

Câu trả lời:


23

Trước hết, B đã vi phạm GPL trên A. Nhưng đó không phải là mối quan tâm chính xác của bạn và không liên quan đến câu hỏi ở đây (ai biết, có thể B đã nhận được giấy phép LGPL từ A trên mã của họ để có thể được phát hành theo LGPL? ).

Câu hỏi là "Bạn có thể xây dựng một phần mềm GPL dựa trên mã LGPL không?" Câu trả lời cho điều này chỉ đơn giản là "có".

LGPL ít hạn chế hơn GPL (vì vậy tại sao B vi phạm giấy phép trên A trừ khi các quy định khác được đưa ra), nhưng cũng cho phép đưa nó trở lại dự án GPL khá dễ dàng.

Từ giấy phép LGPL:

  1. Mã đối tượng Kết hợp tài liệu từ các tệp tiêu đề thư viện. Dạng mã đối tượng của Ứng dụng có thể kết hợp tài liệu từ tệp tiêu đề là một phần của Thư viện. Bạn có thể truyền tải mã đối tượng đó theo các điều khoản bạn chọn, miễn là, nếu vật liệu được kết hợp không bị giới hạn ở các tham số số, bố cục và trình truy cập cấu trúc dữ liệu hoặc các macro nhỏ, hàm và mẫu nội tuyến (có độ dài mười hoặc ít hơn), bạn làm cả hai điều sau đây:

    a) Đưa ra thông báo nổi bật với mỗi bản sao của mã đối tượng mà Thư viện được sử dụng trong đó và Thư viện và việc sử dụng nó được bao phủ bởi Giấy phép này.
    b) Kèm theo mã đối tượng với một bản sao GPL GNU và tài liệu giấy phép này.

Đó là một phần của giấy phép. Bạn có thể dễ dàng xây dựng phần mềm GPL dựa trên mã LGPL.

Có một số khác biệt về phiên bản mà bạn sẽ phải chú ý để đảm bảo rằng mã được cấp phép theo đúng cách, theo phiên bản chính xác của GPL.


Trong trường hợp không có thông tin giấy phép được trình bày, bạn không có quyền gia hạn theo thông tin đó. B không nên được phân phối, nhưng đóng góp của nó không được cấp phép theo giấy phép nguồn mở. Đây có thể là một dự án nội bộ đã được xuất bản hoặc một số sự kiện khác.

Nó không được trình bày theo giấy phép tương thích với việc gia hạn với GPL. Hãy xem xét tình huống mà một công ty, sử dụng phần mềm GPL trong nội bộ (chấp nhận được - không vi phạm), đã nhầm lẫn công khai repo của họ.

Trong trường hợp này, hoàn toàn có khả năng dự án C đã vi phạm bản quyền vi phạm bản quyền (tài liệu mà B thêm vào không được cấp phép theo GPL vì không nên phân phối ở nơi đầu tiên).

Người ta không thể ép buộc giấy phép trên nguồn của người khác. Nó hoặc là tuân thủ giấy phép, hoặc vi phạm nó. Nếu nó vi phạm nó, thì như được đánh vần trong giấy phép:

Bạn không được tuyên truyền hoặc sửa đổi một tác phẩm được bảo hiểm trừ khi được cung cấp rõ ràng theo Giấy phép này. Bất kỳ nỗ lực nào khác để tuyên truyền hoặc sửa đổi nó đều vô hiệu và sẽ tự động chấm dứt các quyền của bạn theo Giấy phép này (bao gồm mọi giấy phép bằng sáng chế được cấp theo đoạn thứ ba của phần 11).

Vi phạm GPL không có nghĩa là tài liệu nằm dưới GPL, mà là nó không thể được phân phối.


3
Câu trả lời tốt. Bạn đã xem xét cam kết với đề xuất Stackexchange mã nguồn mở chưa?
Philipp

5
@Andrej Người duy nhất có quyền xác định B được cấp phép như thế nào là những người đã viết B. Nếu A là GPL'ed, họ có tùy chọn "không phân phối" hoặc "giấy phép như GPL". Rằng nó được phân phối nhầm, không có nghĩa là nó được cấp phép như GPL.

6
Ngoài ra, rất hay về "bạn không biết nếu B có giấy phép khác với các tác giả của A;" Có thể B hoàn toàn không vi phạm bản quyền của A, vì bạn không biết B đang sử dụng A theo GPL (các tác giả của A có thể cấp nhiều giấy phép bao nhiêu loại tùy thích và có thể cung cấp nó theo GPL bán giấy phép cho nó cho phép bạn sử dụng nó trong mã độc quyền).
cpast

1
Trong trường hợp tác giả của B nhận được A theo giấy phép GPL, thực tế phân phối không buộc GPL vào B. Nhưng có giấy phép nào sẽ làm điều này không? Vì vậy, một người có thể xuất bản phần mềm của nó và chắc chắn rằng bất cứ ai cũng sẽ có quyền truy cập vào tất cả các công cụ phái sinh được công bố trong tương lai? Và cho phép bất cứ ai để buộc giấy phép về phái sinh. (Tôi có thể bắt đầu một câu hỏi mới cho câu hỏi này :))
Andrej

2
Thứ tư, một EULA là rất nhiều, rất nhiều, nhiều vấn đề pháp lý hơn so với GPL. GPL áp đặt không hạn chế; bất kỳ hạn chế nào thực sự là từ luật bản quyền theo luật định (những gì GPL làm là từ bỏ những hạn chế đó trong một số trường hợp). Đó là lý do tại sao GPL hoạt động tốt như vậy - không có thứ gọi là "vi phạm GPL", chỉ vi phạm bản quyền . Với EULA, bạn cần khiến mọi người đồng ý hạn chế; điều này có nghĩa là bạn đang ở trong vương quốc của luật hợp đồng, điều này rất u ám và chứa đầy những biện pháp phòng vệ có thể xảy ra, giống như ai đó không đồng ý (bạn không cần phải đồng ý với bản quyền).
cpast

4

Có chủ bản quyền: Có bản quyền đối với các tác phẩm do A tạo ra, có bản quyền về các bổ sung của B và có bản quyền về mọi thay đổi mà C đã thực hiện. C phải kiểm tra xem anh ta có được phép sử dụng phần mềm mà A và B giữ bản quyền hay không.

A đã được cấp phép theo GPL. Tôi khá chắc chắn rằng GPL cho phép bạn sử dụng công việc của A theo các điều khoản GPL, ngay cả khi bạn nhận được chúng từ B, người đã cấp phép cho họ không chính xác. Có thể có vấn đề thực tế: Ví dụ, bạn phải có khả năng cung cấp mã nguồn. Nếu bạn nhận được phần mềm mà không có mã nguồn, thì bạn không có cách nào để xuất bản nó theo các điều khoản của GPL.

B được cấp phép theo một số giấy phép khác. B đáng lẽ phải được cấp phép theo GPL, nhưng không phải. Nếu giấy phép của B cung cấp cho bạn nhiều quyền hơn GPL, thì thực tế bạn không có bất kỳ quyền nào đối với mã A - B không thể cung cấp cho bạn quyền bổ sung đối với mã của A. Bạn có thể sử dụng mã của A theo các điều khoản GPL vì A cho phép mã đó và mã bổ sung của B theo giấy phép của B.

Nếu B phát hành mã của họ theo giấy phép chặt chẽ hơn GPL, thì B rất có thể vi phạm bản quyền. Bạn không thể sử dụng mã B theo giấy phép GPL. Điều đó thường bị nhầm lẫn: GPL không thể buộc B làm bất cứ điều gì. Nó chỉ mang lại cho B sự lựa chọn: Xuất bản theo cách này, và nó là hợp pháp, hoặc xuất bản theo cách khác, và đó là bất hợp pháp. B có quyền làm điều gì đó bất hợp pháp và phải chịu hậu quả (bị kiện vì vi phạm bản quyền). Bạn không có bất kỳ quyền nào đối với mã của B mà B đã không cung cấp cho bạn.


3

Về mặt kỹ thuật, có thể mở rộng thư viện GPL với mã không được cấp phép bởi giấy phép GPL. Điều khó khăn là khi bạn phân phối tác phẩm phái sinh mà bạn đã tạo, bạn phải tuân thủ tất cả các yêu cầu mà GPL đặt ra cho bạn.

Trong tình huống của bạn, điều này có nghĩa là có thể có thư viện A theo GPL và mã mới trong thư viện B theo LGPL. Công việc kết hợp (thư viện B) được phân phối hiệu quả theo giấy phép GPL và có thể được phân phối như vậy vì giấy phép LGPL tương thích với giấy phép GPL (bạn có thể sử dụng mã giấy phép LGPL trong dự án được cấp phép GPL).
Trong tình huống đó, việc có mã mới trong thư viện C theo GPL là hoàn toàn tốt , với kết quả cũng hoạt động theo GPL.


Điều này chỉ hoạt động vì các phần LGPLed của B có thể được sử dụng với GPLed A theo GPL. Nếu mã mới nằm dưới một số giấy phép mâu thuẫn với GPL (ví dụ: tất cả các quyền), bạn không thể giả sử B nói chung được phân phối hiệu quả theo GPL.
cpast

1
@cpast: Bạn nói đúng, tôi quên đề cập rằng LGPL tương thích với GPL. Nếu giấy phép không tương thích, bạn sẽ không được phép phân phối kết quả.
Bart van Ingen Schenau
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.