الأذونات والشروط والقيود في لمحة
الشروط
- الإفصاح عن المصدريجب توفير الشيفرة المصدرية عند التوزيع.
- إشعار حقوق النشر والترخيصيجب تضمين نسخة من الترخيص وإشعار حقوق النشر عند التوزيع.
- الترخيص نفسه (على مستوى الملف)يجب توزيع التعديلات على الملفات الموجودة بالترخيص نفسه.
القيود
- تحديد المسؤوليةينص صراحةً على عدم تحمّل المسؤولية عن الأضرار.
- استخدام العلامات التجاريةينص صراحةً على عدم منح حقوق العلامات التجارية.
- بلا ضمانينص صراحةً على عدم تقديم أي ضمان.
مصدر تصنيف الأذونات والشروط والقيود: بيانات choosealicense.com (GitHub، ترخيص MIT).
ما هذا الترخيص؟
أصدرت مؤسسة Mozilla ترخيص MPL 2.0 في يناير 2012. تستخدمه منتجات Mozilla مثل Firefox وThunderbird، ويتميز بأنه يحدد نطاق الحقوق المتروكة على مستوى الملف. فالملفات المرخّصة بـ MPL (والأجزاء المعدّلة منها) يجب نشر مصدرها بترخيص MPL، أما الملفات المستقلة المكتوبة حديثًا فيمكن أن تكون بترخيص آخر، ويمكن توزيع 'Larger Work' (المادة 3.3) الذي يجمعها مع شيفرة MPL بأكمله بالشروط التي تريدها. ويتضمن أيضًا منحًا صريحًا للبراءات وبندًا لإنهاء المنح عند رفع دعوى براءات.
ما يجب الالتزام به عند التوزيع
- عند التوزيع كملف تنفيذي أعلِم بطريقة الحصول على مصدر الملفات المرخّصة بـ MPL (المادة 3.2).
- لا تحذف إشعارات الترخيص في ملفات MPL ولا تغيّرها.
- إذا عدّلت ملف MPL فاستمر في توزيعه بترخيص MPL-2.0.
Secondary License والتوافق مع GPL
تعرّف المادة 1.12 من MPL-2.0 تراخيص GPL-2.0 وLGPL-2.1 وAGPL-3.0 وإصداراتها اللاحقة بوصفها 'Secondary License'. ووفق المادة 3.3 يمكن توزيع Larger Work الذي يجمع شيفرة MPL وشيفرة بترخيص GNU بترخيص GNU. لكن إذا أرفق المؤلف الأصلي بالملف إشعار Exhibit B ('Incompatible With Secondary Licenses') فلا ينطبق هذا التوافق. لم يكن في MPL-1.1 مثل هذه الآلية فكان غير متوافق مع GPL، وتحسّن ذلك في 2.0.
مفاهيم خاطئة شائعة
- "استخدام مكتبة MPL يجعل تطبيقي MPL" — لا. الملفات التي أنشأتها بنفسك لا يلزم أن تكون MPL.
- "لا يمكن خلط MPL مع GPL" — منذ 2.0 أصبح ذلك ممكنًا ما لم يوجد Exhibit B.
- "إذا نسخت ملف MPL ولصقته في ملفي يبقى ملفي حرًا" — الجزء المنقول من شيفرة MPL يبقى MPL. فحدود الملف هي حدود الالتزام، لذا الأسلم ألا تخلط الشيفرة وأن تفصلها في ملفات.
طريقة التطبيق
ضع النص الأصلي في LICENSE، ويُوصى بإضافة إشعار Exhibit A ('This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0…') في أعلى كل ملف مصدري. وإذا تعذّر وضعه في الملف فيمكن وضعه في مكان يُرجَّح أن يبحث فيه المتلقي، مثل ملف LICENSE في المجلد المعني. معرّف SPDX هو MPL-2.0 (وإذا وُجد Exhibit B فهو MPL-2.0-no-copyleft-exception).
متى يناسب؟
حل وسط جيد عندما تريد أن تعود إليك تحسينات المكتبة أو المحرك نفسه، دون تقييد ترخيص المنتجات التي تستخدمه. شروطه أبسط من LGPL ولا يعاني مشكلة الربط الساكن. ومن الأمثلة أنه عندما غيّرت HashiCorp ترخيص Terraform عام 2023 من MPL-2.0 إلى BUSL، اشتق المجتمع نسخة MPL-2.0 باسم OpenTofu.
هل يمكن دمج شيفرة MPL-2.0 في مشروع آخر؟
حكم عام على أخذ شيفرة منشورة بهذا الترخيص ودمجها وتوزيعها ضمن مشروع مرخّص بأحد التراخيص أدناه. اطّلع على تركيبات أخرى في مدقق التوافق ←
| المشروع المراد الدمج فيه | الحكم | ملاحظة |
|---|---|---|
| برمجيات مغلقة (تجارية) | ممكن بشروط | تحتفظ ملفات MPL بترخيص MPL-2.0 على مستوى الملف ويجب توفير مصدر تلك الملفات. ويمكن أن تبقى بقية الشيفرة بترخيص آخر. |
| MIT | ممكن بشروط | تحتفظ ملفات MPL بترخيص MPL-2.0 على مستوى الملف ويجب توفير مصدر تلك الملفات. ويمكن أن تبقى بقية الشيفرة بترخيص آخر. |
| Apache-2.0 | ممكن بشروط | تحتفظ ملفات MPL بترخيص MPL-2.0 على مستوى الملف ويجب توفير مصدر تلك الملفات. ويمكن أن تبقى بقية الشيفرة بترخيص آخر. |
| LGPL-2.1 | ممكن بشروط | يعترف MPL-2.0 بـ GPL-2.0 فما بعده وLGPL-2.1 فما بعده وAGPL-3.0 فما بعده بوصفها 'Secondary License'، فيمكن توزيع العمل المدمج بترخيص GNU. لكن لا يجوز ذلك إذا أرفق المؤلف الأصلي 'Incompatible With Secondary Licenses' (Exhibit B). |
| LGPL-3.0 | ممكن بشروط | يعترف MPL-2.0 بـ GPL-2.0 فما بعده وLGPL-2.1 فما بعده وAGPL-3.0 فما بعده بوصفها 'Secondary License'، فيمكن توزيع العمل المدمج بترخيص GNU. لكن لا يجوز ذلك إذا أرفق المؤلف الأصلي 'Incompatible With Secondary Licenses' (Exhibit B). |
| GPL-2.0 | ممكن بشروط | يعترف MPL-2.0 بـ GPL-2.0 فما بعده وLGPL-2.1 فما بعده وAGPL-3.0 فما بعده بوصفها 'Secondary License'، فيمكن توزيع العمل المدمج بترخيص GNU. لكن لا يجوز ذلك إذا أرفق المؤلف الأصلي 'Incompatible With Secondary Licenses' (Exhibit B). |
| GPL-3.0 | ممكن بشروط | يعترف MPL-2.0 بـ GPL-2.0 فما بعده وLGPL-2.1 فما بعده وAGPL-3.0 فما بعده بوصفها 'Secondary License'، فيمكن توزيع العمل المدمج بترخيص GNU. لكن لا يجوز ذلك إذا أرفق المؤلف الأصلي 'Incompatible With Secondary Licenses' (Exhibit B). |
| AGPL-3.0 | ممكن بشروط | يعترف MPL-2.0 بـ GPL-2.0 فما بعده وLGPL-2.1 فما بعده وAGPL-3.0 فما بعده بوصفها 'Secondary License'، فيمكن توزيع العمل المدمج بترخيص GNU. لكن لا يجوز ذلك إذا أرفق المؤلف الأصلي 'Incompatible With Secondary Licenses' (Exhibit B). |
محتوى هذا الموقع معلومات عامة وليس استشارة قانونية. استشر محاميًا أو مختصًا قبل اتخاذ قرارات فعلية بشأن التوزيع أو العقود أو النزاعات.