Пакування середовищ виконання

Як ми вже бачили, кожен пакунок Flatpak призначено для певного середовища виконання, у якому містяться виконувані файли, бібліотеки і файли даних, і яке монтується до /usr при запуску Flatpak.

Усі Flatpak у Fedora призначено для середовища виконання org.fedora.Platform. Використання єдиного середовища виконання спрощує супровід і усуває потребу для користувачів у отриманні декількох середовищ виконання. Загалом, вам не потрібно змінювати це середовище виконання при створенні програми, оскільки усі потрібні вами пакунки буде включено до комплекту пакунка з програмою. Втім, якщо вами буде виявлено ваду у середовищі виконання і ви захочете її виправити, або ви захочете допомогти у супроводі середовищ виконання Fedora, буде не зайвим знати про те, як збираються середовища виконання.

Окрім org.fedora.Platform, у інфраструктурі Fedora збираються ще три інших середовища виконання

org.fedoraproject.Sdk

Це комплект для розробки програмного забезпечення, який додає до org.fedora.Platform компілятори і файли заголовків з метою уможливлення збирання програм з використанням інструментів flatpak-builder.

org.fedoraproject.BasePlatform

Це менше середовище виконання. Воно подібне до основного середовища виконання org.freedesktop. Метою створення цього середовища виконання було забезпечення роботи набору пакунків, який можна було б перенести до середовища промислових систем Linux, які мають подовжений строк підтримки та більшу стабільність.

org.fedoraproject.BaseSdk

Комплект для розробки програмного забезпечення, який відповідає org.fedoraproject.BasePlatform

Середовища виконання визначаються у спосіб, подібний до пакунків Flatpak. Вміст середовищ виконання визначається у модулі flatpak-runtime. Різні профілі модуля визначають різні середовища виконання.

нижче описано порядок, який буде запроваджено згодом. У поточній версії збирається лише основний flatpak-runtime, який визначається безпосередньо у modules/flatpak-runtime

Далі, середовища виконання збираються до контейнерів, але оскільки для одного середовища виконання збирається декілька контейнерів, спрощення, яке полягає у тому, що визначення модуля і контейнера зберігаються в одному сховищі git, не працює. Визначення контейнерів зберігаються в окремих сховищах git: flatpaks/flatpak-runtime. flatpaks/flatpak-sdk. flatpaks/flatpak-base-runtime. flatpaks/flatpak-base-sdk. Ці сховища git має бути точно синхронізовано з модулем середовища виконання, але потреба у внесенні змін до нього виникає нечасто.

Актуальність списку пакунків у flatpak-runtime.yaml підтримується за допомогою скриптів, які також можна знайти у модулі flatpak-runtime. Ідея полягає у тому, що вміст середовища виконання має бути надмножиною середовища виконання org.gnome.Platform із додаванням бібліотек, які часто використовуються у популярних програмах, які не є частиною GNOME, зокрема qt5 і SDL. Щоб дізнатися більше про скрипти супроводу, ознайомтеся із вмістом файла README.md у модулі.

У визначенні модуля для flatpak-runtime міститься розділ xmd, до якого включено додаткові відомості, які використовуються під час збирання програм для уможливлення автоматичної залежності отриманого пакунка Flatpak від належного середовища виконання та його версії без потреби у окремому визначенні назви і версії середовища.