The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Опции архивации для повторяемого результата."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на рабочей станции (Разное)
Изначальное сообщение [ Отслеживать ]

"Опции архивации для повторяемого результата."  +/
Сообщение от Аноним (0), 17-Дек-20, 13:12 
По мотивам: https://reproducible-builds.org/docs/archives/

С tar все понятно.

Как получить воспроизводимый: gz, bz2, xz, ... ?

Какие магические опции надо этим архиваторам добавить для воспроизводимость результата?

Неужели только ar, cpio, zip и jar воспроизводимы?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Опции архивации для повторяемого результата."  +/
Сообщение от Аноним (1), 17-Дек-20, 17:20 
ДАВАЙ Я ЗА ТЕБЯ ПОГУГЛЮ

https://wiki.debian.org/ReproducibleBuilds/TimestampsInGzipH...

Ответить | Правка | Наверх | Cообщить модератору

3. "Опции архивации для повторяемого результата."  +/
Сообщение от pavel_simple. (?), 17-Дек-20, 17:35 
> ДАВАЙ Я ЗА ТЕБЯ ПОГУГЛЮ
> https://wiki.debian.org/ReproducibleBuilds/TimestampsInGzipH...

угу, всё именно так
tar cf - 1 | gzip -n -3 | md5sum
35261b3df66a59882dc07c104b21f487  -
tar cf - 1 | gzip -n -3 | md5sum
35261b3df66a59882dc07c104b21f487  -
tar cf - 1 | gzip -n -3 | md5sum
35261b3df66a59882dc07c104b21f487  -

Ответить | Правка | Наверх | Cообщить модератору

2. "Опции архивации для повторяемого результата."  +/
Сообщение от pavel_simple. (?), 17-Дек-20, 17:27 
> По мотивам: https://reproducible-builds.org/docs/archives/
> С tar все понятно.
> Как получить воспроизводимый: gz, bz2, xz, ... ?
> Какие магические опции надо этим архиваторам добавить для воспроизводимость результата?
> Неужели только ar, cpio, zip и jar воспроизводимы?

кто-то путает компановщики с архиваторами(компрессорами).
Но в целом, достаточно небольшой LD_PRELOAD, и все времена/владельцы будут такие, какие нужно. Останется решиь про сортировку внутри контейнера(cpio/tar/...) и усё.

tar cf - 1 | gzip -3 | md5sum
b9211265d4a965a07679f0e7518e5707  -
tar cf - 1 | gzip -3 | md5sum
1c8e087077123f046cc15aa058aed1de  -
tar cf - 1 | gzip -3 | md5sum
1ae2a8f2f34d676aa795de874bc125d1  -

gzip чудит, но кому нужен gzip сейчас, если всё остальное много лучше
tar cf - 1 | bzip2 -3 | md5sum
58b33241737309015e9513ec9d10bca5  -
tar cf - 1 | bzip2 -3 | md5sum
58b33241737309015e9513ec9d10bca5  -
tar cf - 1 | bzip2 -3 | md5sum
58b33241737309015e9513ec9d10bca5  -

bzip2 работает

tar cf - 1 | zstd  -3 -c -| md5sum
fc5421dd2935ca0372f4fcd531ec15e0  -
tar cf - 1 | zstd  -3 -c -| md5sum
fc5421dd2935ca0372f4fcd531ec15e0  -

zstd работает

tar cf - 1 | xz | md5sum
55fa9d540192e70713157e75d233590d  -
tar cf - 1 | xz | md5sum
55fa9d540192e70713157e75d233590d  -
tar cf - 1 | xz | md5sum
55fa9d540192e70713157e75d233590d  -
аналогично

Ответить | Правка | Наверх | Cообщить модератору

4. "Опции архивации для повторяемого результата."  +/
Сообщение от Аноним (4), 18-Дек-20, 14:28 
Спасибо!

У меня при создании контейнера, каждый раз создавался новый файл с контрольными сумами содержимого контейнера. Вот из-за его mtime и были расхождения которых сразу не заметил.

Почему опцию -3 дете, протестил с -9 и все сошлось.

У меня еще пакетный менеджер Gentoo заворачивает в архив собранного пакета:
BUILD_TIME
XDG_SESSION_ID
XDG_VTNR
Как их победить может кто идею даст?

Ответить | Правка | Наверх | Cообщить модератору

5. "Опции архивации для повторяемого результата."  +/
Сообщение от Аноним (5), 19-Дек-20, 10:12 
Переменные окружения сборки можно определить в:
/etc/portage/make.conf
И некоторые переменные надо устанавливать командной строке (скрипте):
XDG_SESSION_ID
XDG_VTNR

Вот с установкой определенной BUILD_TIME в Gentoo похоже никак. Придется лезть и патчить руками portage, или кто подскажет легкое решение, чтобы я баги не добавлял.

Ответить | Правка | Наверх | Cообщить модератору

6. "Опции архивации для повторяемого результата."  +/
Сообщение от Аноним (6), 19-Дек-20, 17:46 
Пропатчил в lib/portage/package/ebuild/duebuild.py BUILD_TIME теперь binpkg получаются bit to bit воспроизводимы.

Еще бы mtime самого архива ставить заданный. Жаль bzip2 не имеет опции установки заданного mtime. Вариант с touch для правки mtime архива после создания?

Может лучше было взять libfaketime ?

А кто-то пробовал здесь воспроизводить сжатый образ ядра Linux?
https://www.kernel.org/doc/html/latest/kbuild/reproducible-b...
https://github.com/hardenedlinux/grsecurity-reproducible-build

Ответить | Правка | Наверх | Cообщить модератору

7. "Опции архивации для повторяемого результата."  +/
Сообщение от Аноним (7), 06-Янв-21, 09:27 
Кто-то делал воспроизводимые файловые системы?

Как сделать воспроизводимых загрузчик? Тестовая установка с grub в MBR и каждый раз, сначала диска, после eb6390, пару десятков байт изменяется. Как сделать grub-install воспроизводимым?

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру