लाइब्रेरी को प्रक्रिया से बाहर ले जाकर GPL के उल्लंघन से बचें


21

मान लें कि एक पुस्तकालय है जिसे GPL के तहत लाइसेंस प्राप्त है। मैं इसे बंद स्रोत परियोजना का उपयोग करना चाहता हूं। मैं निम्नलिखित करता हूं:

  1. उस GPL लाइब्रेरी के चारों ओर छोटे रैपर एप्लिकेशन बनाएं जो सॉकेट, पार्स संदेशों को सुनता है और GPL लाइब्रेरी को कॉल करता है। फिर परिणाम वापस लौटता है।
  2. यह स्रोत जारी करें (GPL का अनुपालन करने के लिए)
  3. मेरे मुख्य एप्लिकेशन में इस आवरण के लिए क्लाइंट बनाएं और स्रोत जारी न करें।

मुझे पता है कि यह स्थैतिक / गतिशील लिंकिंग की तुलना में भारी ओवरहेड जोड़ता है, लेकिन मुझे सैद्धांतिक तरीके से दिलचस्पी है।


6
आपके द्वारा लिखा गया रैपर GPL के तहत लाइसेंस प्राप्त होगा। इसलिए रैपर का उपयोग करने वाला कार्यक्रम अभी भी लिंकिंग आदि के लिए जीपीएल की शर्तों के अधीन होगा
TZHX

4
पहले लेखक से संपर्क क्यों न करें और देखें कि क्या आप इसे LGPL के तहत या इसके समान लाइसेंस दे सकते हैं।
जे.के.

8
@TZHX मेरा मानना ​​है कि उसका मतलब है कि रैपर एक अलग अनुप्रयोग होगा जो सर्वर के रूप में कार्य करता है - उसका मालिकाना कोड क्लाइंट में होगा
jk।

बंद स्रोत एप्लिकेशन को भी वितरित किया जाएगा कौन? और GPL का कौन सा संस्करण लाइसेंस है
jk।

2
@jwenting प्रश्न को स्पष्ट रूप से कहते हैं कि यह प्रक्रिया से बाहर चल रहा है
jk।

जवाबों:


32

कानूनी रूप से , मैं कहूंगा कि यह ठीक होगा (लेकिन मैं वकील नहीं हूं - कानूनी सलाह के लिए एक वकील से परामर्श करें)।

नैतिक रूप से , यह बहुत निंदनीय है। यदि आपको GPL पसंद नहीं है, तो "उचित" समाधान GPL लाइब्रेरी का उपयोग नहीं करना है।

संपादित करें : यह स्पष्ट करने के लिए कि गतिशील लिंकिंग की अनुमति दी गई है या नहीं, इस संबंध में GPL के कानूनी स्टैंड के अनुसार, LGPL को विशेष रूप से पुस्तकालयों के मामले में गतिशील लिंकिंग की अनुमति देने के इरादे से बनाया गया था। इसलिए यह मेरे लिए स्पष्ट है कि एलजीपीएल के ऊपर जीपीएल को चुनकर, लाइब्रेरी का लेखक गतिशील रूप से डायलिंग को अस्वीकार करने के लिए ऐसा कर रहा था । एक तकनीकी साधन का उपयोग करना कानूनी प्रतिबंध के आसपास काम करना है जो लेखक के अपने कोड के लिए स्पष्ट इरादे को व्यक्त करता है, जो मेरी राय में निंदनीय है।

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


12
मुझे नहीं लगता कि एक नैतिक समस्या यहां है - जीपीएल स्पष्ट रूप से अपने यूज-केस अनुमति देने के लिए लगता है
जे।

3
@vartec यहां आधिकारिक जीपीएल FAQ से उद्धृत किया गया है: "अन्य मॉड्यूल के साथ सांख्यिकीय या गतिशील रूप से लिंक करना एक संयुक्त कार्य आधारित है। इस प्रकार, GNU जनरल पब्लिक लाइसेंस के नियम और शर्तें पूरे संयोजन को कवर करती हैं।" यदि स्टैलमैन के पास ओपन सोर्स का अलग विजन है, तो इसका मतलब यह नहीं है कि वह उससे नफरत करता है। वह इस आंदोलन के मुख्य विचारक हैं।
एंड्री

