twine build: pin build dependencies - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit c8e265369026ed3cd00f48aa17c7b86dc8b1240f DIR parent d4e16001bbfde9badd2900989be106230179f876 HTML Author: SomberNight <somber.night@protonmail.com> Date: Fri, 9 Aug 2019 19:05:32 +0200 wine build: pin build dependencies "pip install pyinstaller" was "silently" grabbing unpinned dependencies Diffstat: M contrib/build-wine/build-electrum-… | 2 +- M contrib/build-wine/prepare-wine.sh | 6 ++++-- A contrib/deterministic-build/requir… | 19 +++++++++++++++++++ M contrib/freeze_packages.sh | 2 +- A contrib/requirements/requirements-… | 7 +++++++ 5 files changed, 32 insertions(+), 4 deletions(-) --- DIR diff --git a/contrib/build-wine/build-electrum-git.sh b/contrib/build-wine/build-electrum-git.sh t@@ -50,7 +50,7 @@ $PYTHON -m pip install --no-warn-script-location -r "$CONTRIB"/deterministic-bui pushd $WINEPREFIX/drive_c/electrum # see https://github.com/pypa/pip/issues/2195 -- pip makes a copy of the entire directory info "Pip installing Electrum. This might take a long time if the project folder is large." -$PYTHON -m pip install --no-warn-script-location . +$PYTHON -m pip install --no-dependencies --no-warn-script-location . popd DIR diff --git a/contrib/build-wine/prepare-wine.sh b/contrib/build-wine/prepare-wine.sh t@@ -56,8 +56,10 @@ for msifile in core dev exe lib pip tools; do wine msiexec /i "$PYTHON_DOWNLOADS/${msifile}.msi" /qb TARGETDIR=$PYHOME done +info "Installing build dependencies." +$PYTHON -m pip install --no-warn-script-location -r "$CONTRIB"/deterministic-build/requirements-wine-build.txt + info "Installing dependencies specific to binaries." -# note that this also installs pinned versions of both pip and setuptools $PYTHON -m pip install --no-warn-script-location -r "$CONTRIB"/deterministic-build/requirements-binaries.txt info "Installing ZBar." t@@ -107,6 +109,6 @@ info "Building PyInstaller." [[ -e PyInstaller/bootloader/Windows-32bit/runw.exe ]] || fail "Could not find runw.exe in target dir!" ) || fail "PyInstaller build failed" info "Installing PyInstaller." -$PYTHON -m pip install --no-warn-script-location ./pyinstaller +$PYTHON -m pip install --no-dependencies --no-warn-script-location ./pyinstaller info "Wine is configured." DIR diff --git a/contrib/deterministic-build/requirements-wine-build.txt b/contrib/deterministic-build/requirements-wine-build.txt t@@ -0,0 +1,19 @@ +altgraph==0.16.1 \ + --hash=sha256:d6814989f242b2b43025cba7161fc1b8fb487a62cd49c49245d6fd01c18ac997 \ + --hash=sha256:ddf5320017147ba7b810198e0b6619bd7b5563aa034da388cea8546b877f9b0c +future==0.17.1 \ + --hash=sha256:67045236dcfd6816dc439556d009594abf643e5eb48992e36beac09c2ca659b8 +pefile==2019.4.18 \ + --hash=sha256:a5d6e8305c6b210849b47a6174ddf9c452b2888340b8177874b862ba6c207645 +pip==19.2.1 \ + --hash=sha256:258d702483dd749400aec59c23d638a5b2249ae28a0f478b6cab12ad45681a80 \ + --hash=sha256:80d7452630a67c1e7763b5f0a515690f2c1e9ad06dda48e0ae85b7fdf2f59d97 +pywin32-ctypes==0.2.0 \ + --hash=sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942 \ + --hash=sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98 +setuptools==41.0.1 \ + --hash=sha256:a222d126f5471598053c9a77f4b5d4f26eaa1f150ad6e01dcf1a42e185d05613 \ + --hash=sha256:c7769ce668c7a333d84e17fe8b524b1c45e7ee9f7908ad0a73e1eda7e6a5aebf +wheel==0.33.4 \ + --hash=sha256:5e79117472686ac0c4aef5bad5172ea73a1c2d1646b808c35926bd26bdfb0c08 \ + --hash=sha256:62fcfa03d45b5b722539ccbc07b190e4bfff4bb9e3a4d470dd9f6a0981002565 DIR diff --git a/contrib/freeze_packages.sh b/contrib/freeze_packages.sh t@@ -10,7 +10,7 @@ which virtualenv > /dev/null 2>&1 || { echo "Please install virtualenv" && exit python3 -m hashin -h > /dev/null 2>&1 || { python3 -m pip install hashin; } other_python=$(which python3) -for i in '' '-hw' '-binaries'; do +for i in '' '-hw' '-binaries' '-wine-build'; do rm -rf "$venv_dir" virtualenv -p $(which python3) $venv_dir DIR diff --git a/contrib/requirements/requirements-wine-build.txt b/contrib/requirements/requirements-wine-build.txt t@@ -0,0 +1,7 @@ +pip +setuptools + +# needed by pyinstaller: +pefile>=2017.8.1 +altgraph +pywin32-ctypes>=0.2.0