क्या आप एमआईटी लाइसेंस के तहत वितरित कोड को बदल सकते हैं, और इसे जीपीएल लाइसेंस के तहत फिर से वितरित कर सकते हैं? [बन्द है]


57

क्या मिर्ची प्लगइन के कोड को बदलना संभव है , जिसकी जुलाई 2008 को नवीनतम रिलीज हुई थी, और इसे MIT लाइसेंस के तहत लाइसेंस दिया गया था, फिर इसे GPL के तहत लाइसेंस दिया गया?

जहां तक ​​मैं देख सकता हूं, एक ही लाइसेंस के तहत नए कोड के लाइसेंस के बारे में कोई प्रतिबंध नहीं है। क्या यह वास्तव में ऐसा है, या इसमें न्यूनतम संख्या में परिवर्तन है?

मेरे मामले में, मैं सामान्य जावास्क्रिप्ट कोड में jQuery प्लगइन को बदल दूंगा जिसे CMS में निष्पादित किया गया है। यह अनिवार्य रूप से इसका मतलब है कि, अन्य बातों के अलावा:

  • कोड "चिलीबुक" नामस्थान का उपयोग नहीं करेगा।
  • फ़ंक्शन को लागू नहीं किया जाएगा $($element).chili(), लेकिन जैसा कि GlobalObject.ChiliHighlighter.process($jquery_element), "GlobalObject" CMS से उपयोग की जाने वाली जावास्क्रिप्ट ऑब्जेक्ट है।
  • कोड अन्य मॉड्यूल को GlobalObject.ChiliHighlighterफ़ंक्शन को जोड़ने के लिए ऑब्जेक्ट को बदलने के लिए अनुमति देगा जो वैकल्पिक रूप से GlobalObject.ChiliHighlighter.process()परिभाषित होते हैं जब वे परिभाषित होते हैं।

विकल्प के रूप में, मैं जिस रिपॉजिटरी का उपयोग कर रहा हूं, वह मुझे GPL 2 या उच्चतर लाइसेंस के तहत लाइसेंस प्राप्त कोड को शामिल करने की अनुमति नहीं देता है जब कोड को अब नहीं रखा जाता है, तो क्या प्लगइन को अब भी बनाए नहीं रखा जा सकता है, क्योंकि इसका अंतिम संस्करण तीन साल पहले जारी किया गया था?


2
यदि आप वास्तव में एक आधिकारिक उत्तर चाहते हैं, तो आपको एक वकील से परामर्श करना चाहिए (प्रासंगिक अधिकार क्षेत्र में, उदाहरण के लिए इटली अमेरिका की तुलना में अलग हो सकता है)
MarkJ

जवाबों:


59

यह तकनीकी रूप से कानूनी है।

MIT (Expat) लाइसेंस आप पर कुछ प्रतिबंध लगाता है। ये GPL लाइसेंस का एक उपसमूह हैं। इसलिए, यदि आप जीपीएल के तहत कोड को हटाते हैं, और एमआईटी नोटिस रखते हैं, तो आपने एमआईटी लाइसेंस की शर्तों को पूरा कर लिया है और कानूनी रूप से कोड का पुनर्वितरण कर सकते हैं।

ध्यान दें कि आप कॉपीराइट स्वामित्व का दावा नहीं कर सकते हैं; आपको मूल कॉपीराइट स्वीकार करना होगा।

[संपादित करें] कुछ लोगों को यह समझ में नहीं आता है कि एफ / ओएसएस कॉपीराइट और लाइसेंस कानून के साथ मिलकर कैसे काम करता है। सब कुछ कॉपीराइट से शुरू होता है, यदि केवल इसलिए कि यह डिफ़ॉल्ट है। कॉपीराइट सिद्धांत के तहत, लेखक को स्रोत कोड की प्रतियां बनाने का अधिकार मिलता है। एमआईटी लाइसेंस के तहत, यह अधिकार मुझे दिया गया है, साथ ही साथ दूसरों को इसे पुन: देने का अधिकार भी है। ध्यान दें कि एमआईटी लाइसेंस में स्पष्ट रूप से उप-अधिकार का अधिकार शामिल है। का हवाला देते हुए:"the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

