Spoločnosť Collabora predstavila projekt Holo Core, v rámci ktorého v spolupráci so spoločnosťou Valve pripravila verziu distribúcie Arch Linux pre platformu AArch64. Holo Core je určený na použitie SteamOS na zariadení Steam Frame, ktoré kombinuje osobný počítač, 3D headset a dva 3D ovládače. Vývoj Holo Core bol potrebný, pretože distribúcia Arch Linux, ktorá leží na základe SteamOS, je k dispozícii iba pre architektúru x86_64, zatiaľ čo zariadenie Steam Frame je postavené na čipe Snapdragon 8, ktorý používa architektúru ARM64. Na testovanie je k dispozícii zdrojový kód balíkov prispôsobených pre architektúru ARM64, ako aj pripravené binárne zostavy balíkov a obraz kontajnera vo formáte Docker.
Kľúčovou úlohou projektu je vybudovanie infraštruktúry kontinuálnej integrácie pre organizáciu automatizovaných zostáv, ktorá sleduje stav neustále aktualizovaných repozitárov Arch Linux a určuje požadované závislosti. Okrem vytvárania záplat potrebných na prevádzku niektorých balíkov na systémoch Aarch64 bolo potrebné v priebehu realizácie projektu vyriešiť niekoľko problémov.
Časť problémov je spôsobená tým, že v neustále aktualizovanom repozitári Arch Linux je nový stav niektorých balíkov viazaný na starý a na zostavenie je potrebné reprodukovať celú reťazec stavov (napríklad na znovu zostavenie rust 1.91 musí byť prítomný rust 1.90, pre ktorý, zase, požaduje rust 1.89 atď.). Podobná situácia sa pozoruje u knižníc, na ktorých je viazaný zberný nástroj (napríklad icu a gpgme, ktoré sa používajú v pacman) — v prípade aktualizácie verzií týchto knižníc, na úspešné znovu zostavenie je potrebná prítomnosť ako starej, tak aj novej verzie.
Ďalším obmedzením bola nejasnosť s poradím zostavovania — v Git repozitári Arch Linux sa balíky často pridávajú nesystematicky v poradí, ktoré nie je vhodné pre automatizované opätovné zostavenie bez prepočtu celej reťazca závislostí. Okrem toho, pri pokusoch o zostavenie starých verzií sa prekážkou stávajú zmeny v infraštruktúre upstream projektov — zdrojový kód môže byť presunutý, projekt môže prejsť na iný git hosting, kontrolné súčty na kód v git sa môžu zmeniť v dôsledku výmeny krátkych hashov na dlhé, a automatizované nahrávanie môže byť blokované antispamovou ochranou.
Nástroj CI pripravený v rámci projektu Holo Core dokáže vypočítať celkové stromy závislostí a „prehrať“ (replay) históriu zostavení Arch Linux od počiatočného bootstrapu až po vybraný stav, pričom pokrýva všetky potrebné medzičasové prekompilácie. Publikovaná testovacia verzia zodpovedá verziám balíkov v repozitári Arch Linux k 18. novembru 2025 a predstavuje akýsi prototyp, ktorý demonštruje pripravenosť vytvorenej infraštruktúry pre formovanie konečných produktov.
Keď bude systém doladený, plánuje sa jeho synchronizácia s verziami balíkov používanými pri vývoji budúcich verzií SteamOS pre architektúru x86_64. Kód vyvíjaného nástroja CI bude publikovaný pod otvorenou licenciou a ponúknutý na implementáciu v projekte Arch Linux, ktorý zatiaľ nemá CI infraštruktúru. Do hlavného projektu sa tiež plánuje odovzdanie spracovaných výsledkov na vytvorenie oficiálneho portu Arch Linux pre architektúru AArch64.
Zdroj: opennet.ru
