Đây không phải là một vấn đề rõ ràng. Hãy xem xét hai đầu cực của phổ:
Phần mềm máy khách độc quyền của bạn là máy khách HTTP và nó hiển thị các phản hồi HTML. Nó có thể hoạt động với bất kỳ máy chủ HTTP nào. Máy chủ HTTP mà bạn sử dụng cho dịch vụ của mình tình cờ sử dụng các thành phần GPL.
Bạn có một chương trình sử dụng các thành phần được cấp phép GPL. Bạn chọn một điểm tùy ý trong hoạt động của chương trình đó và chia chương trình thành hai chương trình. Hai chương trình giao tiếp qua một mạng hop hoàn toàn thừa. Bạn đặt tất cả các thành phần được cấp phép GPL trong chương trình và giấy phép đầu tiên theo GPL và bạn cấp phép cho chương trình khác theo giấy phép không tương thích GPL.
Trường hợp đầu tiên rõ ràng là ổn. Trường hợp thứ hai rõ ràng là không ổn. Bạn chưa cung cấp nhiều thông tin về trường hợp cụ thể của mình và ngay cả khi bạn đã làm, chỉ có phán quyết của tòa án có thể quyết định dứt khoát liệu bạn có đúng hay không.
Câu hỏi thường gặp về GPL có điều này để nói về các chương trình được cấp phép riêng biệt, có thể tương tác :
Tuy nhiên, trong nhiều trường hợp, bạn có thể phân phối phần mềm được bảo hiểm GPL cùng với hệ thống độc quyền của bạn. Để thực hiện điều này một cách hợp lệ, bạn phải đảm bảo rằng các chương trình miễn phí và không miễn phí giao tiếp với nhau , chúng không được kết hợp theo cách có thể khiến chúng trở thành một chương trình duy nhất một cách hiệu quả.
Sự khác biệt giữa phần mềm này và phần mềm kết hợp với phần mềm được bảo vệ bởi GPL một phần là vấn đề về bản chất và một phần hình thức. Phần thực chất là đây: nếu hai chương trình được kết hợp để chúng trở thành hai phần của một chương trình một cách hiệu quả, thì bạn không thể coi chúng là hai chương trình riêng biệt. Vì vậy, GPL phải bao gồm toàn bộ.
Bạn phải quyết định xem bạn có nghĩ rằng máy khách của mình là máy chủ đáp ứng tiêu chuẩn "hai phần của cùng một chương trình" (và do đó mỗi phần phải được cấp phép theo GPL) hay không. Câu hỏi thường gặp về GPL đưa ra một số giải thích thêm về chủ đề này cho một câu hỏi khác :
Đâu là ranh giới giữa hai chương trình riêng biệt và một chương trình có hai phần? Đây là một câu hỏi pháp lý, mà cuối cùng các 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 cả vào cơ chế giao tiếp (exec, pipe, rpc, chức năng gọi trong một không gian địa chỉ dùng chung, v.v.) và ngữ nghĩa của giao tiếp (loại thông tin nào được hoán đổi cho nhau).
...
Ngược lại, đường ống, ổ cắm và đối số dòng lệnh là các cơ chế giao tiếp 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 để liên lạc, 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 đủ thân mật, trao đổi các cấu trúc dữ liệu nội bộ phức tạp, thì đó 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 .
Vì vậy, giao tiếp mạng chắc chắn vượt qua bài kiểm tra "cơ chế giao tiếp" nhưng không rõ cặp khách hàng / máy chủ của bạn rơi vào bài kiểm tra "ngữ nghĩa của giao tiếp".