क्या कोई जावास्क्रिप्ट कोड केवल वेबसाइटों, खुले स्रोत के लिए उपयोग किया जाता है?


12

लिखित प्रश्न:

मैं एक जावास्क्रिप्ट-संबंधित प्रश्न नहीं पूछ रहा हूं, लेकिन सभी "क्लाइंट" भाषाएं वेब पर उपयोग की जाती हैं (एचटीएमएल 5, जावास्क्रिप्ट, सीएसएस, और इसी तरह)। यदि मैं अपनी वेबसाइट पर जावास्क्रिप्ट कोड (जो GPLed है) डालूं, और यह वेबसाइट किसी भी व्यक्ति के लिए वेब पर उपलब्ध है, तो क्या मैं किसी तरह से GPL का उल्लंघन कर रहा हूं?

यदि मैं ग्राहक-कोड (HTML, CSS, जावास्क्रिप्ट) किसी को बेचना चाहूँ तो क्या होगा? क्या मुझे इस मामले में एक अलग लाइसेंस की आवश्यकता है?

क्या जावास्क्रिप्ट (जब वेबसाइटों के लिए उपयोग किया जाता है) हमेशा खुला स्रोत होता है? जब आप एक वेबपेज खोलते हैं तो आप हमेशा स्रोत पढ़ सकते हैं।

क्या मुझे अपना सर्वर-साइड कोड जारी करने की आवश्यकता है, यदि मैं एक वेबसाइट बेच रहा हूं जिसमें जावास्क्रिप्ट GPLed कोड है?

यदि यह वेबसाइट आंशिक रूप से सुलभ है (एक हिस्सा मुफ़्त है और दूसरे को आपको भुगतान करने की आवश्यकता है) तो क्या होगा लेकिन वेबसाइट के दोनों किनारों पर GPLed कोड (समान भाग) का उपयोग किया जाता है?

क्या होगा यदि GPLed कोड केवल उस वेबसाइट के एक हिस्से में हो जिसे एक्सेस करने के लिए आपको भुगतान करना पड़े?

अगर मैं एक ग्राहक को इस तरह से वेबसाइट बेच रहा हूँ:

  1. मैं आपको (एक बार शुल्क) सभी क्लाइंट-संबंधित कोड (जावास्क्रिप्ट, HTML और सीएसएस) बेच रहा हूं
  2. मैं आपको सर्वर-साइड कोड नहीं बेच रहा हूँ , आप इसे किराए पर दे रहे हैं (मैं आपको अपने सर्वर-साइड कोड का पुन: उपयोग नहीं करने देना चाहता)

अगर मैं कुछ जावास्क्रिप्ट GPLed कोड का उपयोग कर रहा हूं, तो क्या मैं कुछ का उल्लंघन कर रहा हूं? (वेबसाइट वेब पर किसी से भी सुलभ है।)

2 संपादित करें:

एक नया विशिष्ट प्रश्न जोड़ा गया:

क्या होगा यदि वेबसाइट सर्वर-साइड कोड के बिना काम कर सकती है, मेरा मतलब है, जावास्क्रिप्ट सिर्फ कुछ PHP पृष्ठों को कॉल कर रहा है जिसमें JSON प्रारूप में डेटा शामिल है। अन्य लोग क्लाइंट साइड के साथ एक वेबसाइट बना सकते हैं, लेकिन उन्हें डेटा प्रदान करने की आवश्यकता होगी। इस मामले में जावास्क्रिप्ट "पीएचपी" कोड कह रहा है (लेकिन इसके विपरीत नहीं) मुझे लगता है। इस मामले में, क्या मैं जीपीएल का उल्लंघन कर रहा हूं?


4
कोड को "देखने" की क्षमता का लाइसेंस से कोई लेना-देना नहीं है इसलिए जावास्क्रिप्ट कुछ और से अलग नहीं है। आपको एक वकील से परामर्श करके सबसे अच्छा काम किया जाएगा जो इस विशेषता का विशेषज्ञ है।
स्पार्कली

