From afa0168e1427fa0849ef219d596e1e91477b4e28 Mon Sep 17 00:00:00 2001 From: Johann Bauer Date: Sun, 11 Feb 2018 16:27:01 +0100 Subject: [PATCH] Add new requirements file for binaries in contrib --- .travis.yml | 2 +- contrib/build-osx/make_osx | 2 +- contrib/build-wine/prepare-wine.sh | 19 +++-------- .../requirements-binaries.txt | 5 +++ contrib/freeze_packages.sh | 33 +++++-------------- .../requirements/requirements-binaries.txt | 3 ++ .../requirements/requirements-hw.txt | 0 .../requirements/requirements-travis.txt | 0 .../requirements/requirements.txt | 0 setup.py | 6 ++-- 10 files changed, 25 insertions(+), 45 deletions(-) create mode 100644 contrib/deterministic-build/requirements-binaries.txt create mode 100644 contrib/requirements/requirements-binaries.txt rename requirements-hw.txt => contrib/requirements/requirements-hw.txt (100%) rename requirements_travis.txt => contrib/requirements/requirements-travis.txt (100%) rename requirements.txt => contrib/requirements/requirements.txt (100%) diff --git a/.travis.yml b/.travis.yml index 48355183..38a0acf8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ python: - 3.5 - 3.6 install: - - pip install -r requirements_travis.txt + - pip install -r contrib/requirements/requirements-travis.txt cache: - pip script: diff --git a/contrib/build-osx/make_osx b/contrib/build-osx/make_osx index d8af8c9d..ac265a7f 100755 --- a/contrib/build-osx/make_osx +++ b/contrib/build-osx/make_osx @@ -58,7 +58,7 @@ cp /tmp/electrum-build/electrum-icons/icons_rc.py ./gui/qt/ info "Installing requirements..." python3 -m pip install -Ir ./contrib/deterministic-build/requirements.txt --user && \ -python3 -m pip install pyqt5 --user || \ +python3 -m pip install -Ir ./contrib/deterministic-build/requirements-binaries.txt --user || \ fail "Could not install requirements" info "Installing hardware wallet requirements..." diff --git a/contrib/build-wine/prepare-wine.sh b/contrib/build-wine/prepare-wine.sh index ad26fca1..42828be7 100755 --- a/contrib/build-wine/prepare-wine.sh +++ b/contrib/build-wine/prepare-wine.sh @@ -73,27 +73,17 @@ done $PYTHON -m pip install pip --upgrade # Install pywin32-ctypes (needed by pyinstaller) -$PYTHON -m pip install pywin32-ctypes +$PYTHON -m pip install pywin32-ctypes==0.1.2 -# Install PyQt -$PYTHON -m pip install PyQt5 - -## Install pyinstaller -#$PYTHON -m pip install pyinstaller==3.3 +# install PySocks +$PYTHON -m pip install win_inet_pton==1.0.1 +$PYTHON -m pip install -r ../../deterministic-build/requirements-binaries.txt # Install ZBar #wget -q -O zbar.exe "https://sourceforge.net/projects/zbar/files/zbar/0.10/zbar-0.10-setup.exe/download" #wine zbar.exe -# install Cryptodome -$PYTHON -m pip install pycryptodomex - -# install PySocks -$PYTHON -m pip install win_inet_pton - -# install websocket (python2) -$PYTHON -m pip install websocket-client # Upgrade setuptools (so Electrum can be installed later) $PYTHON -m pip install setuptools --upgrade @@ -111,5 +101,4 @@ wine nsis.exe /S # add dlls needed for pyinstaller: cp $WINEPREFIX/drive_c/python$PYTHON_VERSION/Lib/site-packages/PyQt5/Qt/bin/* $WINEPREFIX/drive_c/python$PYTHON_VERSION/ - echo "Wine is configured. Please run prepare-pyinstaller.sh" diff --git a/contrib/deterministic-build/requirements-binaries.txt b/contrib/deterministic-build/requirements-binaries.txt new file mode 100644 index 00000000..af90b89d --- /dev/null +++ b/contrib/deterministic-build/requirements-binaries.txt @@ -0,0 +1,5 @@ +pycryptodomex==3.4.12 +PyQt5==5.9 +sip==4.19.7 +six==1.11.0 +websocket-client==0.46.0 \ No newline at end of file diff --git a/contrib/freeze_packages.sh b/contrib/freeze_packages.sh index 2d6b0375..3471e528 100755 --- a/contrib/freeze_packages.sh +++ b/contrib/freeze_packages.sh @@ -6,34 +6,17 @@ contrib=$(dirname "$0") which virtualenv > /dev/null 2>&1 || { echo "Please install virtualenv" && exit 1; } -# standard Electrum dependencies +for i in '' '-hw' '-binaries'; do + rm "$venv_dir" -rf + virtualenv -p $(which python3) $venv_dir -rm "$venv_dir" -rf -virtualenv -p $(which python3) $venv_dir + source $venv_dir/bin/activate -source $venv_dir/bin/activate + echo "Installing $i dependencies" -echo "Installing main dependencies" - -pushd $contrib/.. -python setup.py install -popd - -pip freeze | sed '/^Electrum/ d' > $contrib/deterministic-build/requirements.txt - - -# hw wallet library dependencies - -rm "$venv_dir" -rf -virtualenv -p $(which python3) $venv_dir - -source $venv_dir/bin/activate - -echo "Installing hw wallet dependencies" - -python -m pip install -r $contrib/../requirements-hw.txt --upgrade - -pip freeze | sed '/^Electrum/ d' > $contrib/deterministic-build/requirements-hw.txt + python -m pip install -r $contrib/requirements/requirements${i}.txt --upgrade + pip freeze | sed '/^Electrum/ d' > $contrib/deterministic-build/requirements${i}.txt +done echo "Done. Updated requirements" diff --git a/contrib/requirements/requirements-binaries.txt b/contrib/requirements/requirements-binaries.txt new file mode 100644 index 00000000..68181dd3 --- /dev/null +++ b/contrib/requirements/requirements-binaries.txt @@ -0,0 +1,3 @@ +PyQt5 +pycryptodomex +websocket-client \ No newline at end of file diff --git a/requirements-hw.txt b/contrib/requirements/requirements-hw.txt similarity index 100% rename from requirements-hw.txt rename to contrib/requirements/requirements-hw.txt diff --git a/requirements_travis.txt b/contrib/requirements/requirements-travis.txt similarity index 100% rename from requirements_travis.txt rename to contrib/requirements/requirements-travis.txt diff --git a/requirements.txt b/contrib/requirements/requirements.txt similarity index 100% rename from requirements.txt rename to contrib/requirements/requirements.txt diff --git a/setup.py b/setup.py index 80330b1c..63581a61 100755 --- a/setup.py +++ b/setup.py @@ -9,10 +9,10 @@ import platform import imp import argparse -with open('requirements.txt') as f: +with open('contrib/requirements/requirements.txt') as f: requirements = f.read().splitlines() -with open('requirements-hw.txt') as f: +with open('contrib/requirements/requirements-hw.txt') as f: requirements_hw = f.read().splitlines() version = imp.load_source('version', 'lib/version.py') @@ -20,7 +20,7 @@ version = imp.load_source('version', 'lib/version.py') if sys.version_info[:3] < (3, 4, 0): sys.exit("Error: Electrum requires Python version >= 3.4.0...") -data_files = ['requirements.txt', 'requirements-hw.txt'] +data_files = ['contrib/requirements/' + r for r in ['requirements.txt', 'requirements-hw.txt']] if platform.system() in ['Linux', 'FreeBSD', 'DragonFly']: parser = argparse.ArgumentParser()