كيف تختار رخصة مفتوحة المصدر لبرامجك


عبد اللطيف ايمش

ما الذي يجعل مشروعك مفتوح المصدر؟ أن تكون الشّيفرة متوفرةً مجانًا على الإنترنت؟ أو أن تستطيع استعماله، أو تعديله وإرساله إلى صديقك؟ إذا ابتغينا الدقة، فإن الرخصة هي التي تعطيك الامتيازات لفعل كل ما سبق ذكره. فعندما "تفتح" مصدر مشروعك، فعليك أن تُضمِّن ملف رخصة يُحدِّد ما هي الشروط التي سيُسمَح للآخرين باستعمال مشروعك وفقًا لها. لحسن الحظ، هنالك خياراتٌ عديدةٌ يمكنك الاختيار بينها، فلا حاجة إلى أن تكون محاميًا لفعل ذلك؛ لكن لسوء الحظ هنالك الكثير من الرخص، مما يجعلك تحتار أيهم ستختار.

how-to-choose-opensource-licence.png.282

تنبيه: هذه هي طريقة ترخيص مشاريعي الخاصة، لكنني لست محاميًا وهذه المقالة لا تُمثِّل نصيحة قانونية.

ما هي الرخص؟

عدد الرخص التي يمكن اعتبارها "حرة" (free) أو مفتوحة المصدر (open-source) بالمئات! إذا كنت تريد قوائم طويلة، فراجع القوائم الموجودة على موقع مشروع GNU و opensoucre.org أو على ويكيبيديا، وحتى تلك القوائم الطويلة ليست شاملة لجميع الرخص.

وعلى الرغم من التعداد الكبير للرخص، لكن الفروقات بينها ليست محورية؛ والسبب وراء وجود عدد كبير منها هو أنَّ كاتبيها صعيبو المراس في اختيار الكلمات وبعض التفاصيل، لكن يمكن اعتبار شروط الكثير منها متماثلة. ادخل إلى موقع tl;drLegal لمراجعة سريعة لشروط مختلف الرخص.

الرخص المتساهلة و Copyleft

أكبر أمر يُفرِّق بين الرخص هو Copyleft، وهو مصطلحٌ أوجده مشروع غنو (GNU) لمنع الأشخاص الذين سيعيدون توزيع البرمجيات في المستقبل من تقييد الحريات التي أعطيتَها للمشروع عند إطلاقه، وهذا يعني أنَّه على أيّ شخصٍ يريد أن يُعيد توزيع نسخةٍ مُعدَّلةٍ من الشيفرة التي كتبتَها أن ينشر تعديلاته أيضًا.

تُطبِّق بعض الرخص ذاك المبدأ (مثل GPL، و LGPL، وMPL) بينما لا تُطبقه الأخرى (مثل MIT، و Apache، و BSD). قد تكون رخص "copyleft" مفيدةً جدًا لمنع إساءة استعمال مشروعك، وقد تكون في بعض الأحيان معيقةً لاستعماله من الشركات التي قد لا تقدر على استعمال شيفرات مرخصة بتلك الرخصة في برمجياتها التجارية.

مجال مشروعك

أحد أهم الأشياء التي يجب أخذها بعين الاعتبار عند اختيار رخصة لمشروعك هو "المجال"؛ هل هو مكتبة برمجية، أم أداة للمطورين، أم تطبيق كامل للمستخدم النهائي؟ إذا كان سيُستعمَل مع مكتباتٍ أخرى، فعليك أن تكون حذرًا في اختيارك للرخصة بسبب مشاكل في التوافقية بين الرخص (سنشرح ذلك بعد قليل).

أختارُ للتطبيقات الكاملة أو المنتجات، مثل تطبيقات الأندرويد أو تطبيقات سطح المكتب أو الأدوات التي تعمل من سطر الأوامر، رخصًا من نمط copyleft مثل GPLv3 التي تطمئنني أنَّ المشروع سيبقى مفتوح المصدر دومًا.

وعندما تُطلِقُ مكتبة أو إطار عمل ليستعمله المطورون في مشاريعهم، فإن اختيارك سيصبح أكثر صعوبةً. فعدم السماح لهم بتوزيع برمجياتهم التي تعتمد على مكتبتك دون التضمين الكود المصدري قد يمنع الشركات من استعمالها في مشاريعهم، مما يمنع انتشارها انتشارًا واسعًا.

