Il team responsabile della creazione delle release di Debian ha annunciato che il supporto per la ricostruzione riproducibile dei pacchetti diventa una funzionalità obbligatoria. Ieri sono state apportate modifiche al sistema di build che bloccano l'inserimento di nuovi pacchetti nel repository che non supportano la ricostruzione riproducibile. Nel repository testing è inoltre vietato aggiornare i pacchetti esistenti in cui sono state individuate regressioni nella riproducibilità della build.
In Debian 13, che include 36427 pacchetti sorgente, il supporto per le builds ripetibili è del 96,9% per l'architettura x86_64 e del 96,8% per l'architettura ARM64. Nei repository Debian Testing, il livello di builds ripetibili è stimato al 94,5% per l'architettura ARM64 e al 75,7% per x86_64 con la ricostruzione di 37809 pacchetti sorgente. Il test delle builds ripetibili nel repository Debian Testing è fallito per 1141 pacchetti (3%), mentre per 7952 pacchetti (21%) si sono verificati problemi di compilazione dal sorgente.
Le builds ripetibili consentono all'utente di generare builds proprie che coincidono bit per bit con quelle pronte per il download. L'utente può personalmente verificare che i file binari distribuiti nei pacchetti e nelle immagini di avvio siano stati compilati dai sorgenti forniti e non contengano modifiche non dichiarate. La verifica dell'identità della build binaria permette di non fare affidamento esclusivamente sulla fiducia nell'infrastruttura di build del sistema, in quanto una compromissione del compilatore o degli strumenti di build potrebbe portare all'introduzione di backdoor nascoste.
Nella realizzazione delle costruzioni ripetibili si tengono in considerazione dettagli come la corrispondenza esatta delle dipendenze; uso di versioni e composizioni immutabili degli strumenti di costruzione; un insieme identico di opzioni e impostazioni per default; mantenimento dell'ordine di costruzione dei file (applicazione degli stessi metodi di ordinamento); disabilitazione dell'aggiunta di informazioni casuali da parte del compilatore, come valori casuali, riferimenti ai percorsi dei file e dati sulla data e ora di costruzione. Anche gli errori e le condizioni di competizione negli strumenti influiscono sulla riproducibilità delle costruzioni.
Fonte: opennet.ru
