electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 3d640dfc1ff5809e3a309a3cf18734ee6aaf81e1
parent b2be29b508deb310631cacfb51bb1561bce75ff9
Author: SomberNight <somber.night@protonmail.com>
Date:   Tue, 12 Jan 2021 00:19:49 +0100

windows binaries: bump python version (3.7.9->3.8.7)

Had to also bump ubuntu version 18.04->20.04,
as was getting errors running the self-compiled pyinstaller otherwise (weird...):

```
from .utils.git import get_repo_revision
ModuleNotFoundError: No module named 'PyInstaller.utils'
```
(similar to https://github.com/pyinstaller/pyinstaller/issues/4403 )

-----

Note re appimage: when trying to compile python 3.8.x on ubuntu 16.04, I am getting:

./Modules/posixmodule.c: In function ‘os_copy_file_range_impl’:
./Modules/posixmodule.c:10351:15: error: implicit declaration of function ‘copy_file_range’ [-Werror=implicit-function-declaration]
         ret = copy_file_range(src, p_offset_src, dst, p_offset_dst, count, flags);

This is because ubuntu 16.04 has too old glibc.

Diffstat:
Mcontrib/build-linux/appimage/Dockerfile | 4++++
Mcontrib/build-linux/appimage/build.sh | 2++
Mcontrib/build-wine/Dockerfile | 55++++++++++++++++++++++++++++++++-----------------------
Mcontrib/build-wine/prepare-wine.sh | 5+++--
4 files changed, 41 insertions(+), 25 deletions(-)

diff --git a/contrib/build-linux/appimage/Dockerfile b/contrib/build-linux/appimage/Dockerfile @@ -1,6 +1,10 @@ +# Note: we deliberately use an old Ubuntu LTS as base image. +# from https://docs.appimage.org/introduction/concepts.html : +# "[AppImages] should be built on the oldest possible system, allowing them to run on newer system[s]" FROM ubuntu:16.04@sha256:a4fc0c40360ff2224db3a483e5d80e9164fe3fdce2a8439d2686270643974632 ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 +ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update -q && \ apt-get install -qy \ diff --git a/contrib/build-linux/appimage/build.sh b/contrib/build-linux/appimage/build.sh @@ -13,6 +13,8 @@ CACHEDIR="$CONTRIB_APPIMAGE/.cache/appimage" export GCC_STRIP_BINARIES="1" # pinned versions +# note: compiling python 3.8.x requires at least glibc 2.27, +# which is first available on ubuntu 18.04 PYTHON_VERSION=3.7.9 PKG2APPIMAGE_COMMIT="eb8f3acdd9f11ab19b78f5cb15daa772367daf15" SQUASHFSKIT_COMMIT="ae0d656efa2d0df2fcac795b6823b44462f19386" diff --git a/contrib/build-wine/Dockerfile b/contrib/build-wine/Dockerfile @@ -1,29 +1,38 @@ -FROM ubuntu:18.04@sha256:b58746c8a89938b8c9f5b77de3b8cf1fe78210c696ab03a1442e235eea65d84f +FROM ubuntu:20.04@sha256:c95a8e48bf88e9849f3e0f723d9f49fa12c5a00cfc6e60d2bc99d87555295e4c ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 +ENV DEBIAN_FRONTEND=noninteractive RUN dpkg --add-architecture i386 && \ apt-get update -q && \ apt-get install -qy \ - wget=1.19.4-1ubuntu2.2 \ - gnupg2=2.2.4-1ubuntu1.3 \ - dirmngr=2.2.4-1ubuntu1.3 \ - python3-software-properties=0.96.24.32.1 \ - software-properties-common=0.96.24.32.1 + wget=1.20.3-1ubuntu1 \ + gnupg2=2.2.19-3ubuntu2 \ + dirmngr=2.2.19-3ubuntu2 \ + python3-software-properties=0.98.9.2 \ + software-properties-common=0.98.9.2 \ + && \ + rm -rf /var/lib/apt/lists/* && \ + apt-get autoremove -y && \ + apt-get clean RUN apt-get update -q && \ - apt-get install -qy \ - git=1:2.17.1-1ubuntu0.7 \ - p7zip-full=16.02+dfsg-6 \ - make=4.1-9.1ubuntu1 \ - mingw-w64=5.0.3-1 \ - mingw-w64-tools=5.0.3-1 \ - win-iconv-mingw-w64-dev=0.0.8-2 \ + apt-get install -qy \ + git=1:2.25.1-1ubuntu3 \ + p7zip-full=16.02+dfsg-7build1 \ + make=4.2.1-1.2 \ + mingw-w64=7.0.0-2 \ + mingw-w64-tools=7.0.0-2 \ + win-iconv-mingw-w64-dev=0.0.8-3 \ autotools-dev=20180224.1 \ - autoconf=2.69-11 \ - autopoint=0.19.8.1-6ubuntu0.3 \ - libtool=2.4.6-2 \ - gettext=0.19.8.1-6 + autoconf=2.69-11.1 \ + autopoint=0.19.8.1-10build1 \ + libtool=2.4.6-14 \ + gettext=0.19.8.1-10build1 \ + && \ + rm -rf /var/lib/apt/lists/* && \ + apt-get autoremove -y && \ + apt-get clean RUN wget -nc https://dl.winehq.org/wine-builds/Release.key && \ echo "c51bcb8cc4a12abfbd7c7660eaf90f49674d15e222c262f27e6c96429111b822 Release.key" | sha256sum -c - && \ @@ -36,11 +45,11 @@ RUN wget -nc https://dl.winehq.org/wine-builds/Release.key && \ apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/ && \ apt-get update -q && \ apt-get install -qy \ - wine-stable-amd64:amd64=4.0.3~bionic \ - wine-stable-i386:i386=4.0.3~bionic \ - wine-stable:amd64=4.0.3~bionic \ - winehq-stable:amd64=4.0.3~bionic - -RUN rm -rf /var/lib/apt/lists/* && \ + wine-stable-amd64:amd64=5.0.3~focal \ + wine-stable-i386:i386=5.0.3~focal \ + wine-stable:amd64=5.0.3~focal \ + winehq-stable:amd64=5.0.3~focal \ + && \ + rm -rf /var/lib/apt/lists/* && \ apt-get autoremove -y && \ apt-get clean diff --git a/contrib/build-wine/prepare-wine.sh b/contrib/build-wine/prepare-wine.sh @@ -13,7 +13,7 @@ PYINSTALLER_REPO="https://github.com/SomberNight/pyinstaller.git" PYINSTALLER_COMMIT="31fda9dc83feb1b3f2ff08c89ff7ae61506fc1ca" # ^ tag 4.1, plus a custom commit that fixes cross-compilation with MinGW -PYTHON_VERSION=3.7.9 +PYTHON_VERSION=3.8.7 ## These settings probably don't need change export WINEPREFIX=/opt/wine64 @@ -132,7 +132,8 @@ info "Building PyInstaller." -Wno-dangling-else \ -Wno-error=unused-value \ -Wno-error=implicit-function-declaration \ - -Wno-error=int-to-pointer-cast" + -Wno-error=int-to-pointer-cast \ + -Wno-error=stringop-truncation" popd # sanity check bootloader is there: if [ "$GCC_TRIPLET_HOST" = "i686-w64-mingw32" ] ; then