УМННБJ, ЯХВ. Войти !bnw Сегодня Клубы

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

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

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

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

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

@rayslava в guixSD ._.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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