Имбирь - твой спиритический овощ. Войти !bnw Сегодня Клубы

в gsoc2015 для guix будут пилить бинарные substitute сборке из сорцов.

То есть, если есть кто-то в сети с бинарем с хешем, который должен получиться из сборки, то build daemon не будет собирать пакетик, а выкачает его из распределенной сети.
https://osdir.com/ml/gnunet-developers-gnu/2015-03/msg00011.html

охуенно, кмк.

#WO1L2G / @ninesigns / 4081 день назад

А этот guix куда-нибудь внедрили уже?
#WO1L2G/6D3 / @rayslava / 4081 день назад
Уже придумали как защититься от виросов? // по линку не ходил
#WO1L2G/FTD / @l29ah / 4081 день назад

@rayslava в guixSD ._.

#WO1L2G/EI3 / @ninesigns --> #WO1L2G/6D3 / 4081 день назад

@l29ah the hash here is a hash of all the relevant info, including the architecture, etc

#WO1L2G/QNZ / @ninesigns --> #WO1L2G/FTD / 4081 день назад
@4da Это "да" или "нет"?
#WO1L2G/DDX / @l29ah --> #WO1L2G/QNZ / 4081 день назад

@l29ah да, придумали.

#WO1L2G/6R6 / @ninesigns --> #WO1L2G/DDX / 4081 день назад
По настоящему круто, но я не понимаю как они узнают хеш раньше того момента когда всё будет собрано. И наверно это не безопасно раз мы можем так манипулировать хешами. А с си так можно или это фича лиспа?
#WO1L2G/N5E / @funtic / 4081 день назад
@4da Как?
#WO1L2G/UWR / @l29ah --> #WO1L2G/6R6 / 4081 день назад

@funtic можно на scheme это просто более хакабельно получается.

#WO1L2G/YUF / @ninesigns --> #WO1L2G/N5E / 4081 день назад

@l29ah ```

Substitutes can be anything resulting from a derivation build (see Derivations). Of course, in the common case, they are pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes.

The hydra.gnu.org server is a front-end to a build farm that builds packages from the GNU distribution continuously for some architectures, and makes them available as substitutes. This is the default source of substitutes; it can be overridden by passing guix-daemon the --substitute-urls option (see Invoking guix-daemon).

To allow Guix to download substitutes from hydra.gnu.org, you must add its public key to the access control list (ACL) of archive imports, using the guix archive command (see Invoking guix archive). Doing so implies that you trust hydra.gnu.org to not be compromised and to serve genuine substitutes.

This public key is installed along with Guix, in prefix/share/guix/hydra.gnu.org.pub, where prefix is the installation prefix of Guix. If you installed Guix from source, make sure you checked the GPG signature of guix-0.8.1.tar.gz, which contains this public key file. Then, you can run something like this:

guix archive --authorize < hydra.gnu.org.pub

Once this is in place, the output of a command like guix build should change from something like:

$ guix build emacs --dry-run
The following derivations would be built:
/gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv
/gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv
/gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv
/gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv

to something like:

$ guix build emacs --dry-run
The following files would be downloaded:
/gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3
/gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d
/gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16
/gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7

This indicates that substitutes from hydra.gnu.org are usable and will be downloaded, when possible, for future builds.

Guix ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL. It also detects and raises an error when attempting to use a substitute that has been tampered with.
```

#WO1L2G/YE4 / @ninesigns --> #WO1L2G/UWR / 4081 день назад
@4da И где тут распределённая сеть блять?
#WO1L2G/U4G / @l29ah --> #WO1L2G/YE4 / 4081 день назад
>будут пилить бинарные substitute сборке из сорцов >не будут пилить ReproducibleBuilds охуенно кмк
#WO1L2G/PNQ / @anonymous / 4081 день назад
А, понял. Мне сначала показалось что речь толко о guile, но тут универсальный вроде же принцип.
#WO1L2G/YD2 / @funtic / 4081 день назад

@l29ah ты настолько тупой что не можешь сэкстраполировать принцип на распределенную сеть?
в gnunet адресом файла является его хеш

#WO1L2G/LEL / @ninesigns --> #WO1L2G/U4G / 4081 день назад
@4da Не могу. Там ты доверяешь конкретному билдеру пакетов.
#WO1L2G/5H9 / @l29ah --> #WO1L2G/LEL / 4081 день назад

@l29ah на сайте hydra.gnu вывешена базка билдов с хешами. ты фетчишь из сети файл с таким же хешом, профит.

#WO1L2G/3CC / @ninesigns --> #WO1L2G/5H9 / 4081 день назад
@4da А. Например мне показалось что всё сложнее. Что пакетный менеджер видит требуемое для пакета ПО, его версию, потом на основе этих данных пытается найти собраный пакет.
#WO1L2G/NQJ / @funtic --> #WO1L2G/3CC / 4081 день назад
@4da Че.
#WO1L2G/K21 / @l29ah --> #WO1L2G/3CC / 4081 день назад
@l29ah Что здесь "хеш"?
#WO1L2G/CN4 / @l29ah --> #WO1L2G/K21 / 4081 день назад
@l29ah Хотя забей, для десктопа не готово всё равно.
#WO1L2G/PEN / @l29ah --> #WO1L2G/CN4 / 4081 день назад

@l29ah линукс не готов для десктопа

#WO1L2G/CBV / @ninesigns --> #WO1L2G/PEN / 4081 день назад
@4da Дженту готова.
#WO1L2G/8EV / @l29ah --> #WO1L2G/CBV / 4081 день назад

@l29ah детерминированно вычислимое длинное число, которое можно сопоставить каждому файлу.

#WO1L2G/K29 / @ninesigns --> #WO1L2G/CN4 / 4081 день назад
@4da То есть, это хеш билда, а не конфигурации, ок.
#WO1L2G/72I / @l29ah --> #WO1L2G/K29 / 4081 день назад
@l29ah Хеш пакета который получился в результате сборки. Если все пакеты имели те же версии, то и пакет будет иметь тот же хеш потому что один и тот же код вернёт один и тот же результат в одних и тех же условиях. Десу.
#WO1L2G/OWK / @funtic --> #WO1L2G/CN4 / 4081 день назад
умеет ли оно пакеты _УДАЛЯТЬ_ ?
#WO1L2G/PQB / @ruki / 4081 день назад
@funtic Не будет.
#WO1L2G/IV7 / @l29ah --> #WO1L2G/OWK / 4081 день назад
@funtic GCC вставляет секции с build time, build id и иногда с compiler info. Так что там ещё надо хитро стрипать, чтобы это работало.
#WO1L2G/QJN / @rayslava --> #WO1L2G/OWK / 4081 день назад

@ruki бля хз, у тебя что мало место на харде?

#WO1L2G/2FC / @ninesigns --> #WO1L2G/PQB / 4081 день назад
@rayslava И таймстемпы все сбросить для тара.
#WO1L2G/QZJ / @l29ah --> #WO1L2G/QJN / 4081 день назад
@l29ah Короче, очень много дополнительных условий
#WO1L2G/8HD / @rayslava --> #WO1L2G/QZJ / 4081 день назад
@rayslava Можно выдумать хешировалку чтобы она распознавала такие фрагменты и не учитывала их. Распаковать, вырезать таймстепы, запаковать, вырезать там тоже.
#WO1L2G/UBT / @funtic --> #WO1L2G/8HD / 4081 день назад

@funtic с gcc можно собрать bit-identical binary, нужно немного поебаться только.

#WO1L2G/D12 / @ninesigns --> #WO1L2G/UBT / 4081 день назад
@funtic Я же говорю, это делается strip'ом после сборки. Другой вопрос, что при таком раскладе я не понимаю смысла. Зачем мне выкачивать пакет, который я только что собрал у себя локально?
#WO1L2G/WEM / @rayslava --> #WO1L2G/UBT / 4081 день назад

@rayslava ты не собираешь пакет у себя локально, однако пакет собраный тобой будет иметь такой же хеш как на билдферме и ты сможешь сидить его в сети.

#WO1L2G/WXT / @ninesigns --> #WO1L2G/WEM / 4081 день назад
@4da удобно
#WO1L2G/BPL / @anonymous --> #WO1L2G/2FC / 4081 день назад
@4da > ты не собираешь пакет
#WO1L2G/OBO / @rayslava --> #WO1L2G/WXT / 4081 день назад
@4da -march=native
#WO1L2G/IGP / @l29ah --> #WO1L2G/WXT / 4081 день назад
@4da > пакет собранный тобой
#WO1L2G/IA5 / @rayslava --> #WO1L2G/WXT / 4081 день назад

@rayslava и чо? можешь не собирать и выкачать. можешь собирать и раздавать. не вижу противоречия.

#WO1L2G/OZL / @ninesigns --> #WO1L2G/IA5 / 4081 день назад
@4da Вот теперь понял. Ну ок, ладно. Типа скрестили генту с сабайоном.
#WO1L2G/U5P / @rayslava --> #WO1L2G/OZL / 4081 день назад
Можно пойти дальше и скрестить это дело с сетью доверия. Я собираю пакет и публикую use флаги и версии сборочных зависимостей и если у кого-то они совпадут и тот доверяет мне - он может скачать его у меня вместо того чтобы собирать самому.
#WO1L2G/C9R / @funtic / 4081 день назад
@ruki Nix умеет. Guix, наверное, тоже.
#WO1L2G/UA7 / @etw --> #WO1L2G/PQB / 4081 день назад
@funtic Зачем вводить понятие доверия пиру, если собрка пакета с конкретными use-флагами будет однозначо идентифицирована хешом? Тут нужено доверять только серверу с метаданными сборок и алгоритму хеширования.
#WO1L2G/BKQ / @etw --> #WO1L2G/C9R / 4081 день назад
@etw Ну в том то и суть что я хочу от сервера отказаться вообще.
#WO1L2G/3ZW / @funtic --> #WO1L2G/BKQ / 4081 день назад
@funtic И у тебя вместо "сервера" будет "пир" (я все еще не понимаю чем предложенная тобой схема отличается от поднятия частных серверов метаданных и доверия к некоторым их них). Только по пути ты еще потеряешь однозначную идентификацию сборки, ради которой и созданы nix и guix.
#WO1L2G/7WZ / @etw --> #WO1L2G/3ZW / 4081 день назад
@etw В общем-то ничем. Просто сервер у каждого участника, по умолчанию.
#WO1L2G/E0A / @funtic --> #WO1L2G/7WZ / 4081 день назад
@funtic А по поводу однозначности ...ну наверно будет больше вариантов, но можно следить за ними как-то децентрализованно.
#WO1L2G/95K / @funtic --> #WO1L2G/E0A / 4081 день назад
@funtic И как ты за ними следить будешь? Вот у тебя друзья Вася и Петя опубликовали пакет с одним и тем же набором юзфлагов и зависимостей, как ты однозначно скажешь одинаковые ли эти пакеты или разные? То, что делают nix и guix - это масштабируемо, а у тебя какое-то очередное F2F-криптопетушение для полутора фриков без видимых преимуществ, зато с кучей ручной работы.
#WO1L2G/VND / @etw --> #WO1L2G/95K / 4081 день назад
@etw Считаешь глупо?
#WO1L2G/H1L / @funtic --> #WO1L2G/VND / 4081 день назад
@funtic Я считаю, что придуманный тобой велосипед по сравнению с тем что есть не дает никаких преимуществ, но имеет недостатки. Установление доверия к источнику уже есть (причем, в любом пакетном менеджере), т.к. ты доверяешь тому, что добавляешь в список "каналов"/репозиториев. При этом также имеется способ однозначной идентификации сборки через хеш и устранение боли от dependency hell, что, в общем-то, и является самой большой проблемой при использовании пакетных менеджеров.
#WO1L2G/4NS / @etw --> #WO1L2G/H1L / 4081 день назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.