La société Collabora a présenté le projet Holo Core, dans le cadre duquel, en collaboration avec Valve, une édition du système d'exploitation Arch Linux a été préparée pour la plateforme AArch64. Holo Core a été conçu pour utiliser SteamOS sur l'appareil Steam Frame, qui combine un ordinateur personnel, un casque 3D et deux contrôleurs 3D. Le développement du Holo Core était nécessaire car la distribution Arch Linux, qui sert de base à SteamOS, n'est disponible que pour l'architecture x86_64, tandis que l'appareil Steam Frame est construit sur une puce Snapdragon 8 utilisant l'architecture ARM64. Le code source des paquets adaptés pour l'architecture ARM64, ainsi que les compilations binaires des paquets et une image de conteneur au format Docker, sont disponibles pour le test.
L'objectif clé du projet est de construire une infrastructure d'intégration continue pour organiser des compilations automatisées, surveillant l'état des dépôts Arch Linux continuellement mis à jour et déterminant les dépendances nécessaires. En plus de créer des patchs nécessaires au fonctionnement de certains paquets sur les systèmes Aarch64, plusieurs problèmes ont dû être résolus au cours de la mise en œuvre du projet.
Une partie des problèmes est due au fait que dans le dépôt continuellement mis à jour d'Arch Linux, le nouvel état de certains paquets dépend de l'ancien et pour la compilation, il est nécessaire de reproduire toute la chaîne d'états (par exemple, pour recompresser rust 1.91, rust 1.90 doit être présent, pour lequel, à son tour, rust 1.89 est nécessaire, etc.). Une situation similaire se produit pour les bibliothèques sur lesquelles repose l'outillage de construction (comme icu et gpgme, utilisés dans pacman) : lors de la mise à jour de ces bibliothèques, pour réussir la recompilation, il est nécessaire d'avoir à la fois l'ancienne et la nouvelle version.
Une autre contrainte a été l'incertitude concernant l'ordre de construction : dans le dépôt Git d'Arch Linux, les paquets sont souvent ajoutés de manière non séquentielle, dans un ordre inadapté à la recompilation automatisée sans recalculer toute la chaîne de dépendances. De plus, lors des tentatives de construction de versions anciennes, des modifications dans l'infrastructure des projets en amont posent problème : le code source peut être déplacé, le projet peut passer à un autre hébergeur git, les sommes de contrôle sur le code dans git peuvent changer en raison du remplacement des hachages courts par des longs, et le chargement automatisé peut être bloqué par une protection anti-bot.
L'outil CI préparé dans le cadre du projet Holo Core est capable de calculer l'arbre de dépendances complet et de « reproduire » l'historique des builds d'Arch Linux, depuis le bootstrap initial jusqu'à l'état sélectionné, couvrant toutes les recompilations intermédiaires nécessaires. La version de test publiée correspond aux versions des paquets dans le dépôt Arch Linux datant du 18 novembre 2025 et constitue une sorte de prototype démontrant la préparation de l'infrastructure créée pour former les produits finaux.
Lorsque le système sera stabilisé, il est prévu de le synchroniser avec les versions des paquets utilisées pour le développement des futures versions de SteamOS pour l'architecture x86_64. Le code de l'outil CI en cours de développement sera publié sous une licence ouverte et proposé pour être intégré dans le projet Arch Linux, qui ne dispose pas encore d'une infrastructure CI. Les réalisations seront également transférées au projet principal pour créer un port officiel d'Arch Linux pour l'architecture AArch64.
Source : opennet.ru
