الخلاصة

  • تعبير SPDX يمثل معلومة ترخيص وفق قواعد محددة، ولا يثبت امتثالًا أو تصريحًا أو إطلاقًا أو نشرًا.
  • إعلان مؤلف الحزمة، والمعلومة الموجودة في ملف، واستنتاج منشئ وثيقة SPDX هي سجلات منفصلة.
  • حفظ المصدر والنطاق وسبب الاختلاف والقرار المستقل يمنع إقراض سلطة غير موجودة لمعرّف قصير.

ما الذي تقوله الصيغة فعلًا

قد تبدو MIT أو صيغة تجمع تراخيص بواسطة AND وOR جوابًا كاملًا لأن القراءة الآلية والبشرية تفهمها على السواء. لكن قواعد SPDX للعبارات تحدد كيف تمثل المعرفات والمراجع والاستثناءات والتراكيب. وهي لا تحدد أن كل الملفات قد فُحصت، ولا أن جهة ما اختارت سياسة بعينها، ولا أن منتجًا معينًا اجتاز مراجعة، ولا أن تشغيله قد تقرر.

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

إعلان وملاحظة واستنتاج

حقل الترخيص المعلن للحزمة يسجل ما أعلنه مؤلفو الحزمة. وتقول مواصفة SPDX 2.3 إن المعلومة الآتية من مستودع طرف ثالث لا ينبغي وضعها فيه. لذلك لا يجيب الحقل عن كل ما وجده باحث لاحق، بل عن سؤال أضيق: ماذا أعلن المؤلفون؟

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

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

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

القرار خارج التعبير

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

إيصال التعبير والقرار

لا يحتاج الأمر إلى تغيير SPDX. يمكن لإيصال موجز أن يثبت الملف أو الحزمة أو الأثر أو النسخة، وأن يبين نوع السجل: إعلان مؤلف، ملاحظة ملف، أو استنتاج منشئ وثيقة. ويحفظ التعبير الحرفي ومصدره، وسبب الاختلاف إن وجد.

ولا يذكر القرار إلا إذا كان قد اتخذ بالفعل، مع مالكه ونسخة سياسته ونطاقه ووقته. وعند غياب القرار، تكون عبارة «غير مقيّم» أصدق من معرف مرتب يقرأه الآخرون كإذن ضمني. هكذا يبقى كل طرف داخل حدود دوره.

Sources

  1. SPDX — Overview
  2. SPDX Specification 2.3 — Package Information
  3. SPDX Specification 2.2.2 — File Information
  4. SPDX Specification 3.0.1 — License Expressions