تبادل بيانات حزم البرامج

يُعدّ تبادل بيانات حزم الأنظمة ( SPDX ، المعروف سابقًا باسم تبادل بيانات حزم البرامج ) معيارًا مفتوحًا قادرًا على تمثيل الأنظمة ذات المكونات الرقمية على شكل قوائم مواد (BOMs). [ 2 ] صُمم SPDX في البداية لوصف مكونات البرامج، ولكنه قادر الآن على وصف مكونات أنظمة البرامج، ونماذج الذكاء الاصطناعي، وبنيات البرامج، وبيانات الأمان، وحزم البيانات الأخرى. يسمح SPDX بالتعبير عن المكونات، والتراخيص ، وحقوق التأليف والنشر، ومراجع الأمان، وغيرها من البيانات الوصفية المتعلقة بالأنظمة. [ 3 ]

كان الهدف الأصلي من SPDX هو تحسين الامتثال لشروط الترخيص، [ 4 ] وقد تم توسيعه منذ ذلك الحين لتسهيل حالات استخدام إضافية مثل شفافية سلسلة التوريد وأمنها. [ 5 ] تم تطوير SPDX بواسطة مشروع SPDX المجتمعي الذي يضم خبراء رئيسيين في الصناعة ومنظمات ومتحمسين للمصادر المفتوحة تحت رعاية مؤسسة لينكس .

تُعتبر مواصفات SPDX معيارًا دوليًا مفتوحًا للأمن، والامتثال للترخيص، وغيرها من عناصر سلسلة توريد البرمجيات، وفقًا لمعيار ISO/IEC 5962:2021. اعتبارًا من أغسطس 2025 ، أحدث إصدار من المعيار هو 3.0.1. [ 1 ]

بناء

الإصدار 2.x

يُعرّف معيار SPDX 2.x وثيقة SBOM، التي تحتوي على بيانات وصفية SPDX خاصة بالبرمجيات. يمكن التعبير عن الوثيقة نفسها بصيغ متعددة، بما في ذلك JSON وYAML وRDF/XML وصيغة الوسم-القيمة وجداول البيانات. تصف كل وثيقة SPDX عنصرًا واحدًا أو أكثر، والذي قد يكون حزمة برمجية أو ملفًا محددًا أو جزءًا من ملف. يُمنح كل عنصر مُعرّفًا فريدًا، ويمكن أن تُشير البيانات الوصفية لعنصر ما إلى عناصر أخرى. [ 6 ]

الإصدار 3.0

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

يعتمد نموذج بيانات SPDX 3.0 على إطار وصف الموارد (RDF). يمكن تسلسل البيانات في مجموعة متنوعة من التنسيقات للتخزين والنقل، بما في ذلك التنسيقات المحددة في RDF 1.1 مثل JSON-LD و Turtle (لغة RDF الثلاثية المختصرة) و N-Triples و RDF/XML.

ملفات تعريف SPDX 3.0

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

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

سجل الإصدارات

