Use requirements files

This commit is contained in:
Johann Bauer 2018-01-31 13:16:27 +01:00
parent b9fa89ec19
commit 0f40c14792
3 changed files with 52 additions and 11 deletions

View File

@ -5,6 +5,8 @@ This guide explains how to build Electrum binaries for macOS systems.
We build our binaries on El Capitan (10.11.6) as building it on High Sierra
makes the binaries incompatible with older versions.
This assumes that the Xcode command line tools (and thus git) are already installed.
## 1. Run the script
@ -13,5 +15,3 @@ makes the binaries incompatible with older versions.
./make_osx
## 2. Done
Hopefully it will be that simple.

View File

@ -1,14 +1,45 @@
#!/bin/bash
RED='\033[0;31m'
BLUE='\033[0,34m'
NC='\033[0m' # No Color
function info {
printf "\r💬 ${BLUE}INFO:${NC} ${1}\n"
}
function fail {
printf "\r🗯 ${RED}ERROR:${NC} ${1}\n"
exit 1
}
build_dir=$(dirname "$0")
test -n "$build_dir" -a -d "$build_dir" || exit
cd $build_dir/../..
export PYTHONHASHSEED=22
VERSION=`git describe --tags`
PYTHON_VERSION=3.6.4
info "Installing Python $PYTHON_VERSION"
export PATH="~/.pyenv/bin:~/.pyenv/shims:$PATH:~/Library/Python/3.6/bin"
if [ -d "~/.pyenv" ]; then
pyenv update
else
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash > /dev/null 2>&1
fi
PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install -s $PYTHON_VERSION && \
pyenv global $PYTHON_VERSION || \
fail "Unable to use Python $PYTHON_VERSION"
if ! which pyinstaller > /dev/null; then
info "Installing pyinstaller"
python3 -m pip install pyinstaller -I --user || fail "Could not install pyinstaller"
fi
info "Using these versions for building Electrum:"
sw_vers
python3 --version
echo -n "Pyinstaller version "
echo -n "Pyinstaller "
pyinstaller --version
rm -rf ./dist
@ -17,8 +48,7 @@ rm -rf ./dist
rm -rf /tmp/electrum-build > /dev/null 2>&1
mkdir /tmp/electrum-build
echo "Downloading icons and locale..."
info "Downloading icons and locale..."
for repo in icons locale; do
git clone https://github.com/spesmilo/electrum-$repo /tmp/electrum-build/electrum-$repo
done
@ -26,9 +56,20 @@ done
cp -R /tmp/electrum-build/electrum-locale/locale/ ./lib/locale/
cp /tmp/electrum-build/electrum-icons/icons_rc.py ./gui/qt/
echo "Building Electrum..."
python3 setup.py install --user > /dev/null
python3 -m pip install pyqt5 --user
info "Installing requirements..."
python3 -m pip install -Ir ./contrib/deterministic-build/requirements.txt --user && \
python3 -m pip install pyqt5 --user || \
fail "Could not install requirements"
pyinstaller --noconfirm --ascii --name $VERSION contrib/build-osx/osx.spec
hdiutil create -fs HFS+ -volname "Electrum" -srcfolder dist/Electrum.app dist/electrum-$VERSION.dmg
info "Installing hardware wallet requirements..."
python3 -m pip install -Ir ./contrib/deterministic-build/requirements-hw.txt --user || \
fail "Could not install hardware wallet requirements"
info "Building Electrum..."
python3 setup.py install --user > /dev/null || fail "Could not build Electrum"
info "Building binary"
pyinstaller --noconfirm --ascii --name $VERSION contrib/build-osx/osx.spec || fail "Could not build binary"
info "Creating .DMG"
hdiutil create -fs HFS+ -volname "Electrum" -srcfolder dist/Electrum.app dist/electrum-$VERSION.dmg || fail "Could not create .DMG"

View File

@ -12,7 +12,7 @@ for i, x in enumerate(sys.argv):
else:
raise BaseException('no version')
electrum = os.path.abspath("../../")
electrum = os.path.abspath(".") + "/"
block_cipher = None
# see https://github.com/pyinstaller/pyinstaller/issues/2005