Π’ Debian ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° воспроизводимых сборок ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Команда, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π°Ρ Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Debian, объявила ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ воспроизводимой пСрСсборки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² число ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй. Π’Ρ‡Π΅Ρ€Π° Π² ΡΠ±ΠΎΡ€ΠΎΡ‡Π½ΡƒΡŽ систСму внСсСны измСнСния, Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ пСрСнос Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ сборку. Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ testing Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выявлСны рСгрСссии с Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ сборки.

Π’ Debian 13, Π½Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ 36427 исходных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° повторяСмых сборок составляСт 96.9% для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86_64 ΠΈ 96.8% для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM64. Π’ рСпозиториях Debian Testing ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ повторяСмых сборок ΠΎΡ†Π΅Π½Ρ‘Π½ Π² 94.5% для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM64 ΠΈ 75.7% для x86_64 ΠΏΡ€ΠΈ пСрСсборкС 37809 исходных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ВСст повторяСмых сборок Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Debian Testing ΠΏΡ€ΠΎΠ²Π°Π»Π΅Π½ для 1141 ΠΏΠ°ΠΊΠ΅Ρ‚Π° (3%), Π° Ρƒ 7952 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (21%) Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ компиляции ΠΈΠ· исходного ΠΊΠΎΠ΄Π°.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌΡ‹Π΅ сборки Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС сборки, ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΌΠΈ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ сборками. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈΡ‡Π½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ распространяСмыС Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·Π°Ρ… Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ собраны ΠΈΠ· прСдоставляСмых исходных тСкстов ΠΈ Π½Π΅ содСрТат скрытых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° тоТдСствСнности Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ сборки позволяСт Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ лишь Π½Π° Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ ΠΊ сборочной инфраструктурС дистрибутива, компромСтация компилятора ΠΈΠ»ΠΈ сборочного инструмСнтария Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ подстановкС скрытых Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ.

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ повторяСмых сборок ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Π½ΡŽΠ°Π½ΡΡ‹, ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ соотвСтствиС зависимостСй; использованиС Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ состава ΠΈ вСрсий сборочного инструмСнтария; ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΡ†ΠΈΠΉ ΠΈ настроСк ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ; сохранСниС порядка сборки Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сортировки); ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ добавлСния компилятором нСпостоянной слуТСбной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ случайныС значСния, ссылки Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π΄Π°Ρ‚Π΅ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сборки. На Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ сборок Ρ‚Π°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΡŽΡ‚ ошибки ΠΈ состояния Π³ΠΎΠ½ΠΊΠΈ Π² инструмСнтарии.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru