SomberNight
4 years ago
9 changed files with 110 additions and 20 deletions
@ -1,16 +0,0 @@ |
|||||
Source tarballs |
|
||||
=============== |
|
||||
|
|
||||
✗ _This script does not produce reproducible output (yet!)._ |
|
||||
|
|
||||
1. Prepare python dependencies used by Electrum. |
|
||||
|
|
||||
``` |
|
||||
contrib/make_packages |
|
||||
``` |
|
||||
|
|
||||
2. Create source tarball. |
|
||||
|
|
||||
``` |
|
||||
contrib/make_tgz |
|
||||
``` |
|
@ -0,0 +1,16 @@ |
|||||
|
FROM ubuntu:18.04@sha256:b58746c8a89938b8c9f5b77de3b8cf1fe78210c696ab03a1442e235eea65d84f |
||||
|
|
||||
|
ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 |
||||
|
|
||||
|
RUN apt-get update -q && \ |
||||
|
apt-get install -qy \ |
||||
|
git \ |
||||
|
gettext \ |
||||
|
python3 \ |
||||
|
python3-pip \ |
||||
|
python3-setuptools \ |
||||
|
faketime \ |
||||
|
&& \ |
||||
|
rm -rf /var/lib/apt/lists/* && \ |
||||
|
apt-get autoremove -y && \ |
||||
|
apt-get clean |
@ -0,0 +1,50 @@ |
|||||
|
Source tarballs |
||||
|
=============== |
||||
|
|
||||
|
✗ _This script does not produce reproducible output (yet!)._ |
||||
|
|
||||
|
This assumes an Ubuntu (x86_64) host, but it should not be too hard to adapt to another |
||||
|
similar system. The docker commands should be executed in the project's root |
||||
|
folder. |
||||
|
|
||||
|
1. Install Docker |
||||
|
|
||||
|
``` |
||||
|
$ 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 |
||||
|
``` |
||||
|
|
||||
|
2. Build image |
||||
|
|
||||
|
``` |
||||
|
$ sudo docker build -t electrum-sdist-builder-img contrib/build-linux/sdist |
||||
|
``` |
||||
|
|
||||
|
3. Build source tarballs |
||||
|
|
||||
|
It's recommended to build from a fresh clone |
||||
|
(but you can skip this if reproducibility is not necessary). |
||||
|
|
||||
|
``` |
||||
|
$ FRESH_CLONE=contrib/build-linux/sdist/fresh_clone && \ |
||||
|
sudo rm -rf $FRESH_CLONE && \ |
||||
|
mkdir -p $FRESH_CLONE && \ |
||||
|
cd $FRESH_CLONE && \ |
||||
|
git clone https://github.com/spesmilo/electrum.git && \ |
||||
|
cd electrum |
||||
|
``` |
||||
|
|
||||
|
And then build from this directory: |
||||
|
``` |
||||
|
$ git checkout $REV |
||||
|
$ sudo docker run -it \ |
||||
|
--name electrum-sdist-builder-cont \ |
||||
|
-v $PWD:/opt/electrum \ |
||||
|
--rm \ |
||||
|
--workdir /opt/electrum/contrib/build-linux/sdist \ |
||||
|
electrum-sdist-builder-img \ |
||||
|
./build.sh |
||||
|
``` |
||||
|
4. The generated distributables are in `./dist`. |
@ -0,0 +1,20 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
set -e |
||||
|
|
||||
|
PROJECT_ROOT="$(dirname "$(readlink -e "$0")")/../../.." |
||||
|
CONTRIB="$PROJECT_ROOT/contrib" |
||||
|
CONTRIB_SDIST="$CONTRIB/build-linux/sdist" |
||||
|
DISTDIR="$PROJECT_ROOT/dist" |
||||
|
|
||||
|
. "$CONTRIB"/build_tools_util.sh |
||||
|
|
||||
|
|
||||
|
"$CONTRIB"/make_packages || fail "make_packages failed" |
||||
|
|
||||
|
"$CONTRIB_SDIST"/make_tgz || fail "make_tgz failed" |
||||
|
|
||||
|
|
||||
|
info "done." |
||||
|
ls -la "$DISTDIR" |
||||
|
sha256sum "$DISTDIR"/* |
Loading…
Reference in new issue