Firma Collabora zaprezentowała projekt Holo Core, w ramach którego wspólnie z firmą Valve przygotowano edycję dystrybucji Arch Linux dla platformy AArch64. Holo Core stworzono do użycia SteamOS na urządzeniu Steam Frame, które łączy w sobie komputer osobisty, hełm 3D i dwa kontrolery 3D. Opracowanie Holo Core było konieczne, ponieważ dystrybucja Arch Linux, na której opiera się SteamOS, jest dostępna tylko dla architektury x86_64, podczas gdy urządzenie Steam Frame jest zbudowane na chipie Snapdragon 8, który wykorzystuje architekturę ARM64. Dla testowania dostępny jest kod źródłowy pakietów dostosowanych do architektury ARM64, a także gotowe binarne wersje pakietów i obraz kontenera w formacie Docker.
Kluczowym celem projektu jest zbudowanie infrastruktury ciągłej integracji do organizacji zautomatyzowanych kompilacji, która śledzi stan ciągle aktualizowanych repozytoriów Arch Linux i określa wymagane zależności. Oprócz tworzenia poprawek niezbędnych do działania niektórych pakietów na systemach AArch64, w trakcie realizacji projektu konieczne było rozwiązanie kilku problemów.
Część problemów wynika z tego, że w ciągle aktualizowanym repozytorium Arch Linux nowe stany niektórych pakietów zależą od starych, a do kompilacji konieczne jest odtworzenie całego łańcucha stanów (na przykład, do ponownej kompilacji rust 1.91 wymagana jest rust 1.90, dla której z kolei potrzebna jest rust 1.89 itd.). Podobna sytuacja występuje w przypadku bibliotek, od których zależy narzędziowe do kompilacji (np. icu i gpgme, używane w pacman) — w przypadku aktualizacji wersji tych bibliotek, do pomyślnej ponownej kompilacji konieczna jest zarówno stara, jak i nowa wersja.
Kolejnym ograniczeniem była niepewność co do kolejności kompilacji — w repozytorium Git Arch Linux pakiety często są dodawane w sposób nieuporządkowany, co uniemożliwia automatyczną rekonfigurację bez przeliczenia całego łańcucha zależności. Ponadto, podczas prób kompilacji starszych wersji przeszkodą stają się zmiany w infrastrukturze projektów upstream — kod źródłowy może zostać przeniesiony, projekt zmienić hosting git, sumy kontrolne kodu w git mogą się zmienić w wyniku zamiany krótkich hashów na długie, a automatyczne pobieranie może być blokowane przez zabezpieczenia antybotowe.
Narzędzie CI opracowane w ramach projektu Holo Core jest zdolne do obliczania pełnego drzewa zależności i 'replay' historii kompilacji Arch Linux od początkowego bootstrapu do wybranego stanu, obejmując wszystkie niezbędne pośrednie re-kompilacje. Opublikowana wersja testowa odpowiada wersjom pakietów w repozytorium Arch Linux na dzień 18 listopada 2025 roku i stanowi prototyp, który demonstruje gotowość stworzonej infrastruktury do formowania finalnych produktów.
Kiedy system zostanie dopracowany, planuje się synchronizację z wersjami pakietów używanymi do rozwijania przyszłych wersji SteamOS dla architektury x86_64. Kod rozwijanego narzędzia CI zostanie opublikowany na otwartej licencji i zaproponowany do wdrożenia w projekcie Arch Linux, który obecnie nie posiada infrastruktury CI. W głównym projekcie planowane jest także przekazanie prac nad stworzeniem oficjalnego portu Arch Linux dla architektury AArch64.
Źródło: opennet.ru
