क्या मैं एक बंद स्रोत एप्लिकेशन से जीपीएल लाइब्रेरी से लिंक कर सकता हूं?


34

ठीक है, इससे पहले कि हर कोई डुप्लिकेट प्रश्नों के बारे में चिल्लाए, हां, मैंने पहले से ही इस तरह के कई सवाल देखे हैं। लेकिन सवाल का जवाब किसी के पास नहीं है।

यदि मैं उस पुस्तकालय को संशोधित किए बिना एक जीपीएल-एड लाइब्रेरी के खिलाफ लिंक करता हूं, तो क्या मुझे अपना स्रोत कोड जारी करने की आवश्यकता है?

इस सवाल के मुताबिक , इसका जवाब हां है!

लेकिन यह जवाब मेरे लिए संतोषजनक नहीं है। उत्तर मूल रूप से कहता है कि मैं अपने कोड को ओपन सोर्स बनाए बिना किसी भी तरह से जीपीएल कोड का उपयोग नहीं कर सकता।

लेकिन अगर पिछला सच है, तो यह इंगित करेगा कि कोई भी व्यक्ति या संगठन कभी भी लिनक्स पर कोई मालिकाना सॉफ्टवेयर जारी नहीं कर सकता है। जो गलत होना चाहिए। केवल इसलिए कि किसी भी एप्लिकेशन को उपयोगी कुछ भी करने के लिए, फाइलों को खोलने, कंसोल पर लिखने, टीसीपी कनेक्शन बनाने के लिए, एप्लिकेशन को लिंक किया जाना चाहिए libcजो कि जीपीएल-एड है।

तो मेरा सवाल यह है: यदि जीपीएल बताता है, जैसा कि साइट पर सभी पिछले उत्तर कहते हैं, यह करता है, कि एक प्रोग्राम जो किसी अन्य जीपीएल प्रोग्राम से लिंक करता है, उसे स्वयं जीपीएल होना चाहिए, किसी भी मालिकाना आवेदन को बनाना / जारी करना / बेचना कैसे संभव है। लिनक्स पर कौन-कौन चलता है? चूँकि जैसा कि मैंने ऊपर बताया है कि लिनक्स पर चलने के लिए जीपीएल कोड को ही पसंद किया जाना चाहिए।

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


9
आप एक अलग जवाब की उम्मीद में एक ही सवाल पूछते रहते हैं। आप गैर-जीपीएल संगत सॉफ्टवेयर में जीपीएल का उपयोग नहीं कर सकते। मृत सरल।
एंड्रयू टी फिनेल

1
क्या वह वास्तव में है? Blimey। उत्तर सीधा है; आप जीपीएल कार्यक्रम के लेखकों के संपर्क में क्यों नहीं हैं और पूछते हैं कि क्या वे बुरा मानते हैं? अगर वे कहते हैं कि यह ठीक है यह भव्य है! यदि वे आपत्ति करते हैं, तो कानूनी विवरण के साथ उन्हें मजबूत करने की कोशिश करना आपको बहुत अलोकप्रिय बनाने जा रहा है, भले ही आप "सही" महसूस करें कि आप क्या हैं।
जेम्स

3
@ नाम: अगर उन्होंने जीपीएल चुना, तो यह बहुत मजबूत कथन है जो वे बुरा मानते हैं। जिन लोगों को कोई आपत्ति नहीं है, वे MIT या BSD या LGPL को पहले स्थान पर चुनते हैं। पूर्ण जीपीएल के तहत पुस्तकालय देखना बहुत दुर्लभ है। जब आप करते हैं, तो आप लगभग निश्चित हो सकते हैं यह जानबूझकर था।
जन हडेक

@ जान हो सकता है, ऐप पर निर्भर करता है और जॉन-चार्ल्स इच्छित उपयोग करता है। लेकिन मुझे लगता है कि यह अजीब है कि जेसी इसके करीब कैसे आ रहा है। क्या जेसी केवल वह उत्तर प्राप्त करना चाहता है जो वह चाहता है? इस साइट पर कई सवाल हैं जो "सिर्फ उनसे बात करने, ज़ोर से रोने के लिए" हल किए जा सकते हैं। :-)
जेम्स

