Для 94% пакетов Debian обеспечена возможность повторяемой сборки
Разработчики Debian подвели итоги трех лет работы над обеспечением повторяемых сборок пакетов в дистрибутиве. В настоящее время обеспечена повторяемость сборки 94% пакетов в репозитории Debian Stretch/amd64, в сумме насчитывающем 24822 пакетов. Для около 1300 пакетов поддержка повторяемых сборок пока не доступна, но для многих из них уже подготовлены патчи, решающие проблему, которые пока не рассмотрены сопровождающими пакетов.
Проделана большая работа по созданию файлов.buildinfo для различных пакетов, в которых приведена специфика базового сборочного окружения, которое необходимо воссоздать для генерации идентичного исполняемого файла. Обычно в.buildinfo приводится такая сопутствующая информация, как устанавливаемая при сборке локаль, эталонное время сборки и параметры запуска сборочного процесса. Для обеспечения повторяемых сборок требуется учитывать множество нюансов, таких как использование неизменного состава и версий сборочного инструментария, идентичный набор опций и настроек по умолчанию, сохранение порядка сборки файлов (применение тех же методов сортировки), исключение добавления компилятором непостоянной служебной информации, такой как случайные значения, ссылки на файловые пути и данные о дате и времени сборки.
Напомним, что повторяемые сборки позволяют убедиться, что распространяемые бинарные файлы собраны из предоставляемых исходных текстов и не содержат скрытых изменений. Повторяемые сборки являются важным звеном обеспечения безопасности, так как дают любому пользователю возможность убедиться в том, что предлагаемые дистрибутивом сборки байт в байт совпадает со сборками, собранными лично из исходных текстов. Без возможности проверить тождественность бинарной сборки пользователю остается лишь слепо доверять чужой сборочной инфраструктуре, компрометация компилятора или сборочного инструментария в которой может привести к подстановке скрытых закладок.