#!/bin/bash NAME_ROOT=electrum PYTHON_VERSION=3.5.4 if [ "$#" -gt 0 ]; then BRANCH="$1" fi # These settings probably don't need any change export WINEPREFIX=/opt/wine64 export PYTHONDONTWRITEBYTECODE=1 export PYTHONHASHSEED=22 PYHOME=c:/python$PYTHON_VERSION PYTHON="wine $PYHOME/python.exe -OO -B" # Let's begin! cd `dirname $0` set -e cd tmp for repo in electrum electrum-locale electrum-icons; do if [ -d $repo ]; then cd $repo git pull git checkout master cd .. else URL=https://github.com/spesmilo/$repo.git git clone -b master $URL $repo fi done pushd electrum-locale for i in ./locale/*; do dir=$i/LC_MESSAGES mkdir -p $dir msgfmt --output-file=$dir/electrum.mo $i/electrum.po || true done popd pushd electrum VERSION=`git describe --tags` echo "Last commit: $VERSION" popd rm -rf $WINEPREFIX/drive_c/electrum cp -r electrum $WINEPREFIX/drive_c/electrum cp electrum/LICENCE . cp -r electrum-locale/locale $WINEPREFIX/drive_c/electrum/lib/ cp electrum-icons/icons_rc.py $WINEPREFIX/drive_c/electrum/gui/qt/ # Install frozen dependencies $PYTHON -m pip install -r ../../requirements.txt pushd $WINEPREFIX/drive_c/electrum $PYTHON setup.py install popd cd .. rm -rf dist/ # build standalone and portable versions wine "C:/python$PYTHON_VERSION/scripts/pyinstaller.exe" --noconfirm --ascii --name $NAME_ROOT-$VERSION -w deterministic.spec # set timestamps in dist, in order to make the installer reproducible pushd dist find -type f -exec touch -d '2000-01-1 18:00:16' {} + popd # build NSIS installer # $VERSION could be passed to the electrum.nsi script, but this would require some rewriting in the script iself. wine "$WINEPREFIX/drive_c/Program Files (x86)/NSIS/makensis.exe" /DPRODUCT_VERSION=$VERSION electrum.nsi cd dist mv electrum-setup.exe $NAME_ROOT-$VERSION-setup.exe cd .. echo "Done." md5sum dist/electrum*exe