@ जानहुडेक: मैं सहमत हूं। मैंने GPL'ed पुस्तकालय के रूप में हमारी कंपनी के कुछ IP जारी करने का तर्क दिया है, क्योंकि यह हमारे प्रतियोगियों के लिए अनिवार्य रूप से बेकार हो जाएगा और अभी भी हमारे समुदाय के लिए बहुत उपयोगी है।
MSalters

जवाबों:


33

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

लिनक्स कर्नेल हेडर और libgcc के लिए एक विशेष छूट भी है (पुस्तकालय संकलक द्वारा बुलाया जाता है)।


19
कोई परिवाद LGPL नहीं है - आपको LGPL कार्यक्रमों से लिंक करने की अनुमति है। कर्नेल / सिस्टम कॉल के लिए एक सामान्य छूट भी है, इसलिए कोई तर्क नहीं है कि अबू क्या है बनाम लाइब्रेरी कॉल
मार्टिन बेकेट

6
LGPL एक नया लाइसेंस नहीं है, यह पहली बार 1991 में जारी किया गया था। libc हमेशा LGPL रहा है।
FigBug

4
@ जॉन-चरल्स - यही कारण है कि एलजीपीएल का आविष्कार 1991 में gplv2 के साथ किया गया था। AsLinux (और अन्य FOSS कर्नेल) लोकप्रिय हो गए - और यही वजह है कि इसे मूल रूप से लाइब्रेरी-जीपीएल कहा जाता था - एक डर था कि हर कंपाइलर विक्रेता द्वारा libc का एक भ्रम होगा यदि वाणिज्यिक ऐप gcc का उपयोग नहीं कर सकते।
मार्टिन बेकेट

1
@MartinBeckett यह FSF राय है (यदि आप GPL के तहत अपना लाइसेंस नहीं देते हैं तो आप GPLd कोड से लिंक नहीं कर सकते हैं), हालांकि यह निर्विवाद नहीं है। लिंक करने पर एफएसएफ की राय की पुष्टि करने के लिए कोई बड़ा मुकदमा नहीं किया गया है (अगर मुझे पता है, अगर मैं गलत हूं, तो कृपया मुझे सुधारें)।
केटीफ जूल

2
@ जॉन-चरल्स - हां सभी सामान्य कानून अदालतों में परीक्षण किए जाते हैं, लेकिन कॉपीराइट पर काफी मामला कानून है। अगर मैं दावा करता हूं कि बैटमैन डीवीडी की मेरी अनमॉडिफाइड कॉपी एक व्युत्पन्न काम नहीं है और इसलिए मैं जितने चाहे उतनी बिक्री कर सकता हूं - एमपीएए सहमत होने की संभावना नहीं है! GNU कॉपलेफ़्ट एक बहुत ही चालाक तरीके से लाइसेंस समझौते को लागू करने के लिए कॉपीराइट का उपयोग करता है - एक कारण यह है कि अदालत में कभी भी इसका परीक्षण नहीं किया गया है कि हर कोई हमेशा निपट गया है
मार्टिन बेकेट

7

सामान्य स्थिति में, आप सही हैं कि आप किसी GPL लाइब्रेरी से लिंक नहीं कर सकते, अपना कोड वितरित कर सकते हैं, और फिर GPL के रूप में अपना कोड जारी नहीं कर सकते।

हालाँकि, सिस्टम लाइब्रेरी एक्सेप्शन है, जो कैसे लोग लिनक्स लिबास के खिलाफ लिंक करते हैं और फिर भी अपने उत्पाद को गैर-जीपीएल लाइसेंस के तहत जारी करते हैं।

एक और अपवाद है जब दो लाइसेंस एक दूसरे के साथ संगत होते हैं। आगे पढ़ने के लिए एफएसएफ संगत लाइसेंस पृष्ठ देखें