जब मैं उप-कोड कोड देता हूं, तो मुझे वे अधिकार नहीं मिल सकते हैं जो मेरे पास नहीं थे। जीपीएल के मामले में, मुझे स्पष्ट रूप से केवल कुछ अधिकारों को नष्ट करने की मनाही है। लेकिन न तो कानून में और न ही एमआईटी लाइसेंस में, मुझे एक पूरे के रूप में सभी अधिकारों को कम करने का दायित्व है।

इसलिए, एमआईटी लाइसेंस मुझे उप-अधिकार के अधिकार का स्पष्ट अधिकार देता है, और न ही कानून और न ही एमआईटी लाइसेंस मुझे केवल कुछ अधिकारों के अधीन होने पर रोक लगाते हैं। इसके अलावा, न तो उस फॉर्म को प्रतिबंधित करता है जिसमें मैं करता हूं। इसलिए, मुझे उस कोड पर जीपीएल उपविषयक अनुदान देने का निर्विवाद अधिकार है।


6
@vartec: आप उस लाइसेंस को नहीं बदल रहे हैं जिसके तहत आपको कोड प्राप्त हुआ था। आप अपने और नए प्राप्तकर्ता के बीच एक नया लाइसेंस बना रहे हैं, और इसमें आपकी जो भी शर्तें हो सकती हैं। (नए प्राप्तकर्ता को मूल लाइसेंस के तहत अतिरिक्त अधिकार मिल सकते हैं, लेकिन नए लाइसेंस पर इसका कोई प्रभाव नहीं पड़ता है।) मूल लाइसेंस में अधिकारों के कुछ अंश देने के लिए मानदंड एक उप-खंड के लिए है। उदाहरण के लिए, एक सब्लेंसेंस में शायद ही कभी सब्लेंसेंस का अधिकार शामिल होता है, जिसे मूल लाइसेंस के लिए वहां शामिल होना चाहिए।
डेविड श्वार्ट्ज

3
@vartec: अनिवार्य रूप से, आप तर्क दे रहे हैं कि कॉपीराइट लाइसेंस जो किसी भी तरह से वास्तव में उपगणित का अधिकार देता है, वह अधिकार नहीं देता है। मुझे यकीन नहीं है कि आप किस आधार पर यह तर्क दे रहे हैं। क्या आपके पास किसी भी प्रासंगिक कानूनी प्राधिकरण के बारे में कुछ उल्लेख है? क्या आप कह रहे हैं कि कॉपीराइट धारक दूसरों को अपने काम का लाइसेंस देने का अधिकार नहीं दे सकता है ? या क्या आपको लगता है कि एमआईटी लाइसेंस किसी तरह से ऐसा करने में विफल रहता है या इसका इरादा नहीं है?
डेविड श्वार्ट्ज

1
@ डेविड: आपको समझ में नहीं आ रहा है कि "सबसिलेक्शन" का क्या मतलब है।
vartec

1
@vartec: एक स्रोत का लिंक जो यह बताता है कि यह बहुत अच्छा होगा, क्योंकि मुझे लगता है कि आप इसका मतलब नहीं समझते हैं।
डेविड श्वार्ट्ज

7
MIT लाइसेंस में यह थोड़ा सा है: "उपरोक्त कॉपीराइट नोटिस और यह अनुमति नोटिस सॉफ़्टवेयर की सभी प्रतियों या पर्याप्त भागों में शामिल किया जाएगा।" अर्थात किसी भी कांटे को MIT लाइसेंस के तहत उपलब्ध होना चाहिए। परिवर्तनों को GPL के रूप में सूचीबद्ध किया जा सकता है। कांटे को GPL + MIT के रूप में सूचीबद्ध किया जा सकता है। लेकिन कांटे को केवल जीपीएल के रूप में सूचीबद्ध नहीं किया जा सकता है - यह एमआईटी लाइसेंस का स्पष्ट उल्लंघन है।
जोनाथन वानास्को

26

हाँ। लेकिन प्रभाव वह नहीं हो सकता है जो आप सोचते हैं कि यह है।

