क्या जीपीएल को व्युत्पन्न कार्य के लिए निहित किया जा सकता है?


13

तीन सॉफ्टवेयर परियोजनाएं हैं: ए, बी और सी।

A किसी को भी प्रकाशित किया जाता है और उसे GPL के तहत लाइसेंस दिया जाता है।

B, A का विस्तार करता है, प्रकाशित भी किया जाता है, लेकिन इसके पास कोई लाइसेंस जानकारी नहीं है या गलती से LGPL के तहत लाइसेंस प्राप्त है। मूल रूप से यह GPL नहीं होने से A के लाइसेंस का उल्लंघन करता है। B का स्रोत कोड अभी भी उपलब्ध है।

C का विस्तार B है। C को GPL के तहत प्रकाशित किया जा सकता है? प्रेरणा होगी "A GPL है, किसी भी व्युत्पन्न को GPL भी होना चाहिए, इसलिए B GPL है और C को GPL हो सकता है"।


5
B का कौन सा भाग विस्तृत है? यदि वे सभी पहले से ही ए में हैं, तो मुझे कोई समस्या नहीं है। यदि C, B के उन हिस्सों का विस्तार करता है जहां A में नहीं है, तो चीजें दिलचस्प हो रही हैं।

मैं A, B, C प्रोजेक्ट्स का नाम और बी के लेखकों से संपर्क
करूंगा

1
इसके अलावा, मेरा मानना ​​है कि आप जीपीएल के तहत कम से कम सी प्रकाशित कर सकते हैं, क्योंकि जीपीएल एलजीपीएल संगत है। लेकिन
इयानल

2
@ टिशोद्रोमा, C, B के कुछ हिस्सों को फैलाता है, लेकिन B बिना A के मौजूद नहीं हो सकता है
Andrej

क्या C के लेखक ने भी (A का एक भाग) लिखा था? यदि नहीं, तो हमें पता नहीं है कि A ने B को दिए गए लेखकों को क्या लाइसेंस दिया है, इसलिए हमें इस पर कोई विचार नहीं है कि क्या हम उस पर निर्माण कर सकते हैं?
dcorking

जवाबों:


23

सबसे पहले, B, GPL पर A. का उल्लंघन कर रहा है, लेकिन यह वास्तव में आपकी चिंता का विषय नहीं है और यहाँ प्रश्न के लिए अप्रासंगिक है (जो जानता है, शायद B को उनके कोड पर A से LGPL लाइसेंस प्राप्त हो गया है, ताकि इसे LGPL के तहत जारी किया जा सके? )।

सवाल यह है कि क्या आप LGPL कोड के आधार पर एक GPL सॉफ्टवेयर का निर्माण कर सकते हैं? इसका उत्तर बस "हाँ" है।

एलजीपीएल जीपीएल की तुलना में कम प्रतिबंधात्मक है (इस प्रकार बी ए पर लाइसेंस का उल्लंघन है जब तक कि अन्य प्रावधान नहीं किए गए थे), लेकिन यह भी काफी आसानी से जीपीएल परियोजना में वापस लाने की अनुमति देता है।

LGPL लाइसेंस से:

  1. ऑब्जेक्ट कोड शामिल करना लाइब्रेरी हैडर फ़ाइलों से सामग्री। किसी एप्लिकेशन का ऑब्जेक्ट कोड फॉर्म किसी हेडर फ़ाइल से सामग्री को शामिल कर सकता है जो लाइब्रेरी का हिस्सा है। आप अपनी पसंद की शर्तों के तहत इस तरह के ऑब्जेक्ट कोड को बता सकते हैं, बशर्ते, यदि निगमित सामग्री संख्यात्मक मापदंडों, डेटा संरचना लेआउट और एक्सेसरों या छोटे मैक्रोज़, इनलाइन फ़ंक्शंस और टेम्पलेट्स (लंबाई में दस या कम लाइनों) तक सीमित नहीं है, तो आप निम्नलिखित दोनों करें:

    a) लायब्रेरी में उपयोग की जाने वाली ऑब्जेक्ट कोड की प्रत्येक प्रति के साथ प्रमुख सूचना दें और लायब्रेरी और उसके उपयोग को इस लाइसेंस द्वारा कवर किया गया है।
    ख) जीएनयू जीपीएल और इस लाइसेंस दस्तावेज़ की एक प्रति के साथ ऑब्जेक्ट कोड को मिलाएं।

