2011-02-06 8 views
17

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

+1

धन्यवाद @ विलीटेट @ मिस्टर स्क्वॉन्क; मुझे अन्य मंचों पर अधिक जानकारी मिली जो केवल आंशिक रूप से प्रश्न का उत्तर देते हैं। लगता है कि एलजीपीएल केवल व्यावसायिक ऐप्स में गतिशील बाध्यकारी की अनुमति देता है, जिसका अर्थ यह है कि यह एंड्रॉइड पर काम नहीं करेगा क्योंकि एंड्रॉइड सभी वर्गों और जारों को एक बाइटकोड "डीईएक्स" फ़ाइल में अनुवाद करता है, जो एलजीपीएल का उल्लंघन हो सकता है। जब तक कुछ कानूनी विशेषज्ञ कुछ प्रकाश नहीं छोड़ते, तब तक सावधान रहना बेहतर होता है। अधिक लिंक: http://www.andengine.org/blog/2010/11/andengine-and-the-lgpl-clarification/ http://groups.google.com/group/android-developers/browse_thread/धागा/587d0323cd1b18fe/aa190c051bedfa0f – Kamran

+1

मुझे लगता है कि एंडइंजिन लड़का एलजीपीएल को नहीं समझता है, और उसका ब्लॉग पोस्ट केवल पुष्टि करता है। – Enno

+0

हां, मैं सहमत हूं, मैंने lgpl-lib के लेखकों के साथ भी जांच की है, उन्हें भुगतान किए गए एंड्रॉइड ऐप्स में उनके lib का उपयोग करने में कोई समस्या नहीं है। मुझे एलजीपीएल और एएसएल लिब का उपयोग करके कुछ अन्य सशुल्क ऐप्स भी मिले। – Kamran

उत्तर

3

मैंने हमेशा सोचा है कि एलजीपीएल बहुत 'ग्रे एरिया' था। यद्यपि एलजीपीएल कोड/पुस्तकालयों आदि का उपयोग करने के बारे में विशिष्टताएं हैं, लेकिन यह आवश्यक रूप से लेखक की सटीक आवश्यकताओं को प्रतिबिंबित नहीं करता है।

व्यक्तिगत रूप से मैं लेखक से संपर्क करने की सिफारिश करता हूं, आपकी चिंताओं को समझाता हूं और पूछता हूं कि क्या आप इसका उपयोग करने के लिए खुश हैं या नहीं।

+0

मैं इसे सही उत्तर के रूप में स्वीकार कर रहा हूं; मैं मानता हूं कि यह एक भूरा क्षेत्र है और लेखकों से पूछा जाना चाहिए कि क्या वे अपनी पुस्तकालय के इच्छित उपयोग से खुश हैं। – Kamran

+10

मुझे नहीं लगता कि यह सही जवाब है। एलजीपीएल के साथ अपनी सामग्री का लाइसेंस लेने के बाद, बाद में, आपकी व्यक्तिगत राय/वास्तविक मनोदशा/आदि की गणना नहीं बल्कि एलजीपीएल ही है। जब किसी को अपनी सामग्री में एलजीपीएल सामान लगाने के बारे में संदेह होता है, तो उसे वकील से परामर्श लेना चाहिए। – gyorgyabraham

3

यह आपके मुख्य चिंता को रेखांकित करना चाहिए: http://answers.google.com/answers/threadview/id/439136.html

इसमें से अधिकांश पुस्तकालय के आपके उपयोग का खुलासा और सुनिश्चित करें कि आप लाइसेंस के अनुसार वितरण के नियमों का पालन कर रही है लगता है।

+1

हां मैंने उस धागे को पढ़ा है, मुझे lgpl lib के उपयोग का खुलासा करने में कोई समस्या नहीं है; मेरी एकमात्र चिंता यह है कि एंड्रॉइड एसडीके इस्तेमाल किए गए सभी जावा वर्गों और जार पुस्तकालयों के खिलाफ एक "डीएक्स" फ़ाइल बनाता है। यह परिणामस्वरूप डीएक्स सभी ऑब्जेक्ट/बाइट कोड है, जिसे तब एपीके में पैक किया जाता है। यह वास्तव में गतिशील लिंकिंग नहीं है ... क्या यह कुछ एलजीपीएल लेख का उल्लंघन हो सकता है। – Kamran

+3

मुझे लगता है कि यह एक उल्लंघन हो सकता है। एलजीपीएल को आपके कोड के लाइब्रेरी हिस्से को संपादन योग्य होने की आवश्यकता होगी। –

+0

यदि आप एलजीपीएल लाइब्रेरी का स्रोत शामिल करते हैं तो यह स्थिर रूप से (या "गैर-गतिशील रूप से") लिंक का उल्लंघन नहीं है। –

11

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

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

परेशानी यह है कि अब आपके पास इंस्टॉल करने के लिए एक से अधिक एपीके हैं।

http://code.google.com/p/droidtext/wiki/LGPLCompliance

मुझे मिल गया:

6

droidText पुस्तकालय (एंड्रॉयड पर पीडीएफ प्रारूप में निर्यात के लिए इस्तेमाल किया और LGPL के अंतर्गत जारी) कैसे अपने पुस्तकालय का उपयोग करें और अभी भी LGPL का अनुपालन करने के विस्तृत वर्णन है बहुत उपयोगी। असल में आप लाइब्रेरी के जार को डीएक्स फ़ाइल के बाहर ले जाने के लिए उपयोगिता (डीएक्स 2jar) का उपयोग करते हैं- इस प्रकार यदि उपयोगकर्ता चाहते हैं तो droidText लाइब्रेरी के बाद के संस्करण के साथ उपयोगकर्ता को अद्यतन करने की अनुमति दें।

+8

लिंक टूटा हुआ है; ( – OneWorld

+0

लाइसेंस की मेरी व्याख्या यह है कि किसी उपयोगकर्ता को एप्लिकेशन को पुन: संयोजित करने के लिए कोई रिवर्स इंजीनियरिंग की आवश्यकता नहीं होती है। जबकि droidtext के डेवलपर्स प्रतीत होते हैं कि वे अपनी लाइब्रेरी को मालिकाना सॉफ़्टवेयर में शामिल करते हैं, तो मेरा प्राथमिक चिंता यह है कि अन्य मालिकों के पास एलजीपीएल की कठोर व्याख्या हो सकती है। –

9

मैं एक वकील नहीं हूँ, लेकिन the GNU Lesser General Public License 3.0 की मेरी समझ से, section 4 स्पष्ट रूप से आवश्यकता राज्यों के रूप में स्थिर जोड़ने शामिल नहीं:

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

  • [...]
  • घ) क्या में से एक है:

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

(। जोर मेरा)

धारा 4d.0 एंड्रॉयड APK के स्वभाव से संभव नहीं है: APK संदर्भित पुस्तकालयों युक्त Dex को संकलित और एक पूरे के रूप हस्ताक्षरित किया गया है, और इसलिए पुस्तकालयों को स्वैप करना मूल स्रोत कोड, कीस्टोर और कीस्टोर पासवर्ड के बिना नहीं किया जा सकता है।

4d.1 धारा दो APK की तैनाती के द्वारा ही संभव हो सकता है:

  • एक APK LGPL पुस्तकालय युक्त और बदले खुला स्रोत में और LGPL
  • एक और मालिकाना APK LGPL आवेदन संदर्भित के अंतर्गत लाइसेंस।

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

प्रोफेसर फाल्केन in William Tate's answer के साथ चर्चा के अनुसार, एलजीपीएल की शर्तें देशी कोड के माध्यम से सी पुस्तकालयों में अधिक लागू हो सकती हैं, क्योंकि वे अलग पुस्तकालय के रूप में एपीके के अंदर रहते हैं। हालांकि एपीके पर हस्ताक्षर नहीं किए जा सकते हैं, फिर भी ऑब्जेक्ट फ़ाइल के साथ एपीके को दोबारा बदलना संभव है। मेरे परिप्रेक्ष्य से, वह तकनीकी रूप से लाइसेंस की आवश्यकताओं को फिट करता है।

+2

+1 यह मेरे मूल (पढ़ने: आलसी) प्रयास से कहीं अधिक बेहतर और गहराई से उत्तर है। –

+0

अंतिम बिंदु जावा के लिए एक दिलचस्प दृष्टिकोण लाता है पुस्तकालय: यदि आप 'res/raw' फ़ोल्डर में जार प्रदान करते हैं और इसे गतिशील रूप से लोड करते हैं, तो अनुभाग 4 डी.0 को पूरा करने के लिए एप्लिकेशन को पुन: संयोजित करना संभव हो सकता है। –

11

एक Android निःशुल्क या सशुल्क ऐप्लिकेशन में LGPL का उपयोग करना कानूनी है, लेकिन LGPL के अनुरूप होने के आपके पास करने के लिए:

  1. जहां मूल कोड को खोजने के लिए इस्तेमाल किया पुस्तकालय के उपयोगकर्ता संकेत दें और;
  2. पर पर कोड को कॉन्फ़िगर करें LGPL द्वारा कवर कोड को obfuscate;
  3. हस्ताक्षर अनुपालन के बारे में अपने ऐप में किसी भी चेक से बचें;
  4. लाइब्रेरी को प्रतिस्थापित करने के उपयोगकर्ता संकेत को दें।

बिंदु 4 के लिए आप डीएक्स 2jar का उपयोग करने के लिए संकेत दे सकते हैं, एलजीपीएल कोड को प्रतिस्थापित कर सकते हैं और एपीके पर फिर से हस्ताक्षर कर सकते हैं।इसे उपयोगकर्ता के लिए बहुत सारे काम की ज़रूरत है लेकिन यह संभव है इसे करने के लिए और अंतिम उपयोगकर्ता को रीकॉम्बाइन या कोड को एलजीपीएल के रूप में रिलिकिंक करने की अनुमति दें। इसके अतिरिक्त, यदि आपका ऐप किसी भी Google सेवाओं का उपयोग करता है, तो उपयोगकर्ता को अपनी एपीआई कुंजी उत्पन्न करने के लिए खाता बनाना होगा और इसी तरह।

+1

मेरी राय में, यह स्वीकार्य उत्तर होना चाहिए –

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