Найти в Дзене
Проект OpenNet

Утверждено обеспечение повторяемых сборок в Fedora 43

Комитет FESCo (Fedora Engineering Steering Committee), отвечающий за техническую часть разработки дистрибутива Fedora Linux, утвердил проект по обеспечению
повторяемых сборок пакетов в осеннем выпуске Fedora 43. Целью
инициативы заявлена возможность применения повторяемых сборок для не
менее, чем 99% пакетов в репозитории. Повторяемые сборки
дадут возможность формировать собственные RPM-пакеты, совпадающие с
предлагаемыми для загрузки готовыми бинарными пакетами. Совпадения
обеспечивается на уровне основных метаданных и включённых в пакет файлов
(отличаться будут только метаданные со временем сборки, сборочным
хостом и заверением цифровой подписью). Пользователь сможет лично
убедиться, что распространяемые в пакетах бинарные файлы собраны из
предоставляемых исходных текстов и не содержат скрытых изменений.
Проверка тождественности бинарной сборки позволяет не полагаться лишь на
доверие к сборочной инфраструктуре дистрибутива, компрометация компилятора или сборочного инстру

Комитет FESCo (Fedora Engineering Steering Committee), отвечающий за техническую часть разработки дистрибутива Fedora Linux, утвердил проект по обеспечению
повторяемых сборок пакетов в осеннем выпуске Fedora 43. Целью
инициативы заявлена возможность применения повторяемых сборок для не
менее, чем 99% пакетов в репозитории.

Повторяемые сборки
дадут возможность формировать собственные RPM-пакеты, совпадающие с
предлагаемыми для загрузки готовыми бинарными пакетами. Совпадения
обеспечивается на уровне основных метаданных и включённых в пакет файлов
(отличаться будут только метаданные со временем сборки, сборочным
хостом и заверением цифровой подписью). Пользователь сможет лично
убедиться, что распространяемые в пакетах бинарные файлы собраны из
предоставляемых исходных текстов и не содержат скрытых изменений.
Проверка тождественности бинарной сборки позволяет не полагаться лишь на
доверие к сборочной инфраструктуре дистрибутива,
компрометация компилятора или сборочного инструментария в которой может привести к подстановке скрытых закладок.

Помимо безопасности повторяемые сборки также будут полезны для
контроля качества - проблемы при попытке добиться повторяемых сборок
часто вызваны ошибками или беспорядком в коде, например, использованием в
пакетах, помеченных как "noarch", зависимостей, привязанных к
определённым аппаратным архитектурам. Повторяемые сборки также упростят
разработку пакетов - после небольших правок пересобранные пакеты будут
отличаться только элементами, непосредственно связанными с внесённым
изменением, что значительно упростит сравнение версий пакетов и анализ
изменений.

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

Инфраструктура проекта Fedora уже подготовлена к осуществлению
повторяемых сборок. Например, в прошлых выпусках в сборочную систему
внесены изменения,
синхронизирующие метаданные о времени модификации файлов с эталонным исходным кодом (mtime теперь не зависит от времени сборки), а также обеспечивающие
постоянный порядок перечисления метаданных и структур в бинарных
файлах. На данном этапе охват повторяемыми сборками оценивается в 90%.
Для обеспечения повторяемых сборок в оставшихся 10% требуется участие
мэнтйнеров проблемных пакетов. Для стимулирования внесения исправлений в
подобные пакеты, сбои при осуществлении повторяемых сборок намерены
трактовать как ошибки при сборке.

Похожие проекты по обеспечению поддержки повторяемых сборок также развивают дистрибутивы Debian, Arch Linux, openSUSE и NixOS.