Тут не исправить уже ничего, Господь, жги! Войти !bnw Сегодня Клубы

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

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

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

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

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

@rayslava в guixSD ._.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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