You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.4 KiB
93 lines
2.4 KiB
#!/bin/bash |
|
|
|
NAME_ROOT=electrum |
|
PYTHON_VERSION=3.5.4 |
|
|
|
# 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 |
|
|
|
mkdir -p tmp |
|
cd tmp |
|
|
|
if [ -d ./electrum ]; then |
|
rm ./electrum -rf |
|
fi |
|
|
|
git clone https://github.com/spesmilo/electrum -b master |
|
|
|
pushd electrum |
|
if [ ! -z "$1" ]; then |
|
# a commit/tag/branch was specified |
|
if ! git cat-file -e "$1" 2> /dev/null |
|
then # can't find target |
|
# try pull requests |
|
git config --local --add remote.origin.fetch '+refs/pull/*/head:refs/remotes/origin/pr/*' |
|
git fetch --all |
|
fi |
|
git checkout $1 |
|
fi |
|
|
|
# Load electrum-icons and electrum-locale for this release |
|
git submodule init |
|
git submodule update |
|
|
|
pushd ./contrib/deterministic-build/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 |
|
|
|
VERSION=`git describe --tags --dirty` |
|
echo "Last commit: $VERSION" |
|
find -exec touch -d '2000-11-11T11:11:11+00:00' {} + |
|
popd |
|
|
|
rm -rf $WINEPREFIX/drive_c/electrum |
|
cp -r electrum $WINEPREFIX/drive_c/electrum |
|
cp electrum/LICENCE . |
|
cp -r ./electrum/contrib/deterministic-build/electrum-locale/locale $WINEPREFIX/drive_c/electrum/lib/ |
|
cp ./electrum/contrib/deterministic-build/electrum-icons/icons_rc.py $WINEPREFIX/drive_c/electrum/gui/qt/ |
|
|
|
# Install frozen dependencies |
|
$PYTHON -m pip install -r ../../deterministic-build/requirements.txt |
|
|
|
$PYTHON -m pip install -r ../../deterministic-build/requirements-hw.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 -exec touch -d '2000-11-11T11:11:11+00:00' {} + |
|
popd |
|
|
|
# build NSIS installer |
|
# $VERSION could be passed to the electrum.nsi script, but this would require some rewriting in the script itself. |
|
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
|
|
|