Bump the python version used to produce the release binaries. This is a wise move because python 3.9 security support will stop soon (2025), because python 3.11 added a significant performance improvement, and because staying in sync with Electron Cash makes the maintenance of the build toolchain easier.
Adjacent required changes:
- bump pyinstaller to a version that works with python 3.11
- bump all python libraries to recent enough versions to support python 3.11
- bump python libraries that are not pure-python (include C/C++ code) to versions that provide wheels (pre-compiled release binaries) for python 3.11, as the build script for Windows does not have the tools or headers to compile the libraries
- update xvfb in the wine Dockerfile to the latest security patche (previous version of the lib is no longer available so the docker image creation would fail without this)
This is a backport of electroncash#2755
Depends on D15522
Notable differences between this diff and the source material:
- we do not require zxing-cpp for now. If this component is backported later, that diff will have to include the relevant changes.
- we no longer have psutil as a dependency, as of D14131
- we don't need to update the python version in as many places, thanks to https://github.com/Bitcoin-ABC/ElectrumABC/commit/7466ca0de67da44d88002f7269c786c5fd021714
- some of the library bumps were already done on our side
- we no longer package the tor binary in our release (https://github.com/Bitcoin-ABC/ElectrumABC/pull/279)
- we fixed the hidapi/Cython issue independently (D14297) so these changes are not relevant to us