Am anunțat că primul nostru alfa va fi disponibil pe la sfîrșitul lui ianuarie… și totuși nici un ISO. Măi să fie! Ce se întîmplă? Lăsați-mă să vă explic.
A fost odată un bootstrap…
După cum s-a menționat în articolele anterioare, sistemul nostru de clădit a fost foarte activ în ultimele săptămîni și s-au construit mai mult de 4 000 de pachete. Acest set de pachete este ceea ce noi numim un bootstrap (secvența de inițializare).
Dacă vă uitați pe Wikipedia, veți vedea că un bootstrap este un ansamblu de instrucțiuni de încărcare utilizat pentru lansarea unui sistem mai mare. În cazul lui Mageia: bootstrap este etapa curentă în care se construiește sistemul de bază și dependențele majore, astfel încît toate aplicațiile să poată fi construite utilizînd uneltele și pachetele Mageia proprii. Toate distribuțiile Linux utilizează propriile lor pachete pentru construirea tuturor pachetelor disponibile în depozitele lor.
Apoi urmează partea cea mai grea a povești, asemeni dilemei oului și găinii (care a fost primul?). Cîteva pachete de nivel jos, numite în general ansamblu de unelte, trebuiesc și ele compilate la rîndul lor: gcc, glibc… Aceste pachete există deja în multe din distribuții. Deci, procesul de inițializare începe cu una din aceste distribuții.
Pentru Mageia am decis să utilizăm pachetele Mandriva, după cum prima versiune se bazează pe Cooker. Pentru a le putea utiliza, trebuie mai întîi să le curățăm:
- înlăturarea părților Mandriva specifice (macrouri RPM, elemente cu drepturi de autor precum imagini, pictograme, chestii învechite…)
- înlăturarea condițiilor nefolositoare din definițiile necesare clăditului
- trimiterea îmbunătățirilor în amonte ca să nu mai trebuiască să le menținem, astfel toată lumea poate profita de ele dacă sînt acceptate în amonte
- dezactivarea temporară a cîtorva dependențe de nivel înalt, pentru că încă nu sînt construite și nici disponibile pentru Mageia (Java, Mono).
Cînd totul va fi gata, fiecare pachet este gata să fie reconstruit pe sistemul de clădit Mageia. Odată ce pachetul este reconstruit ca unul propriu Mageia, împachetatorul va verifica și readăuga, dacă este nevoie, dependențe de construit adiționale imediat ce acestea sînt disponibile.
Să luăm un exemplu
gcc este un compilator C, o parte importantă a sistemului de bază deoarece este necesar multor aplicații pentru a putea fi construite din sursă.
Mageia are nevoie de propriul pachet gcc pentru a genera toate aplicațiile utilizînd limbajul C (numită și „dogfooding”). Această operație este crucială pentru Mageia deoarece executată corect ne va asigura că totul funcționează bine și în același timp listează problemele potențiale și le corectează. Atunci este generat Mageia gcc.
Cînd ansamblul de unelte este construit, atunci putem reconstrui nucleul Mageia, piloții și serverul X, etc. și aplicațiile de nivel superior. Un sistem de inițializare nu oferă împachetatorilor nimic mai mult decît cîteva biblioteci și un compilator. Va fi atunci nevoie de pachete adiționale pentru pachetele sistem de bază, înainte de a putea lăsa echipa de împachetatori să-și înceapă munca la modul serios. Multe pachete necesită pentru clădit anumite dependențe, care la rîndul lor necesită alte dependențe pentru clădit.
La final este nevoie de mii de pachete pentru construirea componentelor majore care vor fi necesare pentru aplicațiile de nivel înalt.
Bine înțeles această poveste este una simplă, fără toate chestiile amuzante care apar în timpul procesului de reconstruire. Dar asta este imaginea de ansamblu.
De ce este procesul de inițializare așa de important?
Cum s-a menționat mai sus, procesul de inițializare este o etapă în care împachetatorii și specialiștii sistemului de bază petrec timp verificînd consistența părților nivelului celui mai de jos al distribuției, curăță cerințele și le încadrează în politica distribuției. Deci procesul de inițializare nu este dedicat în exclusivitate oamenilor interesați de derivații
Apropo, îmbunătățirea și scrierea unei documentații corecte despre procesul de inițializare va ajuta destul de mult cînd sînt adăugate sau suportate arhitecturi noi. Va fi nevoie de un ansamblu de unelte curat, sistem de bază… Aceeași poveste.
ISO-urile!
Să ne întoarcem deci la întrebarea inițială: pe cînd să ne așteptăm la primul ISO de test? Etapa procesului de inițializare începută cu o lună în urmă ar trebui să se termine pînă mîine. Construirea pachetelor disponibile a luat în jur de 1 500 de ore, ținînd cont de construcțiile reușite dar și de eșecuri, reconstruiri, deciziile tehnice care au trebuit luate, problemele neașteptate, discuții…
Iată-ne ajunși și aici . Depozitul este gata pentru primele teste de clădit, mașina noastă pentru construit ISO-uri este configurată corect, iar versiunea Alfa 1 este așteptată pe 15 februarie. Rămîneți pe recepție, vom avea în curînd mai multe noutăți despre viitorul grafic de lansare!
Notă: Articol original publicat în engleză de ennael