GitHub अनुज्ञापत्रं कथं चयनीयम् अस्ति तथा च समीचीनं विकल्पं कर्तुं किमर्थं महत्त्वपूर्णम्? GitHub इति सूचनाप्रौद्योगिकीपरियोजनानां संयुक्तविकासाय तदनन्तरं आतिथ्यं कर्तुं च बृहत्तमा सेवा अस्ति । अस्याः जालसेवायाः साहाय्येन असीमितसंख्याकाः जनाः एकदा एव परियोजनायां कार्यं कर्तुं शक्नुवन्ति, तथैव विश्वस्य सर्वथा कुत्रापि कार्यं कर्तुं शक्नुवन्ति । GitHub इत्यत्र प्रबन्धनम् अथवा नियन्त्रणप्रणाली अपि अस्ति या भवन्तं कालान्तरे विकासकैः कृतान् सर्वान् परिवर्तनान् सर्वथा द्रष्टुं नियन्त्रयितुं च शक्नोति, तथा च परिवर्तनात् पूर्वं घटितां अवस्थां प्रति प्रत्यागन्तुं अपि शक्नोति
परन्तु सरलतया वक्तुं शक्यते यत्, GitHub इति प्रोग्रामर-विकासकानाम् कृते तथाकथितं सामाजिकजालम् अस्ति, यत्र भवान् अन्येभ्यः विकासकेभ्यः कोड्-विषये अन्वेष्टुं, पश्चात् अभ्यासं कर्तुं च शक्नोति । भवान् GitHub इत्यत्र अपि स्वस्य पोर्टफोलियो संग्रहीतुं शक्नोति । सामान्यतया, GitHub एकः सेवा अस्ति या नवीनविकासकानाम् अनुभविनां प्रोग्रामराणां च कृते सुयोग्यः अस्ति । परन्तु अस्याः सेवायाः उपयोक्तृभ्यः कदाचित् अनुज्ञापत्रस्य चयनविषये केचन प्रश्नाः भवितुम् अर्हन्ति, यतः तत्र तेषां चयनं बहुविधम् अस्ति ।
GitHub अनुज्ञापत्रं किम्
अनुज्ञापत्रं एकः विशेषदस्तावेजः अस्ति यः राज्यप्रपत्रेण स्थापितः आसीत् तथा च भवन्तं कस्यचित् प्रकारस्य उद्यमशीलतायाः क्रियाकलापं कर्तुं शक्नोति, यस्मिन् राज्यपक्षतः विशेषं ध्यानं विना असफलतायाः आवश्यकता वर्तते। परन्तु, अधिकतया, व्यवहारे, केवलं संक्षिप्तरूपेण अनुज्ञापत्रसम्झौताः अथवा सम्झौताः उपयुज्यन्ते येषु निजीकानूनानुज्ञापत्रनिर्गमनस्य व्यवस्था भवति । सामान्यतया, अनुज्ञापत्रं केवलं एकं अनुसरणं करोति, परन्तु सर्वाधिकं महत्त्वपूर्णं लक्ष्यं, एतत् अनुज्ञापत्रदातुः अनुज्ञापत्रधारकस्य च मध्ये दायित्वानाम् अधिकारानां च विषये सम्झौता अस्ति एते कर्तव्याः अधिकाराः च सर्वथा किमपि भवितुम् अर्हन्ति, परन्तु केवलं न्यायस्य परिधिमध्ये एव। एकं उल्लेखनीयं उदाहरणं अस्ति यत् अनुज्ञापत्रदाता अनुज्ञापत्रधारकेण कार्यस्य उपयोगं कुर्वन् प्रतिलिपिधर्मधारकस्य नाम अपेक्षितुं शक्नोति । अथवा, यथा प्रतिलिपिकार्यं अनुमन्यताम्, परन्तु तस्य किमपि परिवर्तनं सर्वथा निषेधयन्तु। अथवा, एतादृशानि आवश्यकतानि बहिः आनेतुं यत् कार्यं मूलस्य समानशर्तैः एव मुक्तं भवतु, इत्यादिषु विविधशर्तानाम् अग्रे स्थापनस्य उदाहरणानि बहु सन्ति ।
परन्तु, अपि च, अस्माभिः न विस्मर्तव्यं यत् अनुज्ञापत्रं न केवलं अनुज्ञापत्रदातुः, अपितु अनुज्ञापत्रधारकस्य अपि अधिकारस्य रक्षणं करोति। यतः तस्मिन् भवन्तः कार्यस्य उपयोगस्य सर्वाणि शर्ताः स्पष्टतया द्रष्टुं पठितुं च शक्नुवन्ति, अतः तस्य भयस्य आवश्यकता नास्ति यत् अनुज्ञापत्रदाता स्वकार्यस्य उपयोगाय सहसा किमपि कटौतीं वा अन्यं क्षतिपूर्तिं वा याचयिष्यति इति
यदि भवान् कार्येण सह सम्बद्धस्य अनुज्ञापत्रस्य उपयोगं कर्तुं नकारयति तर्हि देशे विशेषे प्रवर्तमानकानूनीनियमानुसारं प्रतिलिपिधर्मः अद्यापि प्रवर्तते सरलतया वक्तुं शक्यते यत्, अनुज्ञापत्रस्य अभावः कथमपि न बोधयति यत् अन्ये लेखकाः एतस्य परियोजनायाः उपयोगं यथा इच्छन्ति तथा कर्तुं शक्नुवन्ति। सर्वं तस्य विपरीतम् अस्ति, यतः विशिष्टानुज्ञापत्रं विना प्रोग्रामरः कथमपि न्यायेन प्रदत्तान् अधिकारान् न त्यजति । इदमपि महत्त्वपूर्णं यत् अनुज्ञापत्रेण सर्वेषां अधिकारानां दायित्वानाञ्च नियमनं भवति इति सर्वदा स्मर्तव्यम्। एतत् कार्यस्य स्वामिनः उपयोक्तृ-अपेक्षाभ्यः रक्षितुं भवति तथा च कस्यापि वारण्टी इत्यस्य किं तात्पर्यम् अस्ति । अन्ततः कोऽपि न इच्छति यत् तेषां संहिता न्यायालये कथमपि अन्ते गच्छेत्।
प्रतिलिपिधर्मः किम्
प्रतिलिपिधर्मः तदा एव दृश्यते यदा बौद्धिकक्रियाकलापस्य परिणामेण सः एकं निश्चितं कार्यं निर्माति यत् अद्वितीयं भविष्यति, परन्तु तत्सह उपयोगी भविष्यति, यथा, भवान् तस्यैव कार्यक्रमस्य लेखनं ग्रहीतुं शक्नोति। उपर्युक्तानि सर्वाणि कृतानि भवन्ति तदा व्यक्तिः लेखकः भवति अधुना तस्य अस्य कार्यस्य सर्वथा सर्वे प्रतिलिपिधर्माः सन्ति । प्रतिलिपिधर्मः सम्पत्तिः असम्पत्तयः इति अपि वक्तव्यम् । तेषां भेदः अस्ति यत् सम्पत्ति-अधिकारः कस्मैचित् हस्तांतरितः भवितुम् अर्हति, परन्तु अ-सम्पत्ति-अधिकारः सर्वदा कस्यापि परिस्थितौ केवलं लेखकस्य समीपे एव तिष्ठति । किन्तु लेखकत्वम् अहस्तरणीयः अविच्छिन्नः च अधिकारः अस्ति।
Open Source अनुज्ञापत्रं किमर्थम् अस्ति ?
एषः अपि नवीनविकासकानाम् प्रोग्रामराणां च मध्ये एकः तुल्यः लोकप्रियः प्रश्नः अस्ति, यतः ते केवलं न अवगच्छन्ति यत् तेषां परियोजनासु अनुज्ञापत्रं किमर्थं संलग्नं भवेत्, यतः तद्विना परियोजना शान्ततया अपि अस्तित्वं भवितुम् अर्हति तथापि, एतत् सर्वथा सत्यं नास्ति, यतः यदि, उदाहरणार्थं, कश्चन नवीनविकासकः किञ्चित् महत्त्वपूर्णं उपयोगी च कोडखण्डं लिखितवान्, परन्तु अनुज्ञापत्रेण तस्य रक्षणं न कृतवान्, तर्हि अन्येषां उपयोक्तृणां प्रश्नाः सन्ति तथा च अस्य कारणात् एव यदा ग्राहकाः तस्य समीपम् आगत्य स्वव्यापारिकप्रयोजनार्थं एतत् संहिताखण्डं उपयोक्तुं इच्छन्ति तदा ते पश्यन्ति यत् संहितायां किमपि अनुज्ञापत्रं नास्ति तथा च केवलं तत् नकारयन्ति। एतस्य कारणं यत् कम्पनयः केवलं अनुज्ञापत्रं विना कोडस्य उपयोगं न करिष्यन्ति, यतः तेषां कानूनस्य वकिलस्य च समस्यानां आवश्यकता नास्ति ।
अत एव च अत्यन्तं उपयोगी सुलभा च परियोजना अपि कदापि कार्यान्विता न भविष्यति। तथा च यः विकासकः एतत् कोडखण्डं ग्रहीतुं इच्छति स्म, तस्य विकल्पं अन्वेष्टव्यं, तस्य उपयोगं च कर्तव्यं भविष्यति, अथवा पूर्वं नवीनविकासकेन पूर्वमेव लिखितं कोडं पूर्णतया पुनः लिखितव्यं भविष्यति अत एव पूर्वमेव सुनिश्चितं कर्तुं सर्वोत्तमम् यत् प्रोग्रामरः सम्यक्, सर्वाधिकं महत्त्वपूर्णं च, उपयुक्तं अनुज्ञापत्रं उपयुज्यते इति । १५ मिनिट् मध्ये एकस्मिन् विडियो ट्युटोरियल् मध्ये GitHub इत्यस्य अन्वेषणम् : https://youtu.be/JfpCicDUMKc
कतिपयेषु शर्तौ कः GitHub अनुज्ञापत्रः उपयुक्तः अस्ति – कथं चयनं कर्तव्यम्?
अस्य प्रश्नस्य सटीकं उत्तरं न भवितुम् अर्हति, यतः अनुज्ञापत्रस्य चयनं केवलं परियोजनायाः लक्ष्येषु, स्वयं विकासकस्य व्यक्तिगतप्राधान्येषु, इच्छासु च निर्भरं भवति यथा भवान् पश्यति, GitHub इत्यत्र बहुविधाः अनुज्ञापत्राणि सन्ति, तथा च सर्वाधिकं महत्त्वपूर्णं यत्, ते सर्वे निःशुल्काः सन्ति तथा च सार्वजनिकक्षेत्रे सन्ति, यस्य अर्थः अस्ति यत् प्रत्येकं प्रोग्रामरः
Open Source अनुज्ञापत्रं अन्वेष्टुं शक्नोति यत् निश्चितरूपेण तस्य परियोजनायाः अनुरूपं भविष्यति परन्तु, सर्वाधिकं महत्त्वपूर्णं यत्, अस्माभिः न विस्मर्तव्यं यत् Open Source अनुज्ञापत्रं केवलं अनुज्ञापत्रं नास्ति इति कोडः एव नास्ति । किञ्चित् शोधं कृत्वा, भवान् सर्वाणि Open Source अनुज्ञापत्राणि एकत्रित्वा त्रीणि बृहत् मुख्यसमूहेषु विभक्तुं शक्नोति:
- दृढ रक्षात्मक।
- दुर्बल रक्षक।
- अनुमतम् ।
दृढं रक्षात्मकम्
अनुज्ञापत्राणां दृढतया रक्षणं प्रायः GPL इत्यस्य भिन्नताः भवन्ति । एतेषु अनुज्ञापत्रेषु परियोजनायाः अनुज्ञापत्रस्य आवश्यकता वर्तते तथा च स्रोतसङ्केतानां प्रकटीकरणस्य आवश्यकता वर्तते, यद्यपि कोऽपि कोडः परियोजना वा कथं उपयुज्यते वा पूर्वमेव उपयुज्यते वा इति न कृत्वा।
दुर्बल रक्षक
दुर्बलतया रक्षणं कुर्वन्तः अनुज्ञापत्राणि अधिकतया Lesser GPL इत्यस्य भिन्नताः भवन्ति । यस्मिन् अनुमत-अनुज्ञापत्रेभ्यः मुख्यः अन्तरः अस्ति यत् अत्र केवलं GPL-अनुज्ञापत्रस्य अन्तर्गतं कार्यक्रमस्य अनुज्ञापत्रम् अपि दातुं आवश्यकम्, तथैव स्रोत-सङ्केतान् विना विफलतां प्रदातुं च आवश्यकम् तस्मिन् एव काले यदि प्रोग्रामरस्य परियोजनायां पुस्तकालयः अस्ति अर्थात् LGPL अनुज्ञापत्रस्य अन्तर्गतं स्थिरलिङ्किंग् अथवा गतिशीललिङ्किंग् अस्ति, तर्हि तस्य प्रोग्रामरस्य परियोजनायाः कस्यापि अनुज्ञापत्रेण सह अपि सङ्गतं भविष्यति
अनुमतम्
अत्र अनुमत-अनुज्ञापत्राणां तुल्य-बहुसंख्या अस्ति, तेषां पङ्क्तौ सर्वाधिकं लोकप्रियाः अनुज्ञापत्राणि MIT, Apache 2.0, BSD च सन्ति । किञ्चित् भिन्नताभिः सह, एतेषु अनुज्ञापत्रेषु मुक्तस्रोतपरियोजनासु अपि च व्यावसायिकप्रयोजनार्थं परियोजनासु च कोडस्य उपयोगस्य अनुमतिं दातुं क्षमता वर्तते परन्तु, अस्मिन् सति मूलकार्यक्रमस्य लेखकत्वं सूचयितुं आवश्यकम् इति स्मर्तव्यम् ।
अन्ये लोकप्रियाः GitHub अनुज्ञापत्राणि
एतेषां त्रयाणां अनुज्ञापत्रसमूहानां अतिरिक्तं अन्ये अपि सन्ति, यथा, अन्यत् अत्यन्तं उपयोगी अनुज्ञापत्रं GPLv2 अस्ति classpath विस्तारैः सह । एतत् अनुज्ञापत्रं मुक्तस्रोतपरियोजनानां वाणिज्यिकपरियोजनानां प्रयोजनानां च कृते अपि उपयोक्तुं शक्यते । अस्य सर्वाधिकं लोकप्रियं रूपं Oracle इत्यत्र अस्ति, यत् स्वस्य Open Source परियोजनाणां समाधानानाञ्च अनुज्ञापत्रं दातुं classpath विस्तारैः सह GPLv2 इत्यस्य उपयोगं करोति । इदं अनुज्ञापत्रं अत्यन्तं महत्त्वपूर्णं उपयोगी च अस्ति, यतः नियमितरूपेण GPL अनुज्ञापत्राणि, उदाहरणार्थं, कदापि बाइटकोड् इत्यनेन सह व्यवहारं कर्तुं न शक्नुवन्ति । अर्थात् तेषां संकलनस्य लिङ्किङ्गप्रक्रियायाः च विशेषं वर्णनं भवति, यत् अन्येषां व्याख्यातानां प्रोग्रामिंगभाषाणां कृते सर्वथा अनुपयुक्तम् अस्ति, तादृशभाषासु सर्वाधिकं लोकप्रिया जावा भाषा अस्ति। एतादृशानां प्रकरणानाम् कृते एव वर्गमार्गविस्तारयुक्तं विशेषं अनुज्ञापत्रं GPLv2 मुक्तम् आसीत् । अन्ततः, अतीव स्पष्टतया स्पष्टतया च वदति यत् अस्य अनुज्ञापत्रस्य अन्तर्गतं यत् पुस्तकालयं मुक्तम् आसीत् तस्य उपयोगः अन्येन सर्वथा अन्येन अनुज्ञापत्रेण सह वाणिज्यिकपरियोजनानां प्रयोजनानां च कृते कर्तुं शक्यते।
GitHub अनुज्ञापत्राणां विषये भवद्भिः अन्यत् किं ज्ञातव्यम्
.
अनुज्ञापत्रं योजयित्वा
अन्ततः अन्तिम-अनुज्ञापत्रस्य चयनानन्तरं केवलं परियोजना-मूल-मध्ये एव योजयितुं अवशिष्यते । एतत् कार्यं कर्तुं, भवद्भिः केवलं परियोजनायाः निर्माणकाले अथवा अन्यस्मिन् समये परियोजनामूलस्य अधः चयनितं अनुज्ञापत्रं योजयितुं आवश्यकम् । परन्तु अस्मिन् कार्ये अपि GitHub जालसेवा स्वप्रयोक्तृणां पालनं कर्तुं समर्था अभवत् तथा च ते परियोजनायाः आरम्भे एव अन्तिमानुज्ञापत्रं योजयितुं तुल्यसुलभं मार्गं कृतवन्तः।
परन्तु दुर्भाग्येन एतत् सर्वं न भवति, यतः विकासकस्य वा प्रोग्रामरस्य वा तस्य विचारे वा परियोजनायां वा प्रयुक्तानि सर्वाणि आश्रयाणि सर्वथा परीक्षितव्यानि सन्ति अर्थात्, यदि GPL अनुज्ञापत्रस्य अन्तर्गतं विमोचितं निर्भरतां मध्ये एकं अपि, तर्हि सर्वथा सम्पूर्णविकासकस्य परियोजना GPL संगतता भवितुमर्हति । एतादृशसत्यापनार्थं पूर्वं निर्मिताः कार्यक्रमाः वा साधनानि वा अस्य कृते प्रायः उपयुज्यन्ते । यथा, अस्य कृते एकं साधनम् अस्ति https://github.com/pivotal/LicenseFinder:
वयं वक्तुं शक्नुमः यत् अनुज्ञापत्रं किञ्चित् समयग्राहकं कार्यं भवति, परन्तु तत्सह परियोजनायाः जीवनाय अथवा प्रोग्रामरस्य कस्यापि विचारस्य कृते आवश्यकं कार्यं भवति । सम्यक् अनुज्ञापत्रं चयनं कर्तुं दुर्भाग्येन भवद्भिः बहुकालं व्ययितव्यं तथापि परियोजनायाः सफलतायै तत् सार्थकम् अस्ति । कस्यापि कार्यक्रमस्य लेखने अनुज्ञापत्रस्य चयनं प्रथमस्थाने स्थापयितुं सर्वोत्तमम्, यतः आरम्भे एव एतत् कृत्वा भवान् सर्वथा सर्वान् प्रयत्नान् समीचीनदिशि निर्देशयितुं शक्नोति तथा च अधिकांशस्य कृते सफलं सुलभं च भविष्यति इति कार्यक्रमं लिखितुं शक्नोति उपयोक्तारः ।