क्या एक संशोधित LGPL लाइसेंस है जो स्टेटिक लिंकिंग की अनुमति देता है?


21

LGPL को यह आवश्यक है कि यदि कोई प्रोग्राम LGPL-ed लाइब्रेरी का उपयोग करता है, तो उपयोगकर्ताओं को लाइब्रेरी के किसी भिन्न संस्करण के साथ प्रोग्राम को फिर से लिंक करने में सक्षम होना चाहिए:

...

डी) निम्न में से एक करें:

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

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

...

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

डायनेमिक लिंकिंग एक समाधान होगा, लेकिन कई मामलों में, यह संभव नहीं है। उदाहरण के लिए:

  • कुछ प्लेटफार्मों में गतिशील लिंकिंग नहीं हो सकती है।
  • कुछ भाषाओं में डायनेमिक लिंकिंग की संभावना नहीं है। या, मॉड्यूल को मल्टी-प्लेटफॉर्म बनाना संभव नहीं है।
  • कुछ मामलों में डायनेमिक लिंकिंग महत्वपूर्ण अनुकूलन को रोक देगा। जबकि मैं कहूंगा कि यह शायद ही कभी एक गंभीर समस्या है, हास्केल जैसी भाषाओं में प्रदर्शन हानि काफी हो सकती है।

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

(मुझे यह जानने में भी दिलचस्पी होगी कि LGPL के इस तरह के संशोधन के कुछ अप्रत्याशित परिणाम हैं या नहीं।)


आप गतिशील रूप से हास्केल में पुस्तकालयों के बाहर लिंक नहीं कर सकते हैं ? यह असुविधाजनक है।
रॉबर्ट हार्वे

2
यदि आपकी पूरी परियोजना FOSS है, तो यह एक गैर-मुद्दा हो सकता है। उन्हें सूत्रों पर इंगित करें और उन्हें इसे सुलझाने दें! :-)
पीटर रोवेल

2
उस लाइसेंस को गैर-कापीलेफ़्ट लाइसेंस से क्या भेद होगा?

2
@delnan LGPL में कई अन्य चीजें हैं जो अक्सर वांछनीय होती हैं। उदाहरण के लिए, इसे G (L) GPL होने के लिए किसी भी संशोधन की आवश्यकता है, या tivoization को प्रतिबंधित करता है
पेट्र पुडलक

WxWindows लाइसेंस के रूप में यह हो जाता है के रूप में आधिकारिक है, के बारे में है कि यह OSI द्वारा अनुमोदित है
जोकिम सॉर

जवाबों:


13

मुझे आश्चर्य है कि किसी ने भी मोज़िला पब्लिक लाइसेंस का उल्लेख नहीं किया है। यह LGPL के समान है सिवाय इसके कि यह स्टेटिक लिंकिंग की अनुमति देता है। MPL संस्करण 2 GPL / LGPL के साथ संगत है।

मोज़िला पब्लिक लाइसेंस (एमपीएल 2.0) बनाम जीएनयू जनरल पब्लिक लाइसेंस (एलजीपीएल 3.0)


12

wxwidgets को अनिवार्य रूप से = LGPL + स्थैतिक लिंकिंग के तहत लाइसेंस प्राप्त है

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

wxWidgets सर्टिफाइड ओपन सोर्स सॉफ्टवेयर पार्टिसिपेंट्स हैं, जिन्होंने चर्चा में इस फैसले का नेतृत्व किया , जिसमें एबिसोर्स , रॉबर्ट रोबलिंग, जूलियन स्मार्ट, मार्कस फ्लेक, कार्स्टन बैलेडेर और रिचर्ड स्टालमैन की कुछ सलाह शामिल हैं। रिचर्ड ने पुष्टि की है कि नया लाइसेंस GPL'ed अनुप्रयोगों के साथ संगत है। हालांकि, मालिकाना आवेदनों पर कोई महत्वपूर्ण प्रतिबंध नहीं है।

WxWindows लाइसेंस को ओपन सोर्स इनिशिएटिव द्वारा अनुमोदित किया गया है , और आप उनकी साइट पर लाइसेंस यहां पा सकते हैं ...


0mq को LGPL के तहत एक स्पष्ट स्थैतिक लिंकिंग अपवाद के साथ लाइसेंस प्राप्त है।
ट्रेवर पॉवेल

4

IANAL, लेकिन मुझे विश्वास है कि एक समाधान गैर- LGPL भागों के लिए ऑब्जेक्ट फ़ाइलें प्रदान करने के लिए नेतृत्व किया गया है। इस तरह से उपयोगकर्ता प्रोग्राम को फिर से लिंक कर सकता है और इसलिए LGPL की आवश्यकताओं को पूरा करने के लिए LGPL भाग को बदलने के लिए स्वतंत्र है।

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

विकास के दृष्टिकोण से, सरलतम हो सकता है कि निर्माण प्रणाली भी उसी समय स्रोत पैकेज का निर्माण करे, जब वितरण के लिए द्विआधारी का निर्माण हो।


क्या आपके पास कोई वास्तविक परिदृश्य है जिसमें यह किया गया है?
knocte

3

मुझे Google के साथ एक मिला: OpenScales लाइसेंस

OpenScales को GNU लेसर पब्लिक लाइसेंस (LGPL, यहाँ उपलब्ध है ) के संस्करण 3 के तहत जारी किया गया है, स्थैतिक लिंकिंग अपवाद से संबंधित एक छूट के साथ (नीचे देखें) ...

LGPL लाइसेंस पाठ के अलावा, LGPL शर्तों का अपवाद OpenScales पर लागू होता है:

जीएनयू लेसर जनरल पब्लिक लाइसेंस संस्करण 3 के विशेष अपवाद के रूप में, आप किसी थर्ड पार्टी को कंबाइंड वर्क से एक निष्पादन योग्य फाइल से अवगत करा सकते हैं, जो स्टेटिक फ़ाइल में लिंक, स्टेटिक या डायनामिक रूप से, इस लाइब्रेरी के कुछ हिस्सों को मिनरल कॉरेस्पॉन्डिंग सोर्स से अवगत कराती है, लेकिन जीएनयू लेसर जनरल पब्लिक लाइसेंस की धारा 4d0 के तहत कॉरेस्पॉन्डिंग एप्लीकेशन कोड को बताने की आवश्यकता के बिना, जब तक कि आप लाइब्रेरी के अनमॉडिफाइड पब्लिकली डिस्ट्रीब्यूटेड वर्जन का उपयोग नहीं कर रहे हैं। यह अपवाद किसी भी अन्य कारणों को अमान्य नहीं करता है कि निष्पादन योग्य फ़ाइल को GNU लेसर जनरल पब्लिक लाइसेंस या GNU जनरल लाइसेंस के द्वारा कवर क्यों किया जा सकता है।

हालांकि यह मानक नहीं है, और मुझे नहीं पता कि क्या मौजूद है।


1

आप उपयोगकर्ता की स्वतंत्रता की गारंटी कैसे देते रहेंगे? मेरा मानना ​​है कि "सही" उत्तर सांख्यिकीय रूप से एक शिम को जोड़ने के लिए है जो गतिशील रूप से पुस्तकालय को लोड करता है।


हाँ, यह सबसे अच्छा उपाय है। लेकिन कुछ मामलों में, डायनेमिक लिंकिंग संभव नहीं है। कुछ भाषाओं में यह संभावना नहीं है। या कुछ प्लेटफार्मों में यह संभावना नहीं है।
पेट्र पुडलक

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