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 [[https://github.com/Electron-Cash/Electron-Cash/pull/2755 | 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