Расширяемый хост и среда сборки#

Расширение всегда привязано к хосту - приложению или среде выполнения, к которому оно подключается, - и собирается относительно некоторой среды. Эти две привязки задаются отдельно.

Метаданные расширения#

  • --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.

Среда сборки нужна не только для описания расширения, но и для отсечения лишнего: пакеты, которые уже есть в этой среде, в расширение не включаются. Без указанной среды сборки такое отсечение не работает, и берутся все запрошенные пакеты (см. Источники содержимого).