Комитетът FESCo (Комитет за ръководство на инженерството на Fedora), който отговаря за техническата част на разработката на дистрибуцията Fedora Linux, одобри проект за осигуряване на повторяеми сборки на пакети в есеннияRelease на Fedora 43. Целта на инициативата е да се приложат повторяеми сборки за не по-малко от 99% от пакетите в хранилището.
Повторяемите сборки ще позволят генерирането на собствени RPM-пакети, които съвпадат с предлаганите за изтегляне готови бинарни пакети. Съвпаденията ще се осигуряват на нивото на основните метаданни и включените в пакета файлове (различията ще бъдат само в метаданните, свързани с времето на сборката, сборъчния хост и заверката с цифров подпис). Потребителят ще може лично да се увери, че разпространяваните в пакетите бинарни файлове са събрани от предоставените изходни текстове и не съдържат скрити изменения. Проверката за идентичност на бинарната сборка позволява да не се разчита само на доверието към инфраструктурата за сборки на дистрибуцията, компрометиране на компилатора или инструменти за сборка, което може да доведе до вмъкване на скрити бекдори.
Освен сигурността, повторяемите сборки ще бъдат полезни и за контрол на качеството — проблемите при опитите за постигане на повторяеми сборки често са причинени от грешки или хаос в кода, например, използвайки пакети, обозначени като "noarch", зависимости, свързани с определени хардуерни архитектури. Повторяемите сборки също така ще улеснят разработката на пакети — след малки корекции, повторно събраните пакети ще се различават само по елементите, пряко свързани с направената промяна, което значително ще улесни сравняването на версиите на пакетите и анализа на промените.
При създаване на повторими сборки се вземат предвид такива нюанси като точното съответствие на зависимостите; използването на неизменим състав и версии на инструментите за сборка; идентичен набор от опции и настройки по подразбиране; запазване на реда на сглобяване на файловете (прилагане на същите методи за сортиране); деактивиране на добавянето от компилатора на непостоянна служебна информация, като случайни стойности, препратки към файлови пътища и данни за дата и час на сглобяване. За възпроизводимостта на сборките също влияят грешки и състезателни условия в инструментите.
Инфраструктурата на проекта Fedora вече е подготвена за извършване на повторими сборки. Например, в предишните версии са направени промени в системата за сглобяване, които синхронизират метаданните за времето на модификация на файловете с еталонния изходен код (mtime вече не зависи от времето на сборка), както и осигуряват постоянен ред на изброяване на метаданните и структурите в бинарните файлове. На този етап обхватът на повторимите сборки се оценява на 90%. За да се осигурят повторими сборки в оставащите 10%, е необходимо участието на мейнтейнери на проблемните пакети. За да се стимулира коригирането на подобни пакети, сблъсъците при извършване на повторими сборки се предвижда да се третират като грешки при сборка.
Подобни проекти за осигуряване на поддръжка за повторими сборки също развиват дистрибуции като Debian, Arch Linux, openSUSE и NixOS.
Източник: opennet.ru
