Źródła systemu EuroLinux dostępne w Vault

Źródła systemu EuroLinux oraz jego archiwalne wersje dostępne w vault.cdn.euro-linux.com

3 grudnia 2021 zintegrowaliśmy potoki wytwarzania EuroLinuksa z automatyczną synchronizacją źródeł na publicznym serwisie WWW. Od teraz źródła systemu są ogólnodostępne w formacie Source RPM. Teraz, przy zachowaniu wymogów licencyjnych, możemy w jeszcze większym stopniu angażować społeczność w proces przebudowy i zdobywania doświadczeń z systemem.

3 grudnia 2021 zintegrowaliśmy potoki wytwarzania EuroLinuksa z automatyczną synchronizacją źródeł na publicznym serwisie WWW. Od teraz źródła systemu są ogólnodostępne w formacie Source RPM. Teraz, przy zachowaniu wymogów licencyjnych, możemy w jeszcze większym stopniu angażować społeczność w proces przebudowy i zdobywania doświadczeń z systemem. Co ważne, w przeciwieństwie do niektórych vendorów (łącznie z dystrybucjami „społecznościowymi”) dostarczamy w prosty sposób pełne źródła. Także te, które są używane wyłącznie jako zależności modułowego budowania (nie są dostępne w finalnej wersji systemu).

Projekt Vault (pol. sejf) ma też drugą funkcję – utrzymywanie starszych wersji. Pozwala na odchudzenie obecnej wersji głównego repozytorium, gdzie przykładowo znajduje się 7 wersji Firefoksa. Zgodnie z polityką znaną z poprzednich wersji EuroLinux oraz innych dystrybucji, od tego momentu utrzymujemy na serwerach 3 wersje paczek (obecną i dwie starsze). Umożliwia to szybsze tworzenie repozytoriów oraz zaoszczędza miejsce dla organizacji tworzących tzw. odbicia lustrzane (ang. mirror).

Więcej na temat sposobu, w jaki zdecydowaliśmy się udostępnić Vault wraz z dodatkowymi kontekstami znajduje się poniżej.

Dlaczego udostępniamy źródła w src.rpm zamiast w systemie kontroli wersji (np. Git)?

Poniżej przedstawiamy wyniki naszej analizy możliwości udostępniania źródeł w repozytoriach kodu Git oraz jako pliki src.rpm.

Wyzwania utrzymywania wszystkich źródeł w systemie kontroli wersji:

  • wiele źródeł zawiera pliki binarne
  • systemy kontroli wersji nie radzą sobie dobrze z dużymi obiektami binarnymi (ang. BLOB – Binary Large Object [jest to pojęcie ogólne, które tylko w specyficznym przypadku oznacza prekompilowany kod]) takimi jak np. archiwa tar.gz, pliki ISO czy nawet większe obrazy png
  • rozwiązaniem problemu BLOB-ów mogą być systemy kontroli wersji. Na przykład przy tworzeniu gier komputerowych często używa się Perforce, gdyż dużo lepiej wspiera „assety” (takie jak np. tekstury czy pliki binarne). Perforce jest jednak systemem, który nie jest szerzej znany, a jego licencja jest zamknięta i wymaga opłat
  • jeżeli chcielibyśmy pozostać przy Git, to możemy rozpakowywać źródła przy pomocy skryptów pomocniczych. Technika ta wymaga jednak od użytkownika końcowego dodatkowej pracy. Na dodatek generuje jeden problem – oryginalne źródła można pobrać ze stron projektu i sprawdzić ich sumy kontrolne. Źródła ponownie spakowane przy pomocy skryptów pomocniczych mogą mieć różne sumy
  • ewentualne użycie Git LFS (Git Large File System) dla wielu użytkowników jest nieintuicyjne. Na dodatek wymaga dodatkowej pracy
  • obecne oferty Git LFS są stosunkowo drogie. Obserwując statystyki pobrań źródeł systemu EuroLinux udostępnionych kilku organizacjom, przy przebudowie wersji 8.5 z użyciem systemu Gaia opłacalność Git LFS stanęła pod znakiem zapytania. Zwiększony ruch ze strony społeczności (za który bardzo dziękujemy) oraz nasz ogólny wzrost (jako organizacji) generowałby dodatkowo znaczące koszty. Uważamy, że bardziej efektywne jest przekierowanie środków na zatrudnienie kolejnych inżynierów oraz posiadanie tańszego i łatwiejszego w utrzymaniu rozwiązania (o zaletach dostarczania źródeł jako src.rpm piszemy w dalszej części)
  • inne rozwiązanie problemu BLOB-ów znane np. z dystrybucji Fedora czy CentOS to udostępnianie części źródeł w serwisie kontroli wersji, a części w git lookaside (serwisie WWW serwującym źródła w skompresowanym formacie). Jest to jednak bardzo mało intuicyjne. Na dodatek jest to rozwiązanie raczej developerskie, stworzone dla scentralizowanych systemów budowania, takich jak Koji. Nasz autorski system EuroLinux Gaia jest zdecentralizowany. Jedynym punktem centralnym jest repozytorium Git konfiguracji (decentralizacja tego repozytorium jest trywialna – mówimy przecież o projekcie utrzymywanym w Git). Następna generacja Gaia (Work in Progress) wraz z nowymi projektami, nad którymi pracujemy, również ma zachować tę kluczową cechę (decentralizację).

