2010-02-16 12 views
10

जब मैं कार्यक्रमों को वितरित करने की बात करता हूं तो मुझे एलजीपीएल/जीपीएल के बारे में बहुत कुछ पता नहीं है (बिना क्यूटी लाइसेंस के); अगर मैं एक कार्यक्रम बनाया है, मैं स्थिर पुस्तकालयों exe करने के लिए तो मैं जब वितरित करने के लिए एक एकल फाइल है लिंक कर सकते हैं:एलजीपीएल के साथ क्यूटी एकल EXE?

  • कार्यक्रम कुछ भी खर्च नहीं करता है, यह सिर्फ वितरित किया जा रहा है (बंद स्रोत या खुला स्रोत) ?

  • जब आपको प्रोग्राम के लिए भुगतान करना पड़ता है तो क्या आप अभी भी स्थिर रूप से लिंक कर सकते हैं?

उत्तर

12

नहीं, यदि आपका प्रोग्राम बंद स्रोत है और आप क्यूटी के एलजीपीएल संस्करण के खिलाफ लिंक करना चाहते हैं तो आपको गतिशील लिंकिंग का उपयोग करना होगा। यदि आप स्थिर रूप से लिंक करना चाहते हैं तो आपको क्यूटी के लिए लाइसेंस खरीदना होगा।

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

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

इससे कोई फर्क नहीं पड़ता कि आपका उत्पाद नि: शुल्क है या भुगतान नहीं है। आप जीपीएल/एलजीपीएल उत्पादों को बेच सकते हैं।

+0

ओह ठीक है। जवाब के लिए धन्यवाद। – PythonGem

+5

यदि आप ऑब्जेक्ट कोड भी वितरित करते हैं तो आप स्थिर लिंकिंग का उपयोग कर सकते हैं। –

+2

एलजीपीएल संस्करण 2.1 खंड 6 पढ़ें। यह उत्तर गलत है। – Kevin

27

दरअसल, एलजीपीएल स्थिर लिंकिंग की अनुमति देता है जब तक आप कुछ बहुत ही विशिष्ट आवश्यकताओं को पूरा करते हैं। उदाहरण के लिए, यदि सभी वितरण अपनी वेबसाइट से किया जाता है आप जहां StaticProgram.exe, आप ठीक रूप में लंबे समय कर रहे हैं उपयोगकर्ताओं को भी StaticProgram.obj और LGPL-पुस्तकालय-source.tar.gz डाउनलोड कर सकते हैं के रूप में। आप अन्य फ़ाइलों को प्रदान करने के लिए लिखित प्रस्ताव के साथ StaticProgram.exe भी वितरित कर सकते हैं।

विशेष रूप से, स्थिर जोड़ने के लिए एक एकल निष्पादन योग्य LGPL कोड की एक व्युत्पन्न है कि बनाता है, इसलिए आप LGPL की धारा 6 का पालन करना चाहिए: उपरोक्त

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

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

एक) सहित लाइब्रेरी के लिए पूर्ण इसी मशीन पठनीय स्रोत कोड के साथ काम के साथ दीजिये जो भी परिवर्तन (काम में इस्तेमाल किया गया है जो के तहत वितरित किया जाना चाहिए अनुभाग 1 और 2 ऊपर); और, काम एक निष्पादन लाइब्रेरी, पूरा मशीन पठनीय "काम लाइब्रेरी का उपयोग करता है" के साथ के साथ जुड़ा हुआ, वस्तु कोड और/या स्रोत कोड के रूप कि उपयोगकर्ता लाइब्रेरी को संशोधित कर सकते है, इसलिए यदि और उसके बाद संशोधित निष्पादन योग्य लाइब्रेरी युक्त निष्पादन योग्य बनाने के लिए फिर से जुड़ें। (समझा जाता है कि उपयोगकर्ता के लिए जो पुस्तकालय में परिभाषाओं फ़ाइलों की सामग्री को बदलता है जरूरी नहीं कि संशोधित परिभाषाओं का उपयोग करने के लिए आवेदन पुन: संयोजित करने के लिए सक्षम हो जाएगा।)

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

ग) कम से कम तीन साल के लिए एक प्रश्न के लिखित प्रस्ताव के साथ काम के साथ दीजिये, वैध, एक आरोप नहीं इस प्रदर्शन के लागत से अधिक के लिए एक ही उपयोगकर्ता सामग्री उपधारा 6a में निर्दिष्ट, ऊपर देने के लिए वितरण।

घ) यदि कार्य का वितरण एक निर्दिष्ट स्थान से कॉपी करने के लिए उपयोग की पेशकश के द्वारा किया जाता है, एक ही जगह से ऊपर निर्दिष्ट प्रतिलिपि करने बराबर पहुँच प्रदान करते हैं। ई) सत्यापित करें कि उपयोगकर्ता को इन सामग्री की एक प्रति प्राप्त हो चुकी है या आपके पास पहले से ही इस उपयोगकर्ता को एक प्रतिलिपि भेज दिया गया है।

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

यह हो सकता है कि इस आवश्यकता को लाइसेंस प्रतिबंध अन्य स्वामित्व पुस्तकालयों ऐसा सामान्य रूप से काम प्रणाली के साथ नहीं की के विपरीत है।इस तरह के एक विरोधाभास का मतलब है कि आप दोनों वितरित करने वाले निष्पादन योग्य में दोनों और लाइब्रेरी दोनों का उपयोग नहीं कर सकते हैं।

संबंधित मुद्दे