Forking GPL परियोजना: क्या मुझे नए कांटे या मूल मालिक के साथ अभी भी निर्भरता पर पूर्ण अधिकार है


34

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

जब मैं कोड कांटा करता हूं, तो मुझे उसी लाइसेंस (जीपीएल) के तहत नई परियोजना जारी करने के लिए मजबूर किया जाता है, जैसा कि मैं करूंगा, लेकिन क्या मैं इसे दोहरे लाइसेंस के तहत जारी करने का फैसला कर सकता हूं, उनमें से एक वाणिज्यिक है?

जब परियोजना को कांटा जाता है, तो क्या मैं पूरी चीज का कॉपीराइट अपने आप कर लेता हूं? यह तब प्रासंगिक है, जब उदाहरण के लिए, लाइसेंस में भविष्य में बदलाव का निर्णय लेना, या 3 डी पार्टी के लिए जीपीएल लाइसेंस लागू करने में सक्षम होना


10
यदि यह संभव था, तो कोई भी बस एक जीपीएल परियोजना को कांटा कर सकता है और एक ही सॉफ्टवेयर को बिल्कुल नए लाइसेंस के साथ प्राप्त कर सकता है जो किसी भी जीपीएल से संबंधित सीमाओं को प्रभावी ढंग से हटा देगा और एक सरल कदम के साथ जीपीएल लाइसेंस को शून्य कर देगा।
user2485710

GPL वाणिज्यिक उपयोग की अनुमति देता है!
फेकली

जवाबों:


75

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

आपके पास किसी भी (nontrivial) संशोधनों या परिवर्धन पर कॉपीराइट है जो आप बनाते हैं।


लंबे उत्तर:

कोड के एक टुकड़े पर कॉपीराइट प्राप्त करने का एकमात्र तरीका यह है कि आप इसे स्वयं लिखें या अनुबंध द्वारा आपको सौंपे गए कॉपीराइट को प्राप्त करें। इसका मतलब यह है कि मौजूदा प्रोजेक्ट को कांटेक्ट करने से कॉपीराइट्स को मूल प्रोजेक्ट या फोर्क के कोड में नहीं बदला जाता है।

केवल वही लोग जो कॉपीराइट लाइसेंस बदल सकते हैं, वे उस कॉपीराइट के धारक हैं। यदि किसी परियोजना के कोड में कई कॉपीराइट धारक हैं, तो सभी कॉपीराइट धारकों को कॉपीराइट लाइसेंस में बदलाव के लिए सहमत होना होगा। इसका मतलब यह है कि आपको अपने कांटे के लाइसेंस (यहां तक ​​कि इसे दोहरे लाइसेंस तक नहीं) में बदलने की अनुमति नहीं है, जब तक कि मौजूदा कॉपीराइट लाइसेंस स्पष्ट रूप से आपको कोड को नष्ट करने का अधिकार नहीं देता है।


2
कॉपीराइट मुद्दों की अच्छी व्याख्या।
रोरी हंटर

2
@ArtB, GPL -> AGPL के बारे में निश्चित नहीं है, लेकिन LGPL आपको विशेष रूप से GPL के तहत एक संशोधित संस्करण जारी करने की अनुमति देता है ( लेख 2 देखें )। आपको वास्तव में क्या करने की अनुमति है यह इस बात पर निर्भर करता है कि प्रारंभिक लाइसेंस क्या है।
ब्रूनो

3
@ 2rs2ts सुनिश्चित नहीं हैं कि आप जो कहते हैं वह सच है ( GPLv3 का अनुभाग 13 देखें ... बेशक यह निर्भर करता है कि हम GPLv2 या GPLv3 से बात कर रहे हैं)। इसके अतिरिक्त, आपके परिवर्तन आमतौर पर हमेशा आपके होते हैं। यदि आप GPL प्रोजेक्ट A में एक मैजिक विजेट जोड़ते हैं, तो आपको वास्तव में GPL के तहत बहुत कुछ पुनर्वितरित करना पड़ सकता है, लेकिन यदि आप BSD प्रोजेक्ट B में एक ही मैजिक विजेट जोड़ते हैं, तो आप अपने सामान को फिर से लाइसेंस दे सकते हैं (और प्रोजेक्ट A से सामान नहीं) किसी भी तरह से आप चाहेंगे (प्रोजेक्ट बी के लाइसेंस के साथ संगत)। (हमेशा की तरह, कानूनी सलाह प्राप्त करें यदि आप सुनिश्चित होना चाहते हैं। यह बात नहीं है।)
ब्रूनो

