Компания Collabora представи проекта Holo Core, в рамките на който в сътрудничество с компанията Valve е подготвено издание на дистрибуцията Arch Linux за платформа AArch64. Holo Core е създаден за използване на SteamOS на устройството Steam Frame, комбиниращо личен компютър, 3D шлем и два 3D контролера. Разработката на Holo Core стана необходима, тъй като дистрибуцията Arch Linux, лежаща в основата на SteamOS, е достъпна само за архитектура x86_64, докато устройството Steam Frame е построено на чип Snapdragon 8, използващ архитектура ARM64. За тестване са налични изходният код на пакетите, адаптирани за архитектура ARM64, както и готови бинарни пакети и образ на контейнер в Docker формат.
Ключовата задача на проекта е построяването на инфраструктура за непрекъсната интеграция, която организира автоматизирани сборки, проследяваща състоянието на непрекъснато обновяваните хранилища Arch Linux и определяща необходимите зависимости. Освен създаването на пачове, необходими за функционирането на някои пакети на системи Aarch64, в процеса на реализиране на проекта се наложи да се решат няколко проблема.
Част от проблемите са причинени от това, че в непрекъснато обновяваното хранилище Arch Linux новото състояние на някои пакети е свързано със старото и за компилирането е необходимо да се възпроизведе цялата верига от състояния (например, за повторното компилиране на rust 1.91 трябва да присъства rust 1.90, за който пък от своя страна е необходим rust 1.89 и т.н.). Подобна ситуация се наблюдава и при библиотеки, от които зависи модулът за компилиране (например icu и gpgme, използвани в pacman) — в случай на актуализация на версиите на тези библиотеки, за успешното повторно компилиране е необходимо наличието едновременно на старата и новата версия.
Още одно ограничение стана несигурността с реда на компилиране — в Git хранилището на Arch Linux пакетите често се добавят не последователно в ред, неподходящ за автоматизирана повторна компилация без пресмятане на цялата верига от зависимости. Освен това, при опити за компилиране на стари версии пречка стават измененията в инфраструктурата на upstream проектите — изходният код може да бъде преместен, проектът да премине на друг git хостинг, контролните суми на кода в git да се променят поради замяната на късите хешове с дълги, а автоматизираната загрузка да бъде блокирана от антибот защита.
Подготвеният в рамките на проекта Holo Core CI-инструментариум е способен да изчислява пълното дърво на зависимости и да "повторя" (replay) историята на сборките Arch Linux от началния bootstrap до избраното състояние, обхващайки всички необходими междинни пререборки. Публикуваната тестова версия съответства на версиите на пакетите в хранилището Arch Linux в момента на 18 ноември 2025 година и представлява нещо като прототип, демонстриращ готовността на създадената инфраструктура за форматиране на крайни продукти.
Когато системата бъде отладена, планират да я синхронизират с версиите на пакетите, използвани при разработването на бъдещите версии на SteamOS за архитектурата x86_64. Кодът на развиваното CI-инструмение ще бъде публикуван под отворена лицензия и предложен за внедряване в проекта Arch Linux, който все още няма CI-инфраструктура. В основния проект също планират да предадат разработки за създаването на официален порт Arch Linux за архитектура AArch64.
Източник: opennet.ru
