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

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

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

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

#WO1L2G / @ninesigns / 3672 дня назад

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

@rayslava в guixSD ._.

#WO1L2G/EI3 / @ninesigns --> #WO1L2G/6D3 / 3672 дня назад

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

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

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

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

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

#WO1L2G/YUF / @ninesigns --> #WO1L2G/N5E / 3672 дня назад

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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