[sisyphus] [howto] песочница в локальном hasher

alexei на taf.ru alexei на taf.ru
Ср Сен 16 15:24:17 MSK 2020



----- Исходное сообщение -----
> От: "Motsyo Gennadi aka Drool" <motsyo на gmail.com>
> Кому: sisyphus на lists.altlinux.org
> Отправленные: Среда, 16 Сентябрь 2020 г 19:51:58
> Тема: Re: [sisyphus] [howto] песочница в локальном hasher

> 14.09.20 16:32, Michael Shigorin пишет:
>> А глянь, как его в других дистрибутивах собирают
>> (repology.org в помощь).  Возможно, включают какую
>> ручку насчёт generic x86_64.
> 
>	Почему в локальном хашере и на удаленном (при использовании одной и той
> же пакетной базы удаленного репозитария) собирается по-разному? Это
> главный вопрос, а не какие ручки крутить в других дистрибутивах. Как
> сказано на https://www.altlinux.org/Hasher
> "hasher — это инструмент безопасной и воспроизводимой сборки пакетов".
> Слово "воспроизводимой" там выделено. Выходит, это далеко не так и
> сборка далеко не воспроизводима. Первоначальная тема была "Пакет в
> сборочнице собирается битый" и в самом первом своем сообщении я
> спрашивал "Как такое может быть?".
> https://lists.altlinux.org/pipermail/sisyphus/2020-August/368811.html

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

============
case "$SYSTEM" in
"UINT32")
    TRANSPOSE="32"
    ;;
"UINT64")
    TRANSPOSE="64"
    ;;
"MMX")
    TRANSPOSE="64"
    CFLAGS="$CFLAGS -mmmx"
    ;;
"SSE")
    TRANSPOSE="128"
    CFLAGS="$CFLAGS -msse -msse2"
    ;;
"ALTIVEC")
    TRANSPOSE="128"
    ;;
*)  
    echo "wrong SYSTEM option"
    exit 1
    ;;
esac
===========

Отловить и пресечь такое не по силам никакому хэшеру.


Подробная информация о списке рассылки Sisyphus