La empresa Collabora ha presentado el proyecto Holo Core, en el cual, junto con Valve, se ha preparado una edición de la distribución Arch Linux para la plataforma AArch64. Holo Core ha sido creado para usar SteamOS en el dispositivo Steam Frame, que combina un ordenador personal, un casco 3D y dos controladores 3D. El desarrollo de Holo Core fue necesario, ya que la distribución Arch Linux, que sirve de base para SteamOS, solo está disponible para la arquitectura x86_64, mientras que el dispositivo Steam Frame está construido sobre un chip Snapdragon 8 que utiliza arquitectura ARM64. El código fuente de los paquetes adaptados a la arquitectura ARM64, así como binarios listos y una imagen de contenedor en formato Docker, están disponibles para prueba.
La tarea clave del proyecto es construir una infraestructura de integración continua para organizar compilaciones automatizadas, que rastree el estado de los repositorios de Arch Linux que se actualizan continuamente y determine las dependencias necesarias. Además de crear parches necesarios para que algunos paquetes funcionen en sistemas Aarch64, durante la implementación del proyecto se presentaron varias dificultades.
Parte de los problemas se debe a que en el repositorio de Arch Linux, que se actualiza continuamente, el nuevo estado de algunos paquetes está vinculado a versiones antiguas y para la compilación es necesario reproducir toda la cadena de estados (por ejemplo, para recompilar rust 1.91, debe estar presente rust 1.90, que a su vez requiere rust 1.89, y así sucesivamente). Se observa una situación similar con las bibliotecas en las que se basa el kit de herramientas de compilación (como icu y gpgme, utilizadas en pacman): en caso de que se actualicen las versiones de estas bibliotecas, para una recompilación exitosa es necesario tener tanto la versión antigua como la nueva.
Otra limitación ha sido la incertidumbre en el orden de compilación: en el repositorio Git de Arch Linux, los paquetes a menudo se añaden de manera no secuencial en un orden que no es adecuado para la recompilación automatizada sin recalcular toda la cadena de dependencias. Además, al intentar compilar versiones antiguas, los cambios en la infraestructura de los proyectos upstream son un obstáculo: el código fuente puede haber sido movido, el proyecto puede haberse trasladado a otro hosting de git, los checksums del código en git pueden haber cambiado debido a la sustitución de hashes cortos por largos, y la carga automatizada puede ser bloqueada por protección anti-bots.
El conjunto de herramientas CI desarrollado en el marco del proyecto Holo Core es capaz de calcular el árbol completo de dependencias y "reproducir" (replay) la historia de compilaciones de Arch Linux desde el bootstrap inicial hasta un estado seleccionado, abarcando todas las reconstrucciones intermedias necesarias. La versión de prueba publicada corresponde a las versiones de los paquetes en el repositorio de Arch Linux a partir del 18 de noviembre de 2025 y es un prototipo que demuestra la preparación de la infraestructura creada para la generación de productos finales.
Cuando el sistema esté depurado, se planea sincronizarlo con las versiones de los paquetes utilizados en el desarrollo de futuras versiones de SteamOS para la arquitectura x86_64. El código de la herramienta CI en desarrollo se publicará bajo una licencia abierta y se propondrá para su implementación en el proyecto Arch Linux, que actualmente no cuenta con infraestructura CI. También se planea transferir al proyecto principal los avances para crear un puerto oficial de Arch Linux para la arquitectura AArch64.
Fuente: opennet.ru
