fesco, den ledande tekniska auktoriteten bakom utvecklingen av Fedora, ad Några dagar sedan en viktig förändring som kommer att introduceras i höstutgåvan av "Fedora 43". Och målet har officiellt godkänts tillhandahålla fullt reproducerbara paketbyggen för minst 99 % av förvaret.
För närvarande, rapportering av reproducerbara byggen på Fedora når redan 90 %. De återstående 10 % är koncentrerade till paket som fortfarande kräver ingripande. av dess underhållare. För att uppmuntra till lösningar på dessa problem har man beslutat att buggar relaterade till icke-upprepningsbara byggen ska behandlas som kompileringsfel, vilket kommer att påskynda deras åtgärdande.
Vad är spelbara byggen och varför är de viktiga?
En spelbar version säkerställer att vem som helst kan ta del av källkoden från ett paket och, med samma miljö, producera exakt samma binärfil som erbjuds. Det här innebär att användare kan återskapa RPM-paket och verifiera att de matchar de officiellt distribuerade, åtminstone i alla relevanta delar av paketet: inkluderade filer, viktig metadata etc. De enda tillåtna skillnaderna kommer att vara detaljer som tidsstämpel, värdnamn för byggandet eller digital signatur.
Med tillägg av spelbara byggen i Fedora 43, projektet tar ett avgörande steg mot en mer transparent distributionsmodell. En av de mest omedelbara och betydande fördelarna med detta initiativ är att användare inte längre behöver förlita sig blint på Fedoras bygginfrastruktur. Från och med nu kommer vem som helst att kunna verifiera att distribuerade binärfiler exakt matchar den publicerade källkoden, utan dolda ändringar eller manipulationer.
El Fedora-projektets mål är ambitiöst men uppnåeligtatt minst 99 % av paketen i ditt arkiv kan återskapas. För närvarande är reproducerbarhetstäckningen redan runt 90 %, vilket visar betydande framsteg. För att täcka de återstående 10 % krävs aktivt samarbete från paketansvariga.
Som en del av processen, Fedora kommer att börja öppna felrapporter automatiskt närhelst ett paket misslyckas med ett reproducerbart ombyggnadstest. Dessa rapporter kommer att fungera som direkta meddelanden för underhållare för att undersöka avvikelser och implementera nödvändiga korrigeringar.
Vi är medvetna om vissa problem som inte kan lösas enkelt:
Haskell-paket kan inte reproduceras när de kompileras med mer än en tråd. Utvecklingsteamet arbetar med problemet; Nästa version av ghc kanske fixar detta helt.
Mingw-paketen har felsökningsdata som inte går att reproducera.
Golang-paket har felsökningsdata som inte kan reproduceras
Kärnan använder en efemär nyckel för modulsignaturer.
SecureBoot-signerade paket använder en privat nyckel (shim, grub2).
Vissa BuildRequires i SRPM:er är arkitekturberoende.
Detta beror främst på hur vi förbereder miljön för byggnationer. Det påverkar inte direkt binära varvtal.
Vi kommer att skapa ett felrapporteringssystem för problem som påverkar flera paket (Haskell, Mingw, Golang). Vi hoppas att dessa problem kommer att lösas både i den ursprungliga och i efterföljande utvecklingar.
Säkerhet och flera fördelar
Såsom sådant nämns det att Att uppnå full reproducerbarhet går utöver det rent tekniska, sedan representerar ett steg framåt inom säkerhet möjliggör verifiering av att programvaran inte har manipulerats under dess konstruktion. Men de har också en påtaglig inverkan på andra viktiga aspekter av utvecklingscykeln.
När det gäller kvalitetskontroll hjälper processen till att upptäcka subtila fel i paket. Om till exempel ett paket markerat som "noarch" (arkitekturoberoende) producerar olika binärfiler på olika plattformar, kan detta tyda på missbruk av hårdvaruspecifika beroenden.
Ur underhållssynpunkt, Reproducerbara versioner gör det enkelt att se vad som har ändrats efter en mindre redigering.- Endast skillnader som är direkt kopplade till den modifieringen kommer att återspeglas i de nya binärfilerna, vilket gör analys, felsökning och versionshantering enklare.
Fördel för Fedora
Fedora-utvecklare noterar att uppnå reproducerbara byggen innebär att kontrollera flera tekniska faktorer, såsom att säkerställa konsekvens i beroenden, versioner av byggverktyg, standardkonfigurationer och ordningen på genererade filer. Kompilatorn bör också konfigureras för att inte infoga flyktiga värden såsom absoluta sökvägar, tidsstämplar eller slumpmässiga data. Det är också viktigt att undvika kapplöpningsförhållanden och dolda fel i verktygskedjan.
Fedora har förberett sin infrastruktur för att möta dessa utmaningar. Tidigare ändringar av dess byggsystem har redan gjort det möjligt att synkronisera metadata för filmodifieringar (mtime) med referenskällkoden och säkerställt att binärfilernas interna strukturer är konsekventa mellan körningar.
Äntligen ja du är intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.