मैंने एक LGPL परियोजना पर आधारित एक कार्यक्रम बनाया, और मुझे स्रोत कोड प्रकाशित करने की अनुमति नहीं है


13

मुझे लगा कि MIT, BSD या Apache की तरह LGPL एक अनुज्ञापी लाइसेंस था। लेकिन आज मैं पढ़ता हूं, कि केवल एलजीपीएल (पुस्तकालयों आदि) से लिंक करना बंद स्रोत कोड से अनुमति है - इसके अलावा, यह कॉपीलेफ्ट है - इसलिए मुझे कोड प्रकाशित करना होगा जो एलजीपीएल प्रोग्राम पर आधारित है।

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

इसलिए मुझे आश्चर्य है कि क्या इसमें कोई बदलाव है, इसलिए मैं इसे बंद-स्रोत (मेरी इच्छा है कि मैं स्रोत प्रकाशित कर सकता हूं) - कोई सुझाव?

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

वर्तमान में, सब कुछ एक .jar फ़ाइल में है (यह जावा / स्विंग है)। अगर आपको लगता है कि मेरा विचार कानूनी रूप से / तकनीकी रूप से संभव है - मैंने जो लिखा है और जो मूल है, उसे अलग करने का कितना प्रयास किया जाएगा? मैं सबसे जावा प्रेमी नहीं हूँ।


इस पोस्ट में , आदमी का कहना है "इसके अलावा LGPL को केवल एक नए dll में डालकर और इसे LGPLed सोर्सकोड से कॉल करने के लिए प्रतिनिधियों या इंटरफेस का उपयोग करके इसे दरकिनार किया जा सकता है।" - क्या कोई और अधिक विस्तृत कर सकता है कि मैं मूल जावा ऐप के साथ ऐसा कैसे करूं?

16
यह एक कानूनी वेबसाइट नहीं है , मैं यहाँ से किसी को भी कानूनी मामलों पर कोई सलाह नहीं दूंगा, सिवाय इसके कि वास्तविक कानूनी सलाह प्राप्त करने की सलाह दी जाए।

5
LGPL ज्यादातर वितरण से संबंधित है और आपने हमें इस कोड को वितरित करने के तरीके के बारे में कोई जानकारी नहीं दी है। प्रश्न के सटीक उत्तर मिलने की संभावना नहीं है जब तक आप ऐसा नहीं करते। किसी भी घटना में, मैं दोहराऊंगा कि आपको इंटरनेट से कानूनी सलाह नहीं लेनी चाहिए
रीन हेनरिक

मेरा मानना ​​है कि मैं अब कानूनी रूप से एलजीपीएल को अच्छी तरह से समझता हूं। इसलिए मैं वास्तव में आप लोगों से पूछ रहा हूं कि इसे तकनीकी रूप से कैसे काम किया जाए - हालांकि आप निश्चित रूप से सही हैं - संदेह के मामले में मैं एक वकील से सलाह लूंगा।
यूयस

आप यह नहीं कहते कि आप किस सॉफ्टवेयर का उपयोग कर रहे हैं, लेकिन जीपीएल / एलजीपीएल (और अन्य) सॉफ्टवेयर के कुछ प्रदाता आपकी स्थिति में लोगों के लिए वाणिज्यिक लाइसेंस प्रदान करते हैं।
Jaydee

जवाबों:


13

सबसे पहले, यहां कानूनी सलाह लेना (जैसे: इन्टर्नेट्स) एक अच्छा विचार नहीं है।

दूसरे, और यह सिर्फ मैं बोल रहा हूं, वकील नहीं, आपको यह सोचना चाहिए कि इससे पहले कि आप LGPL'ed प्रोग्राम लें और इसे अपने नियोक्ता के लिए संशोधित करें।

अगर लाइसेंस कुछ ऐसा था जिसे आप सिर्फ इसलिए मना कर सकते थे क्योंकि आप इसे पसंद नहीं करते थे, तो अब एक होने की बहुत बात नहीं होगी?

यदि आप और / या आपका नियोक्ता अपने संशोधनों के साथ स्रोत कोड प्रकाशित करने के लिए तैयार नहीं हैं, तो आपको उस LGPL'ed कोड का उपयोग बंद करना होगा और इससे छुटकारा पाना होगा।

फिर, यह सिर्फ मैं बोल रहा हूँ।

असली वकील से सलाह लें।


एक DLL में कोड जोड़कर लाइसेंस को दरकिनार करने के बारे में आपके सवाल के जवाब में, मुझे लगता है कि निम्नलिखित फैशन में काम करेगा।

बाहरी पुस्तकालयों में कार्य करने में सक्षम बनाने के लिए मूल कार्यक्रम को बदलने के लिए आप क्या करेंगे। आपको अपनी आवश्यकताओं, पुस्तकालयों, कार्यों के नाम इत्यादि के लिए उस कोड को विशिष्ट बनाए बिना ऐसा करना होगा।

लाइसेंस आवश्यकताओं के अनुसार वे परिवर्तन आप तब प्रकाशित करते हैं।

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

LGPL लाइसेंस की पूरी सीमा को नहीं जानते हुए, मैं यह नहीं कह सकता कि यदि आपकी लाइब्रेरी को प्रकाशित करने से बचने के लिए पर्याप्त है, हालांकि मुझे संदेह है कि यह होगा।

हालाँकि, फिर से ...

किसी वकील से सलाह लें


4
ध्यान दें कि एफएसएफ, जिसने जीपीएल लाइसेंस परिवार लिखा था, एक व्युत्पन्न कार्य बनाने के लिए गतिशील लिंकिंग पर विचार करता है, ताकि काम न हो सके। (अन्य लोग सोचते हैं कि FSF गलत है।) मुझे नहीं लगता कि कोई कानूनी निर्धारण है, हालांकि मैं अच्छी तरह से गलत हो सकता हूं।
डेविड थॉर्नले

वास्तव में? मुझे यकीन है कि आप इसके बारे में डेविड, डेविड से अधिक जानते हैं, लेकिन विकिपीडिया का कहना है कि आप जीपीएल के तहत प्रकाशित किए बिना भी गतिशील रूप से जीपीएल-लाइसेंस प्राप्त पुस्तकालयों से लिंक कर सकते हैं: "उदाहरण के लिए, जीपीएल लिंकिंग अपवाद उन कार्यक्रमों की अनुमति देता है जो खुद को लाइसेंस नहीं देते हैं। जीपीएल के तहत जीपीएल के तहत लाइसेंस प्राप्त पुस्तकालयों से लिंक करने के लिए बिना जीपीएल आवश्यकताओं के अधीन। " इसलिए मुझे आश्चर्य है कि अब GPL और LGPL में क्या अंतर है: मैंने सोचा कि केवल LGPL ने ही इसकी अनुमति दी है।
इयूसस

2
@ क्या: मेरे नियोक्ता की बड़ी कानूनी टीम असहमत होगी। वे अपनी बौद्धिक संपदा की रक्षा के बारे में बहुत आक्रामक हैं, और जब तक हम GPL के तहत कोड वितरित नहीं कर रहे हैं, तब तक हमें स्पष्ट रूप से GPLed कोड को अपने से जोड़ने से मना किया जाता है। आपको वह अपवाद कहां मिला? मैं इसे GPLv2 या v3 में नहीं देखता। ऐसा लगता है कि आप एक लिंकिंग अपवाद का उल्लेख कर रहे हैं जो वेनिला जीपीएल का हिस्सा नहीं है। हालाँकि, कॉपीराइट स्वामी अपने विवेकानुसार उनके GPLed कोड से लिंकिंग अपवाद जोड़ सकते हैं। किसी की कानूनी टीम से परामर्श करना वास्तव में सबसे अच्छी बात है।
शून्य

5
मुझे इस पर विकिपीडिया पर भरोसा नहीं होगा। आप सभी जानते हैं, कि प्रविष्टि 14 वर्षीय व्यक्ति द्वारा लिखी जाती है, जो पिछले सप्ताहांत में लाइसेंस प्राप्त करने के बारे में पढ़ता है। वास्तविक सलाह लें। या, आप खेत को दांव लगा सकते हैं और आशा करते हैं कि आपकी कंपनी को परेशानी नहीं होगी। जो कुछ भी काम करता है।
लसे वी। कार्लसन

@ GPL से लिंक करना एक समस्या है। जहाँ तक मुझे पता है, यह ClBS / LLVM के पक्ष में GCC छोड़ने के लिए FreeBSD के प्रमुख कारणों में से एक था ।
लेगोलस

4

LGPL या तुलनीय लाइसेंस के तहत प्रकाशित अधिकांश ओपन सोर्स लाइब्रेरी, आपकी परियोजनाओं में उपयोग करने के लिए कम से कम अच्छे हैं, खुले / बंद सिद्धांत का उपयोग करके बनाए गए हैं: http://en.wikipedia.org/wiki/Open/closed_principle

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


खैर, मैंने जो LGPL कोड इस्तेमाल किया है, वह एक एप्लीकेशन है, लाइब्रेरी नहीं है। तो सवाल यह है कि क्या मैं इसे लाइब्रेरी में बदल सकता हूं या - जैसे कि लेसे ने सुझाव दिया है - अपने कोड को लाइब्रेरी में बदल दूं और बाकी LGPL / ओपन
रखूं