8
@vartec: मुझे यह आभास मिलता है कि आप यह नहीं समझते हैं कि, जब आप अपने आवेदन में किसी व्यक्ति के कोड का उपयोग करते हैं, तो आपको उन शब्दों के अनुपालन की आवश्यकता होती है, जो एचआईएस कोड के उपयोग पर डालते हैं। यह पसंद नहीं है? किसी और के GPL'ed कोड का उपयोग न करें। यह सरल है।
जॉन आर। स्ट्रॉहैम

3
यहाँ मेरा सुझाव है: उस जीपीएल कोड से नरक को बाहर निकालो जिस पर आप इतने निर्भर हैं और देखते हैं कि अदालत का मामला कैसे सामने आता है। GPL3 को GPL2 में सिर्फ इस तरह के कानूनी छिद्रों को प्लग करने के लिए बनाया गया था, इसलिए शायद आप इसके साथ दूर हो जाएंगे। मुझे संदेह है कि लोग आपके सम्मान में परेड फेंक देंगे, क्योंकि आप एक कानूनी पैंतरेबाज़ी के साथ भाग गए और यदि आप पर्याप्त प्रभावी हैं, तो लोग आपको कोडित करने के लिए अपने कोड को उपयोग की अधिक शर्तों के साथ लाइसेंस देंगे। अंत में, इस तरह से धागे से बचने से दुनिया में सुधार हो सकता है।
गोडके

3
मैं दृढ़ता से दावा है कि यह नैतिक रूप से निन्दनीय है से असहमत हैं। नैतिक रूप से निंदनीय है लोगों को यह बताना कि उन्हें उन चीजों को करने का कोई अधिकार नहीं है जो GPL उन्हें करने की अनुमति देता है। जब मैं GPL के तहत काम करता हूं, तो मैं ऐसा इसलिए करता हूं क्योंकि मैं चाहता हूं कि GPL के नियम लागू हों। लोगों को यह बताना कि उन्हें जीपीएल द्वारा दिए गए अधिकारों का प्रयोग नहीं करना चाहिए, वह निंदनीय है। यह कुछ ऐसा है जो GPL अनुमति देता है। जीपीएल के तहत काम करने वाले लोग ऐसा करते हैं क्योंकि वे इसकी अनुमति देना चाहते हैं
डेविड श्वार्ट्ज

6

IANAL लेकिन मेरा मानना ​​है कि आप ठीक हैं, GPL3 का प्रासंगिक खंड 5 के अंत में है:

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

यह संभवतः आपके 'ग्राहक' पर निर्भर करता है, mouviciel का जवाब शायद अच्छा मार्गदर्शन है कि इसे सुरक्षित रूप से कैसे किया जाए

यदि आपको लगता है कि आपका ऐप पुस्तकालय से जुड़ा हुआ है, बजाय इसके कि कुछ के साथ एकत्र किया गया है तो आप शायद सही हैं (आपको यह जानने के लिए एक अच्छी जगह पर होना चाहिए) जिस स्थिति में आपका सबसे अच्छा दांव लेखक से संपर्क करना है और इसे प्राप्त करने का प्रयास करना है अलग लाइसेंस

इस मेरी स्थिति वापस करने के लिए है कि इस स्पष्ट रूप से जीपीएल द्वारा अनुमति दी है ठीक से किया यह मानते हुए कि प्रतीत होता है,।


मैंने इसे पढ़ा, लेकिन समस्या यह है कि जीपीएल पाठ कानूनी भाषा में लिखा गया है , विकास में नहीं । आवरण के साथ चाल वाणिज्यिक ऐप को "एग्रीगेट" बनाना है, न कि "व्युत्पन्न"। लेकिन मुझे लगता है कि यह "कवर किए गए काम की प्रकृति एक्सटेंशन" के तहत आता है।
एंड्री

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

