Most of our build scripts are docker-based. (All, except the macOS build, which is a separate beast and always has to be special-cased at the cost of significant maintenance burden...)
Typically, the build flow is:
snapshot.debian.org
snapshot.debian.org
is often slow and sometimes keeps timing out :/
(see #8496)
snapshot.notset.fr
, but that mirror is missing
e.g. binary-i386
, which is needed for the wine/windows build.ELECBUILD_NOCACHE=1
. See below.To install Docker:
This assumes an Ubuntu (x86_64) host, but it should not be too hard to adapt to another similar system.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install -y docker-ce
To communicate with the docker daemon, the build scripts either need to be called via sudo,
or the unix user on the host system (e.g. the user you run as) needs to be
part of the docker
group. i.e.:
$ sudo usermod -aG docker ${USER}
(and then reboot or similar for it to take effect)
ELECBUILD_COMMIT
When unset or empty, we build directly from the local git clone. These builds are not reproducible.
When non-empty, it should be set to a git ref. We will create a fresh git clone
checked out at that reference in /tmp/electrum_build/
, and build there.
ELECBUILD_NOCACHE=1
A non-empty value forces a rebuild of the docker image.
Before we started using snapshot.debian.org
for apt sources,
setting this was necessary to properly test historical reproducibility.
(we were version-pinning packages installed using apt
, but it was not realistic to
version-pin all transitive dependencies, and sometimes an update of those resulted in
changes to our binary builds)
I think setting this is no longer necessary for building reproducibly.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )