जीपीएल लाइसेंस के साथ "हैलो वर्ल्ड" कोड चोरी न करने के लिए मुझे क्या करने की आवश्यकता है?


42

प्रोजेक्ट में, मुझे एक फ़ाइल मिली math.c, जिसमें एक बड़ा GPL हैडर और ...

//------------------------------------------------------------------------------
/// Returns the minimum value between two integers.
/// \param a  First integer to compare.
/// \param b  Second integer to compare.
//------------------------------------------------------------------------------
unsigned int min(unsigned int a, unsigned int b)
{
    if (a < b) {
        return a;
    }
    else {
        return b;
    }
}

ठीक है, शांत इसलिए मुझे न्यूनतम मूल्य और ... यह फ़ाइल चाहिए ! इसलिए मुझे इसकी वजह से पूरी परियोजना खोलने की आवश्यकता है? या मुझे गणित पर लगाम लगाने की जरूरत है?

मुझे विश्वास नहीं है कि यह सिर्फ पागल है, इसलिए सवाल यह है: जब हम सिर्फ जीपीएल हेडर निकाल सकते हैं?

क्या मुझे एक अजीब होना चाहिए और यह करना चाहिए ?

unsigned int min(             unsigned int
JEIOfuihFHIYEFHyigHUEFGEGEJEIOFJOIGHE,
unsigned int hyrthrtRERG            ) {  if
(JEIOfuihFHIYEFHyigHUEFGEGEJEIOFJOIGHE
< hyrthrtRERG            ) {  return JEIOfuihFHIYEFHyigHUEFGEGEJEIOFJOIGHE;  }
else {return hyrthrtRERG            ;    } }

गंभीरता से, क्या वे चाहते हैं कि मैं ऊपर जैसा कोड लिखूं?


22
खैर, Google बनाम ओरेकल के हालिया मामले में the jury did find that one nine-line function that Google acknowledged copying was infringing( ArsTechnica से )।
ज़ेनन

5
ओ, गंभीरता से, मिनट पर आओ?
माइकेआ चीरा

33
मैं कहूंगा कि इस सवाल का बहुत अस्तित्व एक बुरी बात साबित होता है - एक प्रोग्रामर की नौकरी कम प्रोग्रामिंग, अधिक कानूनी अव्यवस्था और नौकरशाही बन गई है
Ktete

4
इसे कॉपी करें । एक तुच्छ फ़ंक्शन जैसे minकॉपीराइट द्वारा कवर नहीं किया जाता है। विवरण के लिए मेरा उत्तर देखें।
टोनी द पोनी

6
@ लोकी, तुम इसे एक मील से मिस कर रहे हो। एल्गोरिदम पेटेंट द्वारा कवर किए जाते हैं, कॉपीराइट द्वारा नहीं। लेखक की मृत्यु के 70 साल बाद कॉपीराइट समाप्त हो जाता है, इसलिए 60 के दशक में कॉपीराइट किए गए कार्य अभी भी काफी ताजा हैं। अंत में, यह प्रश्न THIS कोड को कॉपी करने के बारे में है, एल्गोरिथम के बारे में नहीं।
एलेक्सिस

जवाबों:


53

यहां कई उपयोगकर्ता के विपरीत, मैं बस सुझाव दूंगा: इसे कॉपी करें!

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

इसके बारे में सोचें, यह शायद ही (!) पहली बार इस सटीक टुकड़े को लिखा गया है - जब कोई चीज यह तुच्छ है, तो इसे कॉपी करने का कोई कारण नहीं है, अगर आपको यह लिखने का मन नहीं है।

यहाँ तक कि यह चर्चा मेरे लिए थोड़ी सी ही सही है - अगर हमें कोई वास्तविक काम करना है तो हमें व्यावहारिक होने की आवश्यकता है!


5
असली सवाल यह है कि तुच्छ और गैर-तुच्छ के बीच अवरोध कहां है और क्या यह सुनिश्चित करने का तरीका है कि लोग मेरे कोड को कुछ समान रूप से इंगित नहीं करेंगे "LOOK IT'S MY GPL MIN REALIZATION!" ... मैं वास्तव में उन लोगों को>! _ <
CND

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