Zalety dostarczania źródeł jako pliki Source RPM (src.rpm):

  • źródła src.rpm są podpisane kluczem GPG – tym samym, którym są podpisane paczki EuroLinux
  • administrator lub deweloper może błyskawicznie znaleźć interesującą go paczkę
  • nie wymaga znajomości nowych specjalistycznych narzędzi
  • utrzymanie tego rozwiązania jest proste
  • skalowanie polega na dodaniu nowych hostów lub użyciu zewnętrznego systemu CDN
  • odnośniki do repozytorium źródeł można w prosty sposób dodać do pakietu wydania systemu (el-release)
  • tworzenie lokalnych odbić lustrzanych jest trywialne
  • rozwiązanie w przystępny sposób integruje się z już istniejącymi skryptami CI/CD.

Biorąc pod uwagę zalety i wady, zdecydowaliśmy się na udostępnienie źródeł jako src.rpm. Na zakończenie należy podkreślić, że wiele źródeł wciąż będzie równolegle dostępne zarówno w systemie kontroli wersji, jak i w plikach src.rpm udostępnionych po zbudowaniu pakietów.

EuroLinux 8.4 dostępny w Vault

EuroLinux 8.4 jest pierwszą wersją systemu, którą udostępniamy w ramach Vault. Archiwizacja starszych wersji umożliwia między innymi tworzenie paczek dla aktualnej wersji systemu w wyjątkowych sytuacjach. Niestety nie wszystkie paczki są masowo przebudowywane i aktualizowane przez firmę Red Hat®. Masową przebudowę paczek dla nowszych wersji wprowadziła między innymi np. Fedora. Brak takiej polityki oznacza, że zmiana lub aktualizacja niektórych bibliotek do najnowszych wersji nie pozwoliłaby na zbudowanie pakietu.

Co istotne dla niektórych użytkowników, Vault pozwala też migrować np. z Red Hat® Enterprise Linux® 8.4 do EuroLinux 8.4 bez podnoszenia wersji.

W najbliższym czasie będziemy umieszczać w Vault również starsze wersje innych artefaktów.

Kolejny punkt z mapy drogowej zrealizowany

Udostępnienie serwisu Vault było jednym z punktów mapy drogowej EuroLinux. W najbliższym czasie zrealizujemy większość z nich. Dziękujemy za zainteresowanie naszymi rozwiązaniami.

EuroLinux roadmap 2021 Q4

Roadmapa szczegółowo została ona opisana w tym artykule.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.