1
@ भारत: यदि आपके कार्यक्रम की "प्रकृति" सीधे जीपीएल कोड से जुड़ी है, तो ऊपर उद्धृत खंड लागू नहीं होगा। आपके प्रश्न से ऐसा लगता है कि यह मामला है। एक काउंटर उदाहरण एक नेटवर्क घुसपैठ विश्लेषण कार्यक्रम हो सकता है, जो आपके द्वारा प्रस्तावित तंत्र के माध्यम से जीएनयू रीडलाइन का उपयोग करने के लिए होता है। (रीडलाइन एक दिलचस्प परीक्षण मामला है क्योंकि वहाँ एक BSD- लाइसेंस ड्रॉप-इन विकल्प है।)
फ्रेड नर्क

"कुल" खंड यह स्पष्ट करना है कि एक ही सीडी-रोम या लिनक्स वितरण पर होने से व्युत्पन्न नहीं हो रहा है।
शॉन मैकमिलन

6

देखें कि मैं अपने स्वामित्व प्रणाली में GPL- कवर सॉफ्टवेयर को शामिल करना चाहता / चाहती हूँ। क्या मैं यह कर सकता हूं?

सवाल यह है कि क्या आपके रैपर एप्लीकेशन का खुद पर कोई उपयोग है? यदि आपने अपने प्रोग्राम का एक कमांड लाइन संस्करण बनाया था जो कि GPL था तो आप GUI को एक अलग लाइसेंस के तहत जारी कर सकते थे। उदाहरण के लिए आप gcc के लिए एक IDE बना सकते हैं जो बंद स्रोत था या एक दृश्य अंतर उपकरण के आधार पर भिन्न था।

हालाँकि, यदि आपने लाइब्रेरी को लपेटा है, तो आपके प्रोग्राम द्वारा उपयोग किए जाने के अलावा कोई उपयोग नहीं है, और आप इस लाइब्रेरी के बिना कोई उपयोग नहीं कर पाएंगे, क्योंकि यह एक व्युत्पन्न कार्य है और इसे जीपीएल के तहत जारी करने की आवश्यकता होगी।


मेरी समझ यह है कि आप एमआईटी के तहत रैपर को लाइसेंस दे सकते हैं और फिर भी ठीक हो सकते हैं।
टोस्टर

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

5

IMO, कानूनी रूप से यह ठीक है। (IANAL) इस मुद्दे के नैतिक पक्ष में सुधार करने के लिए, इसे "FooBar आवरण नहीं है जो FooBar को MyClosedApp के लिए कानूनी रूप से उपलब्ध बनाता है", इसे सर्वर कहें। इसे एक अच्छा सा ओपन सोर्स प्रोग्राम बनाएं जो "नेट पर FooBar करने की अनुमति देता है"। इसे SourceForge पर रखें या प्रोजेक्ट पेज और निर्देशों और सामान के साथ एक वेबसाइट को समर्पित करें। फिर "MyClosedApp" को "FooBar सर्वर" का उपयोग करें।


2

जहां तक ​​मैं समझता हूं, आप अपने सॉफ़्टवेयर को बंद-स्रोत के रूप में छोड़ सकते हैं जब तक कि यह जीपीएल लाइब्रेरी के बिना अपना काम करने में सक्षम हो। GPL लाइब्रेरी को एक प्लगइन के रूप में देखें जिसकी अनुपस्थिति आपके सॉफ़्टवेयर को बेकार नहीं बनाती है।


1
यह निश्चित रूप से गलत है। प्लगइन (उर्फ डायनेमिक लिंकिंग) के रूप में इसका उपयोग करने से परिणामस्वरूप एप्लिकेशन "व्युत्पन्न" और GPL का विषय बन जाता है।
एंड्री

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

@ अच्छी तरह से, यदि आप केवल एक प्लगइन बनाते हैं और यह जीपीएल लाइसेंस पर आधारित है तो यह उल्लंघन के रूप में बदबू आ रही है।
एंड्री

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

