Flatpak для разработчиков ПО#
Сборка ПО в формате Flatpak#
Раздел предназначен для разработчиков, которым нужно собирать, проверять и распространять приложения в формате Flatpak на Astra Linux.
Astra Flatpak Tools (AFT) - набор инструментов для переноса программ из deb-пакетов в формат Flatpak и для контроля того, что получилось. AFT решает полный путь: собрать приложение, среду выполнения или расширение, подписать и проверить готовую сборку на целостность и настройку, найти известные уязвимости и получить список входящего в неё ПО.
Набор состоит из отдельных инструментов командной строки. Каждый отвечает за свою задачу и подходит как для ручного запуска, так и для скриптов и конвейеров сборки. Через флаги и YAML-манифесты доступен один и тот же набор настроек.
Начало работы#
Установка инструментов и подключение репозиториев со средами выполнения делаются одним скриптом. Он описан в разделе Начало работы, там же разобрано, какая среда под что подходит и почему для новых сборок берут линию 1.8.6.
Основы Flatpak#
Прежде чем переходить к инструментам AFT, полезно разобраться в устройстве Flatpak и его штатных средствах сборки. Этому посвящён раздел Основы Flatpak: концепции и архитектура, декларативная сборка инструментом flatpak-builder, ручная сборка командами flatpak build, отладка приложений и подготовка репозиториев. AFT автоматизирует эти операции для переноса программ из deb-пакетов.
Сценарии использования#
Что выбрать под конкретную задачу - в разделе Сценарии использования: как подобрать источник и среду под имеющийся вид поставки, когда нужна своя среда выполнения, а когда достаточно расширения, и как собрать полный цикл в конвейере.
Создание сборок#
Создание приложений (aft-app) - превращение deb-пакета в готовое Flatpak-приложение: источники, разрешение зависимостей, разрешения песочницы, подпись, манифест. Сюда же входит перенос готовых манифестов flatpak-builder на среды Astra.
Создание сред выполнения (aft-runtime) - создание сред выполнения (runtime) и их SDK-вариантов из репозиториев Astra Linux, с точками расширения.
Создание расширений (aft-extension) - сборка расширений, которые подключаются к приложению или среде выполнения в объявленной точке.
Совместимость с песочницей#
Перепакованная программа не всегда запускается в песочнице: пути зашиты в бинарник, а хостовых команд внутри нет. Раздел Совместимость с песочницей (astra-shim) разбирает обёртку astra-shim, которая закрывает такие случаи без правки программы, и её ограничения.
Проверка сборок#
Анализ приложений (aft-analyzer) - анализ установленного приложения: тринадцать проверок целостности, настройки, метаданных и подписей, единый отчёт и карта приложения.
Поиск уязвимостей (aft-scanner) - поиск известных уязвимостей (CVE) в приложениях и средах выполнения, в том числе из локальных и удалённых репозиториев.
Состав ПО (aft-sbom) - получение состава ПО (SBOM) в формате CycloneDX для приложения или среды выполнения.
Поставка заказчику#
Как довести собранное приложение до пользователя - в разделе Поставка приложений заказчику: свой репозиторий вендора, подпись, файл подключения и инструкция по установке на машине пользователя.
Примеры#
Разобранные по шагам сценарии упаковки реальных программ собраны в разделе Примеры: общий путь для программы из репозитория, отдельные примеры по графическим стекам (Qt5, Qt6, GTK, Electron, PySide6) с разными видами поставки, тулчейн расширением к SDK и упаковка Windows-программы вместе с Wine.
Как связаны инструменты#
Инструменты дополняют друг друга. Сборка приложения, среды и расширения сама формирует состав ПО и может подписать и проверить результат на уязвимости. Анализатор приложений собирает в одном отчёте и проверки, и состав ПО, и уязвимости. Поиск уязвимостей опирается на состав ПО, который формируют инструменты сборки и команда состава ПО.