इसका लाइसेंस का हिस्सा है। आप LGPL कोड के आधार पर आसानी से GPL सॉफ्टवेयर बना सकते हैं।

कुछ संस्करण अंतर हैं जिन्हें आपको यह सुनिश्चित करने के लिए ध्यान देना होगा कि कोड सही तरीके से जीपीएल के सही संस्करण के तहत लाइसेंस प्राप्त है।


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

यह एक लाइसेंस के तहत प्रस्तुत नहीं किया जाता है जो जीपीएल के साथ विस्तार के साथ संगत है। इस स्थिति पर विचार करें कि एक कंपनी ने जीपीएल सॉफ्टवेयर का आंतरिक रूप से उपयोग किया (स्वीकार्य - उल्लंघन नहीं), गलती से अपने रेपो को सार्वजनिक कर दिया।

इस मामले में, यह बहुत संभव है कि परियोजना सी कॉपीराइट उल्लंघन के उल्लंघन में है (बी जोड़ा गया सामग्री जिसे जीपीएल के तहत लाइसेंस प्राप्त नहीं है क्योंकि इसे पहले वितरित नहीं किया जाना चाहिए)।

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

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

जीपीएल के उल्लंघन का मतलब यह नहीं है कि सामग्री जीपीएल के अधीन है, बल्कि यह है कि इसे वितरित नहीं किया जा सकता है।


3
अच्छा उत्तर। क्या आपने ओपन सोर्स स्टेक्सचेंज प्रस्ताव के लिए प्रतिबद्ध होने पर विचार किया था ?
फिलिप

5
@Andrej एकमात्र व्यक्ति जिसे यह निर्धारित करने का अधिकार है कि B को लाइसेंस कैसे दिया जाता है, वे लोग हैं जिन्होंने B लिखा है। यदि A GPL'ed है, तो उनके पास "GPL के रूप में वितरण" या "लाइसेंस नहीं" का विकल्प है। यह गलती से वितरित किया गया था, इसका मतलब यह नहीं है कि यह जीपीएल के रूप में लाइसेंस प्राप्त है।

6
इसके अलावा, "आप नहीं जानते कि बी को ए के लेखकों से अलग लाइसेंस मिला है या नहीं;" यह संभव है कि बी ए के कॉपीराइट का उल्लंघन नहीं कर रहा है, क्योंकि आप नहीं जानते कि बी जीपीएल के तहत ए का उपयोग कर रहा है (ए के लेखक जितने चाहें उतने प्रकार के लाइसेंस जारी कर सकते हैं, और उदाहरण के लिए इसे जीपीएल के तहत पेश कर सकते हैं। और इसके लिए एक लाइसेंस बेचें जो आपको मालिकाना कोड में इसका उपयोग करने देता है)।
cpast

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

2
चौथा, एक EULA GPL की तुलना में बहुत अधिक, बहुत अधिक, कानूनी रूप से संदिग्ध है। GPL कोई प्रतिबंध नहीं लगाता है; कोई भी प्रतिबंध वास्तव में वैधानिक कॉपीराइट कानून (जीपीएल कुछ मामलों में उन प्रतिबंधों को माफ करता है) से है। इसलिए GPL इतनी अच्छी तरह से काम करता है - "GPL उल्लंघन" जैसी कोई चीज नहीं है, बस कॉपीराइट उल्लंघन हैं। EULA के साथ, आपको लोगों को खुद को प्रतिबंधित करने के लिए सहमत होने की आवश्यकता है; इसका मतलब है कि आप अनुबंध कानून के दायरे में हैं, जो बहुत ही संदिग्ध है और संभावित बचावों से भरा है, जैसे कि कोई सहमत नहीं था (आपको कॉपीराइट के लिए सहमत होने की आवश्यकता नहीं है)।
cpast