4
@ नीलू: Let us then say that the programmer wrote his own version of MIN and it ended up looking exactly like the one from math.c - would it then be okay?हाँ, अगर यह एक दुर्घटना थी। "क्या फर्क पड़ता है अगर वह सिर्फ इसे कॉपी किया था?" बिट्स का रंग हैansuz.sooke.bc.ca/entry/23 यह कुछ ऐसा नहीं है जिसे अधिकांश कंप्यूटर वैज्ञानिक समझ सकते हैं - यह वास्तव में एक जटिल विषय है, लेकिन यह कुछ ऐसा है जिसे कानून द्वारा मान्यता प्राप्त है। यदि आप संदेह में हैं कि कुछ कानूनी है या नहीं, तो आपके पास एक वकील से बात करने के लिए सबसे अच्छा था ।
मार्क बायर्स

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

5
@ मार्कर्स: जब मैं कहता हूं कि 'साबित नहीं हो सकता', तो मेरा मतलब है कि कोई भी भौतिक सबूत यह दिखाने के लिए मौजूद नहीं है कि एक अपराध भी किया गया है - जो अपराध किया गया है वह प्रोग्रामर के दिमाग में पूरी तरह से सीमित है। जाहिर है, यह मामला नहीं हो सकता है अगर कुछ मिठाई चोरी हो जाती है - इसका दुनिया पर शारीरिक प्रभाव पड़ता है (लॉलीपॉप - = 1)। यदि 'अपराध' अपने स्वयं के दिमाग में सीमित है, तो यह निर्धारित करने के लिए कि क्या यह नैतिक या अनैतिक है?
नीलू

18

यह सीधे आपके प्रश्न का उत्तर नहीं देता है, लेकिन यह प्रयास करें:

#define min(a,b) ((a) < (b) ? (a) : (b))

मैं इस शानदार, जटिल मैक्रो को सार्वजनिक डोमेन पर जारी करता हूं। हालांकि मुझे इस तकनीक पर एक पेपर प्रकाशित करना पड़ सकता है।

यदि आप मैक्रो-फ़ोबिक हैं, तो इस इनलाइन संस्करण को आज़माएं (वास्तव में, जब तक कि आप किसी स्पार्क पर कोडिंग नहीं करते हैं, आप एक फ़ंक्शन के रूप minमें दर्ज / निकास कोड के रूप में सर्वव्यापी नहीं लपेटकर बहुत सारे सीपीयू चक्रों को बचाएंगे ):

inline int min(int a, int b)
{
    return a < b ? a : b;
}

तुच्छ स्निपेट के लिए कोड लाइसेंसिंग का मुद्दा थोड़ा उपद्रव है, वास्तव में। एक वकील के साथ की जाँच करें, लेकिन मुझे लगता है कि वे वास्तव में लाइसेंस प्राप्त नहीं किया जा सकता है और / या लाइसेंस व्यवहार में लागू नहीं किया जा सकता है मुझे परीक्षा है। जैसा कि आप 'शब्द' शब्द का कॉपीराइट या ट्रेडमार्क नहीं कर सकते हैं, तब इसका उपयोग करने वाले लोगों पर दुबला हो जाएं। (उफ़)


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

2
@StevenBurnap निश्चित रूप से मूल कोड में भी समान समस्याएं होंगी: क्या वे साबित कर सकते हैं कि उनके पास कॉपीराइट है (यानी कि उन्होंने इसे कुछ पहले के कार्यान्वयन से कॉपी नहीं किया था)?
रिचर्ड

19
जब आप करने का प्रयास करते हैं, तो न्यूनतम संस्करण के साथ समस्या आती है min(a++,b++)

4
"इसे जारी करें ... सार्वजनिक डोमेन के लिए" बहुत यूएस-केंद्रित है। यह कई देशों में एक ही बात का मतलब नहीं है और वास्तव में कुछ कानूनी रूप से संभव नहीं है।

9
धन्यवाद, लेकिन 2000 के दशक के एक कंपाइलर पर, एक कंपाइलर ट्रिवियलिटीज को इनलाइन कर सकता है min
डेडज़एम

18

डिस्क्लेमर : मैं कोई वकील नहीं हूं। अपने जोखिम पर मेरी सलाह का उपयोग करें।

यह कार्यान्वयन कॉपीराइटmin योग्य नहीं है , क्योंकि इसे लिखने के कुछ ही उचित तरीके हैं।

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

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

ध्यान रखें कि यह गारंटी नहीं देता है कि कोई आप पर मुकदमा नहीं करेगा, लेकिन कम से कम आपके पास एक मजबूत रक्षा होगी।

इसके अलावा, यह भी ध्यान रखें कि यदि कोड का एक टुकड़ा कॉपीराइट द्वारा संरक्षित नहीं है, तो यह अभी भी एक सॉफ़्टवेयर पेटेंट द्वारा कवर किया जा सकता है (यह आपके minफ़ंक्शन के लिए मामला नहीं है )।


2
आप ओरेकल को यह बताने की कोशिश करेंगे!
गॉर्डन

1
हो सकता है कि 9-लाइन फ़ंक्शन तुच्छ नहीं था ... मैं कोड देखना चाहता हूं।
टोनी द पोनी

1
programmers.stackexchange.com/a/148362/28718 मुझे बहुत मामूली लगता है, यह मानते हुए कि यह सही कोड है।
गॉर्डन

12

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

unsigned int min(unsigned int a, unsigned int b)
{
    return (a > b? b: a);
}

मैं यह कैसे सुनिश्चित कर सकता हूं कि आपने उस GPL कोड को सील नहीं किया है और उसे फिर से लिखना है? : P (सिर्फ मजाक करते हुए)
cnd

1
तुम नहीं। लेकिन अगर आपने मेरे कोड का उपयोग किया है तो आप दावा कर सकते हैं कि आपने इसका उपयोग अच्छे विश्वास में किया है।
गॉर्डन

3
आनन्दित, भाइयों, जैसा कि नए युग में गिरावट आई है - अब हम minबंद-स्रोत सॉफ़्टवेयर में पा सकते हैं । इसके अलावा, @ शोली, अब यह गॉर्डन की समस्या है कि उसने इसे कॉपी किया है या नहीं।
माफ़ी

5
आप इसे "क्रिएटिव कॉमन्स" के तहत भी जारी कर रहे हैं, इस पृष्ठ के निचले भाग को यहां चिपकाए गए कोड के बारे में देखें।
मार्टिन यॉर्क


11

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

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

Microsoft के प्रोग्रामर्स को खुले स्रोत कोड को पढ़ने की अनुमति नहीं है, ताकि कंपनी को कानूनी समस्याओं से बचाया जा सके। विशुद्ध रूप से नैतिक कारणों से, आपको किसी भी कार्यक्रम के साथ ऐसा ही करना चाहिए जिसका लाइसेंस आप पालन करने का इरादा नहीं रखते हैं।

आपके पास इसका उपयोग करने का अधिकार नहीं है math.c, लेकिन कोई भी इसके क्रियान्वयन के बारे में बाजार को देखने की कोशिश नहीं कर रहा है min। जीपीएल का लक्ष्य प्रोग्रामर "स्वतंत्रता" (और अंत उपयोगकर्ता की स्वतंत्रता) को बढ़ाना है, न कि इसे प्रतिबंधित करना। जीएनयू लाइसेंस, एफएसएफ और फ्री सॉफ्टवेयर मूवमेंट की शुरुआत रिचर्ड स्टेलमैन के साथ हुई और स्टेलमैन ने सिम्बॉलिक लिस्प के प्रत्येक नए संस्करण को फिर से लागू करने के साथ शुरू किया जैसा कि यह सामने आया। जीएसएल लाइब्रेरी को फिर से लागू करने के लिए एफएसएफ किसी के बाद नहीं जा सकता (और नहीं कर सकता)।


तो लेकिन, यह वास्तव में अजीब उदाहरण है। यह उदाहरण है, इसका मतलब है कि मुझे इसे पढ़ना चाहिए और इसका पालन करना चाहिए ... लेकिन जहां तक ​​मैं समझता हूं कि मैं यहां जीपीएल लाइसेंस नहीं लेने के लिए स्वतंत्र हूं। इसलिए मुझे पता है कि
स्टैलमैन

2
शोली, क्षमा करें, लेकिन मुझे नहीं पता कि आप क्या कह रहे हैं! क्या उदाहरण है? (क्या आप मुझसे यह भी पूछ रहे हैं कि स्टेलमैन कौन है? इसे Google पर ले जाएं या विकिपीडिया की जांच करें।)
एलेक्सिस

3
"माइक्रोसॉफ्ट के प्रोग्रामर्स को ओपन सोर्स कोड पढ़ने की अनुमति नहीं है" ओह माय, यह भयानक है - क्या कहीं भी मैं इसके बारे में पढ़ सकता हूं? Google मदद नहीं कर रहा है।
अमारा

अच्छा प्रश्न। मैंने कुछ लौह पायथन विकास मंच में इसके बारे में पढ़ा, लेकिन दुर्भाग्य से मैं अब इसे नहीं खोज सकता। सारांश: जिम हगुनिन ( hugunin.net/microsoft_farewell.html ) ने उल्लेख किया कि उन्हें अजगर के कार्यान्वयन को देखने की अनुमति नहीं है और किसी ने मजाक में पूछा कि क्या उन्हें अपने स्वयं के कोड को देखने की अनुमति है (Microsoft ने आयरन पायोन ओपन सोर्स बनाया था) । जवाब है: उन्होंने आयरन पायथन के लिए एक विशेष अपवाद बनाया।
एलेक्सिस

जिन लोगों की स्वतंत्रता जीपीएल बढ़ाने का इरादा है, वे कार्यक्रम के सभी उपयोगकर्ता हैं, न कि (विशेष रूप से) प्रोग्रामर।
जेम्स यंगमैन

7

उत्तर: केवल लेखक की स्पष्ट अनुमति से।

वह कॉपीराइट कोड है। आप इसे लेखक की अनुमति के बिना कॉपी नहीं कर सकते।

आपको अपना स्वयं का संस्करण लिखना होगा min, या minकिसी भिन्न लाइसेंस का उपयोग करने वाले संस्करण की प्रतिलिपि बनाना होगा ।

याद रखें, कॉपीराइट के साथ, यह वह कोड है जो सुरक्षित है, एल्गोरिथम नहीं । कॉपीराइट कानून पाठ से आता है। यहां तक ​​कि अगर "math.c" कुछ भी नहीं था, लेकिन टिप्पणियों में कोई निष्पादन योग्य कोड नहीं था, फिर भी इसे कॉपीराइट के तहत संरक्षित किया जाएगा।


1
स्वयं के संस्करण का क्या अर्थ है? मेरे मन का मेरा संस्करण, प्रफुल्लित करने वाला लगता है!
CND

2
याद रखें, आप स्वयं नहीं हैं, आपके पास minवर्णों का एक विशेष अनुक्रम है जो कार्यान्वित करने के लिए होता है min
रोबोट

2
आप व्यक्तिगत उपयोग के अलावा लेखक की अनुमति के बिना इसे बिल्कुल भी नहीं बदल सकते। आपको इसे स्क्रैच से फिर से लिखना होगा। यह पूरी बात है। ध्यान दें कि यदि आप एक खाली संपादक पर बैठ गए और लगभग उसी के समान कुछ लिखा है, तो यह ठीक होगा, क्योंकि आपने इसे कॉपी नहीं किया था। (मान लें कि आप मेमोरी से टाइप नहीं कर रहे थे।)
रोबोट

2
नहीं, मैं मजाक नहीं कर रहा हूं। और हाँ, आप शायद इस तरह के मामलों में इसके साथ दूर हो सकते हैं। यह कॉपीराइट धारक के लिए साबित होगा कि आपने इसे पूरा किया है। ध्यान दें कि मैं आपको केवल यह बता रहा हूं कि कानून क्या है, इसका बचाव नहीं।
रोबोट

