electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

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:
Dcontrib/build-wine/README | 18------------------
Acontrib/build-wine/README.md | 28++++++++++++++++++++++++++++
Mcontrib/build-wine/build-electrum-git.sh | 1-
Acontrib/build-wine/build.sh | 23+++++++++++++++++++++++
Mcontrib/build-wine/prepare-hw.sh | 34++++------------------------------
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