4

कॉपीराइट धारक हैं: A द्वारा बनाए गए कार्यों पर कॉपीराइट है, B द्वारा परिवर्धन पर कॉपीराइट है, और C द्वारा किए गए किन्हीं भी परिवर्तनों पर कॉपीराइट है। C को जाँचना चाहिए कि क्या उसके पास A और B के कॉपीराइट वाले सॉफ़्टवेयर का उपयोग करने की अनुमति है।

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

बी को कुछ अन्य लाइसेंस के तहत लाइसेंस दिया गया था। B को GPL के तहत लाइसेंस प्राप्त होना चाहिए था, लेकिन ऐसा नहीं किया गया। यदि B का लाइसेंस आपको GPL से अधिक अधिकार देता है, तो आपके पास A के कोड के लिए वास्तव में कोई अधिकार नहीं है - B आपको A के कोड के अतिरिक्त अधिकार नहीं दे सकता है। आप GPL की शर्तों के तहत A के कोड का उपयोग कर सकते हैं क्योंकि A ने इसकी अनुमति दी है, और B के लाइसेंस के तहत B का अतिरिक्त कोड।

यदि B ने GPL की तुलना में एक सख्त लाइसेंस के तहत अपना कोड जारी किया है, तो B के कॉपीराइट उल्लंघन की सबसे अधिक संभावना है। आप GPL लाइसेंस के तहत B का कोड उपयोग नहीं कर सकते। यह अक्सर उलझन में है: जीपीएल बी को कुछ भी करने के लिए मजबूर नहीं कर सकता । यह केवल बी को विकल्प देता है: इस तरह प्रकाशित करें, और यह कानूनी रूप से ठीक है, या किसी अन्य तरीके से प्रकाशित करें, और यह अवैध है। B को कुछ अवैध करने और परिणामों को भुगतने का अधिकार है (कॉपीराइट उल्लंघन के लिए मुकदमा दायर किया जा रहा है)। आपको B के कोड का कोई अधिकार नहीं है जो B 'didn' आपको देता है।


3

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

आपकी स्थिति में, इसका मतलब है कि जीपीएल के तहत लाइब्रेरी ए और एलजीपीएल के तहत लाइब्रेरी बी में नया कोड होना संभव है। संयुक्त कार्य (लाइब्रेरी बी) को जीपीएल लाइसेंस के तहत प्रभावी रूप से वितरित किया जाता है, और इस तरह वितरित किया जा सकता है क्योंकि एलजीपीएल लाइसेंस जीपीएल लाइसेंस के साथ संगत है (आप जीपीएल लाइसेंस प्राप्त परियोजना में एलजीपीएल लाइसेंस कोड का उपयोग कर सकते हैं)।
उस स्थिति में, जीपीएल के तहत लाइब्रेरी सी में नया कोड होना पूरी तरह से ठीक है , जिसके परिणामस्वरूप जीपीएल के तहत भी काम करना है।


यह केवल इसलिए काम करता है क्योंकि GPL के तहत GPLed A के साथ B के LGPLed भागों का उपयोग किया जा सकता है। यदि नया कोड GPL के साथ कुछ लाइसेंस संघर्ष के तहत था (उदाहरण के लिए सभी अधिकार सुरक्षित), तो आप B को मान नहीं सकते हैं क्योंकि GPL के तहत एक प्रभावी रूप से वितरित किया गया था।
cpast

1
@cpast: आप सही हैं, मैं यह उल्लेख करना भूल गया कि LGPL GPL के साथ संगत है। यदि लाइसेंस असंगत थे, तो आपको परिणाम वितरित करने की अनुमति नहीं दी जाएगी।
बार्ट वैन इनगेन शेनौ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.