Расширяемый хост и среда сборки#
Расширение всегда привязано к хосту - приложению или среде выполнения, к которому оно подключается, - и собирается относительно некоторой среды. Эти две привязки задаются отдельно.
Метаданные расширения#
--id <id>(или-i) - идентификатор расширения в формате reverse-DNS, например org.foo.App.Extension.Codecs. Обязателен.--name <имя>(-n) - понятное имя.--version <версия>(-V) - версия расширения (по умолчанию 1.0).--arch <арх>(-a) - архитектура: amd64 (по умолчанию) или arm64; приводится к формату Flatpak автоматически.--branch <ветка>- ветка ref (по умолчанию stable). Должна совпадать с версией точки расширения хоста, если та задана.--tag <метка>- метка для каталога приложений (повторяемо).
Расширяемый хост#
Хост, к которому подключается расширение, задаётся флагом --extends-ref
(обязателен). В манифесте этому соответствует секция extends.
--extends-ref <ref>- расширяемый хост.--extends-directory <каталог>- каталог монтирования.--extends-tag <тег>- дополнительный тег.
Формы ссылки на хост#
Принимается полный ref вида app/<id>/<арх>/<ветка> или
runtime/<id>/<арх>/<ветка>, а также короткие формы, которые дополняются
автоматически:
<id>- тип считается runtime, архитектура и ветка берутся из самого расширения.runtime/<id>илиapp/<id>- дополняются архитектурой и веткой.app/<id>/<ветка>- дополняется архитектурой.
Если тип не указан, хост считается средой выполнения (runtime) - расширения чаще расширяют платформу. Архитектура подставляется в формате Flatpak и совпадает с архитектурой расширения.
Чтобы расширение подключилось автоматически, хост должен объявить соответствующую точку расширения. Объявлять её умеют Создание приложений (aft-app) и Создание сред выполнения (aft-runtime).
Среда сборки#
Среда, относительно которой собрано расширение, указывается отдельно от хоста. В
манифесте этому соответствует секция buildRuntime.
--build-runtime <id>- среда, относительно которой собрано расширение.--build-runtime-version <версия>- её версия.--build-sdk <id>- идентификатор SDK.
Среда сборки нужна не только для описания расширения, но и для отсечения лишнего: пакеты, которые уже есть в этой среде, в расширение не включаются. Без указанной среды сборки такое отсечение не работает, и берутся все запрошенные пакеты (см. Источники содержимого).