वाणिज्यिक उद्देश्य के लिए सॉफ्टवेयर विकसित करने के लिए C ++ / Java का उपयोग करना


9

मैं एक कार्यक्रम विकसित करने की योजना बना रहा हूं जिसे बाद में बेचने का इरादा है। मैं इसे कोड करने के लिए एक भाषा तय करने की कोशिश कर रहा हूं, और सी ++ या जावा तक संकुचित हो गया हूं।

मैं जीपीयू के जीसीसी और ओपेन जेडके के लिए इस्तेमाल किए जाने वाले जीपीएल वी 2 और वी 3 लाइसेंस के माध्यम से रहा हूं (हां, मैं कानूनी सामान की कुछ मात्रा को समझ सकता हूं, लेकिन स्पष्ट रूप से, यह सब नहीं)। लेकिन एक ऐसा बिंदु है जिस पर हर कोई अस्पष्ट है (यह पहली चीजों में से एक है, जिसका जवाब IMO होना चाहिए): अगर मैं C ++ / Java का उपयोग करके एक प्रोग्राम विकसित करता हूं और इसे GCC कंपाइलर या OpenJDK के कंपाइलर का उपयोग करके संकलित करता हूं, तो मैं इसे बिना बेच सकता हूं। जीपीएल के तहत अपने कार्यक्रम को रखने के लिए?

जहां तक ​​मैं बाहर कर सकता हूं, मेरे पास अपने कार्यक्रम के लिए किसी भी लाइसेंस को असाइन करने का पूर्ण अधिकार है, लेकिन, एक पकड़ है: यह लाइसेंस में कहता है कि मुझे जीपीएल के तहत आने वाले किसी भी पुस्तकालय से लिंक नहीं करना चाहिए। यदि हां, तो मुझे GPL के तहत अपना कार्यक्रम जारी करना होगा।

अब, मुझे नहीं पता कि C ++ / Java में एक लाइब्रेरी को क्या माना जाता है, इसलिए यदि मैं C ++ (iostream, list, map, आदि) में सामान्य सामान या मानक JDK के हिस्से के रूप में उपलब्ध सामान्य Java क्लासेस / इंटरफेस का उपयोग करता हूं। 6 वितरण (स्ट्रिंग, सूची, मानचित्र, आदि), क्या यह 'पुस्तकालयों को जोड़ने' का गठन करता है?


1. हम यहाँ के आसपास कानूनी सलाह नहीं करते हैं। 2. 'C ++ / Java ’क्या है? 3. चारों ओर देखें और जावा में लिखे हजारों और हजारों वाणिज्यिक सॉफ्टवेयर उत्पादों को देखें, कई जेएनआई घटकों के साथ।
bmargulies

1
सी / ++ में जावा का उपयोग केवल "या" के लिए एक संक्षिप्त नाम के रूप में किया जा रहा है, जो पूरी तरह से मान्य अंग्रेजी है।
रॉबिन ग्रीन

ऐसा लगता है जैसे कि ourceource.stackexchange.com के लिए एक प्रश्न है । (यदि यह पहले से ही वहां उत्तर नहीं दिया गया है।)
केविन क्रुमविडे

जवाबों:


13

अगर मैं C ++ / Java का उपयोग करके कोई प्रोग्राम विकसित करता हूं और इसे GCC कंपाइलर या OpenJDK के कंपाइलर का उपयोग करके संकलित करता हूं, तो क्या मैं इसे GPL के तहत अपना प्रोग्राम रखने के बिना बेच सकता हूं?

हाँ। GPL विशेष रूप से प्रोग्राम चलाने के आउटपुट को बाहर करता है:

प्रोग्राम से आउटपुट केवल तभी कवर किया जाता है जब उसकी सामग्री प्रोग्राम के आधार पर काम करती है (प्रोग्राम को चलाकर स्वतंत्र किया गया है)।

जिसका अर्थ है कि यदि आप अपने प्रोग्राम में GCC या कुछ और GPLed के बिट्स को शामिल करते हैं, तो हाँ इसे GPLed करना होगा, अन्यथा नहीं - यह तथ्य कि GPLed कंपाइलर द्वारा इसका ऑब्जेक्ट कोड तैयार किया गया था, क्या यह प्रासंगिक नहीं है कि इसे GPLed किया जाए। ।

आपके द्वारा लिंक किए जाने वाले सभी मानक भाषा पुस्तकालय या तो GPLed नहीं होते हैं, या GPLed होते हैं, लेकिन आपके मालिकाना सॉफ़्टवेयर को उनसे लिंक करने की अनुमति देने के लिए एक विशेष अपवाद है, यदि आप उन्हें संशोधित नहीं करते हैं । C ++ के मामले में मेरा मतलब है libgcc, glibc और libstdc ++; जावा के मामले में मेरा मतलब जेआरई में शामिल सभी पुस्तकालयों से है।

तकनीकी रूप से, आप कानूनी रूप से जीपीएल सॉफ्टवेयर को वैसे भी बेच सकते हैं, लेकिन लगभग कोई भी ऐसा करने से कोई पैसा नहीं कमाता है।