एक वेबसाइट पर जावास्क्रिप्ट के लिए, यह है कि जहाँ आप विशेष रूप से GPL कोड के बारे में बात कर रहे हैं? यानी, क्या GPL के तहत स्पष्ट रूप से लाइसेंस प्राप्त है?
फिलिप

ठीक है, मैं किसी भी उत्पाद को नहीं बेच रहा हूं मैं सिर्फ यह पूछ रहा हूं क्योंकि मैं अच्छी तरह से नहीं समझता कि यह कैसे काम करता है। मैं विशेष रूप से पूछ रहा हूं कि क्या कोई भी क्लाइंट संबंधित भाषा पहले से ही सभी "जीपीएल" नहीं है (आप किसी वेबपेज पर किसी भी समय स्रोत डाउनलोड करें)
अग्नि-ड्रैगन-डीओएल

गैर-तुच्छ एप्लिकेशन में, आपका स्रोत कोड केवल जावास्क्रिप्ट नहीं है, यह आपका सर्वर-साइड कोड भी है। क्या आप यह सब जनता के लिए जारी करना चाहते हैं ? क्योंकि यही जीपीएल कहता है। यह कहना नहीं है कि आप छोड़ सकते हैं कुछ इसके बारे में और अभी भी लाइसेंस के अनुरूप होना।
रॉबर्ट हार्वे

जवाबों:


3

जब जीपीएल की बात आती है, तो रिलीज की इकाई लाइसेंसिंग की इकाई है।

यदि आपकी वेब साइट, और इसकी जावास्क्रिप्ट एक एकल चीज है जो एक साथ काम करती है, तो पूरे के पास एक प्रभावी लाइसेंस है। यदि कोई भाग GPL है, तो पूरे का प्रभावी लाइसेंस GPL है। (यह LGPL, MIT, आदि के लिए सही नहीं है)

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

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

यदि आप एक जावास्क्रिप्ट पुस्तकालय का उपयोग करते हैं, तो आपको उस पुस्तकालय के लाइसेंस का पालन करना होगा। अगर वह लाइसेंस GPL है, तो मेरी समझ में यह है कि आपका पूरा आवेदन GPL है। शायद यही कारण है कि jQuery के पास एक दोहरी लाइसेंस है - आपकी पसंद, MIT या GPL। एमआईटी लाइसेंस का उपयोग करने के विकल्प के बिना, इसका उपयोग केवल जीपीएल ऐप द्वारा किया जा सकता है।


4

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

जीपीएल है, मुझे समझ में आता है, एक अधिक प्रतिबंधात्मक लाइसेंस में से एक जब यह किसी परियोजना के अन्य हिस्सों पर लाइसेंस के लिए मजबूर करने की कोशिश करता है। मुझे नहीं लगता कि यह कभी भी अदालत में परीक्षण किया गया है, लेकिन आम तौर पर मैंने जो व्याख्या देखी है वह यह है कि अगर जीपीएल कोड को छोड़ दिया जाता है, तो इसके अलग-अलग मॉड्यूल होते हैं, जिन्हें सिर्फ संदर्भित किया जाता है (यह कि उन्हें पूरी तरह से अकेले उत्पादों के रूप में माना जाता है जो आप अभी उपयोग कर रहे हैं), आपको ठीक होना चाहिए।

यदि आप इसके बारे में सुनिश्चित नहीं हैं, हालांकि और / या अतिरिक्त सुरक्षित होना चाहते हैं तो अन्य कम प्रिस्क्रिप् टिव लाइसेंस हैं।

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

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

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

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


Mhhh अब मुझे संदेह है: जब मैं एक ग्राहक के लिए एक वेबसाइट बनाता हूं, तो कौन ग्राहक है: वह व्यक्ति जिसे मैं अपनी वेबसाइट बेचता हूं या जो उपयोगकर्ता इसे एक्सेस करेंगे? यदि मैं अपने ग्राहक को GPL उत्पाद (स्रोतों के साथ) के रूप में सभी वेबसाइट बेचता हूं, तो क्या मुझे उस वेबसाइट पर नेविगेट करने वाले सभी लोगों को भी स्रोत कोड जारी करने की आवश्यकता है?
फायर-ड्रैगन-डीओएल