1
@ भारत: तो अब आप कह रहे हैं कि जब तक फोटोशॉप जैसा क्लोज्ड सोर्स सॉफ्टवेयर जीपीएल कंपोनेंट के बिना अपना काम करने में सक्षम होता है, तब तक कोई इसे जीपीएल बनाकर डिस्ट्रीब्यूट कर सकता है। यह वही है जो यह उत्तर बताता है।
डॉक्टर ब्राउन

1
  1. ओपन सोर्स विकल्प खोजने की कोशिश करें, अगर कोई नहीं है, तो जीपीएल एक के लिए जाएं;
  2. जाँच करें कि क्या यह GPLv3 है, यदि यह है तो अफोर्ड क्लॉज के साथ , कुछ भी नहीं करना है;
  3. यदि यह GPLv2 है, तो आप जैसा आप सुझाव देते हैं वैसा ही कर सकते हैं;

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


GPL v2 और v3 के बीच वह अंतर क्या है जो मेरी हैक को असंभव बनाता है? मैं इसे डायनेमिक लिंकिंग नहीं करता हूं, मैं उन्हें जितना संभव हो उतना कम कर देता हूं।
एंड्री

GPLv3 का एक लक्ष्य 'परिधि' की उस पद्धति को रोकना था।
vartec

4
सबसे पहले, जीपीएल वेरिएंट आधिकारिक हैं, ओएसआई-अनुमोदित, ओपन सोर्स लाइसेंस (विज्ञापन क्लॉज के बिना बीएसडी लाइसेंस के रूप में बहुत कुछ स्टालमैन द्वारा अनुमोदित फ्री सॉफ्टवेयर लाइसेंस है)। दूसरा, कोई GPL संस्करण (Affero सहित) आपकी क्षमता को प्रतिबंधित करता है जिसमें GPLed और मालिकाना सॉफ़्टवेयर मानक अंतर-प्रक्रिया संचार विधियों जैसे सॉकेट्स के साथ संचार होता है।
डेविड थॉर्नले

IMO GPLv3 उदाहरण DRM से खंड के लिए अनुमति का उल्लंघन करती है मुक्त स्रोत परिभाषा की बात 6. opensource.org/docs/osd
vartec

1
@vartec: DRM "फ़ील्ड ऑफ़ एंडेवर" नहीं है। "उदाहरण के लिए, यह प्रोग्राम को एक [कमर्शियल वेंचर] में उपयोग किए जाने या आनुवंशिक अनुसंधान के लिए उपयोग किए जाने से प्रतिबंधित नहीं कर सकता है।" OSI का स्पष्ट मानना ​​है कि GPL3 ओपन सोर्स है और अपनी परिभाषा के सभी बिंदुओं को पूरा करता है, क्योंकि उन्होंने इसे अनुमोदित किया है।
थॉमस एडेलसन

0

क्या एडम ब्राउन के लिए ऐसा प्रोग्राम लिखना कानूनी होगा, जो GPL लाइब्रेरी का उपयोग करता है और "सर्वर" के रूप में कार्य करता है, यदि उसने इससे जुड़े सभी स्रोत कोड को जारी किया, लेकिन उसने जो एकमात्र क्लाइंट कोड जारी किया, वह बहुत ही बेकार था। उन्होंने क्लाइंट-साइड लिखा होगा? मुझे लगता है कि यह सोचने के लिए कोई आधार नहीं होगा।

यदि चार्ल्स डोवर ने एडम ब्राउन के "सर्वर" को ढूंढ लिया और इसके साथ संवाद करने के लिए एक बंद-स्रोत कार्यक्रम लिखने का फैसला किया, तो क्या जीपीएल किसी भी तरह से अपने कार्यों को बाधित करेगा? ऐसा नहीं है कि मैं देख सकता हूं, क्योंकि GPL'ed सॉफ़्टवेयर का उनका एकमात्र उपयोग एडम ब्राउन से प्राप्त होने वाले बायनेरिज़ के रूप में होगा। यदि उसने एडम के बायनेरिज़ को वितरित किया तो उसे स्रोत के लिए एक लिंक भी शामिल करना होगा, लेकिन GPL में और कुछ भी चार्ल्स के कोड को प्रभावित नहीं करेगा।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.