Reproducerbarhet är förmågan att återskapa identiska binärer under fördefinierade byggmiljöer. På grund av behovet av kvalitetssäkring och fördelen med att bättre upptäcka attacker mot byggmiljöer har bruket av reproducerbara byggen blivit mer populärt i många programvaruarkiv med öppen källkod, som Debian och Bitcoin. Att identifiera de ovedersägliga frågorna är dock fortfarande en arbetsintensiv och tidskrävande utmaning, på grund av bristen på information för att vägleda sökandet och mångfalden av de orsaker som kan leda till de ovedersägliga binärerna. I detta dokument föreslår vi ett automatiserat ramverk kallat RepLoc för att lokalisera de problematiska filerna för oreproducerbara byggen. RepLoc har en frågeförstoringskomponent som använder den information som extraheras från byggloggarna, och en heuristisk regelbaserad filtreringskomponent som begränsar sökområdet. Genom att integrera de två komponenterna med en viktad fil rankningsmodul, RepLoc kan automatiskt producera en rankad lista över filer som är till hjälp för att lokalisera problematiska filer för de oreproducerbara byggen. Vi har implementerat en prototyp och genomfört omfattande experiment över 671 oreproducerbara Debianpaket i fyra olika kategorier. Genom att endast överväga den högst rankade filen uppnår RepLoc en noggrannhetsgrad på 47,09%. Om vi utökar vår undersökning till de tio topprankade filerna i listan som produceras av RepLoc, blir noggrannhetsgraden 79,28 %. Med tanke på att det finns hundratals källkod, skript, Makefiles, etc., i ett paket, RepLoc avsevärt minskar omfattningen av lokalisera problematiska filer. Med hjälp av RepLoc lyckades vi dessutom identifiera och rätta sex nya oreproducerbara paket från Debian och Guix. • Programvara och dess teknik → Underhålla programvara; Software evolution; Tillstånd att göra digital
Den använder den information som extraheras från byggloggarna, och en heuristisk regelbaserad filtrering komponent för att automatiskt producera en rankad lista över filer REF.
Automated localization for unreproducible builds
{'venue': "ICSE '18", 'journal': None, 'mag_field_of_study': ['Computer Science']}