अंत में, GPL'd के लेखक विशिष्ट अपवाद बना सकते हैं, जैसे कि गैर-वाणिज्यिक या हॉबीस्ट उपयोग।

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


1
एसएलई एक प्रोग्राम के कंपाइलर के व्युत्पन्न कार्य होने के सवाल का भी जवाब देता है क्योंकि इसमें कंपाइलर द्वारा उत्पन्न एक पार्सर होता है
मार्टिन बेकेट

3
नहीं, SLE गैर-मुक्त टूलचैन और मानक रनटाइम का उपयोग करके GPL कोड विकसित करने की अनुमति देता है, उदाहरण के लिए Visual Studio। यह जीपीएल पुस्तकालय के साथ गैर-मुक्त अनुप्रयोग को जोड़ने की अनुमति नहीं देता है, कभी भी।
जन हुदेक

1
GPL प्रोग्राम का आउटपुट GPL द्वारा कवर नहीं किया जाता है। देखें gnu.org/licenses/gpl-faq.html#GPLOutput
मैक्सिमस मिनिमस

-1

संक्षिप्त उत्तर यह है कि वास्तव में कोई नहीं जानता है। (यह चर्चा जीपीएल नहीं एलजीपीएल के बारे में है।)

जीपीएल में "व्युत्पन्न कार्य" के बारे में अस्पष्ट भाषा है, जिसे विभिन्न लोग अलग-अलग तरीकों से व्याख्या करते हैं। सर्वसम्मति से ऐसा प्रतीत होता है कि स्टेटिक लिंकिंग उल्लंघन करता है, लेकिन सिस्टम इंटरप्ट (जैसे लिनक्स कर्नेल) के माध्यम से कॉल नहीं करता है। उत्तरार्द्ध मुख्य रूप से इस तथ्य पर आधारित है कि लिनक्स पर ओरेकल जहाज जैसी कंपनियां और मुकदमा नहीं किया गया है - यह लाइसेंस में स्पष्ट नहीं है।

डायनामिक लिंकिंग अस्पष्ट है, शायद 70/30 कहते हैं कि यह उल्लंघन करता है। पाइप या रिमोट प्रक्रिया कॉल का उपयोग करके प्रोग्राम को कॉल करना, शायद 30/70 का उल्लंघन नहीं होता है, भले ही यह अनिवार्य रूप से एक ही बात हो। COM के माध्यम से कॉल करना, या जावा जार का उपयोग करना पूरी तरह से अस्पष्ट है।

मूल रूप से, अगर कोई संदेह है, और आप वकीलों को पसंद नहीं करते हैं, तो जीपीएल से दूर रहें।


1
जीपीएल वास्तव में वह सब अस्पष्ट नहीं है, और इस सवाल के चारों ओर अच्छी तरह से चर्चा की गई कानून कानून है जो एक व्युत्पन्न कार्य नहीं है। Linux syscall इंटरफ़ेस और libc के बीच अंतर यह है कि पूर्व कार्यशील सॉफ़्टवेयर बनाने के लिए आवश्यक है (जो कि कॉपीराइट के अपवाद के रूप में पुष्टि की गई है) जबकि बाद वाला नहीं है (आप अपना स्वयं का कार्यान्वयन कर सकते हैं)। इसका उन कार्यों से कोई लेना-देना नहीं है, जिनके संचालन की कोई कानूनी प्रासंगिकता नहीं है। ANAL, यह कानूनी सलाह नहीं है।
जूल्स

"70/30 का कहना है कि यह उल्लंघन करता है" और "30/70 का उल्लंघन नहीं करता है" - क्या यह जानबूझकर उल्लंघन का अनुपात है / उल्लंघन नहीं करता है? "हालांकि यह अनिवार्य रूप से एक ही बात है" यह बताता है कि इसका उद्देश्य अलग होना था।
माटुस्ज़ कोनीकेज़नी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.