إصدارات المواصفات
رقم الإصدارتاريخ النشرملحوظاتمراجع
3.0.1ديسمبر 2024أُجريت تعديلات لدعم إمكانية اعتماد SPDX 3 كمعيار من قِبل OMG و ISO . كما تتضمن هذه التعديلات إصلاحات متنوعة لمشاكل المواصفات الموجودة في SPDX 3.0، بما في ذلك تغييرات طفيفة مثل تصحيح الأخطاء المطبعية.[ 7 ] [ 1 ]
3.0أبريل 2024تم تقديم مجموعة شاملة من التحديثات التي تشمل النموذج والمواصفات وقائمة التراخيص، مع إضافة جديدة لملفات تعريف SPDX للتعامل مع حالات استخدام النظام الحديثة مثل الأمن والذكاء الاصطناعي.[ 8 ]
2.3نوفمبر 2022تمت إضافة حقول جديدة لتحسين القدرة على جمع المعلومات المتعلقة بالأمان والتوافق مع تنسيقات SBOM الأخرى.[ 9 ]
2.2.2أبريل 2022مكافئ وظيفيًا لـ SPDX 2.2.1 ولكن مع تحسينات في التدقيق الإملائي والنحوي والتحريري.[ 10 ]
2.2.1أكتوبر 2020مكافئ وظيفيًا لـ SPDX 2.2 ولكن مع تنسيق الطباعة للنشر كمعيار ISO.[ 11 ]
2.2مايو 2020تمت إضافة ملف تعريف "SPDX-lite" لتقليل قائمة مكونات البرامج وتحسين دعم المراجع الخارجية.[ 12 ]
2.1نوفمبر 2016تمت إضافة دعم لوصف "مقتطفات" من التعليمات البرمجية والقدرة على الإشارة إلى بيانات غير SPDX (مثل CVEs ).[ 13 ] [ 14 ]
2.0مايو 2015تمت إضافة إمكانية وصف حزم متعددة والعلاقات بين الحزم والملفات المختلفة.[ 15 ]
1.2أكتوبر 2013تم تحسين التفاعل مع قائمة تراخيص SPDX، وإضافة حقول جديدة لتوثيق معلومات إضافية حول مشاريع البرامج.[ 16 ]
1.1أغسطس 2012تم إصلاح خلل في رمز التحقق من حزمة SPDX ( دالة تجزئة تشفيرية ) وتمت إضافة دعم للتعليقات الحرة.[ 17 ]
1.0أغسطس 2011الإصدار الأول من مواصفات SPDX؛ يتعامل مع الحزم.[ 4 ]

كان الهدف من الإصدار الأول لمواصفات SPDX هو تسهيل الامتثال لتراخيص البرامج ، [ 4 ] ولكن الإصدارات اللاحقة من المواصفات أضافت إمكانيات مخصصة لحالات استخدام أخرى، مثل إمكانية تضمين مراجع لثغرات البرامج المعروفة . [ 14 ] وتفي الإصدارات الحديثة من SPDX بمتطلبات "الحد الأدنى من العناصر لقائمة مكونات البرامج" الصادرة عن الإدارة الوطنية للاتصالات والمعلومات (NTIA ). [ 18 ]

تم تقديم SPDX 2.2.1 إلى المنظمة الدولية للتوحيد القياسي (ISO) في أكتوبر 2020، ونُشرت باسم ISO/IEC 5962:2021 تكنولوجيا المعلومات - مواصفات SPDX® الإصدار 2.2.1 في أغسطس 2021. [ 11 ] [ 19 ]

معرّف ترخيص SPDX

بناء الجملة

تُعرَّف كل رخصة باسم كامل، مثل "رخصة موزيلا العامة 2.0"، ومعرّف مختصر، هنا "MPL-2.0". ويمكن دمج الرخص باستخدام عوامل التشغيل و ANDو ORعوامل التجميع (.)

على سبيل المثال، (Apache-2.0 OR MIT)يعني ذلك أنه يمكن الاختيار بين Apache-2.0( رخصة أباتشي ) أو MIT( رخصة MIT ). من ناحية أخرى، (Apache-2.0 AND MIT)يعني ذلك أن كلا الرخصتين تنطبقان.

يوجد أيضًا عامل "+"، وعند تطبيقه على ترخيص، يعني أن الإصدارات المستقبلية من الترخيص سارية أيضًا. على سبيل المثال، Apache-1.1+يعني ذلك أن Apache-1.1الترخيص Apache-2.0قد يسري (والإصدارات المستقبلية إن وجدت).

يصف معيار SPDX الشروط الدقيقة التي يتم بموجبها ترخيص برنامج ما. ولا يحاول تصنيف التراخيص حسب النوع، على سبيل المثال من خلال وصف التراخيص ذات الشروط المشابهة لرخصة BSD بأنها "شبيهة برخصة BSD". [ 20 ]

في عام 2020، نشرت المفوضية الأوروبية مساعد الترخيص المشترك [ 21 ] الذي يتيح اختيار ومقارنة أكثر من 50 ترخيصًا، مع إمكانية الوصول إلى معرف SPDX الخاص بها ونصها الكامل.

