यदि मैं केवल क्लाइंट सॉफ़्टवेयर वितरित कर रहा हूं तो क्या मैं अपने सर्वर पर जीपीएल लाइसेंस प्राप्त सॉफ़्टवेयर का उपयोग कर सकता हूं?


15

मैं GPL के नियमों को समझता हूं कि यदि मैं GPL कोड का उपयोग करके कोई सॉफ़्टवेयर वितरित करता हूं, तो उस कोड को GPL के तहत लाइसेंस प्राप्त होना चाहिए ।

हालांकि, मैं सोच रहा हूं कि इस मामले में क्या नियम हैं: मैं एक सेवा बना रहा हूं जहां मैं क्लाइंट साइड सॉफ्टवेयर बेच और वितरित करूंगा ।

क्लाइंट साइड सॉफ्टवेयर का इसमें कोई GPL कोड नहीं है। यह 100% मेरा अपना कोड है।

हालाँकि, क्लाइंट सॉफ़्टवेयर मेरे सर्वर से जुड़ जाएगा, जो आंतरिक रूप से GPL कोड का उपयोग करता है।

मैं अपने सर्वर साइड सॉफ्टवेयर का वितरण नहीं कर रहा हूं ; सर्वर साइड सॉफ्टवेयर एक समर्पित सर्वर पर रहेगा जिसे मैं अकेला नियंत्रित करता हूं, लेकिन क्लाइंट साइड सॉफ्टवेयर उक्त सर्वर से जुड़े बिना काम नहीं करेगा।

क्या यह एक सॉफ्टवेयर के रूप में गिना जाता है? यदि मैं ऐसा करता, तो क्या मुझे GPL के रूप में अपने क्लाइंट साइड सोर्स कोड को लाइसेंस की आवश्यकता होगी? या, क्या मैं अपने साइड कोड को जारी किए बिना क्लाइंट साइड सॉफ्टवेयर बेच सकता हूं?

जवाबों:


12

यह एक स्पष्ट मुद्दा नहीं है। स्पेक्ट्रम के दो चरम सिरों पर विचार करें:

  1. आपका मालिकाना क्लाइंट सॉफ्टवेयर एक HTTP क्लाइंट है और यह HTML प्रतिक्रियाओं को प्रस्तुत करता है। यह किसी भी HTTP सर्वर के साथ काम कर सकता है। HTTP सर्वर जो आप अपनी सेवा के लिए उपयोग करते हैं, वह GPL घटकों का उपयोग करने के लिए होता है।

  2. आपके पास एक प्रोग्राम है जो GPL- लाइसेंस प्राप्त घटकों का उपयोग करता है। आप उस कार्यक्रम के संचालन में एक मनमाना बिंदु चुनते हैं और कार्यक्रम को दो कार्यक्रमों में तोड़ देते हैं। दो कार्यक्रम पूरी तरह से शानदार नेटवर्क हॉप पर संवाद करते हैं। आप पहले प्रोग्राम में सभी GPL- लाइसेंस प्राप्त घटक रखते हैं और GPL के तहत लाइसेंस देते हैं, और आप GPL- असंगत लाइसेंस के तहत दूसरे प्रोग्राम को लाइसेंस देते हैं।

पहला मामला स्पष्ट रूप से ठीक है। दूसरा मामला स्पष्ट रूप से ठीक नहीं है। आपने अपने विशेष मामले के बारे में अधिक जानकारी नहीं दी है, और यदि आपने किया भी है, तो केवल एक अदालत का फैसला निश्चित रूप से तय कर सकता है कि क्या आप सही हैं।

GPL अकसर किये गए सवाल को अलग-अलग लाइसेंस प्राप्त कार्यक्रमों के लिए अलग-अलग कहा जाता है :

हालाँकि, कई मामलों में आप अपने मालिकाना प्रणाली के साथ-साथ जीपीएल-कवर सॉफ्टवेयर वितरित कर सकते हैं। इसे वैध रूप से करने के लिए, आपको यह सुनिश्चित करना होगा कि नि: शुल्क और गैर-मुक्त कार्यक्रम हथियारों की लंबाई पर संवाद करते हैं, कि वे एक तरह से संयुक्त नहीं हैं जो उन्हें प्रभावी रूप से एकल कार्यक्रम बना देगा।