3
क्योंकि यदि आप इन तुच्छ बातों को याद नहीं करते हैं, तो आप किसी और के काम का उपयोग इस तरह से कर रहे हैं कि उन्होंने आपको करने की अनुमति नहीं दी है। यदि यह इतना तुच्छ है कि आपको इसकी आवश्यकता नहीं है, तो इसका उपयोग न करें।
एलेक्सिस

6

यह वही है जिसे Google ने दबाया है। यह एक सरणी के लिए सामान्य ज्ञान की तरह लगता है।

 908     /**
 909      * Checks that fromIndex and toIndex are in range, and throws an
 910      * appropriate exception if they aren't.
 911      *
 912      * @param arrayLen the length of the array
 913      * @param fromIndex the index of the first element of the range
 914      * @param toIndex the index after the last element of the range
 915      * @throws IllegalArgumentException if fromIndex > toIndex
 916      * @throws ArrayIndexOutOfBoundsException if fromIndex < 0
 917      *         or toIndex > arrayLen
 918      */
 919     private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {
 920         if (fromIndex > toIndex)
 921             throw new IllegalArgumentException("fromIndex(" + fromIndex +
 922                        ") > toIndex(" + toIndex+")");
 923         if (fromIndex < 0)
 924             throw new ArrayIndexOutOfBoundsException(fromIndex);
 925         if (toIndex > arrayLen)
 926             throw new ArrayIndexOutOfBoundsException(toIndex);
 927     }

यदि यह सब है, तो अपील पर फैसला वापस ले लिया जाएगा। लेकिन वायर्ड के अनुसार, न्यायाधीश ने Google को 8 अन्य फ़ाइलों की प्रतिलिपि भी दी। देखें wired.com/wiredenterprise/2012/05/google-oracle-decompile
टोनी टट्टू

5
हां, लेकिन "सामान्य ज्ञान" कॉपीराइट के लिए बार नहीं है। यह है कि क्या उन्होंने नकल की और संपादित किया या खुद को खरोंच से लिखा। क्या कुछ "सामान्य ज्ञान" पेटेंट के लिए परीक्षण है, कॉपीराइट नहीं। दूसरे शब्दों में, ओरेकल उस पाठ को कॉपीराइट कर सकता है, लेकिन वे उस एल्गोरिथ्म को पेटेंट नहीं कर सकते हैं।
रोबोट

ये 9 लाइनें विलय के सिद्धांत का एक उत्कृष्ट उदाहरण हैं। किसी सरणी पर श्रेणी की जाँच करने के लिए और कितने तरीके हैं?
टोनी द पोनी

1
@TonythePony, बहुत, अगर फ़ंक्शन एक अपवाद को पाठ संदेश से फेंकता है।
अवकर

4
कुछ लोगों ने उल्लेख किया है कि जिस व्यक्ति ने Google पर इस पाठ की प्रतिलिपि बनाई है, वह वह व्यक्ति भी है जिसने इसे सूर्य पर लिखा था । प्रोग्रामर्स को यह महसूस करना होगा कि स्टेलमैन - पागल दाढ़ी वाले चरमपंथी - सही थे । पैसा, जो सभी बुराई की जड़ है, लोगों को भूल जाता है कि वे पहले स्थान पर प्रौद्योगिकी में क्यों भाग लेते हैं। : - /
HostileFork

5

मैं वैसे भी इस कोड का उपयोग नहीं करूंगा, क्योंकि टिप्पणी उस कोड के साथ मेल नहीं खाती है। टिप्पणी के बारे में बात करता है integer, जबकि कोड का उपयोग करता है unsigned int। कौन जानता है कि इस फ़ंक्शन की गहराई के भीतर कौन सी त्रुटियां दफन हैं?

गंभीरता से, यह वह जगह है जहां "पहिया को मजबूत न करें" हास्यास्पद हो जाता है और आप इसे नमक के एक दाने के साथ लेना भूल गए। खरोंच से अपना खुद का संस्करण लिखें, इसे अपने कोड (जैसे math_min_uint(x, y)) के नामकरण सम्मेलन और शैली गाइड के साथ मिलाएं , सुनिश्चित करें कि यह काम करता है (यूनिट परीक्षण या जो भी हो) और जीवन के साथ और कॉपीराइट मुद्दों के बिना आगे बढ़ें।