شخصيًا، أستعمل رخصًا متساهلة في هذه الحالة، مثل MIT أو BSD؛ وبينما تترك تلك الرخص احتمال أن تشتق الشركات مصدر المشروع الخاص بك، وتطوره ولا تعطيك التعديلات عليه، لكن ذلك غير عملي أو منطقي لكثيرٍ من الشركات؛ لأن الاختلاف من مصدر الشيفرة الأصلي سيجعلهم يتحملون عبء تكاليف الصيانة التي تتجاوز عادةً قيمة التّعديل الذي أجروه على شيفرة مشروعك.

رخصة LGPL ليست خيارًا سيئًا أيضًا، إذ تسمح للآخرين باستعمال نسخة مُصرَّفة (compiled) من المكتبة مع شيفراتهم المملوكة (proprietary أو الاحتكارية)، وفي نفس الوقت ستحافظ على حقوق مصدر المكتبة.

المشاكل في التوافقية

تحتوي بعض الرخص بنودًا تتعارض مع غيرها من الرخص؛ مما يجعلها غير متوافقة، مما يعني أنك لا تستطيع أن تدمج بين حزمتين برمجيتين أو مكتبتين مرخصتين برخصتين فيهما بنود متعارضة.

انظر إلى الحزم البرمجية التي تستعملها في مشروعك، وحاول أن تختار رخصةً لا تتعارض مع بنود تلك الحزم. هنالك مصادرٌ عدِّة تستطيع الحصول على معلومات توافقية الرخص منها، بما في ذلك ويكيبيديا. تؤثر عادةً المشاكل في التوافقية على الرخص المعقَّدة والمحدَّدة مثل GPLv3؛ فكلما ازداد طول الرخصة وتخصيصها للبنود، كما ازدادت احتمالية حدوث مشاكل في التوافقية.

تحقق من مجتمعك

اعتمادًا على التقنيات التي يستعملها مشروعك، قد تجد أنَّ إحدى الرخص أفضل وأنسب من الأخرى، آخذًا بعين الاعتبار سهولة دمج مشروعك وتبنيه، وخصيصًا لو كان مكتبةً. فاستعمال أكثر رخصة شائعة في مجالك ستُسهِّل الأمر على مستعمليها، لأنهم سيكونون معتادين على شروط تلك الرخصة، وسيتم تقليل احتمالية وجود تعارض في الرخص في المشاريع.

على سبيل المثال، مجتمعَا JavaScript و Ruby يُحبذون الرخص الأكثر سماحيةً مثل MIT، بينما تُنشَر المشاريع المكتوبة بلغة C/C++‎ برخصة GPL.

عليك أن تبحث قليلًا في المجتمع التطويري المحيط بك عندما تنشر مكتبة برمجية وفق رخصةٍ معينة، فذاك المجتمع قد يساعدك بقرارك. لكن لا تُكرِه نفسك على رخصة معينة لأن الآخرين يستعملونها، فقد لا تكون خيارًا صائبًا لمشروعك. الخلاصة هي أنه اختيارك سيكون سديدًا إن كانت تتوافق الرخصة التي اخترها مع أغلبية المكتبات في مجتمعك.

بدون رخصة

إحصائيات الاستخدام التي نُشِرَت من Ben Balter على مدونة Github في مطلع عام 2015 تُظهِر أنَّ حوالي 80% من المستودعات على الموقع لا تُضمِّن رخصة؛ وهذا يعني أنَّ لا يُسمَح لأي شخص قانونيًا أن يستعمل الشيفرة الخاصة بهم حتى لو كانت متوفرة على الإنترنت لأنه لا يمكن اعتبارها "مفتوحة المصدر". هذا أمرٌ كارثي!

إن لم يكن هذا ما تطمح له، فخذ وقتك للتفكير برخصة مناسبة، وإلا فلن "يلمس" أي مبرمج خبير الشيفرة الخاصة بك، ويعرض سمعته للخطر بدعوى قضائية.

الخلاصة