معرّفات التراخيص المهملة

تتيح عائلة رخص جنو (مثل رخصة جنو العمومية العامة الإصدار 2 ) خيار اختيار إصدار أحدث من الرخصة مُدمجًا فيها. في بعض الأحيان، لم يكن واضحًا ما إذا كان تعبير SPDX GPL-2.0يعني "رخصة جنو العمومية العامة الإصدار 2.0 تحديدًا" أو "رخصة جنو العمومية العامة الإصدار 2.0 أو أي إصدار لاحق". [ 22 ] لذا، ومنذ الإصدار 3.0 من قائمة رخص SPDX، حصلت عائلة رخص جنو على أسماء جديدة. [ 23 ]GPL-2.0-only تعني "الإصدار 2.0 تحديدًا" و GPL-2.0-or-later"الإصدار 2.0 أو أي إصدار لاحق".

التبني

لأغراض الترخيص

يمكن إضافة مُعرّف ترخيص SPDX إلى أعلى ملفات شفرة المصدر كسلسلة نصية قصيرة تُعلن بوضوح عن الترخيص المُستخدم. وقد أصبح هذا SPDX-License-Identifierالتركيب، الذي ابتكره برنامج Das U-Boot في عام 2013، جزءًا من SPDX في الإصدار 2.1. وفي عام 2017، أطلقت مؤسسة FSFE برنامج REUSE ، الذي يُوفّر أدوات للتحقق من صحة التعليق واستخراج معلومات حقوق النشر بكفاءة. [ 24 ]

يُستخدم مُعرّف ترخيص SPDX أيضًا في عدد من مديري الحزم مثل npm ، [ 25 ] و Python، [ 26 ] وRust cargo. [ 27 ] تُستخدم تعابير ترخيص SPDX في بيانات تعريف حزم RPM في Fedora Linux ، لتحل محل استخدام نظام Callaway السابق. [ 28 ] يستخدم Debian مواصفات ترخيص مختلفة قليلاً. [ 29 ]

انظر أيضاً

