FESCo-kommittén (Fedora Engineering Steering Committee), som ansvarar för den tekniska delen av utvecklingen av Fedora Linux-distributionen, har godkÀnt ett projekt för att sÀkerstÀlla reproducerbara paketbyggen i den höstlansering av Fedora 43. MÄlet med initiativet Àr att möjliggöra reproducerbara byggen för minst 99% av paketen i förrÄdet.
Reproducerbara byggen ger möjlighet att skapa egna RPM-paket som överensstĂ€mmer med de fĂ€rdiga binĂ€rpaket som erbjuds för nedladdning. ĂverensstĂ€mmelsen sĂ€kerstĂ€lls pĂ„ nivĂ„erna av grundmetadata och inkluderade filer i paketet (endast metadata om byggtid, byggvĂ€rd och verifiering med digital signatur kommer att skilja sig). AnvĂ€ndaren kommer personligen kunna försĂ€kra sig om att de distribuerade binĂ€rfilerna i paketen Ă€r skapade frĂ„n de tillhandahĂ„llna kĂ€llkoderna och inte innehĂ„ller dolda Ă€ndringar. Kontroll av identiteten hos den binĂ€ra byggnaden möjliggör att man inte enbart mĂ„ste lita pĂ„ förtroendet för distributions infrastrukturer, dĂ€r kompromiss av kompilator eller byggverktyg kan leda till insĂ€ttning av dolda bakdörrar.
Förutom sÀkerhet kommer reproducerbara byggen ocksÄ vara anvÀndbara för kvalitetssÀkring - problem vid försök att uppnÄ reproducerbara byggen orsakas ofta av fel eller ordning i koden, till exempel anvÀndning av paket som mÀrkts som "noarch", dÀr beroenden Àr kopplade till specifika hÄrdvaruarkitekturer. Reproducerbara byggen förenklar ocksÄ paketutvecklingen - efter mindre Àndringar kommer de ombyggda paketen endast att skilja sig genom de element som Àr direkt relaterade till den gjorda Àndringen, vilket avsevÀrt förenklar jÀmförelsen av paketen och analysen av förÀndringar.
Vid skapandet av reproducerbara byggen beaktas faktorer som exakt överensstÀmmelse med beroenden; anvÀndning av en oförÀndrad uppsÀttning och versioner av byggverktyg; en identisk uppsÀttning alternativ och standardinstÀllningar; bevarande av filernas byggordning (anvÀndning av samma sorteringsmetoder); avaktivering av kompilatorn för att lÀgga till flyktig informationsdata, sÄsom slumpmÀssiga vÀrden, filvÀgsreferenser och datum- och tidsinformation för byggandet. Reproducerbarheten av byggen pÄverkas ocksÄ av fel och race conditions i verktygen.
Projektinfrastrukturen för Fedora Àr redan förberedd för att möjliggöra reproducerbara byggen. Till exempel har det skett Àndringar i byggsystemet i tidigare utgÄvor som synkroniserar metadata om filernas modifieringstid med referenskoden (mtime beror nu inte pÄ byggtid) och som ocksÄ sÀkerstÀller en konsekvent ordning för upprÀkningen av metadata och strukturer i binÀra filer. För nÀrvarande uppskattas tÀckningen av reproducerbara byggen till 90%. För att sÀkerstÀlla reproducerbara byggen i de ÄterstÄende 10% krÀvs engagemang frÄn underhÄllare av problematiska paket. För att uppmuntra till rÀttelse av sÄdana paket, avser man att betrakta misslyckanden vid reproducerbara byggen som byggfel.
Liknande projekt för att stödja reproducerbara byggen utvecklar Àven distributioner som Debian, Arch Linux, openSUSE och NixOS.
KĂ€lla: opennet.ru
