Состав установленного приложения#
Команда aft-flatpak-sbom собирает состав ПО установленного Flatpak-приложения. Она разбирает приложение вместе со связанной средой выполнения и охватывает не только deb-пакеты.
Как это применяется#
Состав собирается по идентификатору приложения:
aft-flatpak-sbom org.gimp.GIMP
По умолчанию результат пишется в текущий каталог в файл вида
<идентификатор>.cdx.json.
Отдельный запуск нужен не всегда: приложение, собранное инструментом aft-app,
уже несёт состав ПО внутри себя, в /app/share/sbom/ (см. Формат и использование).
Команда пригодится, когда приложение собрано не инструментами AFT, когда состав
нужно получить в другом месте или пересобрать по текущему содержимому песочницы.
Опции#
--output <путь>(или-o) - путь к выходному файлу.--path <путь>(-p) - собрать состав для конкретного пути установки; полезно для приложений с несколькими ветками.--list(-l) - вывести список установленных приложений и выйти.--verbose(-v) - подробный вывод.--quiet(-q) - тихий режим: при успехе печатается только путь к готовому файлу. Удобно в скриптах.--help(-h) - справка.
OUT=$(aft-flatpak-sbom -q org.gnome.Calculator)
Откуда берутся сведения о составе#
Состав приложения собирается из нескольких источников внутри песочницы, поэтому покрывает больше, чем один лишь список пакетов. Источники просматриваются по надёжности, и более надёжные перекрывают менее надёжные:
Готовые файлы состава ПО, уже вложенные в сборку.
Сборочный манифест (flatpak-builder или buildstream) с версиями, ссылками на исходники, контрольными суммами и применёнными патчами.
Debian changelog - имя, версия и сопровождающий пакета.
Desktop-файлы - сведения о самом приложении.
Описание Flatpak-приложения - запасной источник, гарантирующий, что приложение попадёт в состав даже при нехватке прочих данных.
Версии из исполняемых файлов и идентификаторы их сборки.
Метаданные пакетов Python.
Имена файлов библиотек, по которым можно определить название и версию.
Объединение приложения и среды#
Команда разбирает и приложение, и связанную с ним среду выполнения. Компоненты, найденные в обоих, объединяются и не дублируются: близкие записи с одинаковым именем сводятся к одной, а сведения из разных источников дополняют друг друга. В составе у каждого компонента помечается, относится он к приложению или к среде выполнения.
Если по компоненту не удаётся определить версию или лицензию, соответствующее поле в составе опускается. О структуре итогового документа - в блоке Формат и использование.