किसी ओपन सोर्स प्रोजेक्ट से कोड को फोर्क / री-यूज़ करने का सही तरीका क्या है?


22

मान लें कि मैं एक ओपन सोर्स प्रोजेक्ट पर काम कर रहा हूं और एक अन्य ओपन सोर्स प्रोजेक्ट (उदाहरण के लिए, फ़ाइल खोज / फ़ंक्शन को बदलना) से एक तुच्छ उपयोगिता फ़ंक्शन का फिर से उपयोग करना चाहता हूं। क्या फ़ंक्शन को कॉपी करना और फ़ाइल के शीर्ष पर एक छोटा कॉपीराइट नोटिस लिखना कानूनी है? क्या मुझे लाइसेंस में पूरे प्रोजेक्ट के कॉपीराइट धारकों के रूप में उनका नाम शामिल करना चाहिए?

इसी तरह, मान लीजिए कि मैं एक ओपन सोर्स प्रोजेक्ट फोर्क करता हूं। मैं कहां और कैसे निर्दिष्ट करता हूं कि कॉपीराइट मूल कॉपीराइट धारक और स्वयं दोनों के बीच साझा किया गया है?

मुझे लगता है कि उत्तर स्रोत लाइसेंस के अनुसार उत्तर में कुछ अंतर होना चाहिए, लेकिन मैं यथासंभव सामान्य उत्तर चाहूंगा।

पुनश्च: मैं ज्यादातर कानूनी पहलू के बारे में चिंतित हूं, लेकिन अपने नैतिक दृष्टिकोण को शामिल करने के लिए स्वतंत्र महसूस करता हूं।


1
प्रश्न में परियोजना का लाइसेंस क्या है, और जिस परियोजना को आप जारी कर रहे हैं? हां, आप कोड का उपयोग कर सकते हैं, लेकिन कृपया अधिक विशिष्ट रहें, ताकि हम आपके द्वारा उपयोग किए जा रहे लाइसेंस के तहत आपकी आवश्यकताओं के बारे में बेहतर ढंग से सूचित कर सकें।
टिम पोस्ट

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

जवाबों:


25

मैं इस उत्तर को 'मेटा' के रूप में संभव के रूप में लागू करने की कोशिश कर रहा हूं।

अन्य परियोजनाओं से स्निपेट्स / बिट्स का उपयोग करना

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

आपके कार्यक्रम में एक AUTHORS फ़ाइल (या समान) होनी चाहिए, जहां आप उन सभी योगदानकर्ताओं और चीज़ों को सूचीबद्ध करते हैं जो आपने अन्य परियोजनाओं से उपयोग की थीं।

एक परियोजना के लिए फोर्किंग

प्रत्येक मॉड्यूल के लिए जिसे आप पर्याप्त रूप से बदलते हैं, मूल लेखक के अंतर्गत अपना कॉपीराइट जोड़ें। यही बात लाइसेंस के लिए भी जाती है, आप उस लाइसेंस की शर्तों से बंधे होते हैं जब आप इसे भूल गए थे। यदि परियोजना "केवल GPL2" कहती है, तो आपको उसका सम्मान करना चाहिए, आप उनकी अनुमति के बिना GPL3 में नहीं जा सकते।

यह हाथ में लाइसेंस के आधार पर, बहुत भिन्न होता है। QPL का कहना है कि उदाहरण के लिए, आप केवल पैच प्रारूप में परिवर्तन वितरित कर सकते हैं, इसलिए सुनिश्चित करें कि आप उन शर्तों को समझते हैं जो आपको सॉफ़्टवेयर के संशोधित संस्करण वितरित करने की अनुमति देती हैं।

इसके अलावा, हमेशा कॉपीराइट सुरक्षित रखें। यदि आपके स्वयं के कॉपीराइट में क्या मौजूद है, यह सुनिश्चित करें कि आप स्पष्ट रूप से वही दावा कर रहे हैं जो आप दावा कर रहे हैं।


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

@ दाविद - ओपी एक सामान्य जवाब चाहता था (इसलिए लाइसेंस के लिए मेरा आग्रह था)। आप काफी सही हैं। फिर भी, आपके द्वारा बीएसडी कोड में किए गए किसी भी परिवर्तन को दोहरा लाइसेंस देना 'अच्छा' है, इसलिए मूल लेखक वास्तव में इसका उपयोग कर सकते हैं यदि वे इसे चाहते हैं।
टिम पोस्ट

1
किस बिंदु पर मुख्य लाइसेंस फ़ाइल में मूल लेखकों के ऊपर आपकी कॉपीराइट सूचना होनी चाहिए '? जब आपकी SLOC मूल परियोजना SLOC के 200% से अधिक हो जाती है? 300%? यदि आपने जिस प्रोजेक्ट को कांटा है, वह आपके प्रोजेक्ट के भीतर कई लाइब्रेर या मॉड्यूल में से एक है?
हॉब

@ होम्स इमो, कॉपीराइट नोटिस का आदेश योगदान की परिमाण का संकेत नहीं है, बल्कि कालानुक्रमिक रूप से उत्पत्ति का विवरण देता है।

@TechnikEmpire कालानुक्रमिक क्रम समझ में आता है, लेकिन कॉपीराइट नोटिस के बजाय योगदानकर्ताओं की सूची के लिए? मुझे लगा कि कॉपीराइट नोटिस उन कोड के वर्गों के अनुसार बेहतर व्यवस्था हो सकती है जो पैकेज में उन वर्गों के मूल्य / मात्रा पर लागू होते हैं। यदि आप लाइसेंस के बारे में कुछ बदलना चाहते हैं तो प्राथमिकता के क्रम में उन लोगों की एक सूची बनाना उपयोगी है, जिनसे आपको संपर्क करने की आवश्यकता है। इसलिए यदि आपको पहले कुछ से अनुमति मिलती है, लेकिन अंतिम नहीं, तो आपके पास परिवर्तन करने के लिए निर्धारित किए जाने पर कोड को फिर से बनाने के लिए थोड़ी मात्रा है। मुझे आश्चर्य है कि लिनस क्या करता है?
हॉब्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.