1
ध्यान रखें कि AFAIK (लेकिन IANAL) आपका कोड आपके लिए कोई मायने नहीं रखता है, यानी आप लक्ष्य परियोजना के लाइसेंस की परवाह किए बिना किसी भी लाइसेंस के तहत एक पैच जारी कर सकते हैं।
ओ ० '।

4
@ लोरिस: आप सही हैं कि आप जो भी लाइसेंस चाहते हैं, उसके साथ लिखी गई पैच जारी कर सकते हैं। लेकिन अगर उस लाइसेंस का लापरवाह चयन पैच कोड को गैर-वितरण योग्य बना सकता है क्योंकि सभी लाइसेंस आवश्यकताओं को पूरा करना असंभव होगा।
बार्ट वैन इनगेन शेनॉ

24

आपकी कांटे की परियोजना मूल परियोजना के कोड का व्युत्पन्न है। दूसरे शब्दों में, आपकी परियोजना मूल परियोजना का उपयोग कर रही है, और इस प्रकार आप इसके लाइसेंस से बंधे हैं। यदि यह सच नहीं होता, तो लाइसेंस का कोई मतलब नहीं होता।

तो, नहीं, आप एक मालिकाना लाइसेंस के तहत कोड जारी नहीं कर सकते हैं यदि यह उस कोड से प्राप्त होता है जो इसकी अनुमति नहीं देता है।


बार्ट का जवाब कांटेक्ट कोड की लाइसेंस आवश्यकताओं पर आप की तुलना में कड़ी शर्तों का मतलब है - जो सामान्य मामले में सटीक है?
थॉमस

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

4
@ थोमस डैन सही हैं, यदि मूल लाइसेंस फिर से प्राप्त करने की अनुमति देता है तो आप नए प्रोजेक्ट का पुन: परीक्षण कर सकते हैं। मुझे यकीन नहीं है कि बार्ट का जवाब बताता है कि आप इसकी क्या व्याख्या करते हैं। ओपी जीपीएल के तहत लाइसेंस प्राप्त कोड के बारे में बात करता है, इसलिए इस मामले में दोनों समान हैं।
तैमिर

5
@ थोमस, मुझे नहीं लगता कि वहां कोई संघर्ष है। हमारे दोनों उत्तरों की बात यह है कि आप उस कोड के लाइसेंस से बंधे रहना चाहते हैं, जिसे आपने कांटेक्ट किया था । हालाँकि, आप वह कर सकते हैं जो उस कोड का लाइसेंस आपको करने की अनुमति देता है। बार नोट करता है कि, यदि मूल कार्य का लाइसेंस आपको अनुमति देता है, तो आप दूसरे लाइसेंस के तहत अपना काम जारी कर सकते हैं।

@ टायमर हाँ, मुझे लगता है कि मैं उलझन में था कि क्या बार्ट का जवाब सभी लाइसेंसों पर लागू होता है (जैसा कि लेखन से पता चलता है) या केवल जीपीएल (जैसा कि यह सवाल बताता है)।
थॉमस

17

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

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

हालाँकि, यदि आप किसी और के कॉपीराइट कोड सहित कांटेक्ट कोड को वितरित करते हैं, तो आपके पास केवल कॉपीराइट धारक की अनुमति है यदि आप इन नियमों का पालन करते हैं। एक नियम यह है कि आपको GPL के तहत पूरे कोड को लाइसेंस देना होगा (अपने खुद के सहित)। एक और नियम यह है कि आपको दूसरों को स्रोत कोड देना होगा; विवरण के लिए GPL की जाँच करें।

लाइसेंस बदलना कठिन होगा, जब तक कि कोई मूल कोड अभी भी नहीं है। आप अपने कोड को इस तरह से लाइसेंस नहीं दे सकते हैं जो अगले आदमी को उस कोड का उपयोग करने से रोकता है जिस तरह से जीपीएल ने अनुमति दी थी, आप उन्हें उस कोड के साथ चीजें करने की अनुमति नहीं दे सकते हैं जो जीपीएल अनुमति नहीं देता है।


1
मैं आम तौर पर आपके उत्तर से सहमत हूं, लेकिन मुझे लगता है कि आप इस वाक्य को फिर से लिखना चाहते हैं: "सादे कॉपीराइट कानून के साथ, आपको व्युत्पन्न कार्य बनाने की अनुमति नहीं दी जाएगी।" आम तौर पर नियम के रूप में, यह सटीक होने का नाटक करने के लिए संभवतः पर्याप्त है, लेकिन अपवाद हैं। (व्यपगत कॉपीराइट, पैरोडी, आदि) हालांकि, मैं मानता हूं कि अधिकांश जीपीएल पर लागू नहीं होते हैं।
पैट्रिक एम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.