В 2010 г. организация яLinux Foundation запустила свой проект Software Package Data Exchange (SPDX), призванный помочь стандартизировать форму выстраивания и идентификации компонентов ПО. За прошедшее с тех пор время спецификация SPDX получила распространение, и 12 мая была предоставлена ее следующая версия, SPDX 2.0. Новая спецификация стала более универсальной, благодаря чему организациям проще разобраться в лицензиях на развертываемое ПО с открытым исходным кодом.

По словам Джека Мэнбека, сопредседателя SPDX Business Team, в последние несколько лет ряд крупных компаний освоил SPDX для внутреннего контроля и совместного использования лицензионной информации. «Коммерческие средства анализа лицензий сегодня умеют генерировать и считывать формат SPDX, — сообщил Мэнбек. — А на GitHub сегодня стали появляться и аналогичные средства с открытым исходным кодом».

Главная цель спецификации SPDX 2.0 состояла в том, чтобы позволить охарактеризовать более широкий набор связей и типов файлов, сказал Мэнбек. Причем для всех лицензий, которые поддерживает Red Hat, список лицензий теперь имеет и краткие формы, что не поддерживалось предыдущей спецификацией SPDX 1.2.

«Кроме того, в 2.0 поддерживается новый синтаксис лицензионных формулировок, а также содержится понятие стандартизованных лицензионных исключений, — сказал Мэнбек. — Список лицензий будет обновляться чаще, чем сама спецификация».

В версии 2.0 теперь также имеется возможность соотносить SPDX-документы друг с другом, чтобы получать более полную картину использования лицензий на ПО. Мэнбек пояснил, что ныне существует механизм отсылок к элементам внешних SPDX-документов, а также возможность описывать много пакетов в одном SPDX-документе. В прошлом допускался лишь один пакет на каждый SPDX-документ.

По словам Мэнбека, спецификация SPDX 1.2 была ориентирована на уровень исходного кода пакетов. А спецификация SPDX 2.0 может работать с более широким кругом объектов и лучше отображать связи между бинарными файлами и использованными для их компоновки пакетами исходных кодов.

«Точное понимание лицензионных обязательств необходимо для эффективного развертывания встраиваемых приложений, например для IoT (Интернета вещей)», — сказал Мэнбек.

Понимание лицензий, используемых в приложении, важно для гарантии полного порядка и отсутствия необоснованно используемого кода с точки зрения юридических норм. Крупной проблемой сегодняшнего дня, считает Мэнбек, является наличие прозрачной и точной лицензионной информации, передаваемой из вышестоящих проектов в развертываемые продукты. Облегчить понимание того, какие лицензии используются при объединении многих кодовых баз в один продукт — вот, что является конечной целью SPDX.

Теперь, когда спецификация SPDX 2.0 уже выпущена, говорит Мэнбек, встает задача обновления работающих с SPDX средств Open Source, чтобы они поддерживали и соответствовали этой спецификации.

«Мы будем работать со многими upstream-проектами, чтобы генерация SPDX-файлов стала частью сборок их релизов, как это сделано в Yocto, — сказал Мэнбек. — Что касается развития спецификации, то на очереди решение вопроса о представлении лицензионной информации для фрагментов файлов».