مراجع

  1. 1 2 3 spdx. "Release Patch release 3.0.1 · spdx/spdx-3-model" . GitHub . تم الاطلاع عليه بتاريخ 2025-09-02 .
  2. ستيوارت، كيت (25 مايو 2021). "SPDX: يُستخدم بالفعل في قوائم مكونات البرمجيات العالمية (SBOM) وأمن سلسلة التوريد" . مؤسسة لينكس . تم الاطلاع عليه بتاريخ 13 أغسطس 2021 .
  3. "مسح لتنسيقات ومعايير SBOM الحالية" (ملف PDF) . الهيئة الوطنية للاتصالات والمعلومات . 25 أكتوبر 2019. ص 9. تاريخ الاطلاع: 13 أغسطس 2021 . 
  4. بريدج ووتر ، أدريان ( 19 أغسطس 2011). "مؤسسة لينكس تُسهّل مشاكل ترخيص المصادر المفتوحة" . أوبن سورس إنسايدر . كمبيوتر ويكلي . مؤرشف من الأصل في 20 أغسطس 2021. تم الاطلاع عليه بتاريخ 13 أغسطس 2021 .
  5. راشغروف، غاريث (16 يونيو 2021). "تطوير معايير SBOM: Snyk وSPDX" . Snyk . تم الاسترجاع في 14 أغسطس 2021 .
  6. وينسلو، ستيف (2023-04-06). "دليل SPDX وNTIA للحد الأدنى من العناصر اللازمة لـ SBOM" . spdx.github.io .
  7. spdx. "Release Patch release 3.0.1 · spdx/spdx-spec" . GitHub . تم الاطلاع عليه بتاريخ 2025-09-02 .
  8. goneall (9 أكتوبر 2023). "فهم ملفات تعريف SPDX" . SPDX . تم الاسترجاع في 19 مايو 2024 .
  9. goneall (2 نوفمبر 2022). "الإصدار v2.3" . spdx/spdx-spec . GitHub . تم الاطلاع عليه بتاريخ 22 نوفمبر 2022 .
  10. kestewart (27 أبريل 2022). "الإصدار v2.2.2" . spdx/spdx-spec . GitHub . تم الاطلاع عليه بتاريخ 11 يونيو 2022 .
  11. 1 2 "ISO/IEC 5962:2021 تكنولوجيا المعلومات - مواصفات SPDX® الإصدار 2.2.1" . المنظمة الدولية للمقاييس . أغسطس 2021. تاريخ الاسترجاع: 1 ديسمبر 2021 .
  12. ستيوارت، كيت (7 مايو 2020). "إصدار مواصفات SPDX 2.2" . مؤسسة لينكس . تم الاطلاع عليه بتاريخ 1 ديسمبر 2021 .
  13. "محضر اجتماع عام/2016-11-03" . ويكي SPDX . 3 نوفمبر 2016. تم الاطلاع عليه بتاريخ 1 ديسمبر 2021 .
  14. ١ ٢ "مبادرة الامتثال المفتوح التابعة لمؤسسة لينكس تُصدر مواصفات SPDX جديدة" . مؤسسة لينكس. ٤ أكتوبر ٢٠١٦. تاريخ الاسترجاع: ١ ديسمبر ٢٠٢١ .
  15. "ما الجديد في SPDX 2.0" . LWN.net . 20 مايو 2015. تم الاطلاع عليه بتاريخ 1 ديسمبر 2021 .
  16. «مجموعة عمل SPDX التابعة لمؤسسة لينكس تُصدر نسخة جديدة من معيار تبادل بيانات حزم البرامج» . مؤسسة لينكس. ٢٢ أكتوبر ٢٠١٣. تاريخ الاطلاع: ١ ديسمبر ٢٠٢١ .
  17. «مجموعة عمل SPDX التابعة لمؤسسة لينكس تُصدر نسخة جديدة من معيار تبادل بيانات حزم البرامج» . مؤسسة لينكس. 30 أغسطس 2012. تاريخ الاطلاع: 1 ديسمبر 2021 .
  18. "العناصر الدنيا لقائمة مواد البرمجيات (SBOM)" (ملف PDF) . الإدارة الوطنية للاتصالات والمعلومات . تم الاطلاع عليه بتاريخ 1 ديسمبر 2021 .
  19. برنارد، ألين (9 سبتمبر 2021). "SPDX يصبح معيارًا معترفًا به دوليًا" . TechRepublic . تم الاسترجاع في 1 ديسمبر 2021 .
  20. أودنس، فيل (23-06-2010). "تنسيق تبادل بيانات حزمة البرامج (SPDX)" . دكتور دوبس . تم الاسترجاع في 31-08-2012 .
  21. "مساعد ترخيص Joinup" . تم الاطلاع عليه بتاريخ 31 مارس 2020 .
  22. ريتشارد ستالمان. "من أجل الوضوح، من فضلك لا تقل "مرخص بموجب رخصة جنو العمومية العامة 2"!" . جنو . تم الاسترجاع في 24-05-2018 .
  23. جيلاين لوفجوي (5 يناير 2018). "إصدار قائمة التراخيص 3.0!" . spdx.dev . مؤرشف من الأصل بتاريخ 5 يناير 2018. تم الاطلاع عليه بتاريخ 2 سبتمبر 2021 .
  24. "حل مشكلة الامتثال للترخيص من المصدر: إضافة معرّفات ترخيص SPDX - مؤسسة لينكس" . www.linuxfoundation.org .
  25. "package.json | npm Docs" . docs.npmjs.com .
  26. "PEP 639 - تحسين وضوح الترخيص من خلال بيانات تعريف الحزمة الأفضل" . peps.python.org .
  27. "صيغة البيان - كتاب الشحن" . doc.rust-lang.org .
  28. "الترخيص: حقل في ملف المواصفات" . وثائق فيدورا القانونية . تم الاطلاع عليه بتاريخ 30 يوليو 2023 .
  29. "ملف حقوق النشر debian/copyright قابل للقراءة آلياً" . www.debian.org .