Подпись, состав ПО и экспорт приложения#
После того как приложение собрано, его подписывают, формируют состав ПО, при
необходимости проверяют на уязвимости и экспортируют в репозиторий. Все эти
шаги настраиваются флагами команды package и секциями build и export
манифеста (см. Манифест приложения).
Подпись репозитория ключом GPG#
Подпись OSTree-репозитория ключом GPG позволяет получателю убедиться в подлинности сборки.
--gpg-sign <keyid>(или-g) - подписать экспорт указанным ключом.--gpg-homedir <путь>- каталог GPG (по умолчанию~/.gnupg).
При запуске через sudo реальный домашний каталог GPG определяется автоматически по пользователю, запустившему команду, поэтому ключи берутся из его связки, а не из связки root.
Подпись ELF по ГОСТ (bsign)#
Подпись исполняемых файлов по ГОСТ (bsign, ЗПС Astra Linux) подтверждает целостность и происхождение бинарников на целевой системе.
--bsign- включить подпись ELF.--bsign-key <keyid>- ключ для подписи; неявно включает--bsign.--bsign-passphrase-file <файл>- файл с паролем для пакетной неинтерактивной подписи.--bsign-detached- использовать отсоединённые подписи вместо встраиваемых.--bsign-detached-path <путь>- каталог для отсоединённых подписей.
При подписи публичный ключ выкладывается в приложение, чтобы подпись можно было
проверить. Дополнительные параметры (встраиваемая подпись, использование
bsign-integrator) доступны в манифесте, секция build.bsign.
Состав ПО (SBOM)#
Для приложения формируется состав ПО в формате CycloneDX. Он создаётся для любого источника: для deb - из пакетов, для архива, переноса из системы, сборки из исходников, ссылки и standalone - из реальных бинарников и библиотек.
--sbom- включить генерацию. Включена по умолчанию.--no-sbom- отключить генерацию.
В манифесте этим управляет поле build.sbom. Подробнее про состав ПО и его
использование - в разделе Состав ПО (aft-sbom).
Поиск уязвимостей при сборке#
После экспорта приложение можно сразу прогнать через поиск уязвимостей.
--scan-vulnerabilities- включить проверку.--no-scan-vulnerabilities- отключить.--scan-fail-on <уровень>- уровень, начиная с которого сборка считается неуспешной.--scan-strictи--no-scan-strict- строгий режим.--scan-oval-dir <путь>- каталог с базой определений.--scan-severity <уровни>- какие уровни проверять (через запятую).--scan-ignore-cve <список>- исключить уязвимости (через запятую).--scan-ignore-package <список>- исключить пакеты (через запятую).
В манифесте этим параметрам соответствует секция build.scan. Подробнее про
сам поиск уязвимостей - в разделе Поиск уязвимостей (aft-scanner).
Команды перед экспортом#
Перед экспортом в каталоге сборки можно выполнить свои команды: удалить лишнее, поправить права, дописать файл.
--pre-export-cmd <команда>- команда, выполняемая в каталоге сборки (повторяемо). В манифесте этому соответствует списокcommands.pre-export.
Команды выполняются по порядку, уже после назначения разрешений и подписи ELF, но до записи в репозиторий:
--pre-export-cmd "rm -rf files/share/doc"
Экспорт в репозиторий#
Результат экспортируется в репозиторий OSTree.
--output <путь>(или-o) - путь к репозиторию (по умолчанию./repo).--bundle <файл.flatpak>- дополнительно собрать одиночный файл .flatpak.--collection-id <id>- идентификатор набора репозитория.
В манифесте секция export управляет, помимо этого, генерацией статических
дельт для экономии трафика при обновлении (generate-static-deltas) и
очисткой старых объектов (prune).