1
@ देवे: LGPL को लाइब्रेरी GPL के नाम से जाना जाता था। मैंने वास्तव में इस लाइसेंस का उपयोग करते हुए कोई एप्लिकेशन नहीं देखा है। यदि आप एक रहस्य नहीं है, तो आप क्या उपयोग कर रहे थे?
ओलाफ

एफएसएफ अब इसे लेसर जीपीएल कहता है। केवल उन उपयोगों के बारे में, जिनके बारे में मैं अभी सोच सकता हूँ, जो कि स्वामित्व वाली पुस्तकालयों और इस तरह लिंक करने में सक्षम हैं।
डेविड थॉर्नले

दिलचस्प बात यह है कि मोजिला और ओपनऑफिस.ऑर्ग दोनों ही एलजीपीएल के तहत लाइसेंस प्राप्त हैं।
यूयस

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

2

समान अस्वीकरण: IANAL

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

चारों ओर पाने का एकमात्र तरीका उन्हें पहली जगह में वितरित नहीं करना है।


2

मुझे नहीं लगता कि आपको यह समझने के लिए एक वकील की आवश्यकता है कि लाइसेंस को दरकिनार करने की कोशिश करना अच्छी बात नहीं है। सामान्य ज्ञान काफी है।

इसके बजाय, आप LGPL कार्यक्रम के मूल लेखक से संपर्क कर सकते हैं और एक अलग और मालिकाना लाइसेंस के लिए पूछ / खरीद सकते हैं।

केवल अन्य विकल्प स्रोत को जारी करने या इसे पूरी तरह से फिर से लिखने के लिए हैं।


1

IANAL, TINLA, आदि।

मुझे लगा कि MIT, BSD या Apache की तरह LGPL एक अनुज्ञापी लाइसेंस था। लेकिन आज मैं पढ़ता हूं, कि केवल एलजीपीएल (पुस्तकालयों आदि) से लिंक करना बंद स्रोत कोड से अनुमति है - इसके अलावा, यह कॉपीलेफ्ट है - इसलिए मुझे कोड प्रकाशित करना होगा जो एलजीपीएल कार्यक्रम पर आधारित है।

हां, LGPL के लिए आवश्यक है कि या तो आप स्रोत कोड किसी को भी उपलब्ध कराएं, जो कार्य की एक प्रति प्राप्त करता है, या आपको अपना कार्य ऐसे रूप में वितरित करना होगा, जहां सॉफ़्टवेयर प्राप्त करने वाले LGPL'd के आपके संस्करण को एक नए के साथ काम कर सकें संस्करण। किसी भी स्थिति में, कार्य के LGPL भाग के सभी संशोधन कार्य के सभी प्राप्तकर्ताओं के लिए उपलब्ध होने चाहिए

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

सही बात। लाइसेंस अनिवार्य है कि सॉफ्टवेयर के सभी प्राप्तकर्ताओं को स्रोत कोड तक पहुंच दी जाए।

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

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

वर्तमान में, सब कुछ एक .jar फ़ाइल में है (यह जावा / स्विंग है)। अगर आपको लगता है कि मेरा विचार कानूनी रूप से / तकनीकी रूप से संभव है - मैंने जो लिखा है और जो मूल है, उसे अलग करने का कितना प्रयास किया जाएगा? मैं सबसे जावा प्रेमी नहीं हूँ।

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

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

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


1

आप एडेप्टर पैटर्न का उपयोग कर सकते हैं और मूल कोड को न छूएं। इसके अलावा LGPL आपको कक्षाएं विरासत में प्राप्त करने की अनुमति देता है और आपकी स्वयं की परियोजना में इसकी कक्षाओं की कार्यक्षमता को ओवरराइड करता है।


0

यह मेरी समझ है, IANAL।

LGPL संस्करण के पाठ की जांच करें जो आपके द्वारा उपयोग किए जा रहे कोड को कवर करता है। मेरा मानना ​​है कि आवश्यकता यह है कि किसी भी LGPL'd कोड को स्वैप-आउट-सक्षम करने की आवश्यकता है - आमतौर पर एक साझा लाइब्रेरी / जार फ़ाइल का उपयोग करके। यदि आप अपने द्वारा उपयोग किए जाने वाले कोड को LGPL'd से अलग कर सकते हैं, तो आप जिस भी लाइसेंस को पसंद करते हैं, उसके तहत आप अपने आवेदन को जारी करते हुए LGPL के तहत जारी कर सकते हैं।


0

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

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