LGPL (लेस GPL) किसी एप्लिकेशन को उस एप्लिकेशन को GPLd होने की आवश्यकता के बिना उससे लिंक करने की अनुमति देता है। दूसरी ओर एक जीपीएल पुस्तकालय संक्रामक है। लेकिन आप सही हैं, संकलक के उत्पादन को स्पष्ट रूप से GPL की शर्तों से बाहर रखा गया है।
बेरिन लोरिट्स

और क्या होगा अगर मैं मानक भाषा पुस्तकालयों को संशोधित करूं? क्या इसे मै कर सकता हूँ? तब मेरे कार्यक्रम का लाइसेंस क्या होता है?
पोट्टरेक

तब अपवाद लागू नहीं होता है और आपको संबंधित लाइसेंस की पूरी शर्तों का पालन करना होता है। इसके अलावा, जावा के मामले में ट्रेडमार्क के निहितार्थ हैं - आपके दस्तावेज़ या विज्ञापन में जावा या ओपनजेडके का उल्लेख नहीं करना बेहतर है यदि आप इसका उपयोग कर रहे हैं (लेकिन ओरेकल v गूगल कोर्ट केस देखें)।
रॉबिन ग्रीन

8

GCC और OpenJDK दोनों के स्पष्ट अपवाद हैं:

... जब आप किसी प्रोग्राम को संकलित करने के लिए GCC का उपयोग करते हैं, तो GCC संकलित प्रोग्राम के साथ कुछ GCC हेडर फ़ाइलों और रनटाइम लाइब्रेरीज़ के अंशों को जोड़ सकता है। इस अपवाद का उद्देश्य गैर-जीपीएल (मालिकाना सहित) कार्यक्रमों का उपयोग करने की अनुमति देना है, इस तरह, इस अपवाद द्वारा कवर की गई हेडर फाइलें और रनटाइम लाइब्रेरी। ...

... जब GNU Classpath का उपयोग वर्चुअल मशीन के लिए कोर क्लास लाइब्रेरी के रूप में किया जाता है, जावा के लिए कंपाइलर, या जावा प्रोग्रामिंग भाषा में लिखे गए प्रोग्राम के लिए, यह उन प्रोग्राम को सीधे वितरित करने के लिए लाइसेंस को प्रभावित नहीं करता है ...



0

OpenJDK GPL'd है लेकिन पुस्तकालयों से जोड़ने के लिए एक अपवाद है। http://en.wikipedia.org/wiki/OpenJDK

OpenJDK कक्षाओं का उपयोग करने से मुझे लगता है कि एक पुस्तकालय (rt.jar) को जोड़ने का गठन होगा।

उस संदर्भ में एक पुस्तकालय, जावा के दृष्टिकोण से, निश्चित रूप से एक निर्भरता जार, युद्ध, वर्ग, आदि है, वैसे भी, मुझे यकीन है कि आप कानूनी तौर पर एक जावा ऐप बेच सकते हैं - वहाँ कुछ है कि ओरेकल / से अधिक है सूर्य ने कानूनी कार्रवाई नहीं की है।


वही libstdc ++ का सच है - इसका भी एक अपवाद है।
रॉबिन ग्रीन

Rt.jar और libstdc ++ दोनों एक विनिर्देश के कार्यान्वयन हैं जो GPL नहीं है। अनिवार्य रूप से, अगर मैंने अपने एप्लिकेशन को libstdc ++ के गैर-जीपीएलआईडी संस्करण के खिलाफ जोड़ा है, तो यह दोनों संस्करणों में पहचान (कल्पना को ठीक से लागू किया गया था) मानकर कार्य करेगा। तथ्य यह है कि एक प्लेटफ़ॉर्म गतिशील रूप से लाइब्रेरी के GPL'd संस्करण को लोड करता है, जो आपके ऐप के विरुद्ध गणना नहीं करता है। आपने प्लेटफ़ॉर्म मानक को लिखा है, और आप जो भी लाइसेंस चाहते हैं, उसके अंतर्गत आते हैं।
बेरिन लोरिट्श

0

चिंता न करें, यह एक कंप्यूटर प्रोग्रामिंग प्रश्न है, या कम से कम एक है जो प्रोग्रामर को बारीकी से चिंतित करता है।

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

इसका मतलब यह नहीं है कि आपको अपना कोड सोर्सफोर्ज करने के लिए जारी करना होगा, लेकिन यदि कोई तीसरा पक्ष आपसे कोड मांगता है, तो आपको इसे प्रदान करना होगा।


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

उपरोक्त प्रश्न: अगर मैं C ++ / Java का उपयोग करके कोई प्रोग्राम विकसित करता हूं और इसे GCC कंपाइलर या OpenJDK के कंपाइलर का उपयोग करके संकलित करता हूं, तो क्या मैं इसे GPL के तहत अपना प्रोग्राम रखने के बिना बेच सकता हूं?

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

क्षमा करें, मैं गलत था - यह कुछ मामलों में GPLed कोड को कुछ अर्थों में जोड़ने से संबंधित है, लेकिन उदाहरण के लिए Classpath अपवाद लागू होता है, इसलिए आपको GPL के तहत अपना कोड जारी करने की आवश्यकता नहीं है।
रॉबिन ग्रीन

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