Comitetul FESCo (Comitetul de Conducere al Ingineriei Fedora), responsabil pentru partea tehnică a dezvoltării distribuției Fedora Linux, a aprobat un proiect pentru asigurarea construcțiilor repetabile ale pachetelor în lansarea de toamnă Fedora 43. Scopul inițiativei este de a permite aplicarea construcțiilor repetabile pentru cel puțin 99% dintre pachetele din depozit.
Construcțiile repetabile vor oferi posibilitatea de a crea propriile pachete RPM, care se vor potrivi cu pachetele binare gata de descărcare. Aceste potriviri se vor asigura la nivelul metadatelor de bază și al fișierelor incluse în pachet (vor exista diferențe doar în metadatele cu timpul construcției, gazda de construcție și semnătura digitală). Utilizatorul va putea verifica personal că fișierele binare distribuite în pachete sunt construite din sursele furnizate și nu conțin modificări ascunse. Verificarea identității construcției binare permite să nu ne bazăm doar pe încrederea în infrastructura de construcție a distribuției, compromiterea compilatorului sau a instrumentelor de construcție poate duce la infiltrarea de backdoor-uri ascunse.
Pe lângă securitate, construcțiile repetabile vor fi, de asemenea, utile pentru controlul calității — problemele întâmpinate în încercarea de a obține construcții repetabile sunt adesea cauzate de erori sau dezordine în cod, de exemplu, utilizarea în pachete marcate ca „noarch” a dependențelor legate de anumite arhitecturi hardware. Construcțiile repetabile vor simplifica, de asemenea, dezvoltarea pachetelor — după mici ajustări, pachetele recompilate vor varia doar prin elementele direct legate de modificarea efectuată, ceea ce va simplifica semnificativ compararea versiunilor de pachete și analiza modificărilor.
În formarea construcțiilor repetabile se iau în considerare nuanțe precum conformitatea exactă a dependențelor; utilizarea unui set și a unor versiuni neschimbate ale instrumentelor de construire; setul identic de opțiuni și configurații implicite; menținerea ordinii de construire a fișierelor (aplicarea acelorași metode de sortare); dezactivarea adăugării de către compilator a informațiilor auxiliare volatile, cum ar fi valorile aleatorii, referințele la căile de fișiere și datele despre data și ora construcției. Reproducibilitatea construcțiilor este, de asemenea, influențată de erori și condiții de competiție în instrumente.
Infrastructura proiectului Fedora este deja pregătită pentru realizarea construirilor reproducibile. De exemplu, în versiunile anterioare s-au adus modificări sistemului de construire, sincronizând metadatele despre timpul de modificare al fișierelor cu codul sursă de referință (mtime nu depinde acum de timpul de construire), precum și asigurând o ordine constantă în enumerarea metadatelor și structurilor din fișierele binare. În această fază, acoperirea construirilor reproducibile este estimată la 90%. Pentru a asigura construirea reproducibilă în cele rămase 10%, este necesară implicarea mentenorilor pachetelor problematice. Pentru a stimula corectarea acestor pachete, deficiențele întâmpinate în construirea reproducibilă vor fi tratate ca erori în procesul de construire.
Proiecte similare care susțin construirea reproducibilă sunt dezvoltate și de distribuțiile Debian, Arch Linux, openSUSE și NixOS.
Sursa: opennet.ro
