Browse Source

win build: update pyinstaller (from around 4.2 to around 4.10)

see https://github.com/spesmilo/electrum/pull/7721#issuecomment-1072669548

-----

pyinstaller 4.2 failed (during its runtime) to create exes (worked with cpython 3.9.10, but not with cpython 3.9.11):
```
80572 INFO: Processing module hooks...
80573 INFO: Loading module hook 'hook-certifi.py' from 'C:\\python3\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
80618 INFO: Loading module hook 'hook-cryptography.py' from 'C:\\python3\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
82879 INFO: Loading module hook 'hook-dns.rdata.py' from 'C:\\python3\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
84147 INFO: Loading module hook 'hook-mnemonic.py' from 'C:\\python3\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
84207 INFO: Loading module hook 'hook-pycparser.py' from 'C:\\python3\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
84212 INFO: Loading module hook 'hook-usb1.py' from 'C:\\python3\\lib\\site-packages\\usb1\\__pyinstaller'...
84215 INFO: --- libusb1 pyinstaller hook ---
84226 INFO: Added libusb binaries: [('C:\\python3\\lib\\site-packages\\usb1\\libusb-1.0.dll', 'usb1')]
84228 INFO: Loading module hook 'hook-difflib.py' from 'C:\\python3\\lib\\site-packages\\PyInstaller\\hooks'...
84237 INFO: Excluding import of doctest from module difflib
84237 INFO: Loading module hook 'hook-distutils.py' from 'C:\\python3\\lib\\site-packages\\PyInstaller\\hooks'...
Unable to find "C:\python3\Include\pyconfig.h" when adding binary and data files.This would mean your Python installation doesn't
come with proper library files. This usually happens by missing development
package, or unsuitable build parameters of Python installation.
* On Debian/Ubuntu, you would need to install Python development packages
  * apt-get install python3-dev
  * apt-get install python-dev
* If you're building Python by yourself, please rebuild your Python with
`--enable-shared` (or, `--enable-framework` on Darwin)

🗯 ERROR: build-electrum-git failed
```

Looks like this might be fixed in pyinstaller 4.3 (we are using 4.2):
https://github.com/pyinstaller/pyinstaller/pull/5218

-----

While trying to update pyinstaller to have that fix, several issues found with versions 4.3-4.10,
now reported upstream and already fixed:
https://github.com/pyinstaller/pyinstaller/issues/6338
https://github.com/pyinstaller/pyinstaller/issues/6339
https://github.com/pyinstaller/pyinstaller/issues/6686

So the pyinstaller commit pinned here is from the stable "v4" branch, some commits after the 4.10 tag,
which has fixes for the above issues.
patch-4
SomberNight 3 years ago
parent
commit
b5951adc29
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 13
      contrib/build-wine/prepare-wine.sh
  2. 6
      contrib/deterministic-build/requirements-build-wine.txt
  3. 4
      contrib/requirements/requirements-build-wine.txt

13
contrib/build-wine/prepare-wine.sh

@ -5,9 +5,9 @@ NSIS_FILENAME=nsis-3.08-setup.exe
NSIS_URL=https://downloads.sourceforge.net/project/nsis/NSIS%203/3.08/$NSIS_FILENAME NSIS_URL=https://downloads.sourceforge.net/project/nsis/NSIS%203/3.08/$NSIS_FILENAME
NSIS_SHA256=bbc76be36ecb2fc00d493c91befdaf71654226ad8a4fc4dc338458916bf224d0 NSIS_SHA256=bbc76be36ecb2fc00d493c91befdaf71654226ad8a4fc4dc338458916bf224d0
PYINSTALLER_REPO="https://github.com/SomberNight/pyinstaller.git" PYINSTALLER_REPO="https://github.com/pyinstaller/pyinstaller.git"
PYINSTALLER_COMMIT="80ee4d613ecf75a1226b960a560ee01459e65ddb" PYINSTALLER_COMMIT="63438b1842eacd7f081fc53f1f5212bc20b7d02e"
# ^ tag 4.2, plus a custom commit that fixes cross-compilation with MinGW # ^ latest commit from "v4" branch, somewhat after "4.10" tag
PYTHON_VERSION=3.9.11 PYTHON_VERSION=3.9.11
@ -99,12 +99,7 @@ info "Building PyInstaller."
pushd bootloader pushd bootloader
# cross-compile to Windows using host python # cross-compile to Windows using host python
python3 ./waf all CC="${GCC_TRIPLET_HOST}-gcc" \ python3 ./waf all CC="${GCC_TRIPLET_HOST}-gcc" \
CFLAGS="-static \ CFLAGS="-static"
-Wno-dangling-else \
-Wno-error=unused-value \
-Wno-error=implicit-function-declaration \
-Wno-error=int-to-pointer-cast \
-Wno-error=stringop-truncation"
popd popd
# sanity check bootloader is there: # sanity check bootloader is there:
[[ -e "PyInstaller/bootloader/Windows-$PYINST_ARCH/runw.exe" ]] || fail "Could not find runw.exe in target dir!" [[ -e "PyInstaller/bootloader/Windows-$PYINST_ARCH/runw.exe" ]] || fail "Could not find runw.exe in target dir!"

6
contrib/deterministic-build/requirements-build-wine.txt

@ -14,9 +14,9 @@ pyinstaller-hooks-contrib==2022.2 \
pywin32-ctypes==0.2.0 \ pywin32-ctypes==0.2.0 \
--hash=sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942 \ --hash=sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942 \
--hash=sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98 --hash=sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98
setuptools==49.6.0 \ setuptools==60.9.2 \
--hash=sha256:46bd862894ed22c2edff033c758c2dc026324788d758e96788e8f7c11f4e9707 \ --hash=sha256:80743e57120665fa65665286369a0734bce0e7a629ad36507fb7a4b65e7d2e3b \
--hash=sha256:4dd5bb0a0a0cff77b46ca5dd3a84857ee48c83e8223886b556613c724994073f --hash=sha256:93b1a3037230bf9aa07327b9fc58f527d5f4e22d36705b55d55ba3ece8606ca6
wheel==0.37.1 \ wheel==0.37.1 \
--hash=sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a \ --hash=sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a \
--hash=sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4 --hash=sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4

4
contrib/requirements/requirements-build-wine.txt

@ -1,9 +1,9 @@
pip pip
setuptools<50.0.0 # 50.0.0 might break pyinstaller. see https://github.com/pyinstaller/pyinstaller/commit/e9f9d79d6b23c767512156323d0a5d28c6386a57 setuptools
wheel wheel
# needed by pyinstaller: # needed by pyinstaller:
pefile>=2017.8.1 pefile>=2017.8.1
altgraph altgraph
pywin32-ctypes>=0.2.0 pywin32-ctypes>=0.2.0
pyinstaller-hooks-contrib>=2020.6 pyinstaller-hooks-contrib>=2020.11

Loading…
Cancel
Save