इस और GPL- कवर सॉफ्टवेयर को "शामिल करना" के बीच अंतर आंशिक रूप से पदार्थ और आंशिक रूप से है। मूल भाग यह है: यदि दो कार्यक्रमों को संयोजित किया जाता है ताकि वे प्रभावी रूप से एक कार्यक्रम के दो भाग बन जाएँ, तो आप उन्हें अलग अलग कार्यक्रमों के रूप में नहीं मान सकते। तो जीपीएल को पूरी बात कवर करनी है।

आपको यह तय करना होगा कि क्या आपको लगता है कि आपके ग्राहक "समान कार्यक्रम के दो भागों" के मानक को पूरा करते हैं (और इसलिए प्रत्येक को जीपीएल के तहत लाइसेंस प्राप्त होना चाहिए) या नहीं। इस सवाल पर GPL FAQ कुछ और स्पष्टीकरण देता है :

दो अलग-अलग कार्यक्रमों और दो भागों के साथ एक कार्यक्रम के बीच की रेखा कहां है? यह एक कानूनी सवाल है, जो आखिरकार न्यायाधीश ही तय करेंगे। हम मानते हैं कि एक उचित मानदंड संचार के तंत्र (निष्पादन, पाइप, आरपीसी, एक साझा पता स्थान, आदि के भीतर फ़ंक्शन कॉल) और संचार के शब्दार्थ (किस प्रकार की जानकारी आपस में जुड़े हुए हैं) पर निर्भर करता है ।

...

इसके विपरीत, पाइप, सॉकेट और कमांड-लाइन तर्क संचार तंत्र हैं जो आमतौर पर दो अलग-अलग कार्यक्रमों के बीच उपयोग किए जाते हैं। इसलिए जब वे संचार के लिए उपयोग किए जाते हैं, तो मॉड्यूल सामान्य रूप से अलग-अलग प्रोग्राम होते हैं। लेकिन अगर संचार के शब्दार्थ पर्याप्त अंतरंग हैं, जटिल आंतरिक डेटा संरचनाओं का आदान-प्रदान करते हैं, तो वह भी दो भागों को एक बड़े कार्यक्रम के रूप में संयुक्त करने पर विचार करने का एक आधार हो सकता है

तो, नेटवर्क संचार निश्चित रूप से "संचार के तंत्र" परीक्षा पास करता है, लेकिन यह स्पष्ट नहीं है कि आपके क्लाइंट / सर्वर की जोड़ी "संचार के शब्दार्थ" परीक्षण पर आती है।


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

हम्म। मैंने यह सवाल इतनी अस्पष्टता से पूछा क्योंकि मैं सामान्य रूप से जीपीएल के बारे में उत्सुक था। हालांकि, मुझे लगता है कि मैं अब अंतर को समझता हूं। यदि मेरे सर्वर में उपयोगकर्ता खाता जानकारी है जिसे मेरे क्लाइंट सॉफ़्टवेयर को चलाने की आवश्यकता है, तो वह स्पष्ट रूप से GPL का उल्लंघन करता है। यदि मेरा सर्वर पैकेट रिले सर्वर जैसा कुछ है जो मेरे क्लाइंट सॉफ़्टवेयर के दो संस्करणों को एक दूसरे के साथ संवाद करने की अनुमति देता है, तो यह ठीक होगा। क्या मैं इन धारणाओं में सही हूं?
स्टीवन जेफ्रीज

4

एक नेटवर्क पर संचार करने वाली दो प्रक्रियाएं एक व्युत्पन्न कार्य के निर्माण को नहीं करती हैं जिस तरह से एक पुस्तकालय के साथ निष्पादन योग्य का जुड़ाव होता है। तो सर्वर पर GPL कोड क्लाइंट कोड पर लागू नहीं होता है।

जीपीएल के तहत, आपको बायनेरिज़ वितरित करते समय संशोधित स्रोत कोड वितरित करने की आवश्यकता होती है। चूंकि आप सर्वर बायनेरिज़ वितरित नहीं कर रहे हैं, इसलिए आपको सर्वर स्रोत कोड वितरित करने की आवश्यकता नहीं है।

