Воспроизводимые сборки - Reproducible builds

Воспроизводимые сборки logo.svg

Воспроизводимый строит , также известный как детерминированная компиляцию , представляет собой процесс компиляции программного обеспечения , которое обеспечивает результирующий двоичный код может быть воспроизведен . Исходный код, скомпилированный с использованием детерминированной компиляции, всегда будет выводить один и тот же двоичный файл.

Воспроизводимые сборки могут действовать как часть цепочки доверия ; исходный код может быть подписан, а детерминированная компиляция может доказать, что двоичный файл был скомпилирован из надежного исходного кода.

Методы

Чтобы процесс компиляции был детерминированным, входные данные компилятора должны быть одинаковыми, независимо от используемой среды сборки. Обычно это включает в себя нормализацию переменных, которые могут измениться, таких как порядок входных файлов, временные метки , локали и пути .

Кроме того, компиляторы не должны сами вводить недетерминизм. Это иногда случается при использовании хеш-таблиц со случайным начальным значением хеш-функции. Это также может произойти при использовании адреса переменных, поскольку он отличается от рандомизации разметки адресного пространства (ASLR).

Строительные системы , такие как Базель и Gitian, могут быть использованы для автоматизации детерминированных процессов сборки.

История

В начале 1990-х в проекте GNU использовались воспроизводимые сборки. Журналы изменений с 1992 года указывают на продолжающиеся усилия.

Одним из старых проектов по продвижению воспроизводимых сборок является проект Биткойн с Gitian. Позже, в 2013 году, проект Tor (сеть анонимности) начал использовать Gitian для своих воспроизводимых сборок.

В июле 2013 года проект Debian начал реализацию воспроизводимых сборок по всему архиву пакетов.

К июлю 2017 года было доказано, что сборка более 90% пакетов в репозитории воспроизводима.

В ноябре 2018 года проект Reproducible Builds присоединился к Software Freedom Conservancy .

F-droid использует воспроизводимые сборки, чтобы гарантировать, что распространяемые APK-файлы используют заявленный бесплатный исходный код .

Хвосты портативная операционная система использует воспроизводимое строит и объясняет другим , как проверить их распределение.

NixOS заявляет о 100% воспроизводимости сборки в июне 2021 года.

использованная литература

внешние ссылки