इस पेज पर, योगदान देने वाले व्यक्ति के दो अहम टास्क के बारे में बताया गया है: योगदान देने वाले व्यक्ति के लाइसेंस से जुड़े कानूनी समझौते पर हस्ताक्षर करना और यह पक्का करना कि आपके कोड में लाइसेंसिंग हेडर का सही इस्तेमाल किया गया हो.
योगदान देने वाले के लाइसेंस के कानूनी समझौतों पर हस्ताक्षर करना
Android Open Source Project (AOSP) में आइडिया, कोड या दस्तावेज़ का योगदान करने वाले सभी लोगों को Individual Contributor License Agreement पूरा करना, उस पर हस्ताक्षर करना, और उसे सबमिट करना ज़रूरी है. इस कानूनी समझौते को ऑनलाइन लागू किया जा सकता है. इसके लिए, कोड की समीक्षा करने वाले टूल का इस्तेमाल करें. इस कानूनी समझौते में, AOSP में बौद्धिक संपत्ति का योगदान करने की शर्तें बताई गई हैं. यह लाइसेंस, योगदान देने वाले व्यक्ति के तौर पर आपकी सुरक्षा के साथ-साथ प्रोजेक्ट की सुरक्षा के लिए भी है. इससे, किसी अन्य मकसद के लिए अपने योगदान का इस्तेमाल करने के आपके अधिकारों में कोई बदलाव नहीं होता.
कॉर्पोरेट कॉन्ट्रिब्यूटर लाइसेंस समझौता, किसी ऐसे कॉर्पोरेशन (या अन्य इकाई) के लिए उपलब्ध है जिसके कर्मचारी AOSP पर काम करते हैं. इस कानूनी समझौते के इस वर्शन के तहत, कोई कंपनी अपने चुने हुए कर्मचारियों के सबमिट किए गए योगदानों को अनुमति दे सकती है. साथ ही, कॉपीराइट और पेटेंट के लाइसेंस दे सकती है.
Google, योगदान देने वालों के लिए लाइसेंस से जुड़े समझौते, Apache Software Foundation के समझौतों के आधार पर करता है. ये समझौते, Apache की वेबसाइट पर देखे जा सकते हैं.
लाइसेंस हेडर शामिल करें
Android Open Source Project (AOSP), हमारे सॉफ़्टवेयर के लिए Open Source Initiative से मंज़ूरी पा चुके कुछ ओपन सोर्स लाइसेंस का इस्तेमाल करता है.
Apache License, Version 2.0 (Apache 2.0) को AOSP के लिए सबसे अच्छा लाइसेंस माना जाता है. साथ ही, ज़्यादातर Android सॉफ़्टवेयर को Apache 2.0 के तहत लाइसेंस दिया जाता है. प्रोजेक्ट में, पसंदीदा लाइसेंस का पालन करने की कोशिश की जाती है. हालांकि, इसके कुछ अपवाद हैं. इन अपवादों को अलग-अलग मामले के आधार पर हैंडल किया जाता है. उदाहरण के लिए, Linux कर्नेल पैच, GPLv2 लाइसेंस के तहत आते हैं. इनमें सिस्टम से जुड़ी कुछ खास शर्तें भी शामिल हैं. इनके बारे में The Linux Kernel Archives पर जाकर जाना जा सकता है.
Google, यूज़रस्पेस (नॉनकर्नल) सॉफ़्टवेयर के लिए, Apache 2.0 और BSD और MIT जैसे मिलते-जुलते लाइसेंस को, GNU Lesser General Public License (LGPL) जैसे अन्य लाइसेंस के मुकाबले ज़्यादा प्राथमिकता देता है. यहां इसकी वजह दी गई है:
Android, आज़ादी और पसंद के बारे में है. Android का मकसद, मोबाइल की दुनिया में ओपननेस को बढ़ावा देना है. Google, हमारे सॉफ़्टवेयर के सभी इस्तेमाल के बारे में न तो अनुमान लगा सकता है और न ही निर्देश दे सकता है. इसलिए, Google सभी को ऐसे डिवाइस बनाने के लिए बढ़ावा देता है जिनमें बदलाव किया जा सकता है. हालांकि, हम यह नहीं मानते कि हम उन्हें ऐसा करने के लिए मजबूर कर सकते हैं. एलजीपीएल लाइब्रेरी का इस्तेमाल करने पर, कुछ पाबंदियां लग सकती हैं. यहां हमारी कुछ खास समस्याएं दी गई हैं:
आसान शब्दों में कहें, तो एलजीपीएल के लिए ज़रूरी है कि सोर्स को ऐप्लिकेशन में शिप किया जाए; सोर्स के लिए लिखित ऑफ़र दिया जाए; या एलजीपीएल वाली लाइब्रेरी को डाइनैमिक तरीके से लिंक किया जाए. साथ ही, उपयोगकर्ताओं को लाइब्रेरी को मैन्युअल तरीके से अपग्रेड या बदलने की अनुमति दी जाए. Android सॉफ़्टवेयर को आम तौर पर स्टैटिक सिस्टम इमेज के तौर पर शिप किया जाता है. इसलिए, इन ज़रूरी शर्तों का पालन करने से, डिवाइस बनाने वाली कंपनी के डिज़ाइन सीमित हो जाते हैं. उदाहरण के लिए, किसी उपयोगकर्ता के लिए रीड-ओनली फ़्लैश स्टोरेज पर मौजूद लाइब्रेरी को बदलना मुश्किल होता है.
एलजीपीएल के तहत, ग्राहक को बदलाव करने और उन बदलावों को डीबग करने के लिए रिवर्स इंजीनियरिंग की अनुमति देना ज़रूरी है. डिवाइस बनाने वाली ज़्यादातर कंपनियां, इन शर्तों से बंधी नहीं रहना चाहतीं.
पहले, एलजीपीएल लाइब्रेरी की वजह से, डिवाइस बनाने वाली कंपनियों और ऐप्लिकेशन डेवलप करने वालों को कई अनुपालन से जुड़ी समस्याएं आती थीं. इंजीनियरों को इन समस्याओं के बारे में जानकारी देना मुश्किल होता है और इसमें समय भी लगता है. Android की सफलता के लिए यह ज़रूरी है कि डिवाइस बनाने वाली कंपनियां, लाइसेंस का आसानी से पालन कर सकें.
ये समस्याएं, एलजीपीएल या अन्य लाइसेंस की आलोचना नहीं हैं. Google, सभी मुफ़्त और ओपन सोर्स लाइसेंस की सराहना करता है. साथ ही, वह लाइसेंस से जुड़ी दूसरों की प्राथमिकताओं का सम्मान करता है. Google ने फ़ैसला किया है कि Apache 2.0, हमारे लक्ष्यों के लिए सबसे सही है.
AOSP में शामिल करने के लिए कोड सबमिट करते समय, आपको यह पक्का करना होगा कि लाइसेंस हेडर का सही तरीके से इस्तेमाल किया गया हो. यहां दिए गए सेक्शन में, नई फ़ाइलों और मौजूदा कोड के लिए लाइसेंस हेडर मैनेज करने का तरीका बताया गया है.
लाइसेंस और कॉपीराइट के सबसे सही तरीकों का पालन करना
कॉपीराइट और लाइसेंस हेडर के लिए, इन सबसे सही तरीकों को अपनाएं:
किसी मौजूदा कॉपीराइट में बदलाव न करें. उदाहरण के लिए, अगर आपको AOSP में ऐसी फ़ाइल का योगदान करना है जिसमें किसी ऐसी फ़ाइल का कोड शामिल है जिसमें अपना कॉपीराइट नोटिस है, तो आपको मूल फ़ाइल से उस कॉपीराइट नोटिस को बनाए रखना होगा.
अगर आपको कोई नई सोर्स फ़ाइल जोड़नी है, तो डिफ़ॉल्ट AOSP कॉपीराइट और यहां दिया गया लाइसेंस हेडर इस्तेमाल करें. हालांकि, अगर आपके प्रोजेक्ट में पहले से कोई दूसरा लाइसेंस तय किया गया है, तो उसका इस्तेमाल करें:
Copyright (C) yyyy The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.