commit 3e72e7a3f07fd0436b74299fb70c9669fa04c70d
parent 78400478fa19f1b58aa6e3587c8db7a5a5057c9d
Author: ThomasV <thomasv@electrum.org>
Date: Tue, 28 Nov 2017 06:23:21 +0100
Merge pull request #3397 from bauerj/build-sh
Add script for deterministic builds
Diffstat:
5 files changed, 55 insertions(+), 49 deletions(-)
diff --git a/contrib/build-wine/README b/contrib/build-wine/README
@@ -1,18 +0,0 @@
-These scripts can be used for cross-compilation of Windows Electrum executables from Linux/Wine.
-
-Usage:
-1. Install wine (development version)
-
- $ sudo apt-get install wine-development
- $ sudo ln -sf /usr/bin/wine-development /usr/local/bin/wine
- $ wine --version
- wine-2.0 (Debian 2.0-3+b2)
-
-2. Run "./prepare-wine.sh", it will download all dependencies. When you'll be asked, always leave default settings and press "Next >".
-3. Run "./prepare-hw.sh" to build support for hardware wallets (TREZOR)
-4. Run "./build-electrum-git.sh". Sources will be packed into three separate versions to dist/ directory:
- * Standalone compressed executable is "dist/electrum.exe"
- * Uncompressed binaries are in "dist/electrum". They're useful for comparsion with other builds.
- * NSIS-based installer of Electrum is "electrum-setup.exe"
-7. Everytime you want to rebuild new version of Electrum just change the path to ZIP file in "build-electrum.sh" and re-run the script.
-
diff --git a/contrib/build-wine/README.md b/contrib/build-wine/README.md
@@ -0,0 +1,28 @@
+Windows Binary Builds
+=====================
+
+
+These scripts can be used for cross-compilation of Windows Electrum executables from Linux/Wine.
+Produced binaries are deterministic so you should be able to generate binaries that match the official releases.
+
+Usage:
+1. Install Wine 2, e.g.
+
+```
+$ sudo apt-get install wine-development
+$ sudo ln -sf /usr/bin/wine-development /usr/local/bin/wine
+$ wine --version
+ wine-2.0 (Debian 2.0-3+b2)
+```
+
+or
+
+```
+$ pacman -S wine
+$ wine --version
+ wine-2.21
+```
+
+2. Make sure `/opt` is writable by the current user.
+3. Run `build.sh`.
+4. The generated binaries are in `dist`.
diff --git a/contrib/build-wine/build-electrum-git.sh b/contrib/build-wine/build-electrum-git.sh
@@ -9,7 +9,6 @@ fi
# These settings probably don't need any change
export WINEPREFIX=/opt/wine64
-export PYTHONHASHSEED=22
export PYTHONDONTWRITEBYTECODE=1
PYHOME=c:/python$PYTHON_VERSION
diff --git a/contrib/build-wine/build.sh b/contrib/build-wine/build.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+# Lucky number
+export PYTHONHASHSEED=22
+
+here=$(dirname "$0")
+
+echo "Clearing $here/build and $here/dist..."
+rm $here/build/* -rf
+rm $here/dist/* -rf
+
+$here/prepare-wine.sh && \
+$here/prepare-pyinstaller.sh && \
+$here/prepare-hw.sh || exit 1
+
+echo "Resetting modification time in C:\Python..."
+# (Because of some bugs in pyinstaller)
+pushd /opt/wine64/drive_c/python*
+find -type f -exec touch -d '2000-11-11 11:11:11' {} +
+popd
+ls -l /opt/wine64/drive_c/python*
+
+$here/build-electrum-git.sh && \
+echo "Done."
diff --git a/contrib/build-wine/prepare-hw.sh b/contrib/build-wine/prepare-hw.sh
@@ -20,35 +20,9 @@ set -e
cd tmp
-# download mingw-get-setup.exe
-#wget https://downloads.sourceforge.net/project/mingw/Installer/mingw-get-setup.exe
-#wine mingw-get-setup.exe
-
-#echo "add c:\MinGW\bin to PATH using regedit" in HKEY_CURRENT_USER/Environment
-#regedit
-#exit
-
-#wine mingw-get install gcc
-#wine mingw-get install mingw-utils
-#wine mingw-get install mingw32-libz
-
-
-#create cfg file
-#printf "[build]\ncompiler=mingw32\n" > /opt/wine64/drive_c/Python27/Lib/distutils/distutils.cfg
-
-# Install Cython
$PYTHON -m pip install setuptools --upgrade
-$PYTHON -m pip install cython
-$PYTHON -m pip install trezor --upgrade
-$PYTHON -m pip install keepkey --upgrade
-$PYTHON -m pip install btchip-python --upgrade
-
-#git clone https://github.com/trezor/cython-hidapi.git
-#replace: from distutils.core import setup, Extenstion
-#cd cython-hidapi
-#git submodule init
-#git submodule update
-#$PYTHON setup.py install
-#cd ..
-
+$PYTHON -m pip install cython --upgrade
+$PYTHON -m pip install trezor==0.7.16 --upgrade
+$PYTHON -m pip install keepkey==4.0.0 --upgrade
+$PYTHON -m pip install btchip-python==0.1.23 --upgrade