@ फायर-ड्रैगन-डीओएल - आपका ग्राहक वह व्यक्ति है जो आपके बिलों का भुगतान करता है। यदि आप अपना कोड GPL करते हैं, तो आपको इसे सार्वजनिक रूप से सभी के लिए, हर जगह उपलब्ध कराने की आवश्यकता है , न कि केवल आपके ग्राहक और / या उपयोगकर्ताओं (और सभी के पास उस कोड का पुन: उपयोग करने का अधिकार है)।
जॉन हॉपकिंस

अंतिम भाग पर (आपका स्पष्टीकरण वास्तव में चतुर है, धन्यवाद): यह देखते हुए कि दो हिस्से वास्तव में प्रत्येक othe के बिना उपयोगी नहीं हैं : इस मामले में अगर मैं GPLed कोड का उपयोग कर रहा हूं तो क्या मुझे अभी भी स्रोतों को जारी करना चाहिए? क्योंकि मैं आपका वाक्य पढ़ सकता हूं क्योंकि "मैं आपको सॉफ्टवेयर को कस्टमाइज़ करने की सेवा बेच रहा हूं, न कि सॉफ्टवेयर को जो अभी भी मेरा है"
फायर-ड्रैगन-डीओएल

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

1
@Jon आपको केवल उन लोगों को स्रोत देने की आवश्यकता है जो द्विआधारी मिले; जो कोई पूछता नहीं। (बेशक, वे जिसे चाहें, जिसे चाहें देने का अधिकार प्राप्त कर सकते हैं, लेकिन आपको ऐसा करने की आवश्यकता नहीं है।)
शॉन मैकमिलन

3

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

यदि आप GPL कोड सर्वर-साइड का उपयोग करके अपनी खुद की सार्वजनिक-सामना करने वाली वेबसाइट प्रदान कर रहे हैं, तो आप ठीक हो सकते हैं, क्योंकि इसे पुनर्वितरण नहीं माना जाता है।

ब्राउज़र में जावास्क्रिप्ट कोड मुझे एक ग्रे क्षेत्र की तरह लगता है। तकनीकी रूप से, आप सभी के ब्राउज़र में GPL कोड को फिर से वितरित कर रहे हैं , जो आपके अपने स्रोत को रिलीज़ करने की आवश्यकता को ट्रिगर करेगा।

संपादित करें: अपनी बात को साबित करने के लिए, मैं अब ExtJS वेबसाइट के लाइसेंसिंग FAQ से पाठ शामिल करूंगा ExtJs एक जावास्क्रिप्ट फ्रेमवर्क है जो GPL के तहत लाइसेंस प्राप्त है। यह उनकी व्याख्या है कि लाइसेंस उनके ढांचे के संबंध में कैसे काम करता है (इटैलिक मेरा):

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

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

उदाहरण
मान लें कि एप्लिकेशन में फ्रंट-एंड है (जो एक्सट जेएस जावास्क्रिप्ट से जुड़े वेब पेज उत्पन्न करता है) जो बैकएंड सेवा के साथ JSON / HTTP पर संचार करता है। इस बैकेंड सेवा में अकेले इस आवेदन के लिए अनुमोदन और सत्यापन तर्क शामिल हैं। यहां तक ​​कि अगर केवल फ्रंट-एंड एक्सटी जेएस कोड का उपयोग करता है, तो आपको यह विचार करना चाहिए कि फ्रंट और बैक एंड का संयोजन एप्लिकेशन का गठन करता है, और पीछे और सामने दोनों छोरों के लिए सोर्स कोड को जीपीएलवी 3 के तहत एप्लिकेशन के अंतिम उपयोगकर्ताओं को प्रदान करना होगा यदि एप्लिकेशन का उपयोग एक अंतिम-उपयोगकर्ता द्वारा किया जाता है जो उसी कानूनी इकाई का हिस्सा नहीं है जो GPLv3 लाइसेंस को चरम JS कोड पर रखता है।


