तीसरे पक्ष के पुस्तकालय लाइसेंस "कागजी कार्रवाई" की व्यवस्था के लिए सबसे अच्छा अभ्यास क्या है?


60

मैं एक छोटा सा ओपन सोर्स प्रोजेक्ट विकसित कर रहा हूं। एप्लिकेशन लाइसेंस की एक श्रृंखला के साथ जारी किए गए कई तृतीय-पक्ष पुस्तकालयों का उपयोग करता है: अपाचे, एमआईटी, बीएसडी, एलजीपीएल और सीडीडीएल।

इनमें से प्रत्येक लाइसेंस की अपनी "कागजी" आवश्यकताएं हैं। उदाहरण के लिए, अपाचे लाइसेंस, v2.0 कहता है:

यदि कार्य में इसके वितरण के भाग के रूप में "NOTICE" पाठ फ़ाइल शामिल है, तो आपके द्वारा वितरित किसी भी व्युत्पन्न कार्य में ऐसी NOTICE फ़ाइल के भीतर निहित एट्रिब्यूशन नोटिस की एक पठनीय प्रति शामिल होनी चाहिए।

MIT लाइसेंस में कॉपीराइट नोटिस होता है और कहते हैं:

उपरोक्त कॉपीराइट नोटिस और इस अनुमति नोटिस को सॉफ्टवेयर की सभी प्रतियों या पर्याप्त भागों में शामिल किया जाएगा।

बीएसडी लाइसेंस में कॉपीराइट नोटिस भी होता है और कहते हैं:

बाइनरी फॉर्म में पुनर्वितरण को उपरोक्त कॉपीराइट नोटिस, शर्तों की इस सूची और वितरण के साथ प्रदान किए गए प्रलेखन और / या अन्य सामग्रियों में निम्नलिखित अस्वीकरण को पुन: प्रस्तुत करना होगा।

LGPL v.3 कहता है:

(आपको चाहिए) संयुक्त कार्य की प्रत्येक प्रति के साथ प्रमुख सूचना दें कि इसमें पुस्तकालय का उपयोग किया गया है और पुस्तकालय और इसके उपयोग को इस लाइसेंस द्वारा कवर किया गया है।

LGPL और CDDL लाइसेंस के लिए लाइब्रेरी के बाइनरी फॉर्म के साथ सोर्स कोड की आपूर्ति की भी आवश्यकता होती है, इसलिए जिस तरीके से सोर्स कोड प्राप्त किया जा सकता है, उसकी जानकारी कहीं और प्रदान की जानी चाहिए।

इस सभी डेटा को व्यवस्थित करने के लिए सबसे अच्छा अभ्यास क्या है? क्या मुझे एक पाठ फ़ाइल बनानी चाहिए और उस NOTICEफाइल में सभी फाइलों, एमआईटी और बीएसडी लाइसेंस आदि की सामग्री को कॉपी करना चाहिए ? ... या मुझे प्रत्येक पुस्तकालय के लिए एक अलग निर्देशिका बनानी चाहिए और पुस्तकालय से संबंधित सभी डेटा को उस निर्देशिका में रखना चाहिए? … या कुछ और?

प्रकाशित परियोजनाओं में इस "कागजी कार्रवाई" के किसी भी उदाहरण को देखना दिलचस्प होगा।

अपडेट करें:

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

जवाबों:


62

सबसे पहले, मानक अस्वीकरण: IANAL लेकिन एक यादृच्छिक अजनबी।

मैं हाल ही में एक एजीपीएल एप्लिकेशन (*) की पैकेजिंग कर रहा हूं । यह jQuery, MIT, BSD (और कुछ अन्य) लाइसेंस के तहत वितरित तृतीय पक्ष पुस्तकालयों का उपयोग करता है। यहां बताया गया है कि मैं कैसे आगे बढ़ा हूं।

जब मैंने इसे डिजाइन किया तो मेरे मुख्य उद्देश्य थे: आज्ञाकारी होना और निष्पक्ष होना । जबकि पहले वाले को पर्याप्त होना चाहिए, दूसरा यह सुनिश्चित करता है कि जो कोई भी मुझे 100% सही नहीं होने के लिए मुकदमा करने की कोशिश करता है उसे मानना ​​होगा कि मैंने अच्छे विश्वास के साथ काम किया है।

1) सोर्स फाइल्स: मेरी सभी फाइल्स में AGPL हैडर है। सभी 3 पार्टी फ़ाइलों को छोड़ दिया जाता है (ज्यादातर) अनमॉडिफाइड, और इसलिए उनके स्वयं के लाइसेंस हेडर शामिल होते हैं।

2) LICENSE.txt, पैकेज की जड़ में, AGPL लाइसेंस पाठ सम्‍मिलित है (जैसा कि "आपके नए कार्यक्रमों में ये शर्तें कैसे लागू करें" अनुभाग में बताया गया है)।

3) एक माध्यमिक लाइसेंस फ़ाइल, जिसे मैंने LICENSE-3RD-PARTY.txt नाम दिया है, पैकेज के रूट पर भी स्थित है, जिसमें सभी लाइसेंसों की शब्दशः प्रतियां शामिल हैं। प्रत्येक लाइसेंस के लिए, एक हेडर बताता है कि यह कौन सा लाइसेंस है, और यह किस हिस्से पर लागू होता है। मैं यहां कॉपीराइट धारकों का नाम भी शामिल करता हूं - मैं उन्हें कहीं और फिर से उपयोग करता हूं इसलिए यह प्रयास के लायक है।