GNU Affero GPL अतिरिक्त लाइसेंस के साथ GPL के समान एक लाइसेंस है, जिसे इस बहुत लूप होल को बंद करने के लिए डिज़ाइन किया गया है जिसका आप लाभ उठाना चाहते हैं (देखें: http://www.gnu.org/licenses/why-affero-gpl.html और http://en.wikipedia.org/wiki/Affero_General_Public_License#Examples_of_web_applications_under_GNU_AGPL )।

डिस्क्लेमर: मैं एक डेवलपर हूं, वकील नहीं।


3
बस चेतावनी का एक नोट: ग्राहक विशेष रूप से के साथ संवाद करने के लिए बनाया गया है, तो यह सर्वर सॉफ्टवेयर, तो यह पूरी तरह संभव है कि FSF करता है के रूप में सर्वर और ग्राहक सॉफ्टवेयर पर विचार एक उत्पाद। GPL FAQ में यहाँ
बार्ट वैन इनगेन शेनॉ

दूसरी ओर, यदि कोई तृतीय पक्ष क्लाइंट सॉफ़्टवेयर को आपके सर्वर के साथ संवाद करने के लिए लिखता है, तो कभी सर्वर सॉफ़्टवेयर या लाइसेंस देखे बिना, वह तर्क हास्यास्पद लगता है। और इसका मतलब होगा कि Microsoft उदाहरण के लिए, आउटलुक सर्वर से जुड़ने वाले किसी भी सॉफ्टवेयर पर मुकदमा कर सकता है।
gnasher729

2

क्या क्लाइंट सॉफ्टवेयर अपने उचित कामकाज के लिए सर्वर सॉफ्टवेयर पर निर्भर करता है? दूसरे शब्दों में, क्या क्लाइंट सॉफ्टवेयर सर्वर से जुड़े बिना काम करेगा?

यदि इसका उत्तर "हाँ" है, और सर्वर केवल एक अतिरिक्त सुविधा प्रदान करता है, और कोर समर्थन नहीं, आपके क्लाइंट सॉफ़्टवेयर को, तो आप शायद स्पष्ट हैं। यदि सर्वर सॉफ़्टवेयर क्लाइंट सॉफ़्टवेयर का एक अभिन्न अंग है और क्लाइंट सॉफ़्टवेयर को कोर फ़ंक्शनलिटी प्रदान करता है (यानी क्लाइंट सॉफ़्टवेयर सर्वर के बिना काम नहीं करेगा), तो संयोजन एक व्युत्पन्न कार्य है, जो GPL के अंतर्गत आता है।


मैं सावधानी के साथ गलती करूंगा और अपने सर्वर में GPL कोड का उपयोग नहीं करूंगा।
स्टीवन जेफ्रीस

2
@StevenJeffries यह उत्तर वर्तमान अभ्यास और GPL की आवश्यकताओं के विरुद्ध चलता है। जब तक मैं किसी सॉफ़्टवेयर या व्युत्पन्न कार्य को वितरित नहीं करता, तब तक मैं एक सर्वर, जैसे लिनक्स या जीसीसी या वर्डप्रेस पर GPL'ed सॉफ़्टवेयर का उपयोग करने के लिए स्वतंत्र हूं। एक सॉफ्टवेयर का उपयोग करके केवल एक व्युत्पन्न कार्य नहीं बनता है। जीपीएल के मामले में, इसे तब ठीक माना जाता है जब कम से कम प्रक्रिया-स्तरीय अलगाव शामिल हो (कोई साझा मेमोरी, कोई साझा डेटा संरचना नहीं)। सही समाधान के लिए और संदर्भ के लिए जे। लेन्थे का उत्तर देखें।
आमोन

@amon: यदि आप सर्वर और क्लाइंट के बीच डेटा संरचनाओं को साझा नहीं कर रहे हैं, तो आप सही हैं। मुझे संदेह है कि यह मामला है, हालांकि। मैं जो आरेखण कर रहा हूं, वह है (क्लाइंट सॉफ्टवेयर अपने उचित निष्पादन के लिए सर्वर सॉफ्टवेयर पर निर्भर है) मनमाना नहीं है; यह दो आवश्यक आवश्यकताओं में से एक है कि एफएसएफ क्या "व्युत्पन्न कार्य" नहीं मानता है? अन्य "हथियारों की लंबाई संचार है।" इसके लिए मेरा शब्द मत लो; इसे FSF वेबसाइट पर अपने लिए पढ़ें।
रॉबर्ट हार्वे

@amon: आप इसके बारे में और अधिक यहाँ पढ़ सकते हैं ।
रॉबर्ट हार्वे

@amon एक और बहुत प्रासंगिक जीपीएल FAQ आइटम (रॉबर्ट के लिंक को पढ़ने के बाद अनुवर्ती के रूप में अच्छा) यह एक है, विशेष रूप से पिछले तीन पैराग्राफ: gnu.org/licenses/gpl-faq.html#MereAggregation
apsillers
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.