2
यह गलत है, GPL इस तरह से काम नहीं करता है। आपके PHP कोड के आउटपुट में GPL'd JS फ़ाइल का लिंक शामिल करना किसी भी तरह आपके PHP कोड को खुला स्रोत नहीं बनाता है।
user229044

@meager: मेरा संपादन देखें।
रॉबर्ट हार्वे

जो कि पूरी तरह से गलत लगता है। क्या होगा यदि मेरा बैक-एंड किसी तीसरे पक्ष की साइट पर निर्देशित है जो GPL'd JS फाइल का उपयोग करता है? क्या मुझे फिर अपना संपूर्ण आवेदन खोलना है? मुझे नहीं लगता कि यह किसी भी अदालत में होगा। माफ़ करना।
रोब

1

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

लाइसेंस के मिश्रण वाली परियोजनाएं जटिल हैं। GPL'd कोड जो अन्य पुस्तकालयों के साथ बातचीत करता है, संभवतः सर्वर-साइड बैक एंड सहित, उन्हें GPL'd होना आवश्यक है। अन्य ओपन सोर्स लाइसेंस कम कठोर होते हैं, जैसे एलजीपीएल और बीएसडी लाइसेंस।

और नहीं, यदि आप नहीं चाहते कि वह आपके php कोड का पुन: उपयोग करे, तो वह GPL मॉडल में फिट नहीं होता है। यदि आप अपना कोड GPL के तहत जारी करते हैं, तो आप स्रोत कोड सौंपने के लिए OBLIGATED हैं।

तो ऐसा लगता है कि आप किसी के लिए एक वेबसाइट बना रहे हैं और आप अपना कोड किसी को भी सौंपना नहीं चाहते हैं। आप खुले स्रोत को क्यों देख रहे हैं? यदि यह खुला स्रोत है, तो आप कोड को दे रहे हैं।


मैं इस समय कुछ भी नहीं बेच रहा हूं, मैं सिर्फ यह पूछ रहा हूं क्योंकि मुझे लगता है कि एक वेबसाइट 2 अलग-अलग हिस्सों, क्लाइंट वेबसाइट और सर्वर वेबसाइट के रूप में है। पहला भाग स्वतंत्र है जबकि दूसरा भाग नहीं है। यदि एक वेबसाइट "ओपनसोर्स" है, तो क्या आपको सर्वर-साइड स्रोत कोड जारी करना चाहिए? मुझे थोड़ा मुश्किल लगता है, यह सुरक्षा पर आपदाएं पैदा करेगा!
फायर-ड्रैगन-डीओएल

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

क्या होगा अगर वेबसाइट सर्वर साइड कोड के बिना काम कर सकती है, मेरा मतलब है, जावास्क्रिप्ट बस कुछ php पृष्ठों को कॉल कर रहा है जिसमें json प्रारूप में डेटा शामिल हैं। अन्य लोग क्लाइंट साइड के साथ एक वेबसाइट बना सकते हैं, लेकिन उन्हें डेटा प्रदान करने की आवश्यकता होगी। इस मामले में जावास्क्रिप्ट "php" कोड कह रहा है (लेकिन विपरीत नहीं) मुझे लगता है। इस मामले में, क्या मैं जीपीएल का उल्लंघन कर रहा हूं?
फायर-ड्रैगन-डीओएल

@ कीथबी एसीके! आप सही हे। मैं GTK और SDL के बारे में सोच रहा था, लेकिन वे LGPL हैं। धन्यवाद।
फिलिप

Yea LPGL एक अच्छा लाइसेंस है, मैं GPL को वैसे ही समझना चाहूंगा क्योंकि ... ठीक है, मुझे लगता है कि यह समझना कठिन है
फायर-ड्रैगन-DoL
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.