बढ़ते अनुभव के साथ, इन तुच्छ स्निपेट की आपको बार-बार ज़रूरत होती है, बस आपके टूलबॉक्स में हैं और आप उन्हें बिना ज्यादा सोचे समझे फिर से लिख देंगे, या बस उन्हें अपने पुस्तकालय से प्राप्त कर सकते हैं।


2

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

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

यदि, हालांकि, आप अपना स्वयं का संस्करण लिखते हैं min, और कार्य की तुच्छता के कारण, यह तथ्य कि केवल इतने सारे तरीके हैं कि आप समझदारी से ऐसी बात लिख सकते हैं, और थोड़ा संयोग, आपका संस्करण बिल्कुल समान हो रहा है GPL'd कोड के लिए, फिर आपने कुछ भी कॉपी नहीं किया है।

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


1

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

लाइसेंस के आधार पर आपको अपने बंद स्रोत ऐप्लीकेशन में कोड को शामिल करने की अनुमति दी जा सकती है।


1

बस इसे 30 सेकंड में स्वयं लिखें। आप बिल्कुल उसी एल्गोरिदम का उपयोग कर सकते हैं। बस कॉपी / पेस्ट न करें।

कॉपीराइट केवल एक विचार की अभिव्यक्ति की रक्षा करता है, न कि विचार की। आप इस विचार का उपयोग सीधे कर सकते हैं, बशर्ते आप इसे कॉपी न करें।

FWIW, मुझे संदेह है कि इस तरह के एक तुच्छ कोड को कॉपी करने से आप किसी भी तरह से परेशानी में पड़ जाएंगे। नुकसान शून्य होगा, और यह संभवतः अधिकांश न्यायालयों में उचित उपयोग के तहत होगा। लेकिन कानूनी मामले इस तरह के दर्द हैं कि मैं इसे जोखिम में नहीं डालना चाहता।


1

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

यदि आप इसे आंतरिक रूप से उपयोग कर रहे हैं तो जीपीएल आपको अपनी इच्छानुसार पूरी स्वतंत्रता देता है।

यदि आप आपको पैकेज वितरित करने की योजना बना रहे हैं - सबसे आसान बात यह है कि अपने पैकेज को उसी शर्तों पर जीपीएल करें जो आपके द्वारा उपयोग किए गए किसी जीपीएल स्रोत के रूप में है। अन्य तरीके हैं लेकिन यह जटिल हो जाता है।

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


0

आप सी का उपयोग कर रहे ++ और नहीं सी हैं, मानक पुस्तकालय का उपयोग करके इस मुद्दे से बचने std::minया std::maxमें <algorithm>:

http://www.cplusplus.com/reference/algorithm/min/

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

सामान्य स्थिति में, ध्यान दें कि किसने कोड प्रकाशित किया था। निगम, या समझदार व्यक्ति? यदि यह एक व्यक्तिगत व्यक्ति है (जैसा कि बहुत खुले स्रोत के साथ होता है), तो उन्हें एक अच्छा नोट लिखें और अनुमति प्राप्त करें। उनकी प्रतिक्रिया को यह कहते हुए सहेजें कि यह ठीक है। समस्या सुलझ गयी।


-2

सामान्य स्थिति के लिए: अधिक जटिल कोड जो निश्चित रूप से कॉपीराइट-सक्षम है, जैसा कि न्यूनतम और अधिकतम (जो कॉपीराइट-सक्षम नहीं हो सकता है) के विपरीत है।

फिर पुस्तकालय यानी GPL के अनुपालन में अपने कोड को लाइसेंस दें! ध्यान दें कि एलजीपीएल लाइब्रेरी (और अपवादों के साथ जीपीएल) हैं जो आपको अपने लाइसेंस का उपयोग करते समय अपने लाइसेंस का उपयोग करने की अनुमति देते हैं।

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