Обмен данными программного пакета
![]() | |
Аббревиатура | СПДКС |
---|---|
Статус | Опубликовано |
Впервые опубликовано | август 2011 г. |
Последняя версия | 3.0 апрель 2024 г. |
Организация | Linux Фонд |
комитет | Проект SPDX |
Домен | Спецификация программного обеспечения |
Лицензия | CC-BY-3.0 |
Веб-сайт | спдкс |
Обмен данными системных пакетов ( SPDX ) — это открытый стандарт , способный представлять системы с программными компонентами в виде спецификаций программного обеспечения (SBOM). [1] и другие ссылки на искусственный интеллект, данные и безопасность, поддерживающие ряд вариантов использования управления рисками. SPDX позволяет выражать компоненты, лицензии , авторские права, ссылки на безопасность и другие метаданные , относящиеся к программному обеспечению. [2] Его первоначальная цель состояла в том, чтобы улучшить соблюдение лицензий, [3] и с тех пор он был расширен, чтобы облегчить дополнительные варианты использования, такие как прозрачность и безопасность цепочки поставок. [4] SPDX создан в рамках проекта SPDX, управляемого сообществом, в котором участвуют ключевые отраслевые эксперты, организации и энтузиасты открытого исходного кода под эгидой Linux Foundation .
Спецификация SPDX признана международным открытым стандартом безопасности, соответствия лицензиям и другим аспектам цепочки поставок программного обеспечения как ISO/IEC 5962:2021. Текущая версия стандарта — 3.0. [5]
Структура
[ редактировать ]Спецификация SPDX версии 2.x
[ редактировать ]Стандарт SPDX 2.x определяет документ SBOM, который содержит метаданные SPDX о программном обеспечении. Сам документ может быть выражен в нескольких форматах, включая JSON, YAML, RDF/XML, тег-значение и электронную таблицу. Каждый документ SPDX описывает один или несколько элементов, которыми может быть пакет программного обеспечения, конкретный файл или фрагмент файла. Каждому элементу присваивается уникальный идентификатор, а метаданные элемента могут ссылаться на другие элементы. [6]
Спецификация SPDX версии 3.0
[ редактировать ]SPDX 3.0 позволяет пользователям передавать информацию на гораздо более детальном уровне без необходимости упаковывать ее в «конвертные» данные. Ключевой принцип проектирования в SPDX 3.0 заключается в том, что все элементы могут быть выражены и на них можно ссылаться независимо от любого другого элемента. Эта независимость необходима для поддержки различных вариантов использования обмена контентом и анализа и упрощает передачу отдельных элементов, представляющих интерес. Структура отношений также была обновлена, чтобы стать более выразительной и простой для понимания по сравнению со старыми версиями спецификации.
Модель данных SPDX 3.0 основана на расширяемой модели данных представления знаний Resource Description Framework (RDF), которая обеспечивает гибкий и расширяемый способ представления информации и обмена ею. Данные могут быть сериализованы в различных форматах для хранения и передачи, включая, помимо прочего: - формат JSON-LD, определенный в JSON-LD 1.1 ; - Формат Turtle (краткий тройной язык RDF), определенный в RDF 1.1 Turtle ; - Формат N-Triples, определенный в RDF 1.1 N-Triples ; и - формат RDF/XML, определенный в синтаксисе XML RDF 1.1 .
Профили SPDX 3.0
[ редактировать ]В спецификации 3.0 представлена концепция профилей, предназначенная для поддержки нескольких новых областей использования (например, сборка, безопасность, искусственный интеллект, данные) без увеличения общей сложности. Профили позволяют пользователям использовать только те варианты использования, которые им интересны, без дополнительных затрат на варианты использования, которые им не нужны, а также увеличивают объем информации, которую можно собрать непосредственно из данных SPDX. В настоящее время доступно восемь профилей для реализации в SPDX 3.0:
- Ядро: определяет основополагающие концепции, служащие основой для всех профилей SPDX-3.0.
- Программное обеспечение : определяет концепции, связанные с программными артефактами.
- Безопасность: собирает метаданные, связанные с безопасностью, относящиеся к определенной части программного обеспечения.
- Сборка: определяет набор информации, необходимой для описания экземпляра сборки программного обеспечения.
- AI : определяет набор концепций и элементов данных, связанных с системой и моделью AI.
- Набор данных : определяет концепции, связанные с набором данных, включая процесс его подготовки, его характеристики и методы доступа.
- Лицензирование : определяет минимальный набор информации о лицензии для обеспечения соответствия типичным сценариям использования лицензии.
- Lite : определяет подмножество спецификации SPDX, направленное на балансировку стандартных и реальных рабочих процессов SPDX в некоторых отраслях.
История версий
[ редактировать ]Номер версии | Дата публикации | Примечания | Ссылки |
---|---|---|---|
3.0 | апрель 2024 г. | Представлен полный набор обновлений, включающий модель, спецификацию и список лицензий, а также новые профили SPDX для обработки современных сценариев использования системы, таких как безопасность и искусственный интеллект. | [7] |
2.3 | ноябрь 2022 г. | Добавлены новые поля для улучшения возможности сбора информации, связанной с безопасностью, и совместимости с другими форматами SBOM. | [8] |
2.2.2 | апрель 2022 г. | Функционально эквивалентен SPDX 2.2.1, но с орфографическими, грамматическими и другими редакционными улучшениями. | [9] |
2.2.1 | октябрь 2020 г. | Функционально эквивалентен SPDX 2.2, но с набором текста для публикации в качестве стандарта ISO . | [10] |
2.2 | май 2020 г. | Добавлен профиль SPDX-lite для минимальной спецификации программного обеспечения и улучшенной поддержки внешних ссылок. | [11] |
2.1 | ноябрь 2016 г. | Добавлена поддержка описания «фрагментов» кода и возможность ссылаться на данные, отличные от SPDX (например, CVE ). | [12] [13] |
2.0 | май 2015 г. | Добавлена возможность описывать несколько пакетов и связи между различными пакетами и файлами. | [14] |
1.2 | Октябрь 2013 г. | Улучшено взаимодействие со списком лицензий SPDX и добавлены новые поля для документирования дополнительной информации о проектах программного обеспечения. | [15] |
1.1 | август 2012 г. | Исправлена ошибка в коде проверки пакета SPDX ( криптографическая хеш-функция ) и добавлена поддержка комментариев в свободной форме. | [16] |
1.0 | август 2011 г. | Первый выпуск спецификации SPDX; обрабатывает пакеты. | [3] |
Первая версия спецификации SPDX была призвана упростить соблюдение лицензий на программное обеспечение . [3] но в последующих версиях спецификации были добавлены возможности, предназначенные для других случаев использования, например возможность содержать ссылки на известные уязвимости программного обеспечения . [13] Последние версии SPDX соответствуют NTIA . «Минимальным элементам спецификации программного обеспечения» [17]
SPDX 2.2.1 был представлен Международной организации по стандартизации (ISO) в октябре 2020 года и опубликован как ISO/IEC 5962:2021 Информационные технологии — Спецификация SPDX® V2.2.1 в августе 2021 года. [10] [18]
SPDX-идентификатор лицензии
[ редактировать ]Синтаксис
[ редактировать ]Каждая лицензия идентифицируется полным именем, например «Mozilla Public License 2.0», и коротким идентификатором, здесь «MPL-2.0».Лицензии могут комбинироваться операторами AND
и OR
и группировка (
, )
.
Например, (Apache-2.0 OR MIT)
означает, что человек может выбирать между Apache-2.0
( лицензия Apache ) или MIT
( лицензия MIT ). С другой стороны, (Apache-2.0 AND MIT)
означает, что применяются обе лицензии.
Существует также оператор «+», который при применении к лицензии означает, что будущие версии лицензии также применяются. Например, Apache-1.1+
означает, что Apache-1.1
и Apache-2.0
могут применяться (и будущие версии, если таковые имеются).
SPDX описывает точные условия, на которых лицензируется часть программного обеспечения. Он не пытается классифицировать лицензии по типам, например, описывая лицензии с условиями, аналогичными лицензии BSD, как «BSD-подобные». [19]
В 2020 году Европейская комиссия опубликовала своего Помощника по лицензированию присоединения, [20] что делает возможным выбор и сравнение более 50 лицензий с доступом к их идентификатору SPDX и полному тексту.
Устаревшие идентификаторы лицензий
[ редактировать ]Семейство лицензий GNU (например, GNU General Public License версии 2 ) имеет возможность выбора более поздней версии встроенной лицензии. Иногда было неясно, является ли выражение SPDX GPL-2.0
означало «точно GPL версии 2.0» или «GPL версии 2.0 или любой более поздней версии». [21] Таким образом, начиная с версии 3.0 списка лицензий SPDX, семейство лицензий GNU получило новые названия. [22] 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 году ЕФСПО запустил REUSE, который предоставляет инструменты для проверки комментариев и эффективного извлечения информации об авторских правах. [23]
Идентификатор лицензии SPDX также используется в ряде менеджеров пакетов, таких как npm , [24] Питон, [25] и Ржавчина груза. [26] Выражения лицензии SPDX используются в метаданных пакета RPM в Fedora Linux , заменяя более раннее использование системы Callaway. [27] Debian использует немного другую спецификацию лицензии. [28]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Стюарт, Кейт (25 мая 2021 г.). «SPDX: он уже используется для глобальной спецификации программного обеспечения (SBOM) и безопасности цепочки поставок» . Фонд Linux . Проверено 13 августа 2021 г.
- ^ «Обзор существующих форматов и стандартов SBOM» (PDF) . Национальное управление по телекоммуникациям и информации . 25 октября 2019 г. с. 9 . Проверено 13 августа 2021 г.
- ^ Перейти обратно: а б с Бриджуотер, Адриан (19 августа 2011 г.). «Linux Foundation облегчает проблемы с лицензированием открытого исходного кода» . Компьютерный еженедельник . Проверено 13 августа 2021 г.
- ^ Рашгроув, Гарет (16 июня 2021 г.). «Продвижение стандартов SBOM: Snyk и SPDX» . Проверено 14 августа 2021 г.
- ^ «Текущая версия SPDX» . spdx.dev . Проверено 22 ноября 2022 г.
- ^ «Минимальные элементы SPDX и NTIA для SBOM HOWTO» . spdx.github.io .
- ^ все прошло. «Понимание профилей SPDX – SPDX» . Проверено 19 мая 2024 г.
- ^ «Релиз v2.3» . github.com/spdx . Проверено 22 ноября 2022 г.
- ^ «Релиз v2.2.2» . github.com/spdx . Проверено 11 июня 2022 г.
- ^ Перейти обратно: а б «ISO/IEC 5962:2021 Информационные технологии. Спецификация SPDX® V2.2.1» . iso.org . Проверено 1 декабря 2021 г.
- ^ «Выпущена спецификация SPDX 2.2» . Фонд Linux. 7 мая 2020 г. . Проверено 1 декабря 2021 г.
- ^ «Общее собрание/протокол/03.11.2016» . wiki.spdx.org . 3 ноября 2016 г. Проверено 1 декабря 2021 г.
- ^ Перейти обратно: а б «Инициатива открытого соответствия Linux Foundation выпускает новую спецификацию SPDX» . Фонд Linux. 4 октября 2016 г. Проверено 1 декабря 2021 г.
- ^ «Что нового в SPDX 2.0» . LWN.net . 20 мая 2015 года . Проверено 1 декабря 2021 г.
- ^ «Рабочая группа SPDX Linux Foundation выпускает новую версию стандарта обмена данными программных пакетов» . Фонд Linux. 22 октября 2013 года . Проверено 1 декабря 2021 г.
- ^ «Рабочая группа SPDX Linux Foundation выпускает новую версию стандарта обмена данными программных пакетов» . Фонд Linux. 30 августа 2012 года . Проверено 1 декабря 2021 г.
- ^ «Минимальные элементы спецификации программного обеспечения (SBOM)» (PDF) . Национальное управление по телекоммуникациям и информации . Проверено 1 декабря 2021 г.
- ^ Бернард, Аллен (9 сентября 2021 г.). «SPDX становится международно признанным стандартом» . Техреспублика . Проверено 1 декабря 2021 г.
- ^ Оденс, Фил (23 июня 2010 г.). «Формат обмена данными программного пакета (SPDX)» . Доктор Добб . Проверено 31 августа 2012 г.
- ^ «Помощник по лицензированию Joinup» . Проверено 31 марта 2020 г.
- ^ Ричард Столлман. «Ради ясности, пожалуйста, не говорите «лицензия GNU GPL 2»!» . ГНУ . Проверено 24 мая 2018 г.
- ^ Джилейн Лавджой (5 января 2018 г.). «Список лицензий 3.0 выпущен!» . spdx.dev . Архивировано из оригинала 05 января 2018 г. Проверено 2 сентября 2021 г.
- ^ «Решение проблемы соответствия лицензий в источнике: добавление идентификаторов лицензий SPDX — Linux Foundation» . www.linuxfoundation.org .
- ^ "package.json | Документы npm" . docs.npmjs.com .
- ^ «PEP 639 — повышение ясности лицензий за счет улучшения метаданных пакета» . peps.python.org .
- ^ «Формат манифеста — Грузовая книга» . doc.rust-lang.org .
- ^ «Лицензия: поле в файле спецификации» . Юридическая документация Fedora . Проверено 30 июля 2023 г.
- ^ «Машиночитаемый файл Debian/файл авторских прав» . www.debian.org .
Внешние ссылки
[ редактировать ]- Официальный сайт
- SPDX на GitHub
- Натан Уиллис: пример SPDX LWN.net