The OpenNET Project / Index page

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



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

"Связывание повторяемых сборок GNU Guix с архивом исходных те..."  +/
Сообщение от opennews (?), 30-Мрт-19, 20:04 
Доступен (https://www.opennet.ru/tips/3100_gnu_guix_heritage.shtml) перевод статьи (https://www.gnu.org/software/guix/blog/2019/connecting-repro.../) Людвика Курте, в которой рассказано как в дистрибутиве GNU Guix связать повторяемые сборки, позволяющие убедиться в тождественности бинарных файлов эталонным исходным текстам, с загрузкой исходных текстов из архива кода Software Heritage (https://www.softwareheritage.org/). Software Heritage ставит перед собой задачу создания полного архива всех доступных в Сети исходных текстов. Код загружается из разных источников (GitHub, репозитории Debian, коллекции GNU и т.п.) с автоматичкеским переносом информации об изменениях, формируя таким образом историю развития кода разных проектов (можно посмотреть каким код был в разное время).


В Guix  можно использовать Software Heritage для получения кода, если репозиторий из которого собран пакет, перестал существовать. В контексте повторяемых сборок пользователь может загрузить из Software Heritage состояние кода проекта, соответствующее имеющемуся бинарному пакету, и проверить что бинарные файлы собраны именно из этого кода без добавления скрытых изменений.


URL: https://www.opennet.ru/tips/3100_gnu_guix_heritage.shtml
Новость: https://www.opennet.ru/opennews/art.shtml?num=50425

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

Оглавление

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

1. Сообщение от Анонимс (?), 30-Мрт-19, 20:04   +3 +/
> В Guix можно использовать Software Heritage для получения кода, если репозиторий из которого собран пакет, перестал существовать
> и проверить что бинарные файлы собраны именно из этого кода без добавления скрытых изменений

Однако, полезная вещь.

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

2. Сообщение от Аноним (2), 30-Мрт-19, 20:18   –6 +/
Чем это лучше hasher от ALT Linux?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #4, #10, #20, #24

3. Сообщение от ШО (?), 30-Мрт-19, 20:49   +12 +/
Очевидно тем, что это не ALT Linux
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

4. Сообщение от Stax (ok), 30-Мрт-19, 20:52   +5 +/
Тем, что hasher недостаточно для задачи, которую тут решают?

Тут привязка к зависимостям не на уровне версий пакетов, а конкретной ревизии (коммита) сорцов для каждого проекта. И проверка идентичности сборки, если не совпал хэш с требуемым - значит что-то пошло не так. Добиваются совпадения бит-в-бит.

В альтернативах типа mock или hasher привязка на уровне обычных зависимостей, где может обновится сборка при той же формальной (с точки зрения пакета) версии, но из-за изменений сборка с новой версией не будет идентична бит-в-бит. Ну и результирующую контрольную сумму никто с эталоном не сверяет, там просто никто не ведет никаких эталонов.

Хотя вот тут какое-то совпадение хешей показали https://www.altlinux.org/%D0%92%D0%BE�...
Но в плане качества это ничем не лучше того же remock (https://github.com/kholia/ReproducibleBuilds)

И на этот хэш никто потом не завязывается (в смысле требования получать тот же хэш при последующих сборках)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #5

5. Сообщение от Аноним (5), 30-Мрт-19, 21:05   –1 +/
Ну а как там все-таки разруливается, что компиляция программулины компилятором gcc 8.1 приведет к такой-то бинари, а компилятором gcc 8.2 - вот к такой? И с каких это пор одна лишь ревизия gcc достаточна? - он сам по себе может быть собран с патчами или без, с такими-то опциями или сякими-то. Не бывает четкой связи между "ревизией (коммитом) сорцов" и бинарем. А чтобы она случилась, нужно сверхгигантское количество предпосылок и допущений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #6, #21, #23

6. Сообщение от Stax (ok), 30-Мрт-19, 23:04   +/
> без, с такими-то опциями или сякими-то. Не бывает четкой связи между
> "ревизией (коммитом) сорцов" и бинарем. А чтобы она случилась, нужно сверхгигантское
> количество предпосылок и допущений.

Судя по документу, у них как раз мегарепа с копией исходников всех проектов. Т.е. git clone (ну или  иное, если изначально не гит) для всего вообще, что используется. И ссылка на коммит в этой их копии это однозначно конкретные исходники.

И когда они такое делают для абсолютно всех зависимостей, получается идентичность.

Разумеется, версию gcc также менять нельзя...

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

7. Сообщение от yoda (?), 31-Мрт-19, 01:25   –2 +/
>полного архива всех доступных в Сети исходных текстов

Могущественное сосредоточение датацентров правительства ощущаю я.

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

8. Сообщение от Аноним (8), 31-Мрт-19, 04:37   +/
Круто.
Ответить | Правка | Наверх | Cообщить модератору

10. Сообщение от myhand (ok), 31-Мрт-19, 09:26   –2 +/
ALT Linux не запрещен на территории Российской Федерации!  А этот ваш, который на Х - может с самими террористами связан.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #12, #19, #22

12. Сообщение от Аноним (12), 31-Мрт-19, 10:33   –2 +/
Каждый фрагмент кода рекламируемой Вами сборки имеет отечественный копирайт? Причем числящийся не за частным лицом или частной компанией, а за государственным учреждением? Очевидно, нет. В таком случае данный дистрибутив не имеет ровно никаких отличий от любого иного дистрибутива. Его упоминание в каких-то там реестрах не означает ничего, кроме фактов упоминания в реестрах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #17

14. Сообщение от Аноним (14), 31-Мрт-19, 12:11   +/
GUIX хорошая идея, но на убунту накатить не осилил за пару часов, собственно на этом решил и забть.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #26

17. Сообщение от myhand (ok), 31-Мрт-19, 13:32   +1 +/
Дык в том-то и соль, что ALT - в "каких-то там реестрах" не упоминается.  Это вы все норовите софтом, пропагандирующим всякое гейство, пользоваться.

Хорошо, что хоть Роскомнадзор стоит на страже - иначе как у ALT пользовательская база-то появится?

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

19. Сообщение от gpyra (ok), 31-Мрт-19, 18:05   +1 +/
Вот поэтому nixos и guixsd нужно что-то вроде ipfs
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

20. Сообщение от Wladmis (ok), 31-Мрт-19, 21:08   +/
> Чем это лучше hasher от ALT Linux?

Hasher решает другую задачу: изолированной сборки пакетов, которая исключает влияние хост-системы на сборочное окружение и наоборот. Software Heritage же — это репозиторий исходных кодов, из которых были собраны пакеты, и  информации о бинарных сборок этих пакетов. В ALT этому ближе gears-репозитории и индексы исходных пакетов.

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

21. Сообщение от J.L. (?), 01-Апр-19, 18:46   +/
> Ну а как там все-таки разруливается, что компиляция программулины компилятором gcc 8.1
> приведет к такой-то бинари, а компилятором gcc 8.2 - вот к
> такой? И с каких это пор одна лишь ревизия gcc достаточна?
> - он сам по себе может быть собран с патчами или
> без, с такими-то опциями или сякими-то. Не бывает четкой связи между
> "ревизией (коммитом) сорцов" и бинарем. А чтобы она случилась, нужно сверхгигантское
> количество предпосылок и допущений.

вы не понимаете суть
у вас есть версия в которой написано что собрана она таким-то компилятором с такой то ревизии из проекта Heritage
вы можете проверить это экспериментальным путём

а если авторы пакета не способны предоставить указание о версии компилятора и номере ревизии из проекта Heritage (или аналога), то вы им говорите что они скриптокидихацкеры, и бинарный пакет у них брать не будете

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

22. Сообщение от J.L. (?), 01-Апр-19, 18:46   +/
> ALT Linux не запрещен на территории Российской Федерации!

это временно

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

23. Сообщение от Wladmis (ok), 01-Апр-19, 20:00   +/
> Ну а как там все-таки разруливается, что компиляция программулины компилятором gcc 8.1
> приведет к такой-то бинари, а компилятором gcc 8.2 - вот к
> такой? И с каких это пор одна лишь ревизия gcc достаточна?
> - он сам по себе может быть собран с патчами или
> без, с такими-то опциями или сякими-то. Не бывает четкой связи между
> "ревизией (коммитом) сорцов" и бинарем. А чтобы она случилась, нужно сверхгигантское
> количество предпосылок и допущений.

Очевидно, что результат сборки пакетов есть результат некоторой функции сборки от друх переменный: исходников и сборочного окружения. И результаты для одних и тех же исходников, но разных сборочных окружений, может различаться. Поэтому для воспроизведения сборки необходимо хранить информацию о сборочном окружении для кадого собранного пакета. Не знаю, что сделано в Heritage, в ALT для информация о них хранится в сборочных тасках и заносится в индекс собранных пакетов.

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

24. Сообщение от freehckemail (ok), 01-Апр-19, 20:33   +/
> Чем это лучше hasher от ALT Linux?

Вообще-то тут правильнее сравнивать с Gears.

Hasher -- это более низкоуровневый инструмент, аналог дебиановского pbuilder-а, ну или рхеловского mock.

Что касается сравнения с Gears, то правильный ответ -- ничем. Эти инструменты заточены под оси с принципиально разными архитектурными подходами. Да, они выполняют в них схожий функционал, но они не могут заменить друг друга от слова совсем.

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

25. Сообщение от Andrey Mitrofanov (?), 02-Апр-19, 09:14   +/
> Людвика Курте, в которой

Он [людовИк кортЭз].

Желающие приглашаются посмотреть-послушать его в ты-трубе.

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

26. Сообщение от Аноним (26), 05-Апр-19, 22:49   +1 +/
На openSUSE сделал следующее:

$ zypper in guix
$ sudo systemctl enable --now guix-daemon.service

Дальше выполнил пункты 7-8 здесь (substitute server authorisation и application setup): http://guix.info/manual/en/Binary-Installation.html#Binary-I...

И всё работает.

Если в вашем дистре пока нет guix, то следуйте инструкциям начиная с первого пункта или соберите "родной" для вашего дистра пакет (deb/rpm/etc.). Я в своё время сделал ebuild для Gentoo, когда его ещё не было ни в одном оверлее или в основной репе Gentoo, и это было крайне просто.

FYI, поделюсь опытом своей ошибки в начале. guix refresh будет пытаться сам определить наличие более свежих версий пакетов в апстриме с разных источников. С опцией --update он будет заменять файлы с определениями пакетов на диске. Не пытайтесь вызвать эту команду без аргументов и без надобности, скорее всего она провалился из-за rate limit'ов на github и других серверах. Если же в качестве аргументов команды указать список пакетов для рефреша, то наличие новых версий будет проверено лишь для них, и это вполне безопасно. Если вы не собираетесь самостоятельно обновлять пакеты до версий, определений которых ещё нет в git-репе guix, и бинарных пакетов для которых ещё нет на substitute-серверах, то команда guix refresh вам не нужна. Вместо этого обновляйте определения из git-репы через guix pull и бинарные пакеты через guix package -u. Кроме того, guix pull обновляет и сам пакетный менеджер guix вместе со всеми его модулями, но при этом не затрагивает то, что было установлено через хостовой пакетный менеджер. Фактически у каждого пользователя guix на одной машине может быть его отдельная копия, или даже несколько разных копий.

P.S. Если будет жалеться на отсутствие /usr/lib/libgit2 или /usr/lib64/libgit2, то установите libgit2-devel или libgit2-dev в вашем хостовом дистре.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #27

27. Сообщение от Аноним (26), 05-Апр-19, 22:51   +/
Небольшая поправка: пункт 7 в моём случае выглядел так:

$ guix archive --authorize < /usr/share/guix/ci.guix.info.pub

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


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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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