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.

Как связаны инструменты#

Инструменты дополняют друг друга. Сборка приложения, среды и расширения сама формирует состав ПО и может подписать и проверить результат на уязвимости. Анализатор приложений собирает в одном отчёте и проверки, и состав ПО, и уязвимости. Поиск уязвимостей опирается на состав ПО, который формируют инструменты сборки и команда состава ПО.