twine build: use docker to (try to) have reproducible builds - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
DIR commit 068b6acf792d0acdc861601322e70b7d99a6842a
DIR parent 8f25e147fdf3117d1be116b8c7952e1a3afb30d7
HTML Author: SomberNight <somber.night@protonmail.com>
Date: Fri, 29 Jun 2018 18:13:11 +0200
wine build: use docker to (try to) have reproducible builds
Diffstat:
A contrib/build-wine/docker/Dockerfi… | 29 +++++++++++++++++++++++++++++
A contrib/build-wine/docker/README.md | 42 +++++++++++++++++++++++++++++++
2 files changed, 71 insertions(+), 0 deletions(-)
---
DIR diff --git a/contrib/build-wine/docker/Dockerfile b/contrib/build-wine/docker/Dockerfile
t@@ -0,0 +1,29 @@
+FROM ubuntu:18.04@sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d
+
+ENV LC_ALL=C.UTF-8 LANG=C.UTF-8
+
+RUN dpkg --add-architecture i386 && \
+ apt-get update -qq && \
+ apt-get install -qq \
+ wget=1.19.4-1ubuntu2.1 \
+ gnupg2=2.2.4-1ubuntu1.1 \
+ dirmngr=2.2.4-1ubuntu1.1 \
+ software-properties-common=0.96.24.32.3 \
+ && \
+ wget -nc https://dl.winehq.org/wine-builds/Release.key && \
+ apt-key add Release.key && \
+ apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/ && \
+ apt-get update -qq && \
+ apt-get install -qq \
+ winehq-stable=3.0.1~bionic \
+ git=1:2.17.1-1ubuntu0.1 \
+ p7zip-full=16.02+dfsg-6 \
+ make=4.1-9.1ubuntu1 \
+ mingw-w64=5.0.3-1 \
+ autotools-dev=20180224.1 \
+ autoconf=2.69-11 \
+ libtool=2.4.6-2 \
+ && \
+ rm -rf /var/lib/apt/lists/* && \
+ apt-get autoremove -y && \
+ apt-get clean
DIR diff --git a/contrib/build-wine/docker/README.md b/contrib/build-wine/docker/README.md
t@@ -0,0 +1,42 @@
+Deterministic Windows binaries with Docker
+==========================================
+
+This assumes an Ubuntu host, but it should not be too hard to adopt to another
+similar system.
+
+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
+
+ ```
+ $ cd contrib/build-wine/docker
+ $ PROJECT_ROOT=$(pwd)/../../../
+ $ sudo docker build --no-cache -t electrum-wine-builder-img .
+ ```
+
+ Note: see [this](https://stackoverflow.com/a/40516974/7499128) if having dns problems
+
+3. Build Windows binaries
+
+ ```
+ $ TARGET=master
+ $ sudo docker run \
+ --name electrum-wine-builder-cont \
+ -v ${PROJECT_ROOT}:/opt/electrum \
+ --rm \
+ --workdir /opt/electrum/contrib/build-wine \
+ electrum-wine-builder-img \
+ ./build.sh $TARGET
+ ```
+4. The generated binaries are in `$PROJECT_ROOT/contrib/build-wine/dist`.
+
+
+
+Note: the `setup` binary (NSIS installer) is not deterministic yet.