आप अपने प्रोग्राम से बिना GPL से प्रभावित हुए GPLed प्रोग्राम का उपयोग कर सकते हैं , लेकिन GPLed कोड को आप अपने प्रोग्राम में GPL की शर्तों के अधीन बने बिना अपने प्रोग्राम में लिंक नहीं कर सकते।
प्रश्न में प्रदान किए गए उदाहरण में, जिसमें आपने एक मौजूदा कमांड-लाइन प्रोग्राम के आसपास एक GUI आवरण लिखा है, आपका GUI GPL की शर्तों से बाध्य नहीं है, बशर्ते कि यह एक अलग प्रोग्राम है जो GPLed प्रोग्राम को चलाता है अलग प्रक्रिया और इसके साथ केवल मौजूदा इंटरफ़ेस (एस) के माध्यम से संचार करता है - उदाहरण के लिए, कमांड लाइन पर और / या स्टड / स्टडआउट के माध्यम से।
GPL से कुछ प्रासंगिक बिट्स :
दो अलग-अलग कार्यक्रमों के बीच की रेखा और दो भागों के साथ एक कार्यक्रम कहां है? यह एक कानूनी सवाल है, जो आखिरकार न्यायाधीश ही तय करेंगे। हमारा मानना है कि एक उचित मानदंड संचार के तंत्र (निष्पादन, पाइप, आरपीसी, एक साझा पता स्थान, आदि के भीतर फ़ंक्शन कॉल) और संचार के शब्दार्थ (किस प्रकार की जानकारी आपस में जुड़े हुए हैं) पर निर्भर करता है।
यदि मॉड्यूल एक ही निष्पादन योग्य फ़ाइल में शामिल हैं, तो वे निश्चित रूप से एक कार्यक्रम में संयुक्त हैं। यदि मॉड्यूल को एक साझा पता स्थान में एक साथ लिंक करने के लिए डिज़ाइन किया गया है, तो इसका मतलब है कि लगभग निश्चित रूप से उन्हें एक कार्यक्रम में संयोजित करना है।
इसके विपरीत, पाइप, सॉकेट और कमांड-लाइन तर्क दो अलग-अलग कार्यक्रमों के बीच आम तौर पर उपयोग किए जाने वाले संचार तंत्र हैं। इसलिए जब वे संचार के लिए उपयोग किए जाते हैं, तो मॉड्यूल सामान्य रूप से अलग-अलग कार्यक्रम होते हैं। लेकिन अगर संचार के शब्दार्थ पर्याप्त अंतरंग हैं, जटिल आंतरिक डेटा संरचनाओं का आदान-प्रदान करते हैं, तो वह भी दो भागों को एक बड़े कार्यक्रम में संयुक्त रूप से विचार करने का एक आधार हो सकता है।
क्या मैं एक गैर-मुक्त कार्यक्रम जारी कर सकता हूं जिसे जीपीएल-कवर प्लग-इन लोड करने के लिए डिज़ाइन किया गया है?
यह इस बात पर निर्भर करता है कि प्रोग्राम अपने प्लग-इन को कैसे लागू करता है। उदाहरण के लिए, यदि प्रोग्राम प्लग-इन को लागू करने और संचार करने के लिए केवल साधारण कांटा और निष्पादन का उपयोग करता है, तो प्लग-इन अलग-अलग प्रोग्राम हैं, इसलिए प्लग-इन का लाइसेंस मुख्य कार्यक्रम के बारे में कोई आवश्यकता नहीं बनाता है।
यदि प्रोग्राम गतिशील रूप से प्लग-इन को जोड़ता है, और वे एक-दूसरे को फ़ंक्शन कॉल करते हैं और डेटा संरचनाओं को साझा करते हैं, तो हमारा मानना है कि वे एक एकल कार्यक्रम बनाते हैं, जिसे मुख्य कार्यक्रम और प्लग-इन दोनों के विस्तार के रूप में माना जाना चाहिए। जीपीएल-कवर किए गए प्लग-इन का उपयोग करने के लिए, मुख्य कार्यक्रम को जीपीएल या जीपीएल-संगत मुफ्त सॉफ्टवेयर लाइसेंस के तहत जारी किया जाना चाहिए, और यह कि जीपीएल की शर्तों का पालन किया जाना चाहिए जब इन के साथ उपयोग के लिए मुख्य कार्यक्रम वितरित किया जाता है प्लग-इन।
यदि प्रोग्राम गतिशील रूप से प्लग-इन को जोड़ता है, लेकिन उनके बीच का संचार कुछ विकल्पों के साथ प्लग-इन के 'मुख्य' फ़ंक्शन को लागू करने और इसे वापस आने के लिए इंतजार करने तक सीमित है, यह एक सीमावर्ती मामला है।
ध्यान दें कि GPL किसी भी स्थिति में अंतर्निहित कमांड-लाइन प्रोग्राम के लिए पूर्ण रूप से लागू होता है - यदि आप इसे वितरित करते हैं (जैसा कि उपयोगकर्ताओं द्वारा इसे किसी अन्य स्रोत से प्राप्त करने का विरोध किया जाता है), तो आप उपयोगकर्ताओं को GPL की एक प्रति प्रदान करने के लिए ज़िम्मेदार हैं, जो इसे बनाते हैं उन्हें स्पष्ट है कि कमांड-लाइन प्रोग्राम जीपीएल (भले ही जीयूआई आवरण नहीं है) के तहत है, और कमांड-लाइन प्रोग्राम के स्रोत कोड को उनके अनुरोध पर उपलब्ध करा रहा है। GPL से फिर से पूछे जाने वाले प्रश्न:
यदि लोग GPL- कवर किए गए सॉफ़्टवेयर को "इसे" का एक हिस्सा कहते हैं, जो उपयोगकर्ताओं को आंशिक रूप से मालिकाना है, तो उपयोगकर्ता को GPL- कवर सॉफ़्टवेयर के बारे में उनके अधिकारों के बारे में अनिश्चितता हो सकती है। लेकिन अगर वे जानते हैं कि उन्हें जो मिला है वह एक मुफ्त कार्यक्रम और एक अन्य कार्यक्रम है, तो उनके पक्ष स्पष्ट होंगे।
मानक अस्वीकरण: मैं एक वकील नहीं हूँ और, भले ही मैं एक वकील था, मैं आपका वकील नहीं हूँ । यदि आपको एक निश्चित उत्तर की आवश्यकता है, तो एक उचित कानूनी पेशेवर से परामर्श करें, जिसे आपके अधिकार क्षेत्र में अभ्यास करने के लिए लाइसेंस प्राप्त है।