MIT लाइसेंस में GPL द्वारा दिए गए सभी अधिकार शामिल हैं और बहुत कुछ। और जब आपके वितरण को प्राप्त करने वाले लोग केवल आपके द्वारा जोड़े गए तत्वों को एक जीपीएल लाइसेंस प्राप्त करते हैं, तो वे उस लाइसेंस के तहत पेश किए गए काम में निहित किसी भी तत्व से एक एमआईटी लाइसेंस (मूल लेखकों से, आप से नहीं) प्राप्त करते हैं।

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

इसलिए आपने MIT लाइसेंस से किसी भी कॉपीराइट तत्व को GPL लाइसेंस में परिवर्तित नहीं किया है। आपने बस नए जोड़े हैं जो केवल GPL लाइसेंस के तहत पेश किए गए हैं और तत्वों को मिश्रित / संयुक्त कार्य में जारी किया है।


इसलिए व्यवहार में, मैं यह करूँगा: MIT प्रोजेक्ट की प्रतिलिपि बनाएँ, MIT को GPL के साथ सब कुछ बदलें (इसलिए MIT होने वाले प्रोजेक्ट का कोई निशान नहीं बचा है), और फिर कुछ महत्वपूर्ण स्थानों पर मूल MIT प्रोजेक्ट से लिंक करें (हर नहीं स्रोत फ़ाइल), यह उल्लेख करते हुए कि आधार-परियोजना एमआईटी के तहत उपलब्ध है। क्या यह ठीक होगा / कानूनी (मुझे मूल कॉपीराइट स्वामी के बयान रखने होंगे)?
होइजुई

1
@hoijui आपको सभी एमआईटी लाइसेंस हेडर और अनुमति नोटिस को छोड़ना होगा और उन्हें अपने नए प्रोजेक्ट के साथ शामिल करना होगा। और जब तक आपका इरादा धोखा देने का नहीं है, मैं नहीं देखता कि आप "एमआईटी" के सभी उल्लेखों को क्यों बदलेंगे। यह कुछ भी नहीं बदलेगा, आपके द्वारा लिए गए हिस्से अभी भी एमआईटी लाइसेंस प्राप्त होंगे। बस इसके नीचे अपना खुद का जीपीएल लाइसेंस हेडर जोड़ें, यह सभी कॉपीराइट परिवर्तन (यानी केवल नाम बदलने वाले चर) के लिए मान्य होगा जो आप स्रोत कोड में बनाते हैं। BTW यही कारण है कि ज्यादातर परियोजनाओं में हर फ़ाइल में कॉपीराइट हेडर होता है।
जम्मिसेर

@jmiserez ठीक है। इसलिए मेरी परियोजना की एक फ़ाइल को देखने की अनुमति देता है: मैं एमआईटी हेडर छोड़ता हूं, कुछ बदलाव करता हूं और एक जीपीएल हेडर जोड़ता हूं (जैसा कि मैं चाहता हूं कि मेरे बदलाव केवल जीपीएल के तहत उपलब्ध हों)। अब मेरी फ़ाइल के बारे में आने वाली 3rd पार्टी को MIT और GPL दोनों का सम्मान करना होगा? मैंने कभी भी दो लाइसेंस हेडर के साथ फाइल नहीं देखी है, और मुझे लगता है, ज्यादातर लोग सिर्फ लाइसेंस को पसंद करेंगे, जैसा कि वे नहीं जानते कि कानूनी रूप से सही तरीका क्या है। मुझे भी क्यों MIT को शामिल करना है, अगर GPL का सम्मान करके, कोई स्वचालित रूप से MIT का सम्मान करता है?
होइजई

