Компания 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.
Источник: https://www.opennet.ru/opennews/art.shtml?num=65923
Источник: https://www.opennet.ru/opennews/art.shtml?num=65923