Обмен данными программного пакета
Аббревиатура | СПДКС |
---|---|
Статус | Опубликовано |
Впервые опубликовано | август 2011 г. |
Последняя версия | 3.0 апрель 2024 г. |
Организация | Linux Фонд |
комитет | Проект SPDX |
Домен | Спецификация программного обеспечения |
Лицензия | CC-BY-3.0 |
Веб-сайт | спдкс |
Обмен данными пакетов программного обеспечения ( SPDX ) — это открытый стандарт для спецификаций программного обеспечения (SBOM). [1] SPDX позволяет выражать компоненты, лицензии , авторские права, ссылки на безопасность и другие метаданные , относящиеся к программному обеспечению. [2] Его первоначальная цель состояла в том, чтобы улучшить соблюдение лицензий, [3] и с тех пор он был расширен, чтобы облегчить дополнительные варианты использования, такие как прозрачность и безопасность цепочки поставок. [4] SPDX создан сообществом SPDX Project под эгидой Linux Foundation .
Текущая версия стандарта — 3.0. [5]
Структура [ править ]
Стандарт SPDX определяет документ SBOM, который содержит метаданные SPDX о программном обеспечении. Сам документ может быть выражен в нескольких форматах, включая JSON, YAML, RDF/XML, тег-значение и электронную таблицу. Каждый документ SPDX описывает один или несколько элементов, которыми может быть пакет программного обеспечения, конкретный файл или фрагмент файла. Каждому элементу присваивается уникальный идентификатор, а метаданные элемента могут ссылаться на другие элементы. [6]
История версий [ править ]
Номер версии | Дата публикации | Примечания | Ссылки |
---|---|---|---|
1.0 | август 2011 г. | Первый выпуск спецификации SPDX; обрабатывает пакеты. | [3] |
1.1 | август 2012 г. | Исправлена ошибка в коде проверки пакета SPDX ( криптографическая хэш-функция ) и добавлена поддержка комментариев в свободной форме. | [7] |
1.2 | Октябрь 2013 г. | Улучшено взаимодействие со списком лицензий SPDX и добавлены новые поля для документирования дополнительной информации о проектах программного обеспечения. | [8] |
2.0 | май 2015 г. | Добавлена возможность описывать несколько пакетов и связи между различными пакетами и файлами. | [9] |
2.1 | ноябрь 2016 г. | Добавлена поддержка описания «фрагментов» кода и возможность ссылаться на данные, отличные от SPDX (например, CVE ). | [10] [11] |
2.2 | май 2020 г. | Добавлен профиль SPDX-lite для минимальной спецификации программного обеспечения и улучшенной поддержки внешних ссылок. | [12] |
2.2.1 | октябрь 2020 г. | Функционально эквивалентен SPDX 2.2, но с набором текста для публикации в качестве стандарта ISO . | [13] |
2.2.2 | апрель 2022 г. | Функционально эквивалентен SPDX 2.2.1, но с орфографическими, грамматическими и другими редакционными улучшениями. | [14] |
2.3 | ноябрь 2022 г. | Добавлены новые поля для улучшения возможности сбора информации, связанной с безопасностью, и совместимости с другими форматами SBOM. | [15] |
3.0 | апрель 2024 г. | Введены профили для поддержки конкретных вариантов использования, включая безопасность и искусственный интеллект. | [16] |
Первая версия спецификации SPDX была призвана упростить соблюдение лицензий на программное обеспечение . [3] но в последующих версиях спецификации были добавлены возможности, предназначенные для других случаев использования, например возможность содержать ссылки на известные уязвимости программного обеспечения . [11] Последние версии SPDX соответствуют NTIA . «Минимальным элементам спецификации программного обеспечения» [17]
SPDX 2.2.1 был представлен Международной организации по стандартизации (ISO) в октябре 2020 года и опубликован как ISO/IEC 5962:2021 Информационные технологии — Спецификация SPDX® V2.2.1 в августе 2021 года. [13] [18]
Синтаксис лицензии [ править ]
Каждая лицензия идентифицируется полным именем, например «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 Linux Foundation выпускает новую версию стандарта обмена данными программных пакетов» . Фонд Linux. 30 августа 2012 года . Проверено 1 декабря 2021 г.
- ^ «Рабочая группа SPDX Linux Foundation выпускает новую версию стандарта обмена данными программных пакетов» . Фонд Linux. 22 октября 2013 года . Проверено 1 декабря 2021 г.
- ^ «Что нового в SPDX 2.0» . LWN.net . 20 мая 2015 года . Проверено 1 декабря 2021 г.
- ^ «Общее собрание/протокол/03.11.2016» . wiki.spdx.org . 3 ноября 2016 г. Проверено 1 декабря 2021 г.
- ↑ Перейти обратно: Перейти обратно: а б «Инициатива открытого соответствия Linux Foundation выпускает новую спецификацию SPDX» . Фонд Linux. 4 октября 2016 г. Проверено 1 декабря 2021 г.
- ^ «Выпущена спецификация SPDX 2.2» . Фонд Linux. 7 мая 2020 г. . Проверено 1 декабря 2021 г.
- ↑ Перейти обратно: Перейти обратно: а б «ISO/IEC 5962:2021 Информационные технологии. Спецификация SPDX® V2.2.1» . iso.org . Проверено 1 декабря 2021 г.
- ^ «Релиз v2.2.2» . github.com/spdx . Проверено 11 июня 2022 г.
- ^ «Релиз v2.3» . github.com/spdx . Проверено 22 ноября 2022 г.
- ^ все прошло. «Понимание профилей SPDX – SPDX» . Проверено 19 мая 2024 г.
- ^ «Минимальные элементы спецификации программного обеспечения (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 г. Проверено 02 сентября 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