2008-12-25 22 views
5

Nếu tôi phát triển trình bao bọc GUI chỉ thực hiện một ứng dụng GPL cli (vì lợi ích của đối số, nói tar) tôi có phải giải phóng trình bao bọc GUI là GPL không? Nó là một tác phẩm phái sinh?Trình bao bọc GUI xung quanh ứng dụng GPL CLI, nó có phải là một dẫn xuất không?

Nếu đó là tác phẩm phái sinh thì tôi phải phát hành cái gì?

Cả hai ứng dụng GPL và wrapper sẽ được phân phối cùng

+0

Bạn có thể định nghĩa chính xác hơn "trình bao bọc" - liên kết ứng dụng GUI có chống lại mã GPL hay không chỉ thực hiện nhị phân? – Rob

+0

Nó chỉ đơn thuần là excutes nhị phân, sẽ thêm vào mô tả;) – hhafez

+0

Nếu nó là một tác phẩm phái sinh, bạn nên cấp phép chương trình của bạn theo GPL và phát hành ("làm sẵn") mã nguồn của nó bất cứ khi nào bạn phân phối nó. – ShreevatsaR

Trả lời

8

IANAL. Trích dẫn phần mere aggregation của Câu hỏi thường gặp về GPL (nhấn mạnh mỏ):

Một "tổng hợp" bao gồm một số chương trình riêng biệt, được phân phối trên cùng một đĩa CD-ROM hoặc phương tiện khác. GPL cho phép bạn tạo và phân phối tổng hợp, ngay cả khi giấy phép của phần mềm khác không miễn phí hoặc không tương thích với GPL. Điều kiện duy nhất là bạn không thể phát hành tổng hợp theo giấy phép cấm người dùng thực hiện các quyền mà mỗi giấy phép cá nhân của từng chương trình sẽ cấp cho họ.

Đường nối giữa hai chương trình riêng biệt và một chương trình có hai phần là gì? Đây là một câu hỏi pháp lý, mà cuối cùng thẩm phán sẽ quyết định. Chúng tôi tin rằng một tiêu chí phù hợp phụ thuộc vào cơ chế truyền thông (exec, pipe, rpc, function calls trong một không gian địa chỉ dùng chung, vv) và ngữ nghĩa của giao tiếp (loại thông tin nào được trao đổi).

Nếu các mô-đun được bao gồm trong cùng một tệp thi hành, chúng chắc chắn được kết hợp trong một chương trình. Nếu các mô-đun được thiết kế để chạy liên kết với nhau trong một không gian địa chỉ dùng chung, điều đó gần như chắc chắn có nghĩa là kết hợp chúng thành một chương trình.

Ngược lại, đường ống, ổ cắm và đối số dòng lệnh là cơ chế truyền thông thường được sử dụng giữa hai chương trình riêng biệt. Vì vậy, khi chúng được sử dụng để giao tiếp, các mô-đun thường là các chương trình riêng biệt. Nhưng nếu ngữ nghĩa của giao tiếp là đủ thân mật, trao đổi cấu trúc dữ liệu nội bộ phức tạp, điều đó cũng có thể là cơ sở để xem xét hai phần được kết hợp thành một chương trình lớn hơn.

Một question từ Câu Hỏi Thường Gặp liên quan vấn đề này là "Nếu một chương trình phát hành dưới GPL sử dụng plug-in, các yêu cầu về giấy phép của một plug-in là gì":

Nó phụ thuộc vào cách chương trình gọi các trình cắm thêm của nó. Nếu chương trình sử dụng ngã baexec để gọi trình cắm, thì trình cắm là các chương trình riêng biệt, vì vậy giấy phép cho chương trình chính không yêu cầu đối với chúng.

..

IMHO, về tinh thần, trình bao bọc thuần túy chỉ thể hiện chức năng của chương trình GPL phải là GPL.

+0

Tôi đồng ý. IMHO, một trình bao bọc được viết đặc biệt cho một ứng dụng là một dẫn xuất ít nhất là trong tinh thần, trừ khi nó là một cái gì đó đủ chung để hoạt động như một trình bao bọc cho một lớp lớn các chương trình. – ShreevatsaR

+0

+1 để trích dẫn cuộc thảo luận về các tác phẩm phái sinh và thông tin liên lạc "thân mật". – emk

2

IANAL, nhưng tôi khá chắc chắn rằng nếu bạn không liên kết mã GPL với mã của bạn và chỉ cần sử dụng CLI, bạn mã không phải là bị ảnh hưởng bởi GPL. Bạn chỉ có nghĩa vụ là phân phối nguồn của mã GPL.

Nếu bạn quyết định phân phối ứng dụng GPL, tôi khuyên bạn chỉ nên bao gồm tar nguồn đã nén trên phương tiện, thay vì chỉ "cung cấp" thông qua tải xuống, vì bạn sẽ phải duy trì trang web tải xuống vô thời hạn cho tất cả các phiên bản ứng dụng GPL mà bạn phân phối.

Các vấn đề liên quan