النشر ≠ الإذن
حتى لو كان المستودع منشورًا على GitHub، فإن الشيفرة التي لا يرافقها ملف LICENSE ليست مفتوحة المصدر. تنشأ حقوق النشر تلقائيًا لحظة كتابة الشيفرة (في معظم الدول الأعضاء في اتفاقية برن)، وما لم يوجد إذن منفصل فلا يملك النسخ والتعديل والتوزيع وإنشاء الأعمال المشتقة إلا صاحب الحقوق. وتوضح وثائق GitHub أيضًا أنه في غياب الترخيص يسري قانون حقوق النشر الافتراضي فيحتفظ صاحب الحقوق بجميع الحقوق، ولا يجوز للآخرين النسخ أو التوزيع أو إنشاء أعمال مشتقة.
ما تسمح به شروط GitHub
وفق شروط خدمة GitHub (البند D.5 'الترخيص الممنوح للمستخدمين الآخرين')، فإن من يرفع محتوى إلى مستودع عام يمنح مستخدمي GitHub حق استخدام المحتوى وعرضه وتشغيله داخل خدمة GitHub، ونسخه ضمن ما تسمح به ميزات GitHub مثل الاشتقاق (fork). أي أن ما يلي ممكن.
- مشاهدة الشيفرة وقراءتها على الويب
- اشتقاقها داخل GitHub
لكن الشروط لا تمنح حقوقًا تتجاوز ذلك، مثل إدراجها في منتجك وتوزيعها أو نشر نسخة معدّلة منها في مكان آخر.
إذا أردت استخدام شيفرة بلا ترخيص
- اطلب من صاحب الحقوق: اطلب عبر issue أو بريد إلكتروني أن يضيف ترخيصًا. وكثيرًا ما يكون قد نسي فحسب، فيضيف MIT أو غيره عن طيب خاطر.
- احصل على إذن مكتوب: إذا تعذّرت إضافة ترخيص فاحصل على إذن منفصل يحدد نطاق الاستخدام واحتفظ به.
- ابحث عن بديل: ابحث عن مكتبة مفتوحة المصدر بالوظيفة نفسها.
- نفّذها بنفسك: اكتبها من جديد دون النظر إلى الشيفرة، بالاستناد إلى المواصفات أو السلوك فقط (ما يُسمى تنفيذ الغرفة النظيفة). وانتبه إلى أن نقل الشيفرة الأصلية قد يُعدّ نسخًا.
إذا اكتفى README بعبارة "استخدمها كما تشاء" فالأمر ملتبس. قد تبدو النية واضحة، لكن النطاق (التعديل وإعادة التوزيع والاستخدام التجاري) غير محدد، لذا الأسلم أن تطلب إضافة ترخيص قياسي.
حالات ملتبسة شائعة
- لا يوجد LICENSE وإنما
"license": "MIT"في package.json فقط: تبدو النية MIT، لكن MIT يشترط تضمين إشعار حقوق النشر ونص الإذن في النسخ، فيصعب الوفاء بالإشعار دون النص الكامل. والأفضل أن تطلب إضافة ملف LICENSE إلى المستودع. - شيفرة إجابات Stack Overflow: يُقدَّم المحتوى الذي ينشره المستخدمون بترخيص Creative Commons BY-SA (2.5 أو 3.0 أو 4.0 بحسب تاريخ النشر). وفيه شرطا نسبة المصنَّف والترخيص بالمثل، لذا راجع سياسة شركتك قبل نقله إلى شيفرة منتج.
- شيفرة المدونات والدروس: ما لم تذكر شروط استخدام الموقع أو المقال خلاف ذلك، تكون حقوق النشر محفوظة أساسًا.
كيف تضيف ترخيصًا إلى مستودعك
- اختر الترخيص في المولّد وأدخل السنة وصاحب الحقوق ونزّل ملف
LICENSE. - أودعه في المستوى الأعلى من المستودع. سيتعرف GitHub على الملف ويعرض الترخيص في معلومات المستودع.
- اكتب معرّف SPDX في حقل license في ملفات مثل
package.jsonوCargo.tomlوpyproject.toml(دليل SPDX). - إذا اختلطت شيفرة لآخرين فنظّم ترخيص ذلك الجزء وإشعاراته على حدة (التطبيق العملي).
عندما لا تضيف ترخيصًا عمدًا
إذا أردت عرض الشيفرة فقط دون السماح بإعادة استخدامها، كما في ملف الأعمال أو الواجبات، فعدم إضافة ترخيص خيار أيضًا. وفي هذه الحالة يقلّ اللبس إذا كتبت في README عبارة 'جميع الحقوق محفوظة (All rights reserved)' ووسيلة للتواصل. لكن ما دام المستودع عامًا فلا يمكنك منع الاطلاع والاشتقاق اللذين تسمح بهما شروط GitHub.
هذا المقال معلومات عامة وليس استشارة قانونية. استشر مختصًا في القرارات المهمة.
المصادر
- GitHub Docs, Licensing a repository — https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository
- GitHub Terms of Service, D.5 — https://docs.github.com/en/site-policy/github-terms/github-terms-of-service
- choosealicense.com, No License — https://choosealicense.com/no-permission/
- Stack Overflow content licensing — https://stackoverflow.com/help/licensing