Compania Collabora a prezentat proiectul Holo Core, în cadrul căruia, împreună cu compania Valve, a fost pregătită o ediție a distribuției Arch Linux pentru platforma AArch64. Holo Core este creat pentru a utiliza SteamOS pe dispozitivul Steam Frame, care combină un computer personal, un căști 3D și două controle 3D. Dezvoltarea Holo Core a fost necesară deoarece distribuția Arch Linux, care stă la baza SteamOS, este disponibilă doar pentru arhitectura x86_64, în timp ce dispozitivul Steam Frame este construit pe un cip Snapdragon 8, care folosește arhitectura ARM64. Pentru testare, sunt disponibile codurile sursă ale pachetelor adaptate pentru arhitectura ARM64, precum și pachetele binare gata și imaginea unui container în format Docker.
Obiectivul principal al proiectului este construirea unei infrastructuri de integrare continuă pentru organizarea de construcții automate, care să urmărească starea repository-urilor Arch Linux actualizate continuu și să determine dependențele necesare. Pe lângă crearea patch-urilor necesare pentru a face anumite pachete funcționale pe sistemele AArch64, în timpul implementării proiectului a fost necesar să se rezolve mai multe probleme.
O parte din probleme este cauzată de faptul că în repository-ul Arch Linux actualizat continuu, noul stadiu al anumitor pachete este legat de un stadiu vechi și pentru a construi este necesară reproducerea întregului lanț de stări (de exemplu, pentru a reconstrui rust 1.91, trebuie să fie prezent rust 1.90, care, la rândul său, necesită rust 1.89 etc.). O situație similară este observată pentru bibliotecile pe care se bazează instrumentele de construcție (de exemplu, icu și gpgme, utilizate în pacman) - în cazul actualizării versiunilor acestor biblioteci, pentru a realiza reconstrucerea cu succes este necesară atât versiunea veche, cât și cea nouă.
O altă restricție a fost incertitudinea cu privire la ordinea construcției - în repository-ul Git Arch Linux, pachetele sunt adesea adăugate neîntrerupt într-o ordine care nu este adecvată pentru reconstrucerea automatizată fără recalcularea întregului lanț de dependențe. În plus, la încercările de a construi versiuni mai vechi, o barieră devin modificările din infrastructura proiectelor upstream - codul sursă poate fi mutat, proiectul poate fi transferat pe alt hosting git, checksum-urile pe cod în git se pot schimba din cauza înlocuirii hash-urilor scurte cu hash-uri lungi, iar descărcarea automatizată poate fi blocată de protecția anti-bot.
Instrumentul CI Holo Core, pregătit în cadrul proiectului, este capabil să calculeze întreaga structură de dependențe și să „replay”-eze istoricul construcțiilor Arch Linux de la bootstrap-ul inițial până la starea aleasă, acoperind toate recompilările intermediare necesare. Versiunea de test publicată corespunde versiunilor pachetelor din depozitul Arch Linux la data de 18 noiembrie 2025 și reprezintă un fel de prototip care demonstrează pregătirea infrastructurii create pentru formarea produselor finale.
Când sistemul va fi testat, se intenționează sincronizarea acestuia cu versiunile pachetelor utilizate în dezvoltarea viitoarelor versiuni SteamOS pentru arhitectura x86_64. Codul instrumentului CI în dezvoltare va fi publicat sub o licență deschisă și va fi propus pentru implementare în proiectul Arch Linux, care deocamdată nu are infrastructură CI. De asemenea, se planifică transmiterea rezultatelor pentru crearea portului oficial Arch Linux pentru arhitectura AArch64.
Sursa: opennet.ro
