The OpenNET Project / Index page

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



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

"Связывание повторяемых сборок GNU Guix с архивом исходных те..."  +/
Сообщение от opennews (?), 30-Мрт-19, 20:04 
Доступен (https://www.opennet.dev/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.dev/tips/3100_gnu_guix_heritage.shtml
Новость: https://www.opennet.dev/opennews/art.shtml?num=50425

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

Оглавление

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


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

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

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

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

3. "Связывание повторяемых сборок GNU Guix с архивом исходных те..."  +12 +/
Сообщение от ШО (?), 30-Мрт-19, 20:49 
Очевидно тем, что это не ALT Linux
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

это временно

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

20. "Связывание повторяемых сборок GNU Guix с архивом исходных те..."  +/
Сообщение от Wladmis (ok), 31-Мрт-19, 21:08 
> Чем это лучше hasher от ALT Linux?

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

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

24. "Связывание повторяемых сборок GNU Guix с архивом исходных те..."  +/
Сообщение от freehckemail (ok), 01-Апр-19, 20:33 
> Чем это лучше hasher от ALT Linux?

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

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

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

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

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

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

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

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

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

26. "Связывание повторяемых сборок GNU Guix с архивом исходных те..."  +1 +/
Сообщение от Аноним (26), 05-Апр-19, 22:49 
На 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ообщить модератору

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

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

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

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

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

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

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

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

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




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

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