นี่ไม่ใช่ปัญหาที่ชัดเจน พิจารณาสองปลายสุดของสเปกตรัม:
ซอฟต์แวร์ไคลเอ็นต์ที่เป็นกรรมสิทธิ์ของคุณคือไคลเอนต์ HTTP และแสดงการตอบกลับ HTML มันสามารถทำงานกับเซิร์ฟเวอร์ HTTP ใดก็ได้ เซิร์ฟเวอร์ HTTP ที่คุณใช้สำหรับบริการของคุณเกิดขึ้นเพื่อใช้ส่วนประกอบ GPL
คุณมีโปรแกรมที่ใช้คอมโพเนนต์ที่มีลิขสิทธิ์ GPL คุณเลือกจุดที่ต้องการในการทำงานของโปรแกรมนั้นและแยกโปรแกรมออกเป็นสองโปรแกรม ทั้งสองโปรแกรมสื่อสารผ่านเครือข่ายฟุ่มเฟือยโดยสิ้นเชิง คุณใส่ส่วนประกอบที่มีลิขสิทธิ์ GPL ทั้งหมดในโปรแกรมแรกและใบอนุญาตภายใต้ GPL และคุณอนุญาตโปรแกรมอื่นภายใต้สิทธิ์การใช้งานที่เข้ากันไม่ได้ของ GPL
กรณีแรกไม่เป็นไร กรณีที่สองไม่ชัดเจน คุณยังไม่ได้ให้ข้อมูลมากนักเกี่ยวกับคดีของคุณและแม้ว่าคุณจะได้รับการพิจารณาคดีของศาลเท่านั้นที่สามารถตัดสินใจได้อย่างชัดเจนว่าคุณถูกหรือไม่
คำถามที่พบบ่อย GPL มีสิ่งนี้จะพูดเกี่ยวกับโปรแกรมที่ทำงานร่วมกันได้ใบอนุญาตแยกต่างหาก :
อย่างไรก็ตามในหลายกรณีคุณสามารถแจกจ่ายซอฟต์แวร์ที่มี GPL ครอบคลุมควบคู่ไปกับระบบกรรมสิทธิ์ของคุณ ในการทำเช่นนี้อย่างถูกต้องคุณต้องตรวจสอบให้แน่ใจว่าโปรแกรมฟรีและที่ไม่ใช่ฟรีสื่อสารที่ความยาวแขนซึ่งจะไม่รวมกันในลักษณะที่จะทำให้โปรแกรมมีประสิทธิภาพเพียงโปรแกรมเดียว
ความแตกต่างระหว่างสิ่งนี้กับ“ การรวม” ซอฟต์แวร์ที่มี GPL เป็นส่วนหนึ่งของสารและรูปแบบบางส่วน ส่วนที่สำคัญคือ: ถ้าทั้งสองโปรแกรมรวมกันเพื่อให้กลายเป็นสองส่วนของโปรแกรมได้อย่างมีประสิทธิภาพคุณจะไม่สามารถปฏิบัติต่อพวกเขาเป็นสองโปรแกรมแยกกันได้ ดังนั้น GPL จึงต้องครอบคลุมทั้งหมด
คุณต้องตัดสินใจว่าคุณคิดว่าไคลเอนต์ของคุณเป็นเซิร์ฟเวอร์ที่ตรงตามมาตรฐานของ "สองส่วนของโปรแกรมเดียวกัน" (และแต่ละอันจะต้องได้รับอนุญาตภายใต้ GPL) หรือไม่ คำถามที่พบบ่อย GPL ให้คำอธิบายเพิ่มเติมเกี่ยวกับหัวข้อนี้ในคำถามอื่น :
เส้นแบ่งระหว่างสองโปรแกรมแยกจากกันและหนึ่งโปรแกรมที่มีสองส่วนคืออะไร นี่เป็นคำถามทางกฎหมายซึ่งท้ายที่สุดผู้พิพากษาจะเป็นผู้ตัดสิน เราเชื่อว่าเกณฑ์ที่เหมาะสมขึ้นอยู่ทั้งในกลไกของการสื่อสาร (exec ท่อ, RPC, ฟังก์ชั่นการโทรภายในพื้นที่ที่อยู่ที่ใช้ร่วมกัน ฯลฯ ) และความหมายของการสื่อสาร (สิ่งที่ชนิดของข้อมูลที่จะสบตา)
...
ในทางตรงกันข้ามไพพ์ซ็อคเก็ตและอาร์กิวเมนต์บรรทัดคำสั่งเป็นกลไกการสื่อสารที่ใช้โดยปกติระหว่างสองโปรแกรมที่แยกกัน ดังนั้นเมื่อมีการใช้เพื่อการสื่อสารปกติโมดูลจะเป็นโปรแกรมแยกต่างหาก แต่ถ้าความหมายของการสื่อสารที่มีความใกล้ชิดพอแลกเปลี่ยนที่ซับซ้อนภายในโครงสร้างข้อมูลที่มากเกินไปอาจจะเป็นพื้นฐานที่จะต้องพิจารณาทั้งสองส่วนมารวมกันเป็นโปรแกรมที่มีขนาดใหญ่
ดังนั้นการสื่อสารผ่านเครือข่ายจะผ่านการทดสอบ "กลไกการสื่อสาร" แต่ไม่ชัดเจนว่าคู่ของลูกค้า / เซิร์ฟเวอร์ของคุณตรงกับการทดสอบ "ความหมายของการสื่อสาร"