@होइजई आपके पास एमआईटी लाइसेंस के तहत कोई भी अधिकार प्रतिबंध के साथ आते हैं "उपरोक्त कॉपीराइट नोटिस और यह अनुमति नोटिस सॉफ्टवेयर की सभी प्रतियों या पर्याप्त भागों में शामिल किया जाएगा।" लेकिन ईमानदारी से अगर आप सभी को रखने की आवश्यकता नहीं है, तो मुझे यकीन नहीं है। नोटिस का, या सिर्फ एक, IANAL। लेकिन मुझे यकीन है कि आपको कहीं एक नोटिस शामिल करने की आवश्यकता है। यदि आपने ऐसा नहीं किया है, तो आप एमआईटी लाइसेंस का अनुपालन नहीं करेंगे, जिसका अर्थ है कि आप अपनी परियोजना में कोड का उपयोग करने के सभी अधिकार खो देंगे। FYI करें लिनक्स कर्नेल में कई लाइसेंस वाली फाइलें हैं, वे SPDX हेडर का उपयोग करते हैं: lwn.net/Articles/739183
jmiserez

1
यह कितना दुखद है कि कोई व्यक्ति जीपीएल कोड का प्रयास करना चाहता है जो एमआईटी लाइसेंस पर बनाया गया था। ऐसा लगता है कि MIT लाइसेंस के लिए हर चीज का विरोध है।
एंड्रयू टी फिनेल

8

पहले से दिए गए उत्तरों में स्पष्टीकरण में जोड़ने के लिए कुछ भी नहीं है, लेकिन यहां आपके स्रोत फ़ाइल हेडर ( स्रोत ) को आकार देने के निर्देश दिए गए हैं :

2.2 अनुमति-लाइसेंस प्राप्त फ़ाइलों के लिए GPL'd संशोधन जोड़ना

एक अधिक जटिल मामला तब होता है जब एक डेवलपर एक अनुमेय-लाइसेंस प्राप्त फ़ाइल में कॉपीराइट परिवर्तन करता है जिसे डेवलपर GPL'd कार्यक्रम में शामिल कर रहा है। इस स्थिति में डेवलपर्स आमतौर पर अपने संशोधनों के लिए जीपीएल लागू करते हैं। (हालांकि, डेवलपर के लिए यह संभव है कि वह अनुमेय शर्तों के तहत नए कोड का योगदान दे, जैसे कि अनुज्ञेय लाइसेंस जो अनधिकृत फ़ाइल को नियंत्रित करता है। हम उस मामले पर that 2.3 में चर्चा करते हैं।)

भले ही बाहरी परियोजना का अनुमत लाइसेंस उस परियोजना से कोड को एक GPL'd परियोजना में शामिल करने की कानूनी अनुमति देता है, GPL'd परियोजना के डेवलपर को फिर भी अनुमति लाइसेंस में सूचना संरक्षण की आवश्यकता का पालन करना चाहिए। फ़ाइल-दर-फ़ाइल पद्धति का उपयोग करने वाले प्रोजेक्ट में, एक डेवलपर जो अनुमेय-लाइसेंस प्राप्त फ़ाइल के लिए कॉपीराइट संशोधन करता है, उसे मौजूदा कॉपीराइट से ऊपर एक नया कॉपीराइट नोटिस और अनुमति नोटिस रखना चाहिए और स्पष्ट करना चाहिए कि डेवलपर ने फ़ाइल को संशोधित किया है। फ़ाइल का शीर्ष तब निम्नानुसार दिखाई देगा:

/*  
 * Copyright (c) 2007  GPL Project Developer Who Made Changes   
 *  
 *  This file is free software: you may copy, redistribute and/or modify it  
 *  under the terms of the GNU General Public License as published by the  
 *  Free Software Foundation, either version 2 of the License, or (at your  
 *  option) any later version.  
 *  
 *  This file is distributed in the hope that it will be useful, but  
 *  WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  
 *  General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License  
 *  along with this program.  If not, see .  
 *  
 * This file incorporates work covered by the following copyright and  
 * permission notice:  
 *  
 *     Copyright (c) YEARS_LIST, Permissive Contributor1   
 *     Copyright (c) YEARS_LIST, Permissive Contributor2   
 *  
 *     Permission to use, copy, modify, and/or distribute this software  
 *     for any purpose with or without fee is hereby granted, provided  
 *     that the above copyright notice and this permission notice appear  
 *     in all copies.  
 *  
 *     THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL  
 *     WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED  
 *     WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE  
 *     AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR  
 *     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS  
 *     OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,  
 *     NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN  
 *     CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  
 */

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

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

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