هذه هي الطريقة التي أتبعها لاختيار رخصة لمشروعي. لا يوجد خيار صائب أو خيار خاطئ في اختيارك للرخصة إن كنت تعي ما تفعل. اختر واحدةً تناسب احتياجاتك، وتأكد أن تختار رخصةً واحدةً على الأقل.

ما هي الرخصة التي استعملتها لآخر مشروعٍ لك؟ أخبرنا في التعليقات.

ترجمة -وبتصرّف- للمقال How to pick an open source licence for your code لصاحبه Radek Pazdera.



3 اشخاص أعجبوا بهذا


تفاعل الأعضاء


مقالة رائعة، ولي إستفسار بهذا الخصوص.

ما الأفضل، إستخدام رخصة وقف أم رخصة المشاع الإبداعي (CC) التي أراهما أكثر رخصتين إستخدامًا عربيًا.

شارك هذا التعليق


رابط هذا التعليق
شارك على الشبكات الإجتماعية
بتاريخ 24 دقائق مضت قال samer_jabal:

مقالة رائعة، ولي إستفسار بهذا الخصوص.

ما الأفضل، إستخدام رخصة وقف أم رخصة المشاع الإبداعي (CC) التي أراهما أكثر رخصتين إستخدامًا عربيًا.

حسب الغاية والغرض، إذ تشبه رخصةُ «وقف» رخصةَ «GPLv2» (انظر هذا الموضوع للاستزادة)؛ أما المشاع الإبداعي، فهو مجموعة رخص وليست رخصةً وحيدةً (انظر إنفوجرافيك «تعرف على المشاع الإبداعي» لمزيدٍ من المعلومات).

1 شخص أعجب بهذا

شارك هذا التعليق


رابط هذا التعليق
شارك على الشبكات الإجتماعية
بتاريخ On 3/6/2016 at 19:18 قال samer_jabal:

مقالة رائعة، ولي إستفسار بهذا الخصوص.

ما الأفضل، إستخدام رخصة وقف أم رخصة المشاع الإبداعي (CC) التي أراهما أكثر رخصتين إستخدامًا عربيًا.

للتوضيح؛ المقال يناقش اختيار الرخصة المناسبة للعمل البرمجي، بينما رخصة المشاع الإبداعي تهتم بالنتاج المعرفي أكثر. لن تجد برنامج (عربي او غربي) مرخص بالمشاع الإبداعي.

بتاريخ On 3/6/2016 at 19:48 قال عبد اللطيف ايمش:

حسب الغاية والغرض، إذ تشبه رخصةُ «وقف» رخصةَ «GPLv2» (انظر هذا الموضوع للاستزادة)؛ أما المشاع الإبداعي، فهو مجموعة رخص وليست رخصةً وحيدةً (انظر إنفوجرافيك «تعرف على المشاع الإبداعي» لمزيدٍ من المعلومات).

هناك فرق جوهري ومهم بين رخصة «وقف» ورخص GPL

رخصة GPL تضمن حرية "تشغيل البرنامج لأي غرضٍ كان" وهي الحرية رقم 0 في رخصة غنو.

أما رخصة وقف فتحوي على نص ملتبس، حيث تنصّ على

"صاحب العمل ينصح بأن لا يتمّ استخدام عمله فيما يسيء للآخرين أو يخالف مبادئ الإسلام السّمحة، و صاحب العمل غير مسؤولٍ البتّة عن مخالفات المُنتفع للشّرع الإسلامي أو الإساءة للآخرين في استخدام العمل."

في البداية كانوا يستخدمون عبارة "لا يجوز استخدام المنتج بما يخالف الشرع الإسلامي"، ثم عدّلت العبارة إلى "النصيحة"، وهي في الحالتين تضع المستخدم بنوع من "الحرج"؛ لذا لا تزال جميع التوزيعات (بما في ذلك فيدورا) تعتبر الرخصة غير حرّة ولا تسمح بتضمين الحزم ضمن مستودعاتها الرسمية الحرّة.

شارك هذا التعليق


رابط هذا التعليق
شارك على الشبكات الإجتماعية

كثرة الرخص جعلني بوضع ميؤوس منه؛ فلم أعد أعرف أين التوجه الصحيح، وهذا المقال وردودكم حَسَّـنَ الوضع.

شارك هذا التعليق


رابط هذا التعليق
شارك على الشبكات الإجتماعية


يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن