БЕГЕМОТИКОВ МОЖНО! Войти !bnw Сегодня Клубы

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

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

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

#WO1L2G / @ninesigns / 3286 дней назад

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

@rayslava в guixSD ._.

#WO1L2G/EI3 / @ninesigns --> #WO1L2G/6D3 / 3286 дней назад

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

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

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

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

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

#WO1L2G/YUF / @ninesigns --> #WO1L2G/N5E / 3286 дней назад

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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