-----------------------------------------------------------------------------
                        The MIT License (MIT)
        applies to: 
        - AJAX Upload, Copyright (c) Andrew Valums
        - jQuery hashchange event, Copyright (c) 2010 "Cowboy" Ben Alman
        - jquery.hotkeys, Copyright (c) 2010 John Resig
-----------------------------------------------------------------------------

Permission is hereby granted, free of charge [...]

4) README.txt, रूट पर, यह भी बताता है कि सॉफ्टवेयर AGPL है (LICENSE.txt देखें) और तीसरे पक्ष के पुस्तकालयों का उपयोग करता है जो अपनी शर्तों के तहत वितरित किए जाते हैं (LICENSE-3RD-PARTY.txt देखें)

5) ऑन-लाइन प्रलेखन में, मेरे पास एक लाइसेंस पृष्ठ है जो रीडमी से जानकारी को दोहराता है: मेरा सॉफ्टवेयर एजीपीएल है, और यह 3 पार्टी घटकों का उपयोग करता है जो बीएसडी / एमआईटी / [...] हैं। मैंने इस पृष्ठ को साफ रखने और अधिक पठनीय बनाने का निर्णय लिया है, इसलिए केवल लाइसेंस का नाम प्रदान किया गया है, जिसमें पूर्ण पाठ के लिए लिंक और कॉपीराइट धारकों के नाम के साथ उनकी अपनी वेबसाइट का लिंक है।

jQuery
    Copyright 2013 jQuery Foundation and other contributors
    http://jquery.com
    MIT License
Data Driven Documents (D3)
    Copyright (c) 2013, Michael Bostock    <-- link to personal website, if any
    http://d3js.org                        <-- link to software website
    BSD-like license                       <-- link to license full text
[...]

6) ऑन-लाइन प्रलेखन में, मेरे पास एक क्रेडिट पृष्ठ है, जहां मैं प्रत्यक्ष और अप्रत्यक्ष मुख्य योगदानकर्ताओं की सूची देता हूं। उदाहरण के लिए मैंने PostgreSQL समूह का उल्लेख किया है, हालाँकि PostgreSQL डाउनलोड में शामिल नहीं है, लेकिन आपको सॉफ़्टवेयर चलाने के लिए इसकी आवश्यकता है। यह उन सभी पावतियों को रखने के लिए एक अच्छी जगह होगी जो या तो आवश्यक हैं या तीसरे पक्ष के उपकरण / पुस्तकालय / आदि के लेखकों द्वारा वांछित हैं।

7) सॉफ्टवेयर के अंदर, लाइसेंस और कॉपीराइट धारकों के साथ पुस्तकालयों की सूची, के बारे में संवाद बॉक्स में दोहराया जाता है ।

स्रोत कोड और फ़ाइल लेआउट को शामिल करने के बारे में अपने विशिष्ट प्रश्नों को संबोधित करने के लिए:

  • इसे आम तौर पर केवल 3 पार्टी पैकेज के पूर्ण स्रोत कोड से लिंक करने के लिए स्वीकार किया जाता है। सुनिश्चित करने के लिए प्रत्येक विशिष्ट लाइसेंस से परामर्श करें, लेकिन लिंक प्रदान करने वाला IMHO पर्याप्त होना चाहिए। उदाहरण के लिए, यदि आप किसी पुस्तकालय के लघु संस्करण का उपयोग करते हैं, तो आप मानक डाउनलोड के लिए लिंक प्रदान कर सकते हैं और ठीक हो सकते हैं।

  • जब तक तृतीय पक्ष घटक स्पष्ट रूप से मांग नहीं करता है कि वितरण फ़ाइल लेआउट को समान रखते हैं, आप अपनी इच्छानुसार चीजों को फिर से व्यवस्थित कर सकते हैं। कल्पना करें कि आप वेब लाइब्रेरी का उपयोग करते हैं, प्रत्येक में css / और js / निर्देशिका है, आप उन्हें एक साथ एक ही lib / निर्देशिका में मर्ज कर सकते हैं, जिसमें विलय css / और js / शामिल हैं, या यहां तक ​​कि उन्हें आपके स्रोत ट्री के चारों ओर बिखेर सकते हैं - आपकी पसंद।

और एक अंतिम नोट के रूप में, मैं स्वागत टिप्पणीकर्ताओं जो एक हाथ और कहा कि "आप क्या कर रहे हैं लहर से होगा और अधिक इस और / या" आप भी क्या करना चाहिए गलत " है कि "।

(*) यह स्पैम लिंकिंग करने का इरादा नहीं है, लेकिन सिर्फ "कृपया उदाहरण प्रदान करें" सवाल का हिस्सा है। अगर यह नियमों के विरुद्ध है तो इस लिंक को खाली करने के लिए स्वतंत्र महसूस करें।


2
एक महान जवाब के लिए धन्यवाद! यह ठीक उसी तरह की जानकारी है जिसकी मुझे तलाश है। मैं इसे अभी तक स्वीकार नहीं करूंगा कि अन्य लोगों के पास कहने के लिए कुछ है या नहीं।
एलेक्सी

8
उन लोगों के लिए जो बाद में यहां आएंगे, फायरफॉक्स के पास LICENSE-3RD-PARTY.txtइस उत्तर में वर्णित फ़ाइल के समान एक दस्तावेज है । ( बॉक्स Licensing Informationमें क्लिक करें About।) Google Chrome में भी इसी तरह का एक दस्तावेज है।
एलेक्सी

1
: यहाँ एक ऐसी ही दस्तावेज है जो IntelliJ विचार द्वारा प्रयोग किया जाता तीसरे पक्ष के सॉफ़्टवेयर को सूचीबद्ध करता है confluence.jetbrains.com/display/IDEADEV/...
एलेक्सी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.