الجملة موضع النقاش
يتضمن نص الإشعار الموصى به في تراخيص GNU الجملة التالية.
either version 3 of the License, or (at your option) any later version.
إذا وُجدت هذه الجملة فيمكن للمتلقي أن يختار الالتزام بشروط الإصدار المحدد أو أي إصدار تصدره FSF لاحقًا. وهذا هو 'or later' (في SPDX GPL-3.0-or-later). وإذا حُذف جزء 'or later' من الجملة واقتُصر على إصدار محدد يصبح 'only' (GPL-3.0-only).
تحدد هذه البنية المادة 14 من GPL-3.0 والمادة 9 من GPL-2.0. وتنص المادة 9 من GPL-2.0 تحديدًا على أن البرنامج الذي لا يذكر رقم إصدار أصلًا يجوز فيه اختيار أي إصدار أصدرته FSF. لذا إذا وضعت ملف LICENSE وحده دون بيان بند الإصدار فقد يُفسَّر بخلاف ما تقصده.
لماذا يوضع 'or later'؟
توصي FSF بـ 'or later'. والسبب هو التوافق المستقبلي. فعندما يتغير القانون والبيئة التقنية ويصدر GPL جديد، يمكن لشيفرة 'or later' أن تندمج بسلاسة مع الإصدار الجديد. وبالفعل أمكن إدراج شيفرة GPL-2.0-or-later كما هي في مشاريع GPL-3.0، بينما لم تستطع شيفرة GPL-2.0-only ذلك.
وتذهب المادة 14 من GPL-3.0 خطوة أبعد فتسمح بتعيين 'وكيل (proxy)'. فإذا قرر الشخص الذي عيّنه صاحب الحقوق علنًا قبول إصدار لاحق، يصبح لقراره أثر نافذ.
لماذا يُختار 'only'؟
'or later' هو أيضًا موافقة مسبقة على ترخيص لم يُكتب بعد. فإذا أصدرت FSF لاحقًا إصدارًا جديدًا بشروط تخالف رغبتك، يمكن للمتلقي اختيار ذلك الإصدار لاستخدام شيفرتك.
ونواة لينكس هي المثال الأبرز. فالنواة مرخّصة بـ GPL-2.0-only. وقد أعلن لينوس تورفالدس علنًا معارضته لبند معلومات التثبيت في GPL-3.0 (ما يُسمى منع التيفوة)، كما أن النواة تضم حقوق آلاف المساهمين، فتغيير ترخيصها متعذّر عمليًا.
الأثر على التوافق
ملخص مصفوفة التوافق في الأسئلة الشائعة لتراخيص GNU كالتالي.
| الشيفرة المستوردة ← مشروعي | GPL-2.0-only | GPL-2.0-or-later | GPL-3.0 |
|---|---|---|---|
| GPL-2.0-only | ممكن | ممكن (العمل المدمج 2.0-only) | غير ممكن |
| GPL-2.0-or-later | ممكن | ممكن | ممكن |
| GPL-3.0 | غير ممكن | ممكن (العمل المدمج 3.0) | ممكن |
| LGPL-3.0 | غير ممكن | ممكن (العمل المدمج 3.0) | ممكن |
الجوهر هو أن GPL-2.0-only وGPL-3.0 لا يقبل أحدهما الآخر. فكل منهما يشترط 'عدم فرض قيود إضافية'، والشروط الإضافية في كل منهما (مثل بنود البراءات ومعلومات التثبيت في 3.0) تُعدّ قيودًا إضافية من منظور الآخر. ويمكنك الاطلاع على مزيد من التركيبات في مدقق التوافق.
معايير الاختيار
- اتبع المنظومة: إذا كانت الشيفرة ستدخل نواة لينكس فيجب أن تكون GPL-2.0-only (أو GPL-2.0-or-later المتوافق أو ترخيصًا متساهلًا).
- التوافق المستقبلي مهم: إذا كان من المرجح تبادل الشيفرة مع مشاريع GPL عديدة فإن or-later أكثر مرونة.
- السيطرة مهمة: إذا لم ترد ترك الأمر لقرارات FSF المستقبلية فاستخدم only، أو عيّن صاحب القرار عبر الوكيل في المادة 14 من GPL-3.0.
طريقة الكتابة
- ضع في
LICENSE(أوCOPYING) النص الأصلي للإصدار المعني كما هو. فالنص الأصلي نفسه لا يميز بين only وor-later. - بيّن بند الإصدار عبر نص الإشعار في كل ملف ومعرّف SPDX. في تبويب ترويسة الملف في المولّد اختر 'only' أو 'or-later' ليُنشأ إشعار GNU الرسمي وسطر SPDX معًا.
- اذكره أيضًا في سطر واحد في README (مثلًا 'Licensed under GPL-3.0-or-later').
هذا المقال معلومات عامة وليس استشارة قانونية. استشر مختصًا في القرارات المهمة.
المصادر
- GNU License FAQ, VersionThreeOrLater · AllCompatibility — https://www.gnu.org/licenses/gpl-faq.html
- GNU, How to Use GNU Licenses for Your Own Software — https://www.gnu.org/licenses/gpl-howto.html
- Linux kernel licensing rules — https://www.kernel.org/doc/html/latest/process/license-rules.html
- SPDX License List — https://spdx.org/licenses/