diff --git a/electrum/contrib/base.sh b/electrum/contrib/base.sh index ae6a67c5e..ba5ddc0f0 100755 --- a/electrum/contrib/base.sh +++ b/electrum/contrib/base.sh @@ -1,302 +1,302 @@ #!/usr/bin/env bash export LC_ALL=C.UTF-8 # Set BUILD_DEBUG=1 to enable additional build output if [ "${BUILD_DEBUG:-0}" -ne 0 ] ; then set -x # Enable shell command logging fi # Set a fixed umask as this leaks into the docker container umask 0022 # First, some functions that build scripts may use for pretty printing if [ -t 1 ] ; then RED='\033[0;31m' BLUE='\033[0;34m' YELLOW='\033[0;33m' GREEN='\033[0;32m' NC='\033[0m' # No Color MSG_INFO="\r💬 ${BLUE}INFO:${NC}" MSG_ERROR="\r🗯 ${RED}ERROR:${NC}" MSG_WARNING="\r⚠️ ${YELLOW}WARNING:${NC}" MSG_OK="\r👍 ${GREEN}OK:${NC}" else RED='' BLUE='' YELLOW='' GREEN='' NC='' # No Color MSG_INFO="INFO:" MSG_ERROR="ERROR:" MSG_WARNING="WARNING:" MSG_OK="OK:" fi function info { printf "${MSG_INFO} ${1}\n" } function fail { printf "${MSG_ERROR} ${1}\n" >&2 if [ -r /.dockerenv ] ; then if [ -t 1 ] ; then if [ "${BUILD_DEBUG:-0}" -ne 0 ] ; then bash || true fi fi fi exit 1 } function warn { printf "${MSG_WARNING} ${1}\n" } function printok { printf "${MSG_OK} ${1}\n" } function verify_hash { local file=$1 expected_hash=$2 sha_prog=`which sha256sum || which gsha256sum` if [ -z "$sha_prog" ]; then fail "Please install sha256sum or gsha256sum" fi if [ ! -e "$file" ]; then fail "Cannot verify hash for $file -- not found!" fi bn=`basename $file` actual_hash=$($sha_prog $file | awk '{print $1}') if [ "$actual_hash" == "$expected_hash" ]; then printok "'$bn' hash verified" return 0 else warn "Hash verify failed, removing '$file' as a safety measure" rm "$file" fail "$file $actual_hash (unexpected hash)" fi } # based on https://superuser.com/questions/497940/script-to-verify-a-signature-with-gpg function verify_signature { local file=$1 keyring=$2 out= bn=`basename $file .asc` info "Verifying PGP signature for $bn ..." if out=$(gpg --no-default-keyring --keyring "$keyring" --status-fd 1 --verify "$file" 2>/dev/null) \ && echo "$out" | grep -qs "^\[GNUPG:\] VALIDSIG "; then printok "$bn signature verified" return 0 else fail "$out" fi } function download_if_not_exist() { local file_name=$1 url=$2 if [ ! -e $file_name ] ; then if [ -n "$(which wget)" ]; then wget -O $file_name "$url" || fail "Failed to download $file_name" else curl -L "$url" > $file_name || fail "Failed to download $file_name" fi fi } # https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/templates/header.sh function retry() { local result=0 local count=1 while [ $count -le 3 ]; do [ $result -ne 0 ] && { echo -e "\nThe command \"$@\" failed. Retrying, $count of 3.\n" >&2 } ! { "$@"; result=$?; } [ $result -eq 0 ] && break count=$(($count + 1)) sleep 1 done [ $count -gt 3 ] && { echo -e "\nThe command \"$@\" failed 3 times.\n" >&2 } return $result } function gcc_with_triplet() { TRIPLET="$1" CMD="$2" shift 2 if [ -n "$TRIPLET" ] ; then "$TRIPLET-$CMD" "$@" else "$CMD" "$@" fi } function gcc_host() { gcc_with_triplet "$GCC_TRIPLET_HOST" "$@" } function gcc_build() { gcc_with_triplet "$GCC_TRIPLET_BUILD" "$@" } function host_strip() { if [ "$GCC_STRIP_BINARIES" -ne "0" ] ; then case "$BUILD_TYPE" in linux|wine) gcc_host strip "$@" ;; darwin) # TODO: Strip on macOS? ;; esac fi } # Common code for installing dependencies from a git repo function setup_pkg() { pkgname=$1 info "Building $pkgname..." local git_url=$2 checkout_ref=$3 contrib=$4 parentbuilddir="$contrib"/build pkgbuilddir="$parentbuilddir"/$pkgname mkdir -p $parentbuilddir pushd $parentbuilddir if [ -d "$pkgbuilddir" ] ; then pushd "$pkgbuilddir" local commit=`git rev-parse HEAD` local branch=`git rev-parse --abbrev-ref HEAD` local tag=`git describe --tags` if [[ ${commit} = ${checkout_ref} || ${branch} = ${checkout_ref} || ${tag} = ${checkout_ref} ]] ; then warn "$pkgname already cloned and $checkout_ref is already the current HEAD" # Just make sure there are no accidental changes git stash return fi fail "$pkgname already cloned, but HEAD is not at expected ref ${checkout_ref} (branch ${branch}, commit ${commit})" popd fi git clone ${git_url} pushd "$pkgbuilddir" || fail "Could not chdir to $pkgbuilddir" git checkout ${checkout_ref} } function popd_pkg() { # Keep this in sync with the number of pushd operations in setup_pkg popd popd } # From: https://stackoverflow.com/a/4024263 # By kanaka (https://stackoverflow.com/users/471795/) function verlte() { [ "$1" = "`echo -e "$1\n$2" | $SORT_PROG -V | head -n1`" ] } function verlt() { [ "$1" = "$2" ] && return 1 || verlte $1 $2 } if [ -n "$_BASE_SH_SOURCED" ] ; then # Base.sh has been sourced already, no need to source it again return 0 fi which git > /dev/null || fail "Git is required to proceed" # Now, some variables that affect all build scripts export PYTHONHASHSEED=22 export SOURCE_DATE_EPOCH=1530212462 # Note, when upgrading Python, check the Windows python.exe embedded manifest for changes. # If the manifest changed, contrib/build-wine/manifest.xml needs to be updated. -export PYTHON_VERSION=3.9.13 -export PY_VER_MAJOR="3.9" # as it appears in fs paths +export PYTHON_VERSION=3.11.8 +export PY_VER_MAJOR="3.11" # as it appears in fs paths # If you change PYTHON_VERSION above, update this by downloading the files manually and doing a sha256sum on it. -export PYTHON_SRC_TARBALL_HASH="125b0c598f1e15d2aa65406e83f792df7d171cdf38c16803b149994316a3080f" -export PYTHON_MACOS_BINARY_HASH="351fe18f4fb03be7afac5e4012fc0a51345f43202af43ef620cf1eee5ee36578" +export PYTHON_SRC_TARBALL_HASH="9e06008c8901924395bc1da303eac567a729ae012baa182ab39269f650383bb3" +export PYTHON_MACOS_BINARY_HASH="db3e2ba967acac293c0063591a1d3c4ba713fd89929447715cd56ce06b598200" : "${ELECTRUM_ROOT:=$(git rev-parse --show-toplevel)/electrum}" export ELECTRUM_ROOT export CONTRIB="${ELECTRUM_ROOT}/contrib" export DISTDIR="${ELECTRUM_ROOT}/dist" export PACKAGE="ElectrumABC" export SCRIPTNAME="electrum-abc" export PYI_SKIP_TAG="${PYI_SKIP_TAG:-0}" # Set this to non-zero to make PyInstaller skip tagging the bootloader export DEFAULT_UBUNTU_MIRROR="http://archive.ubuntu.com/ubuntu/" export UBUNTU_MIRROR="${UBUNTU_MIRROR:-$DEFAULT_UBUNTU_MIRROR}" if [ "$UBUNTU_MIRROR" != "$DEFAULT_UBUNTU_MIRROR" ]; then info "Picked up override from env: UBUNTU_MIRROR=${UBUNTU_MIRROR}" fi export ELECTRUM_LOCALE_REPO="https://github.com/Electron-Cash/electrum-locale" export ELECTRUM_LOCALE_COMMIT="848004f800821a3bceaa23d00eeccf78ddb94eb5" # Newer git errors-out about permissions here sometimes, so do this git config --global --add safe.directory $(readlink -f "$ELECTRUM_ROOT") # Build a command line argument for docker, enabling interactive mode if stdin # is a tty and enabling tty in docker if stdout is a tty. export DOCKER_RUN_TTY="" if [ -t 0 ] ; then export DOCKER_RUN_TTY="${DOCKER_RUN_TTY}i" ; fi if [ -t 1 ] ; then export DOCKER_RUN_TTY="${DOCKER_RUN_TTY}t" ; fi if [ -n "$DOCKER_RUN_TTY" ] ; then export DOCKER_RUN_TTY="-${DOCKER_RUN_TTY}" ; fi if [ -z "$CPU_COUNT" ] ; then # CPU_COUNT is not set, try to detect the core count case $(uname) in Linux) export CPU_COUNT=$(lscpu | grep "^CPU(s):" | awk '{print $2}') ;; Darwin) export CPU_COUNT=$(sysctl -n hw.ncpu) ;; esac fi # If CPU_COUNT is still unset, default to 4 export CPU_COUNT="${CPU_COUNT:-4}" # Use one more worker than core count export WORKER_COUNT=$[$CPU_COUNT+1] # Set the build type, overridden by wine build export BUILD_TYPE="${BUILD_TYPE:-$(uname | tr '[:upper:]' '[:lower:]')}" # No additional autoconf flags by default export AUTOCONF_FLAGS="" # Add host / build flags if the triplets are set if [ -n "$GCC_TRIPLET_HOST" ] ; then export AUTOCONF_FLAGS="$AUTOCONF_FLAGS --host=$GCC_TRIPLET_HOST" fi if [ -n "$GCC_TRIPLET_BUILD" ] ; then export AUTOCONF_FLAGS="$AUTOCONF_FLAGS --build=$GCC_TRIPLET_BUILD" fi export GCC_STRIP_BINARIES="${GCC_STRIP_BINARIES:-0}" export SHA256_PROG=`which sha256sum || which gsha256sum` if [ -z "$SHA256_PROG" ]; then fail "Please install sha256sum or gsha256sum" fi export SORT_PROG=`which gsort || which sort` if [ -z "$SORT_PROG" ]; then fail "Please install sort or gsort" fi # This variable is set to avoid sourcing base.sh multiple times export _BASE_SH_SOURCED=1 diff --git a/electrum/contrib/build-linux/appimage/_build.sh b/electrum/contrib/build-linux/appimage/_build.sh index 550972b7b..4a6c03496 100755 --- a/electrum/contrib/build-linux/appimage/_build.sh +++ b/electrum/contrib/build-linux/appimage/_build.sh @@ -1,231 +1,232 @@ #!/usr/bin/env bash export LC_ALL=C.UTF-8 set -e . ../../base.sh BUILDDIR="$CONTRIB/build-linux/appimage/build/appimage" APPDIR="$BUILDDIR/$PACKAGE.AppDir" CACHEDIR="$CONTRIB/build-linux/appimage/.cache/appimage" PYDIR="${APPDIR}/usr/lib/python${PY_VER_MAJOR}" export GCC_STRIP_BINARIES="1" # pinned versions PKG2APPIMAGE_COMMIT="eb8f3acdd9f11ab19b78f5cb15daa772367daf15" rm -rf "$BUILDDIR" mkdir -p "$APPDIR" "$CACHEDIR" "$DISTDIR" info "downloading some dependencies." download_if_not_exist "$CACHEDIR/functions.sh" "https://raw.githubusercontent.com/AppImage/pkg2appimage/$PKG2APPIMAGE_COMMIT/functions.sh" verify_hash "$CACHEDIR/functions.sh" "78b7ee5a04ffb84ee1c93f0cb2900123773bc6709e5d1e43c37519f590f86918" download_if_not_exist "$CACHEDIR/appimagetool" "https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage" verify_hash "$CACHEDIR/appimagetool" "df3baf5ca5facbecfc2f3fa6713c29ab9cefa8fd8c1eac5d283b79cab33e4acb" download_if_not_exist "$CACHEDIR/Python-$PYTHON_VERSION.tar.xz" "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz" verify_hash "$CACHEDIR/Python-$PYTHON_VERSION.tar.xz" $PYTHON_SRC_TARBALL_HASH ( cd "${ELECTRUM_ROOT}" for pkg in secp zbar ; do "$CONTRIB"/make_$pkg || fail "Could not build $pkg" done ) info "Building Python" tar xf "$CACHEDIR/Python-$PYTHON_VERSION.tar.xz" -C "$BUILDDIR" ( cd "$BUILDDIR/Python-$PYTHON_VERSION" LC_ALL=C export BUILD_DATE=$(date -u -d "@$SOURCE_DATE_EPOCH" "+%b %d %Y") LC_ALL=C export BUILD_TIME=$(date -u -d "@$SOURCE_DATE_EPOCH" "+%H:%M:%S") - # Patch taken from Ubuntu Patch taken from Ubuntu http://archive.ubuntu.com/ubuntu/pool/main/p/python3.9/python3.9_3.9.5-3~21.04.debian.tar.xz - patch -p1 < "$CONTRIB/build-linux/appimage/patches/python-3.9-reproducible-buildinfo.diff" || fail "Could not patch Python build system for reproducibility" + # Patch taken from Ubuntu http://archive.ubuntu.com/ubuntu/pool/main/p/python3.11/python3.11_3.11.6-3.debian.tar.xz + patch -p1 < "$CONTRIB/build-linux/appimage/patches/python-3.11.6-reproducible-buildinfo.diff" || fail "Could not patch Python build system for reproducibility" ./configure \ --cache-file="$CACHEDIR/python.config.cache" \ --prefix="$APPDIR/usr" \ --enable-ipv6 \ --enable-shared \ -q || fail "Python configure failed" make -j$WORKER_COUNT -s || fail "Could not build Python" make -s install > /dev/null || fail "Failed to install Python" # When building in docker on macOS, python builds with .exe extension because the # case insensitive file system of macOS leaks into docker. This causes the build # to result in a different output on macOS compared to Linux. We simply patch # sysconfigdata to remove the extension. # Some more info: https://bugs.python.org/issue27631 sed -i -e 's/\.exe//g' "$PYDIR"/_sysconfigdata* ) appdir_python() { env \ PYTHONNOUSERSITE=1 \ LD_LIBRARY_PATH="$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}" \ "$APPDIR/usr/bin/python${PY_VER_MAJOR}" "$@" } python='appdir_python' info "Installing pip" "$python" -m ensurepip info "Preparing electrum-locale" ( cd "${ELECTRUM_ROOT}" setup_pkg "electrum-locale" ${ELECTRUM_LOCALE_REPO} ${ELECTRUM_LOCALE_COMMIT} "$CONTRIB" if ! which msgfmt > /dev/null 2>&1; then fail "Please install gettext" fi for i in ./locale/*; do dir="${ELECTRUM_ROOT}/electrumabc/$i/LC_MESSAGES" mkdir -p $dir msgfmt --output-file="$dir/electron-cash.mo" "$i/electron-cash.po" || true done popd_pkg ) info "Installing the application and its dependencies" mkdir -p "$CACHEDIR/pip_cache" "$python" -m pip install --no-deps --no-warn-script-location --no-binary :all: --cache-dir "$CACHEDIR/pip_cache" -r "$CONTRIB/deterministic-build/requirements-pip.txt" +"$python" -m pip install --no-deps --no-warn-script-location --no-binary :all: --cache-dir "$CACHEDIR/pip_cache" -r "$CONTRIB/deterministic-build/requirements-build-appimage.txt" "$python" -m pip install --no-deps --no-warn-script-location --no-binary :all: --cache-dir "$CACHEDIR/pip_cache" -r "$CONTRIB/deterministic-build/requirements.txt" -"$python" -m pip install --no-deps --no-warn-script-location --no-binary :all: --only-binary pyqt5 --cache-dir "$CACHEDIR/pip_cache" -r "$CONTRIB/deterministic-build/requirements-binaries.txt" +"$python" -m pip install --no-deps --no-warn-script-location --no-binary :all: --only-binary PyQt5,PyQt5-Qt5 --cache-dir "$CACHEDIR/pip_cache" -r "$CONTRIB/deterministic-build/requirements-binaries.txt" # Install hidapi from binary wheels until there is a release fixing https://github.com/trezor/cython-hidapi/issues/155 "$python" -m pip install --no-deps --no-warn-script-location --no-binary :all: --only-binary hidapi --cache-dir "$CACHEDIR/pip_cache" -r "$CONTRIB/deterministic-build/requirements-hw.txt" "$python" -m pip install --no-deps --no-warn-script-location --cache-dir "$CACHEDIR/pip_cache" "${ELECTRUM_ROOT}" # setup.py depends on the build tools (setuptools), so get the version before uninstalling them ELECTRUM_VERSION=$($python ${ELECTRUM_ROOT}/setup.py --version) "$python" -m pip uninstall -y -r "$CONTRIB/requirements/requirements-build-uninstall.txt" info "Copying desktop integration" cp -fp "${ELECTRUM_ROOT}/$SCRIPTNAME.desktop" "$APPDIR/$SCRIPTNAME.desktop" cp -fp "${ELECTRUM_ROOT}/icons/electrumABC.png" "$APPDIR/electrumABC.png" # add launcher info "Adding launcher" cp -fp "$CONTRIB/build-linux/appimage/scripts/common.sh" "$APPDIR/common.sh" || fail "Could not copy python script" cp -fp "$CONTRIB/build-linux/appimage/scripts/apprun.sh" "$APPDIR/AppRun" || fail "Could not copy AppRun script" cp -fp "$CONTRIB/build-linux/appimage/scripts/python.sh" "$APPDIR/python" || fail "Could not copy python script" info "Finalizing AppDir" ( export PKG2AICOMMIT="$PKG2APPIMAGE_COMMIT" . "$CACHEDIR/functions.sh" cd "$APPDIR" # copy system dependencies copy_deps move_lib # apply global appimage blacklist to exclude stuff # move usr/include out of the way to preserve usr/include/python${PY_VER_MAJOR}. mv usr/include usr/include.tmp delete_blacklisted mv usr/include.tmp usr/include ) || fail "Could not finalize AppDir" # We copy some libraries here that are on the AppImage excludelist info "Copying additional libraries" # On some systems it can cause problems to use the system libusb cp -fp /usr/lib/x86_64-linux-gnu/libusb-1.0.so "$APPDIR"/usr/lib/x86_64-linux-gnu/. || fail "Could not copy libusb" # some distros lack libxkbcommon-x11 cp -f /usr/lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 "$APPDIR"/usr/lib/x86_64-linux-gnu || fail "Could not copy libxkbcommon-x11" # some distros lack some libxcb libraries (see #2189, #2196) cp -f /usr/lib/x86_64-linux-gnu/libxcb* "$APPDIR"/usr/lib/x86_64-linux-gnu || fail "Could not copy libxkcb" # we need to exclude the glib libraries, otherwise we can end up using multiple incompatible versions # See https://github.com/AppImageCommunity/pkg2appimage/pull/500#issuecomment-1057287738 for name in module thread ; do rm -f "$APPDIR"/usr/lib/x86_64-linux-gnu/libg${name}-2.0.so.0 || fail "Could not remove libg${name}-2.0" done info "Stripping binaries of debug symbols" # "-R .note.gnu.build-id" also strips the build id # "-R .comment" also strips the GCC version information strip_binaries() { chmod u+w -R "$APPDIR" { printf '%s\0' "$APPDIR/usr/bin/python${PY_VER_MAJOR}" find "$APPDIR" -type f -regex '.*\.so\(\.[0-9.]+\)?$' -print0 } | xargs -0 --no-run-if-empty --verbose strip -R .note.gnu.build-id -R .comment } strip_binaries remove_emptydirs() { find "$APPDIR" -type d -empty -print0 | xargs -0 --no-run-if-empty rmdir -vp --ignore-fail-on-non-empty } remove_emptydirs info "Removing some unneeded files to decrease binary size" rm -rf "$APPDIR"/usr/{share,include} rm -rf "$PYDIR"/{test,ensurepip,lib2to3,idlelib,turtledemo} rm -rf "$PYDIR"/{ctypes,sqlite3,tkinter,unittest}/test rm -rf "$PYDIR"/distutils/{command,tests} rm -rf "$PYDIR"/config-3.9m-x86_64-linux-gnu rm -rf "$PYDIR"/site-packages/Cryptodome/SelfTest rm -rf "$PYDIR"/site-packages/qrcode/tests for component in connectivity declarative location multimedia quickcontrols quickcontrols2 serialport webengine websockets xmlpatterns ; do rm -rf "$PYDIR"/site-packages/PyQt5/Qt/translations/qt${component}_* done rm -rf "$PYDIR"/site-packages/PyQt5/Qt/{qml,libexec,qsci} rm -rf "$PYDIR"/site-packages/PyQt5/{pyrcc.so,pylupdate.so,uic,bindings} rm -rf "$PYDIR"/site-packages/PyQt5/Qt/plugins/{assetimporters,bearer,gamepads,geometryloaders,geoservices,playlistformats,position,printsupport,renderplugins,sceneparsers,sensors,sqldrivers,texttospeech,webview} for component in Bluetooth Concurrent Designer Help Location NetworkAuth Nfc Positioning PositioningQuick PrintSupport Qml Quick RemoteObjects Sensors SerialPort Sql Test TextToSpeech Web Xml ; do rm -rf "$PYDIR"/site-packages/PyQt5/Qt/lib/libQt5${component}* rm -rf "$PYDIR"/site-packages/PyQt5/Qt${component}* done rm -rf "$PYDIR"/site-packages/PyQt5/Qt.* # these are deleted as they were not deterministic; and are not needed anyway find "$APPDIR" -path '*/__pycache__*' -delete rm -rf "$PYDIR"/site-packages/*.dist-info/ rm -rf "$PYDIR"/site-packages/*.egg-info/ # set timestamps in dist, in order to make the installer reproducible find -exec touch -h -d '2000-11-11T11:11:11+00:00' {} + info "Creating the AppImage" ( cd "$BUILDDIR" cp "$CACHEDIR/appimagetool" "$CACHEDIR/appimagetool_copy" # zero out "appimage" magic bytes, as on some systems they confuse the linker sed -i 's|AI\x02|\x00\x00\x00|' "$CACHEDIR/appimagetool_copy" chmod +x "$CACHEDIR/appimagetool_copy" "$CACHEDIR/appimagetool_copy" --appimage-extract # We build a small wrapper for mksquashfs that removes the -mkfs-fixed-time option # as it conflicts with SOURCE_DATE_EPOCH. mv "$BUILDDIR/squashfs-root/usr/lib/appimagekit/mksquashfs" "$BUILDDIR/squashfs-root/usr/lib/appimagekit/mksquashfs_orig" cat > "$BUILDDIR/squashfs-root/usr/lib/appimagekit/mksquashfs" << EOF #!/bin/sh args=\$(echo "\$@" | sed -e 's/-mkfs-time 0//') "$BUILDDIR/squashfs-root/usr/lib/appimagekit/mksquashfs_orig" \$args EOF chmod +x "$BUILDDIR/squashfs-root/usr/lib/appimagekit/mksquashfs" APPIMAGE="$DISTDIR/$PACKAGE-${ELECTRUM_VERSION}-x86_64.AppImage" env VERSION="${ELECTRUM_VERSION}" ARCH=x86_64 ./squashfs-root/AppRun --no-appstream --verbose "$APPDIR" "$APPIMAGE" \ || fail "AppRun failed" ) || fail "Could not create the AppImage" info "Done" ls -la "$DISTDIR" sha256sum "$DISTDIR"/* diff --git a/electrum/contrib/build-linux/appimage/patches/python-3.9-reproducible-buildinfo.diff b/electrum/contrib/build-linux/appimage/patches/python-3.11.6-reproducible-buildinfo.diff similarity index 50% rename from electrum/contrib/build-linux/appimage/patches/python-3.9-reproducible-buildinfo.diff rename to electrum/contrib/build-linux/appimage/patches/python-3.11.6-reproducible-buildinfo.diff index 1eb4b71ee..5ed726580 100644 --- a/electrum/contrib/build-linux/appimage/patches/python-3.9-reproducible-buildinfo.diff +++ b/electrum/contrib/build-linux/appimage/patches/python-3.11.6-reproducible-buildinfo.diff @@ -1,13 +1,17 @@ -# DP: Build getbuildinfo.o with DATE/TIME values when defined +Description: Build reproduceable date and time into build info + Build information is encoded into getbuildinfo.o at build time. + Use the date and time from the debian changelog, to make this reproduceable. + +Forwarded: no --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -795,6 +795,8 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \ +@@ -1248,6 +1248,8 @@ -DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \ -DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \ -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ + $(if $(BUILD_DATE),-DDATE='"$(BUILD_DATE)"') \ + $(if $(BUILD_TIME),-DTIME='"$(BUILD_TIME)"') \ -o $@ $(srcdir)/Modules/getbuildinfo.c - Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile + Modules/getpath.o: $(srcdir)/Modules/getpath.c Python/frozen_modules/getpath.h Makefile $(PYTHON_HEADERS) diff --git a/electrum/contrib/build-wine/_build.sh b/electrum/contrib/build-wine/_build.sh index 46efce1d0..d5efe5b3f 100755 --- a/electrum/contrib/build-wine/_build.sh +++ b/electrum/contrib/build-wine/_build.sh @@ -1,270 +1,269 @@ #!/usr/bin/env bash export LC_ALL=C.UTF-8 here=$(dirname "$0") test -n "$here" -a -d "$here" || (echo "Cannot determine build dir. FIXME!" && exit 1) pushd "$here" here=`pwd` # get an absolute path popd if [ "$WIN_ARCH" = "win32" ] ; then export GCC_TRIPLET_HOST="i686-w64-mingw32" elif [ "$WIN_ARCH" = "win64" ] ; then export GCC_TRIPLET_HOST="x86_64-w64-mingw32" else echo "unexpected WIN_ARCH: $WIN_ARCH" exit 1 fi export BUILD_TYPE="wine" export GCC_TRIPLET_BUILD="x86_64-pc-linux-gnu" export GCC_STRIP_BINARIES="1" . "$here"/../base.sh # functions we use below (fail, et al) set -e info "Clearing $here/build and $here/dist..." rm "$here"/build/* -fr rm "$here"/dist/* -fr rm -fr /tmp/electrum-build mkdir -p /tmp/electrum-build ( cd "$ELECTRUM_ROOT" for pkg in secp zbar ; do "$here"/../make_$pkg || fail "Could not build $pkg" done ) prepare_wine() { info "Preparing Wine..." ( set -e pushd "$here" here=`pwd` # Please update these carefully, some versions won't work under Wine NSIS_URL='https://prdownloads.sourceforge.net/nsis/nsis-3.06.1-setup.exe' NSIS_SHA256=f60488a676308079bfdf6845dc7114cfd4bbff47b66be4db827b89bb8d7fdc52 # libusb 1.0.24 LIBUSB_REPO='https://github.com/libusb/libusb.git' LIBUSB_COMMIT="c6a35c56016ea2ab2f19115d2ea1e85e0edae155" PYINSTALLER_REPO='https://github.com/pyinstaller/pyinstaller.git' - PYINSTALLER_COMMIT="0fe956a2c6157e1b276819de1a050c242de70a29" - # ^ latest commit from "v4" branch, somewhat after "4.10" tag + PYINSTALLER_COMMIT=90256f93ed943daf6de53c7dd39710a415f705cb # Version 6.4.0 ## These settings probably don't need change PYHOME=c:/python$PYTHON_VERSION PYTHON="wine $PYHOME/python.exe -OO -B" info "Cleaning tmp" rm -rf $HOME/tmp mkdir -p $HOME/tmp info "done" pushd $HOME/tmp # note: you might need "sudo apt-get install dirmngr" for the following # if the verification fails you might need to get more keys from python.org # keys from https://www.python.org/downloads/#pubkeys info "Importing Python dev keyring (may take a few minutes)..." # FIXME KEYRING_PYTHON_DEV=keyring-electroncash-build-python-dev.gpg gpg -v --no-default-keyring --keyring $KEYRING_PYTHON_DEV --import \ "$here"/pgp/7ed10b6531d7c8e1bc296021fc624643487034e5.asc \ || fail "Failed to import Python release signing keys" info "Installing Python ..." if [ "$WIN_ARCH" = "win32" ] ; then PYARCH="win32" elif [ "$WIN_ARCH" = "win64" ] ; then PYARCH="amd64" else fail "unexpected WIN_ARCH: $WIN_ARCH" fi # Install Python for msifile in core dev exe lib pip tools; do info "Installing $msifile..." wget "https://www.python.org/ftp/python/$PYTHON_VERSION/$PYARCH/${msifile}.msi" wget "https://www.python.org/ftp/python/$PYTHON_VERSION/$PYARCH/${msifile}.msi.asc" verify_signature "${msifile}.msi.asc" $KEYRING_PYTHON_DEV wine msiexec /i "${msifile}.msi" /qn TARGETDIR=$PYHOME || fail "Failed to install Python component: ${msifile}" done # The below requirement files use hashed packages that we # need for pyinstaller and other parts of the build. Using a hashed # requirements file hardens the build against dependency attacks. info "Installing pip from requirements-pip.txt ..." $PYTHON -m pip install --no-deps --no-warn-script-location -r $here/../deterministic-build/requirements-pip.txt || fail "Failed to install pip" info "Installing build requirements from requirements-build-wine.txt ..." $PYTHON -m pip install --no-deps --no-warn-script-location -r $here/../deterministic-build/requirements-build-wine.txt || fail "Failed to install build requirements" info "Compiling PyInstaller bootloader with AntiVirus False-Positive Protection™ ..." mkdir pyinstaller ( cd pyinstaller # Shallow clone git init git remote add origin $PYINSTALLER_REPO git fetch --depth 1 origin $PYINSTALLER_COMMIT git checkout -b pinned "${PYINSTALLER_COMMIT}^{commit}" rm -fv PyInstaller/bootloader/Windows-*/run*.exe || true # Make sure EXEs that came with repo are deleted -- we rebuild them and need to detect if build failed if [ ${PYI_SKIP_TAG:-0} -eq 0 ] ; then echo "const char *ec_tag = \"tagged by $PACKAGE@$GIT_COMMIT_HASH\";" >> ./bootloader/src/pyi_main.c else warn "Skipping PyInstaller tag" fi pushd bootloader python3 ./waf all CC="${GCC_TRIPLET_HOST}-gcc" \ CFLAGS="-static" # Note: it's possible for the EXE to not be there if the build # failed but didn't return exit status != 0 to the shell (waf bug?); # So we need to do this to make sure the EXE is actually there. # If we switch to 64-bit, edit this path below. popd if [ "$WIN_ARCH" = "win32" ] ; then - [[ -e PyInstaller/bootloader/Windows-32bit/runw.exe ]] || fail "Could not find runw.exe in target dir! (32bit)" + [[ -e PyInstaller/bootloader/Windows-32bit-intel/runw.exe ]] || fail "Could not find runw.exe in target dir! (32bit)" elif [ "$WIN_ARCH" = "win64" ] ; then - [[ -e PyInstaller/bootloader/Windows-64bit/runw.exe ]] || fail "Could not find runw.exe in target dir! (64bit)" + [[ -e PyInstaller/bootloader/Windows-64bit-intel/runw.exe ]] || fail "Could not find runw.exe in target dir! (64bit)" else fail "unexpected GCC_TRIPLET_HOST: $GCC_TRIPLET_HOST" fi rm -fv pyinstaller.py # workaround for https://github.com/pyinstaller/pyinstaller/pull/6701 ) || fail "PyInstaller bootloader build failed" info "Installing PyInstaller ..." $PYTHON -m pip install --no-deps --no-warn-script-location ./pyinstaller || fail "PyInstaller install failed" wine "C:/python$PYTHON_VERSION/scripts/pyinstaller.exe" -v || fail "Pyinstaller installed but cannot be run." info "Installing Packages from requirements-binaries ..." $PYTHON -m pip install --no-deps --no-warn-script-location -r $here/../deterministic-build/requirements-binaries.txt || fail "Failed to install requirements-binaries" info "Installing NSIS ..." # Install NSIS installer wget -O nsis.exe "$NSIS_URL" verify_hash nsis.exe $NSIS_SHA256 wine nsis.exe /S || fail "Could not run nsis" info "Compiling libusb ..." mkdir libusb ( cd libusb # Shallow clone git init git remote add origin $LIBUSB_REPO git fetch --depth 1 origin $LIBUSB_COMMIT git checkout -b pinned "${LIBUSB_COMMIT}^{commit}" echo "libusb_1_0_la_LDFLAGS += -Wc,-static" >> libusb/Makefile.am ./bootstrap.sh || fail "Could not bootstrap libusb" host="$GCC_TRIPLET_HOST" LDFLAGS="-Wl,--no-insert-timestamp" ./configure \ --host=$host \ --build=$GCC_TRIPLET_BUILD || fail "Could not run ./configure for libusb" make -j4 || fail "Could not build libusb" ${host}-strip libusb/.libs/libusb-1.0.dll ) || fail "libusb build failed" # libsecp256k1, libzbar & libusb mkdir -p "$WINEPREFIX"/drive_c/tmp cp "$here"/../../electrumabc/*.dll "$WINEPREFIX"/drive_c/tmp/ || fail "Could not copy libraries to their destination" cp libusb/libusb/.libs/libusb-1.0.dll "$WINEPREFIX"/drive_c/tmp/ || fail "Could not copy libusb to its destination" popd # out of homedir/tmp popd # out of $here ) || fail "Could not prepare Wine" info "Wine is configured." } prepare_wine build_the_app() { info "Building $PACKAGE ..." ( set -e pushd "$here" here=`pwd` NAME_ROOT=$PACKAGE # PACKAGE comes from ../base.sh # These settings probably don't need any change # don't create __pycache__/ folders with .pyc files export PYTHONDONTWRITEBYTECODE=1 PYHOME=c:/python$PYTHON_VERSION PYTHON="wine $PYHOME/python.exe -OO -B" setup_pkg "electrum-locale" ${ELECTRUM_LOCALE_REPO} ${ELECTRUM_LOCALE_COMMIT} "$here/.." for i in ./locale/*; do dir=$i/LC_MESSAGES mkdir -p $dir msgfmt --output-file=$dir/electron-cash.mo $i/electron-cash.po || true done popd_pkg pushd "$here"/../.. # go to top level ELECTRUM_VERSION=$($PYTHON ${ELECTRUM_ROOT}/setup.py --version | tr -d '\r') info "Version to release: ${ELECTRUM_VERSION}" info "Fudging timestamps on all files for determinism ..." find -exec touch -d '2000-11-11T11:11:11+00:00' {} + popd # go back to $here cp -rv "$here"/../build/electrum-locale/locale "$WINEPREFIX"/drive_c/electrumabc/electrumabc/ # Install frozen dependencies info "Installing frozen dependencies ..." $PYTHON -m pip install --no-deps --no-warn-script-location -r "$here"/../deterministic-build/requirements.txt || fail "Failed to install requirements" $PYTHON -m pip install --no-deps --no-warn-script-location -r "$here"/../deterministic-build/requirements-hw.txt || fail "Failed to install requirements-hw" pushd "$WINEPREFIX"/drive_c/electrumabc $PYTHON setup.py install || fail "Failed setup.py install" popd rm -rf dist/ info "Resetting modification time in C:\Python..." # (Because we just installed a bunch of stuff) pushd "$WINEPREFIX"/drive_c/python$PYTHON_VERSION find -exec touch -d '2000-11-11T11:11:11+00:00' {} + ls -l popd # build standalone and portable versions info "Running Pyinstaller to build standalone and portable .exe versions ..." - ELECTRUM_CMDLINE_NAME="$NAME_ROOT" wine "C:/python$PYTHON_VERSION/scripts/pyinstaller.exe" --noconfirm --ascii -w deterministic.spec || fail "Pyinstaller failed" + ELECTRUM_CMDLINE_NAME="$NAME_ROOT" wine "C:/python$PYTHON_VERSION/scripts/pyinstaller.exe" --noconfirm deterministic.spec || fail "Pyinstaller failed" # rename the output files pushd dist mv $NAME_ROOT.exe $NAME_ROOT-${ELECTRUM_VERSION}.exe mv $NAME_ROOT-portable.exe $NAME_ROOT-${ELECTRUM_VERSION}-portable.exe popd # set timestamps in dist, in order to make the installer reproducible pushd dist find -exec touch -d '2000-11-11T11:11:11+00:00' {} + popd # build NSIS installer info "Running makensis to build setup .exe version ..." # $VERSION could be passed to the electrum-abc.nsi script, but this would require some rewriting in the script iself. wine "$WINEPREFIX/drive_c/Program Files/NSIS/makensis.exe" /DPRODUCT_VERSION=${ELECTRUM_VERSION} electrum-abc.nsi || fail "makensis failed" cd dist mv $NAME_ROOT-setup.exe $NAME_ROOT-${ELECTRUM_VERSION}-setup.exe || fail "Failed to move $NAME_ROOT-${ELECTRUM_VERSION}-setup.exe to the output dist/ directory" ls -la *.exe sha256sum *.exe popd ) || fail "Failed to build $PACKAGE" info "Done building." } build_the_app diff --git a/electrum/contrib/build-wine/docker/Dockerfile b/electrum/contrib/build-wine/docker/Dockerfile index e48871952..5b71507e6 100644 --- a/electrum/contrib/build-wine/docker/Dockerfile +++ b/electrum/contrib/build-wine/docker/Dockerfile @@ -1,94 +1,94 @@ FROM ubuntu:22.04@sha256:42ba2dfce475de1113d55602d40af18415897167d47c2045ec7b6d9746ff148f ARG UBUNTU_MIRROR=http://archive.ubuntu.com/ubuntu/ ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 ENV UBUNTUDIST=jammy # This prevents questions during package installations ENV DEBIAN_FRONTEND=noninteractive RUN echo deb ${UBUNTU_MIRROR} ${UBUNTUDIST} main restricted universe multiverse > /etc/apt/sources.list && \ echo deb ${UBUNTU_MIRROR} ${UBUNTUDIST}-updates main restricted universe multiverse >> /etc/apt/sources.list && \ echo deb ${UBUNTU_MIRROR} ${UBUNTUDIST}-backports main restricted universe multiverse >> /etc/apt/sources.list && \ echo deb ${UBUNTU_MIRROR} ${UBUNTUDIST}-security main restricted universe multiverse >> /etc/apt/sources.list && \ dpkg --add-architecture i386 && \ apt-get update -q && \ apt-get install -qy \ gnupg2=2.2.27-3ubuntu2.1 \ ca-certificates=20211016 \ wget=1.21.2-2ubuntu1 \ git=1:2.34.1-1ubuntu1.9 \ p7zip-full=16.02+dfsg-8 \ make=4.3-4.1build1 \ autotools-dev=20220109.1 \ autoconf=2.71-2 \ libtool=2.4.6-15build2 \ gettext=0.21-4ubuntu4 \ autopoint=0.21-4ubuntu4 \ mingw-w64=8.0.0-1 \ mingw-w64-tools=8.0.0-1 \ win-iconv-mingw-w64-dev=0.0.8-4 # Official WineHQ signing key # See https://wiki.winehq.org/Ubuntu # From https://dl.winehq.org/wine-builds/winehq.key COPY winehq.key /tmp ENV WINEDIST=devel -ENV WINEVERSION=7.7~${UBUNTUDIST}-1 +ENV WINEVERSION=9.0.0~${UBUNTUDIST}-1 RUN echo "78b185fabdb323971d13bd329fefc8038e08559aa51c4996de18db0639a51df6 /tmp/winehq.key" | sha256sum -c - && \ apt-key add /tmp/winehq.key && \ echo deb https://dl.winehq.org/wine-builds/ubuntu/ ${UBUNTUDIST} main >> /etc/apt/sources.list && \ apt-get update -q && \ apt-get install -qy \ wine-${WINEDIST}-amd64:amd64=${WINEVERSION} \ wine-${WINEDIST}-i386:i386=${WINEVERSION} \ wine-${WINEDIST}:amd64=${WINEVERSION} \ winehq-${WINEDIST}:amd64=${WINEVERSION} \ # cabextract is needed for winetricks to install the .NET framework cabextract=1.9-3 \ # xvfb is needed to launch the Visual Studio installer - xvfb=2:21.1.4-2ubuntu1.7~22.04.7 \ + xvfb=2:21.1.4-2ubuntu1.7~22.04.8 \ # winbind is needed for the Visual Studio installer and cl.exe PDB generation winbind=2:4.15.13+dfsg-0ubuntu1.5 RUN rm -rf /var/lib/apt/lists/* && \ apt-get autoremove -y && \ apt-get clean -RUN wget -q -O /tmp/winetricks https://raw.githubusercontent.com/Winetricks/winetricks/9c97d44b9b68a1b09e244e46f9ae0831ab35c315/src/winetricks && \ +RUN wget -q -O /tmp/winetricks https://raw.githubusercontent.com/Winetricks/winetricks/a9a556719e4fd28fc5984a963e2d666ec809f554/src/winetricks && \ chmod +x /tmp/winetricks && \ - echo "311c8c223bb83a7558b9e51197a9ccf7182bbd63849c64827b87bbc5f627f5cb /tmp/winetricks" | sha256sum -c - + echo "8127fbe3b6c9c996258e8fc08d05ac72ef11cb1465c5fe0d13e9d28580ba99a7 /tmp/winetricks" | sha256sum -c - ARG USER_ID ARG GROUP_ID ENV HOME=/homedir ENV WINEARCH=win32 ENV WINEPREFIX=${HOME}/wine ENV WINEDEBUG=-all RUN mkdir -p ${WINEPREFIX}/drive_c/electrumabc ; chown -R ${USER_ID}:${GROUP_ID} ${HOME} # Make our UID/GID have an actual user name, this is needed so wineboot creates the right folders and # the Visual Studio installer does't fail in SHGetKnownFolderPath with error 0x80070003 (ERROR_PATH_NOT_FOUND). RUN echo "user:x:${USER_ID}:${GROUP_ID}::${HOME}:/bin/sh" >> /etc/passwd USER ${USER_ID}:${GROUP_ID} WORKDIR ${HOME} # wineboot needs to run after the user is added to /etc/passwd, otherwise it will assume the username is "wine" RUN wineboot && \ /tmp/winetricks --optout -q dotnet472 && \ # Wait for the wine server to shutdown, needs to be done after wineboot to ensure the installation is good wineserver -w # DBUS_FATAL_WARNINGS=0 is needed because we don't have dbus in the container and Wine calls # dbus_connection_send_with_reply_and_block with a NULL connection. The dbus client libraries are set to abort by # default unless this variable is set. ENV DBUS_FATAL_WARNINGS=0 -USER ${USER_ID}:${GROUP_ID} \ No newline at end of file +USER ${USER_ID}:${GROUP_ID} diff --git a/electrum/contrib/deterministic-build/requirements-binaries.txt b/electrum/contrib/deterministic-build/requirements-binaries.txt index 463e1bdb0..f895da636 100644 --- a/electrum/contrib/deterministic-build/requirements-binaries.txt +++ b/electrum/contrib/deterministic-build/requirements-binaries.txt @@ -1,118 +1,113 @@ -cffi==1.15.1 \ - --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ - --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ - --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \ - --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \ - --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \ - --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \ - --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \ - --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \ - --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \ - --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \ - --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \ - --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \ - --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \ - --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \ - --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \ - --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \ - --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \ - --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \ - --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \ - --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \ - --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \ - --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \ - --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \ - --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \ - --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \ - --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \ - --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \ - --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \ - --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \ - --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \ - --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \ - --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \ - --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \ - --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \ - --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \ - --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \ - --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \ - --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \ - --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \ - --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \ - --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \ - --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \ - --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \ - --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \ - --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \ - --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \ - --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \ - --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \ - --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \ - --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \ - --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \ - --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \ - --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \ - --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \ - --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \ - --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \ - --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \ - --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \ - --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \ - --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \ - --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \ - --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ - --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ - --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 -cryptography==39.0.1 \ - --hash=sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4 \ - --hash=sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f \ - --hash=sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502 \ - --hash=sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41 \ - --hash=sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965 \ - --hash=sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e \ - --hash=sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc \ - --hash=sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad \ - --hash=sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505 \ - --hash=sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388 \ - --hash=sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6 \ - --hash=sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2 \ - --hash=sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac \ - --hash=sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695 \ - --hash=sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6 \ - --hash=sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336 \ - --hash=sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0 \ - --hash=sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c \ - --hash=sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106 \ - --hash=sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a \ - --hash=sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8 +cffi==1.16.0 \ + --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ + --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ + --hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \ + --hash=sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab \ + --hash=sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520 \ + --hash=sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36 \ + --hash=sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743 \ + --hash=sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8 \ + --hash=sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed \ + --hash=sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684 \ + --hash=sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56 \ + --hash=sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324 \ + --hash=sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d \ + --hash=sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235 \ + --hash=sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e \ + --hash=sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088 \ + --hash=sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000 \ + --hash=sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7 \ + --hash=sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e \ + --hash=sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673 \ + --hash=sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c \ + --hash=sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe \ + --hash=sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2 \ + --hash=sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 \ + --hash=sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8 \ + --hash=sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a \ + --hash=sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0 \ + --hash=sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b \ + --hash=sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896 \ + --hash=sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e \ + --hash=sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9 \ + --hash=sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2 \ + --hash=sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b \ + --hash=sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6 \ + --hash=sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404 \ + --hash=sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f \ + --hash=sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 \ + --hash=sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4 \ + --hash=sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc \ + --hash=sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936 \ + --hash=sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba \ + --hash=sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872 \ + --hash=sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb \ + --hash=sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614 \ + --hash=sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1 \ + --hash=sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d \ + --hash=sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969 \ + --hash=sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b \ + --hash=sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4 \ + --hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \ + --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ + --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 +cryptography==41.0.4 \ + --hash=sha256:004b6ccc95943f6a9ad3142cfabcc769d7ee38a3f60fb0dddbfb431f818c3a67 \ + --hash=sha256:047c4603aeb4bbd8db2756e38f5b8bd7e94318c047cfe4efeb5d715e08b49311 \ + --hash=sha256:0d9409894f495d465fe6fda92cb70e8323e9648af912d5b9141d616df40a87b8 \ + --hash=sha256:23a25c09dfd0d9f28da2352503b23e086f8e78096b9fd585d1d14eca01613e13 \ + --hash=sha256:2ed09183922d66c4ec5fdaa59b4d14e105c084dd0febd27452de8f6f74704143 \ + --hash=sha256:35c00f637cd0b9d5b6c6bd11b6c3359194a8eba9c46d4e875a3660e3b400005f \ + --hash=sha256:37480760ae08065437e6573d14be973112c9e6dcaf5f11d00147ee74f37a3829 \ + --hash=sha256:3b224890962a2d7b57cf5eeb16ccaafba6083f7b811829f00476309bce2fe0fd \ + --hash=sha256:5a0f09cefded00e648a127048119f77bc2b2ec61e736660b5789e638f43cc397 \ + --hash=sha256:5b72205a360f3b6176485a333256b9bcd48700fc755fef51c8e7e67c4b63e3ac \ + --hash=sha256:7e53db173370dea832190870e975a1e09c86a879b613948f09eb49324218c14d \ + --hash=sha256:7febc3094125fc126a7f6fb1f420d0da639f3f32cb15c8ff0dc3997c4549f51a \ + --hash=sha256:80907d3faa55dc5434a16579952ac6da800935cd98d14dbd62f6f042c7f5e839 \ + --hash=sha256:86defa8d248c3fa029da68ce61fe735432b047e32179883bdb1e79ed9bb8195e \ + --hash=sha256:8ac4f9ead4bbd0bc8ab2d318f97d85147167a488be0e08814a37eb2f439d5cf6 \ + --hash=sha256:93530900d14c37a46ce3d6c9e6fd35dbe5f5601bf6b3a5c325c7bffc030344d9 \ + --hash=sha256:9eeb77214afae972a00dee47382d2591abe77bdae166bda672fb1e24702a3860 \ + --hash=sha256:b5f4dfe950ff0479f1f00eda09c18798d4f49b98f4e2006d644b3301682ebdca \ + --hash=sha256:c3391bd8e6de35f6f1140e50aaeb3e2b3d6a9012536ca23ab0d9c35ec18c8a91 \ + --hash=sha256:c880eba5175f4307129784eca96f4e70b88e57aa3f680aeba3bab0e980b0f37d \ + --hash=sha256:cecfefa17042941f94ab54f769c8ce0fe14beff2694e9ac684176a2535bf9714 \ + --hash=sha256:e40211b4923ba5a6dc9769eab704bdb3fbb58d56c5b336d30996c24fcf12aadb \ + --hash=sha256:efc8ad4e6fc4f1752ebfb58aefece8b4e3c4cae940b0994d43649bdfce8d0d4f pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 -PyQt5==5.15.2 \ - --hash=sha256:29889845688a54d62820585ad5b2e0200a36b304ff3d7a555e95599f110ba4ce \ - --hash=sha256:372b08dc9321d1201e4690182697c5e7ffb2e0770e6b4a45519025134b12e4fc \ - --hash=sha256:894ca4ae767a8d6cf5903784b71f755073c78cb8c167eecf6e4ed6b3b055ac6a \ - --hash=sha256:ea24f24b7679bf393dd2e4f53fe0ce65021be18304c1ff7a226c2fc5c356d0da \ - --hash=sha256:faaecb76ec65e12673a968e7f5bc02495957e6996f0a3fa0d98895f9e4113746 -PyQt5-sip==12.11.1 \ - --hash=sha256:0bc81cb9e171d29302d393775f95cfa01b7a15f61b199ab1812976e5c4cb2cb9 \ - --hash=sha256:19b06164793177146c7f7604fe8389f44221a7bde196f2182457eb3e4229fa88 \ - --hash=sha256:3358c584832f0ac9fd1ad3623d8a346c705f43414df1fcd0cb285a6ef51fec08 \ - --hash=sha256:3afb1d1c07adcfef5c8bb12356a2ec2ec094f324af4417735d43b1ecaf1bb1a4 \ - --hash=sha256:4f0497e2f5eeaea9f5a67b0e55c501168efa86df4e53aace2a46498b87bc55c1 \ - --hash=sha256:54dad6c2e5dab14e46f6822a889bbb1515bbd2061762273af10d26566d649bd9 \ - --hash=sha256:5c152878443c3e951d5db7df53509d444708dc06a121c267b548146be06b87f8 \ - --hash=sha256:6b1113538082a7dd63b908587f61ce28ba4c7b8341e801fdf305d53a50a878ab \ - --hash=sha256:7218f6a1cefeb0b2fc26b89f15011f841aa4cd77786ccd863bf9792347fa38a8 \ - --hash=sha256:97d3fbda0f61edb1be6529ec2d5c7202ae83aee4353e4b264a159f8c9ada4369 \ - --hash=sha256:9a6f9c058564d0ac573561036299f54c452ae78b7d2a65d7c2d01685e6dca50d \ - --hash=sha256:a40a39a6136a90e10c31510295c2be924564fc6260691501cdde669bdc5edea5 \ - --hash=sha256:ac5f7ed06213d3bb203e33037f7c1a0716584c21f4f0922dcc044750e3659b80 \ - --hash=sha256:b077fb4383536f51382f5516f0347328a4f338c6ccc4c268cc358643bef1b838 \ - --hash=sha256:b355d56483edc79dcba30be947a6b700856bb74beb90539e14cc4d92b9bad152 \ - --hash=sha256:b714f550ea6ddae94fd7acae531971e535f4a4e7277b62eb44e7c649cf3f03d0 \ - --hash=sha256:bd935cc46dfdbb89c21042c1db2e46a71f25693af57272f146d6d9418e2934f1 \ - --hash=sha256:d09b2586235deab7a5f2e28e4bde9a70c0b3730fa84f2590804a9932414136a3 \ - --hash=sha256:dd163d9cffc4a56ebb9dd6908c0f0cb0caff8080294d41f4fb60fc3be63ca434 \ - --hash=sha256:f9691c6f4d899ca762dd54442a1be158c3e52017f583183da6ef37d5bae86595 \ - --hash=sha256:fc920c0e0d5050474d2d6282b478e4957548bf1dce58e1b0678914514dc70064 +PyQt5==5.15.9 \ + --hash=sha256:883ba5c8a348be78c8be6a3d3ba014c798e679503bce00d76c666c2dc6afe828 \ + --hash=sha256:dc41e8401a90dc3e2b692b411bd5492ab559ae27a27424eed4bd3915564ec4c0 \ + --hash=sha256:dd5ce10e79fbf1df29507d2daf99270f2057cdd25e4de6fbf2052b46c652e3a5 \ + --hash=sha256:e030d795df4cbbfcf4f38b18e2e119bcc9e177ef658a5094b87bb16cac0ce4c5 \ + --hash=sha256:e45c5cc15d4fd26ab5cb0e5cdba60691a3e9086411f8e3662db07a5a4222a696 +PyQt5-Qt5==5.15.2 \ + --hash=sha256:1988f364ec8caf87a6ee5d5a3a5210d57539988bf8e84714c7d60972692e2f4a \ + --hash=sha256:750b78e4dba6bdf1607febedc08738e318ea09e9b10aea9ff0d73073f11f6962 \ + --hash=sha256:76980cd3d7ae87e3c7a33bfebfaee84448fd650bad6840471d6cae199b56e154 \ + --hash=sha256:9cc7a768b1921f4b982ebc00a318ccb38578e44e45316c7a4a850e953e1dd327 +PyQt5-sip==12.12.2 \ + --hash=sha256:10d9bfa9f59f0fd1cad81be187479316ffc95684f573efea94512cb4257d2b17 \ + --hash=sha256:1cc49c8498c34649325d53bcd243c854391f828d9bab4f2f3afd3ee3451cab72 \ + --hash=sha256:23e983119f760dc6c1a1e6cb21fd4c268d14c4ee497de6da9ce2b9d46f9779b2 \ + --hash=sha256:26e75bc4ffd8e6b19ae96fe93dc135eb5aea03e4570724d4b3c40dbf36f3a2e6 \ + --hash=sha256:67eed70427d3291e5c52c349fb4619c57c9a8810ab8d78a142c00edcbfd20d3b \ + --hash=sha256:6a65697aa0fdb66e20d7b1ef8adfacc1caf1e61655530920172bf3a2fb1148cd \ + --hash=sha256:7050ad8f94370eb7e4caa022b7e6d8b2de615e0714b557ca2098c82c0132074a \ + --hash=sha256:71795c177010e52109812b03ec919020461ec42a7d9d241a45fe6d708529b5a6 \ + --hash=sha256:761e018dbbc46daccdb01f8f0dcc0d055c76834d839f0343cbec4b0ecbbde512 \ + --hash=sha256:7e572c8104e75db2c69609d195daf44c7b965dcb1c5b48e30fc376868909be56 \ + --hash=sha256:7e640b7636d86271ba8969b260e1655068b44750f20801ebc80f49a1aa737bf9 \ + --hash=sha256:7f13e71f5171f30d8b4176c081f0203a43e1704746b4cdaa837477945177b2a0 \ + --hash=sha256:9d2b127ba5155bff452944b8a96ba06d7ec2161f48a2f9cc190425bfca94ab6b \ + --hash=sha256:a88ce85176639723f04cf5ce59157ecf3a9faca5d5dd1fe82d5ef46a3bd1d102 \ + --hash=sha256:c8f6e7a697d0ddf754798988fae7b2a0da04f6a59fb13ae863e5d1da4b280c4f \ + --hash=sha256:cb4523097f1ccabb95b3197a58278a40fc944b33791d3406bfa397e12303b6c6 \ + --hash=sha256:cf74db9a1542f66793ccc00e403c8c2c36c67c0cff0fb01d23fe71cc1c56c788 \ + --hash=sha256:d9548f353f17407d00f67d08c737de9f5c067352c3bdac8571492c614c2893eb \ + --hash=sha256:de06b6bd8241a189f729b8c093ce5dcf5928489eb7748bda28e28324e57544b0 \ + --hash=sha256:e46d957fbeecaa1437f2dd715407b1e59e0918cc29382c7ea79784c5f3cbe0d2 \ + --hash=sha256:ed04bd0065d870912c1b0a4b34b8a78698c76d77f15474c3e841b0b6dd2f429f diff --git a/electrum/contrib/deterministic-build/requirements-build-appimage.txt b/electrum/contrib/deterministic-build/requirements-build-appimage.txt new file mode 100644 index 000000000..53017f9ea --- /dev/null +++ b/electrum/contrib/deterministic-build/requirements-build-appimage.txt @@ -0,0 +1,3 @@ +setuptools==68.2.2 \ + --hash=sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87 \ + --hash=sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a diff --git a/electrum/contrib/deterministic-build/requirements-build-wine.txt b/electrum/contrib/deterministic-build/requirements-build-wine.txt index 8afb96ccc..043c0bafe 100644 --- a/electrum/contrib/deterministic-build/requirements-build-wine.txt +++ b/electrum/contrib/deterministic-build/requirements-build-wine.txt @@ -1,38 +1,41 @@ altgraph==0.17.3 \ --hash=sha256:ad33358114df7c9416cdb8fa1eaa5852166c505118717021c6a8c7c7abbd03dd \ --hash=sha256:c8ac1ca6772207179ed8003ce7687757c04b0b71536f81e2ac5755c6226458fe future==0.18.3 \ --hash=sha256:34a17436ed1e96697a86f9de3d15a3b0be01d8bc8de9c1dffd59fb8234ed5307 pefile==2023.2.7 \ --hash=sha256:82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc \ --hash=sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6 -pyinstaller-hooks-contrib==2022.15 \ - --hash=sha256:55c1def8066d0279d06cd67eea30c12ffcdb961a5edeeaf361adac0164baef30 \ - --hash=sha256:73fd4051dc1620f3ae9643291cd9e2f47bfed582ade2eb05e3247ecab4a4f5f3 +pyinstaller-hooks-contrib==2023.9 \ + --hash=sha256:76084b5988e3957a9df169d2a935d65500136967e710ddebf57263f1a909cd80 \ + --hash=sha256:f34f4c6807210025c8073ebe665f422a3aa2ac5f4c7ebf4c2a26cc77bebf63b5 pywin32==305 \ --hash=sha256:109f98980bfb27e78f4df8a51a8198e10b0f347257d1e265bb1a32993d0c973d \ --hash=sha256:13362cc5aa93c2beaf489c9c9017c793722aeb56d3e5166dadd5ef82da021fe1 \ --hash=sha256:19ca459cd2e66c0e2cc9a09d589f71d827f26d47fe4a9d09175f6aa0256b51c2 \ --hash=sha256:326f42ab4cfff56e77e3e595aeaf6c216712bbdd91e464d167c6434b28d65990 \ --hash=sha256:421f6cd86e84bbb696d54563c48014b12a23ef95a14e0bdba526be756d89f116 \ --hash=sha256:48d8b1659284f3c17b68587af047d110d8c44837736b8932c034091683e05863 \ --hash=sha256:4ecd404b2c6eceaca52f8b2e3e91b2187850a1ad3f8b746d0796a98b4cea04db \ --hash=sha256:50768c6b7c3f0b38b7fb14dd4104da93ebced5f1a50dc0e834594bff6fbe1271 \ --hash=sha256:56d7a9c6e1a6835f521788f53b5af7912090674bb84ef5611663ee1595860fc7 \ --hash=sha256:73e819c6bed89f44ff1d690498c0a811948f73777e5f97c494c152b850fad478 \ --hash=sha256:742eb905ce2187133a29365b428e6c3b9001d79accdc30aa8969afba1d8470f4 \ --hash=sha256:9d968c677ac4d5cbdaa62fd3014ab241718e619d8e36ef8e11fb930515a1e918 \ --hash=sha256:9dd98384da775afa009bc04863426cb30596fd78c6f8e4e2e5bbf4edf8029504 \ --hash=sha256:a55db448124d1c1484df22fa8bbcbc45c64da5e6eae74ab095b9ea62e6d00496 -pywin32-ctypes==0.2.0 \ - --hash=sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942 \ - --hash=sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98 +pywin32-ctypes==0.2.2 \ + --hash=sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60 \ + --hash=sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7 setuptools==67.2.0 \ --hash=sha256:16ccf598aab3b506593c17378473978908a2734d7336755a8769b480906bec1c \ --hash=sha256:b440ee5f7e607bb8c9de15259dba2583dd41a38879a7abc1d43a71c59524da48 toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f wheel==0.38.4 \ --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \ --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8 +packaging==23.2 \ + --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ + --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 diff --git a/electrum/contrib/deterministic-build/requirements-hw.txt b/electrum/contrib/deterministic-build/requirements-hw.txt index 78576216a..891216243 100644 --- a/electrum/contrib/deterministic-build/requirements-hw.txt +++ b/electrum/contrib/deterministic-build/requirements-hw.txt @@ -1,356 +1,349 @@ attrs==21.4.0 \ --hash=sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4 \ --hash=sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd btchip-python==0.1.32 \ --hash=sha256:34f5e0c161c08f65dc0d070ba2ff4c315ed21c4b7e0faa32a46862d0dc1b8f55 certifi==2023.5.7 \ --hash=sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7 \ --hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716 -cffi==1.15.1 \ - --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ - --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ - --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \ - --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \ - --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \ - --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \ - --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \ - --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \ - --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \ - --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \ - --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \ - --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \ - --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \ - --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \ - --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \ - --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \ - --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \ - --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \ - --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \ - --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \ - --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \ - --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \ - --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \ - --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \ - --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \ - --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \ - --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \ - --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \ - --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \ - --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \ - --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \ - --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \ - --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \ - --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \ - --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \ - --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \ - --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \ - --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \ - --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \ - --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \ - --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \ - --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \ - --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \ - --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \ - --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \ - --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \ - --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \ - --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \ - --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \ - --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \ - --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \ - --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \ - --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \ - --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \ - --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \ - --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \ - --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \ - --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \ - --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \ - --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \ - --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \ - --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ - --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ - --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 +cffi==1.16.0 \ + --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ + --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ + --hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \ + --hash=sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab \ + --hash=sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520 \ + --hash=sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36 \ + --hash=sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743 \ + --hash=sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8 \ + --hash=sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed \ + --hash=sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684 \ + --hash=sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56 \ + --hash=sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324 \ + --hash=sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d \ + --hash=sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235 \ + --hash=sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e \ + --hash=sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088 \ + --hash=sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000 \ + --hash=sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7 \ + --hash=sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e \ + --hash=sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673 \ + --hash=sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c \ + --hash=sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe \ + --hash=sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2 \ + --hash=sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 \ + --hash=sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8 \ + --hash=sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a \ + --hash=sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0 \ + --hash=sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b \ + --hash=sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896 \ + --hash=sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e \ + --hash=sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9 \ + --hash=sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2 \ + --hash=sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b \ + --hash=sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6 \ + --hash=sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404 \ + --hash=sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f \ + --hash=sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 \ + --hash=sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4 \ + --hash=sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc \ + --hash=sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936 \ + --hash=sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba \ + --hash=sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872 \ + --hash=sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb \ + --hash=sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614 \ + --hash=sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1 \ + --hash=sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d \ + --hash=sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969 \ + --hash=sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b \ + --hash=sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4 \ + --hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \ + --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ + --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 charset-normalizer==3.0.1 \ --hash=sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b \ --hash=sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42 \ --hash=sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d \ --hash=sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b \ --hash=sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a \ --hash=sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59 \ --hash=sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154 \ --hash=sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1 \ --hash=sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c \ --hash=sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a \ --hash=sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d \ --hash=sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6 \ --hash=sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b \ --hash=sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b \ --hash=sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783 \ --hash=sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5 \ --hash=sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918 \ --hash=sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555 \ --hash=sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639 \ --hash=sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786 \ --hash=sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e \ --hash=sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed \ --hash=sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820 \ --hash=sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8 \ --hash=sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3 \ --hash=sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541 \ --hash=sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14 \ --hash=sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be \ --hash=sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e \ --hash=sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76 \ --hash=sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b \ --hash=sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c \ --hash=sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b \ --hash=sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3 \ --hash=sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc \ --hash=sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6 \ --hash=sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59 \ --hash=sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4 \ --hash=sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d \ --hash=sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d \ --hash=sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3 \ --hash=sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a \ --hash=sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea \ --hash=sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6 \ --hash=sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e \ --hash=sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603 \ --hash=sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24 \ --hash=sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a \ --hash=sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58 \ --hash=sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678 \ --hash=sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a \ --hash=sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c \ --hash=sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6 \ --hash=sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18 \ --hash=sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174 \ --hash=sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317 \ --hash=sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f \ --hash=sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc \ --hash=sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837 \ --hash=sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41 \ --hash=sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c \ --hash=sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579 \ --hash=sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753 \ --hash=sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8 \ --hash=sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291 \ --hash=sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087 \ --hash=sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866 \ --hash=sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3 \ --hash=sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d \ --hash=sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1 \ --hash=sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca \ --hash=sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e \ --hash=sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db \ --hash=sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72 \ --hash=sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d \ --hash=sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc \ --hash=sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539 \ --hash=sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d \ --hash=sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af \ --hash=sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b \ --hash=sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602 \ --hash=sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f \ --hash=sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478 \ --hash=sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c \ --hash=sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e \ --hash=sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479 \ --hash=sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7 \ --hash=sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8 click==8.1.3 \ --hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \ --hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48 construct==2.10.68 \ --hash=sha256:7b2a3fd8e5f597a5aa1d614c3bd516fa065db01704c72a1efaaeec6ef23d8b45 construct-classes==0.1.2 \ --hash=sha256:72ac1abbae5bddb4918688713f991f5a7fb6c9b593646a82f4bf3ac53de7eeb5 \ --hash=sha256:e82437261790758bda41e45fb3d5622b54cfbf044ceb14774af68346faf5e08e cryptography==39.0.1 \ --hash=sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4 \ --hash=sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f \ --hash=sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502 \ --hash=sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41 \ --hash=sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965 \ --hash=sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e \ --hash=sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc \ --hash=sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad \ --hash=sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505 \ --hash=sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388 \ --hash=sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6 \ --hash=sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2 \ --hash=sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac \ --hash=sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695 \ --hash=sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6 \ --hash=sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336 \ --hash=sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0 \ --hash=sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c \ --hash=sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106 \ --hash=sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a \ --hash=sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8 -Cython==0.29.33 \ - --hash=sha256:0168482495b75fea1c97a9641a95bac991f313e85f378003f9a4909fdeb3d454 \ - --hash=sha256:0455d5b92f461218bcf173a149a88b7396c3a109066274ccab5eff58db0eae32 \ - --hash=sha256:060a2568ef80116a0a9dcaf3218a61c6007be0e0b77c5752c094ce5187a4d63c \ - --hash=sha256:090556e41f2b30427dd3a1628d3613177083f47567a30148b6b7b8c7a5862187 \ - --hash=sha256:0b53e017522feb8dcc2189cf1d2d344bab473c5bba5234390b5666d822992c7c \ - --hash=sha256:1900d862a4a537d2125706740e9f3b016e80f7bbf7b54db6b3cc3d0bdf0f5c3a \ - --hash=sha256:190e60b7505d3b9b60130bcc2251c01b9ef52603420829c19d3c3ede4ac2763a \ - --hash=sha256:19c9913e9304bf97f1d2c357438895466f99aa2707d3c7a5e9de60c259e1ca1d \ - --hash=sha256:1b507236ba3ca94170ce0a504dd03acf77307d4bfbc5a010a8031673f6b213a9 \ - --hash=sha256:1ca93bbe584aee92094fd4fb6acc5cb6500acf98d4f57cc59244f0a598b0fcf6 \ - --hash=sha256:1dd503408924723b0bb10c0013b76e324eeee42db6deced9b02b648f1415d94c \ - --hash=sha256:286cdfb193e23799e113b7bd5ac74f58da5e9a77c70e3b645b078836b896b165 \ - --hash=sha256:37bfca4f9f26361343d8c678f8178321e4ae5b919523eed05d2cd8ddbe6b06ec \ - --hash=sha256:49fb45b2bf12d6e2060bbd64506c06ac90e254f3a4bceb32c717f4964a1ae812 \ - --hash=sha256:4cadf5250eda0c5cdaf4c3a29b52be3e0695f4a2bf1ccd49b638d239752ea513 \ - --hash=sha256:4f88c2dc0653eef6468848eb8022faf64115b39734f750a1c01a7ba7eb04d89f \ - --hash=sha256:5040764c4a4d2ce964a395da24f0d1ae58144995dab92c6b96f44c3f4d72286a \ - --hash=sha256:5430f38d3d01c4715ec2aef5c41e02a2441c1c3a0149359c7a498e4c605b8e6c \ - --hash=sha256:581efc0622a9be05714222f2b4ac96a5419de58d5949517282d8df38155c8b9d \ - --hash=sha256:5bf5ffd96957a595441cca2fc78470d93fdc40dfe5449881b812ea6045d7e9be \ - --hash=sha256:6b4e6481e3e7e4d345640fe2fdc6dc57c94369b467f3dc280949daa8e9fd13b9 \ - --hash=sha256:6b8bcbf8f1c3c46d6184be1e559e3a3fb8cdf27c6d507d8bc8ae04cfcbfd75f5 \ - --hash=sha256:8507279a4f86ed8365b96603d5ad155888d4d01b72a9bbf0615880feda5a11d4 \ - --hash=sha256:8b99252bde8ff51cd06a3fe4aeacd3af9b4ff4a4e6b701ac71bddc54f5da61d6 \ - --hash=sha256:959f0092d58e7fa00fd3434f7ff32fb78be7c2fa9f8e0096326343159477fe45 \ - --hash=sha256:a9863f8238642c0b1ef8069d99da5ade03bfe2225a64b00c5ae006d95f142a73 \ - --hash=sha256:a9b0b890656e9d18a18e1efe26ea3d2d0f3e525a07a2a853592b0afc56a15c89 \ - --hash=sha256:afc9b6ab20889676c76e700ae6967aa6886a7efe5b05ef6d5b744a6ca793cc43 \ - --hash=sha256:b5e8ce3039ff64000d58cd45b3f6f83e13f032dde7f27bb1ab96070d9213550b \ - --hash=sha256:b67ddd32eaa2932a66bf8121accc36a7b3078593805519b0f00040f2b10a6a52 \ - --hash=sha256:bcb1a84fd2bd7885d572adc180e24fd8a7d4b0c104c144e33ccf84a1ab4eb2b8 \ - --hash=sha256:c4d315443c7f4c61180b6c3ea9a9717ee7c901cc9db8d1d46fdf6556613840ed \ - --hash=sha256:d2019a7e54ba8b253f44411863b8f8c0b6cd623f7a92dc0ccb83892358c4283a \ - --hash=sha256:d4457d417ffbb94abc42adcd63a03b24ff39cf090f3e9eca5e10cfb90766cbe3 \ - --hash=sha256:d78147ad8a3417ae6b371bbc5bfc6512f6ad4ad3fb71f5eef42e136e4ed14970 \ - --hash=sha256:da490129e1e4ffaf3f88bfb46d338549a2150f60f809a63d385b83e00960d11a \ - --hash=sha256:dd96b06b93c0e5fa4fc526c5be37c13a93e2fe7c372b5f358277ebe9e1620957 \ - --hash=sha256:e8922fa3d7e76b7186bbd0810e170ca61f83661ab1b29dc75e88ff2327aaf49d \ - --hash=sha256:f271f90005064c49b47a93f456dc6cf0a21d21ef835bd33ac1e0db10ad51f84f \ - --hash=sha256:f67b7306fd00d55f271009335cecadc506d144205c7891070aad889928d85750 +Cython==0.29.36 \ + --hash=sha256:0bca6a7504e8cfc63a4d3c7c9b9a04e5d05501942a6c8cee177363b61a32c2d4 \ + --hash=sha256:17c74f80b06e2fa8ffc8acd41925f4f9922da8a219cd25c6901beab2f7c56cc5 \ + --hash=sha256:19ccf7fc527cf556e2e6a3dfeffcadfbcabd24a59a988289117795dfed8a25ad \ + --hash=sha256:1ea33c1c57f331f5653baa1313e445fbe80d1da56dd9a42c8611037887897b9d \ + --hash=sha256:1ef90023da8a9bf84cf16f06186db0906d2ce52a09f751e2cb9d3da9d54eae46 \ + --hash=sha256:1ff2cc5518558c598028ae8d9a43401e0e734b74b6e598156b005328c9da3472 \ + --hash=sha256:25ff471a459aad82146973b0b8c177175ab896051080713d3035ad4418739f66 \ + --hash=sha256:28fb10aabd56a2e4d399273b48e106abe5a0d271728fd5eed3d36e7171000045 \ + --hash=sha256:2edd9f8edca69178d74cbbbc180bc3e848433c9b7dc80374a11a0bb0076c926d \ + --hash=sha256:2fe34615c13ace29e77bf9d21c26188d23eff7ad8b3e248da70404e5f5436b95 \ + --hash=sha256:41c0cfd2d754e383c9eeb95effc9aa4ab847d0c9747077ddd7c0dcb68c3bc01f \ + --hash=sha256:50d506d73a46c4a522ef9fdafcbf7a827ba13907b18ff58f61a8fa0887d0bd8d \ + --hash=sha256:53f93a8c342e9445a8f0cb7039775294f2dbbe5241936573daeaf0afe30397e4 \ + --hash=sha256:568625e8274ee7288ad87b0f615ec36ab446ca9b35e77481ed010027d99c7020 \ + --hash=sha256:6058a6d04e04d790cda530e1ff675e9352359eb4b777920df3cac2b62a9a030f \ + --hash=sha256:68abee3be27f21c9642a07a93f8333d491f4c52bc70068e42f51685df9ac1a57 \ + --hash=sha256:69af2365de2343b4e5a61c567e7611ddf2575ae6f6e5c01968f7d4f2747324eb \ + --hash=sha256:6a571d7c7b52ee12d73bc65b4855779c069545da3bac26bec06a1389ad17ade5 \ + --hash=sha256:6c4d7e36fe0211e394adffd296382b435ac22762d14f2fe45c506c230f91cf2d \ + --hash=sha256:74bddfc7dc8958526b2018d3adc1aa6dc9cf2a24095c972e5ad06758c360b261 \ + --hash=sha256:768f65b16d23c630d8829ce1f95520ef1531a9c0489fa872d87c8c3813f65aee \ + --hash=sha256:7ca921068242cd8b52544870c807fe285c1f248b12df7b6dfae25cc9957b965e \ + --hash=sha256:7cb44aeaf6c5c25bd6a7562ece4eadf50d606fc9b5f624fa95bd0281e8bf0a97 \ + --hash=sha256:847d07fc02978c4433d01b4f5ee489b75fd42fd32ccf9cc4b5fd887e8cffe822 \ + --hash=sha256:86b7a13c6b23ab6471d40a320f573fbc8a4e39833947eebed96661145dc34771 \ + --hash=sha256:8894db6f5b6479a3c164e0454e13083ebffeaa9a0822668bb2319bdf1b783df1 \ + --hash=sha256:95bb13d8be507425d03ebe051f90d4b2a9fdccc64e4f30b35645fdb7542742eb \ + --hash=sha256:9deef0761e8c798043dbb728a1c6df97b26e5edc65b8d6c7608b3c07af3eb722 \ + --hash=sha256:9f2a4b4587aaef08815410dc20653613ca04a120a2954a92c39e37c6b5fdf6be \ + --hash=sha256:a216b2801c7d9c3babe0a10cc25da3bc92494d7047d1f732d3c47b0cceaf0941 \ + --hash=sha256:a9738f23d00d99481797b155ad58f8fc1c72096926ea2554b8ccc46e1d356c27 \ + --hash=sha256:ae75eac4f13cbbcb50b2097470dcea570182446a3ebd0f7e95dd425c2017a2d7 \ + --hash=sha256:af2f333f08c4c279f3480532341bf70ec8010bcbc7d8a6daa5ca0bf4513af295 \ + --hash=sha256:bdc0a4cb99f55e6878d4b67a4bfee23823484915cb6b7e9c9dd01002dd3592ea \ + --hash=sha256:c6c0aea8491a70f98b7496b5057c9523740e02cec21cd678eef609d2aa6c1257 \ + --hash=sha256:cd77cedbcc13cb67aef39b8615fd50a67fc42b0c6defea6fc0a21e19d3a062ec \ + --hash=sha256:de2045ceae1857e56a72f08e0acfa48c994277a353b7bdab1f097db9f8803f19 \ + --hash=sha256:e4b8269e5a5d127a2191b02b9df3636c0dac73f14f1ff8a831f39cb5197c4f38 \ + --hash=sha256:ee317f9bcab901a3db39c34ee5a27716f7132e5c0de150125342694d18b30f51 \ + --hash=sha256:f0df6552be39853b10dfb5a10dbd08f5c49023d6b390d7ce92d4792a8b6e73ee \ + --hash=sha256:fdf377b0f6e9325b73ad88933136023184afdc795caeeaaf3dca13494cffd15e ecdsa==0.18.0 \ --hash=sha256:190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49 \ --hash=sha256:80600258e7ed2f16b9aa1d7c295bd70194109ad5a30fdee0eaeefef1d4c559dd hidapi==0.13.1 \ --hash=sha256:0933fef6e1599c38093bec22a3dded359fb0a9ce57ab43db8947eca7308fe0a8 \ --hash=sha256:0c6ae8a0b69ca9ae0ad3f948e1174231a9b781a70ff3642e6b110dfec770cf59 \ --hash=sha256:0e245b5177fc59548e4f76400a07a7882fca48a1c650f7c5d902afe519869bd0 \ --hash=sha256:155bce0c0741ee3b4cf93ac53d02526ef16008a1ef3d9071cd67dd4e190c02d8 \ --hash=sha256:1b2421ace55d1cca96b8d5c09f918e7662b6ac7b7dbb0f624814e831dab5062e \ --hash=sha256:1eb1247930ebf45275937db011856880dc6e3c961290dc8783835230312250b6 \ --hash=sha256:20c06a2256696e83c5f2789dcd9a8109009af5f3e75af0082934867fc6de5283 \ --hash=sha256:22d5af6f776fffce8078d6d3785dc8c1647688183c1dbda24acf6dd841d76ac3 \ --hash=sha256:2dcaf4b9df91a10c0e2904f175c0bfed53d51a3fe73d2aba7061ddc360249f86 \ --hash=sha256:2f013d7e107aef90a4c79802f7e44f5280f9fd62d3d43e307dd7d108c95277cd \ --hash=sha256:3c190d4f8be403c8ee543684013e85494ac690da2d636a03a4f7f5b75b41bba5 \ --hash=sha256:3cb651134546cabc1e515b38626732770ec3ab0157b33dc132fc2f4607858658 \ --hash=sha256:5696e1479c203e6123db5f6c5effe6fdca3a5da332bd9ba559687056af7b1d3c \ --hash=sha256:571e3a07bcbdc13c2d2af9bd09839e6f45cfbac8d5e2d28b7e1b844427813162 \ --hash=sha256:58580360dc69206a54efccc6d234baa6dbfa56394386ff77bdd67228b27c9759 \ --hash=sha256:5a51521200fecd677695d7bd12a6efdccf315a16929a65b836fb7ec8596a24f4 \ --hash=sha256:63494ccce46bf60491d7e44f1371443a178e21afa287b341288057bfbefbe872 \ --hash=sha256:6490021f7d8227fb6277355f143539404c1b9074d77d64febbe0d4a629f0835b \ --hash=sha256:64ec0dcce28232354a91d4575a74eab77fcbb4379fa2f4650e9eaadd7561d887 \ --hash=sha256:68b9281c22e7832e1d140d3eb65718486b61ac24701837c0ff211f2195bedfb8 \ --hash=sha256:6ab4dd2e19918beff50638be89b9626191df4514456fd7388611762cdbbd46cc \ --hash=sha256:6c0a285b3720d1277f318b574d987483d6127b75d7d76decdd6c85c724af8ef7 \ --hash=sha256:7b59778cec7ef9f6151778bf65a1b1dd164014238d7d4345c8e376c4a4baac0e \ --hash=sha256:8174e095386a37eb3d8eb08e942f3aa7e6bd703c296dbb6c45cbca40862a7253 \ --hash=sha256:871808f5b4c8049f758b94375e24bfe87c8a58f91f7c2ca4c482ab003c9af9a7 \ --hash=sha256:8a735ea49c68d6008b4e07b3de5b4c211f875c262dd14d6669a3629bc482a375 \ --hash=sha256:93b95d8bb6c87f6db03b6eb9faffb2fe977ac788791898651826c1b61a4734c1 \ --hash=sha256:93dfc2739e0d3f773ae148fed9c0f020c13e17d9d512cf73b54a5e60f0b28c68 \ --hash=sha256:99b18b28ec414ef9b604ddaed08182e486a400486f31ca56f61d537eed1d17cf \ --hash=sha256:9ed536627429bc299b28188a28d2fe4230b472d737ee9dc5c8376fd66c418674 \ --hash=sha256:a3fcfe6e4a75651baf704001ddf765326ddd64b55b1ba6cd0e2e0851409c27c4 \ --hash=sha256:a48a0c3f1113ac05d389ae4eff00485a253c63dc6e7c7c17ae3026d063ca809a \ --hash=sha256:aca9899e7fccc6f9e6a909681c5d97cc2ba224683d886c96bcdca3165454d875 \ --hash=sha256:afc7991c12235f3392b5f744b75878429dbf5a3a4a0d51ca18b1e82ebcce7033 \ --hash=sha256:c8647eeb286d1b46104a297258b4af15e7878b3dbdb9951ba01cf233b2ff513a \ --hash=sha256:cf6a90f988c3a1b1910f441c29e4c8c21150c6cb0ed5a8be3bea715aed02002d \ --hash=sha256:d1e91ef0cca8185a858491d9e253f585e58888c5350013ab9305caf4b7f563ba \ --hash=sha256:da551cdf88122e9d7dbb93557efa69d35fb1b1fea0510a5bd461af331ad92892 \ --hash=sha256:ebffcf48798bbf2018a86f1465eeabce0da98c2066c99a121db97dd397b798b3 \ --hash=sha256:ec97dcb6697659be0878aac14143ba00ab43e86a6bbec2fa6af46f833ab69743 \ --hash=sha256:f5a16a8a97ac944775369713b35bb47a7cb6b3091458e7cfe4fdec3f7ac9c29e idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 keepkey==6.3.1 \ --hash=sha256:88e2b5291c85c8e8567732f675697b88241082884aa1aba32257f35ee722fc09 \ --hash=sha256:cef1e862e195ece3e42640a0f57d15a63086fd1dedc8b5ddfcbc9c2657f0bb1e \ --hash=sha256:f369d640c65fec7fd8e72546304cdc768c04224a6b9b00a19dc2cd06fa9d2a6b libusb1==3.0.0 \ --hash=sha256:083f75e5d15cb5e2159e64c308c5317284eae926a820d6dce53a9505d18be3b2 \ --hash=sha256:0e652b04cbe85ec8e74f9ee82b49f861fb14b5320ae51399387ad2601ccc0500 \ --hash=sha256:5792a9defee40f15d330a40d9b1800545c32e47ba7fc66b6f28f133c9fcc8538 \ --hash=sha256:6f6bb010632ada35c661d17a65e135077beef0fbb2434d5ffdb3a4a911fd9490 -mnemonic==0.20 \ - --hash=sha256:7c6fb5639d779388027a77944680aee4870f0fcd09b1e42a5525ee2ce4c625f6 \ - --hash=sha256:acd2168872d0379e7a10873bb3e12bf6c91b35de758135c4fbd1015ef18fafc5 +mnemonic==0.21 \ + --hash=sha256:72dc9de16ec5ef47287237b9b6943da11647a03fe7cf1f139fc3d7c4a7439288 \ + --hash=sha256:1fe496356820984f45559b1540c80ff10de448368929b9c60a2b55744cc88acf protobuf==3.20.3 \ --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee pyaes==1.6.1 \ --hash=sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 pyOpenSSL==23.0.0 \ --hash=sha256:c1cc5f86bcacefc84dada7d31175cae1b1518d5f60d3d0bb595a67822a868a6f \ --hash=sha256:df5fc28af899e74e19fccb5510df423581047e10ab6f1f4ba1763ff5fde844c0 pysatochip==0.14.2 \ --hash=sha256:676081e3524c68427d3a0ad713bb52789d5edd4823855187e772cf1fc4e2814c \ --hash=sha256:f99dc3e884d9a2e84b6c4a2dbc9f4c0df83a40e8631952ab2e2d502f590e7641 -pyscard==2.0.0 \ - --hash=sha256:2abc34387ce5d1567a1052edc47797c1288739b51b664468d34ca77c9a3b05c2 \ - --hash=sha256:59cb506e8e793c397f3014f0933752df8d00c97c9f3a3385698e77213423962f \ - --hash=sha256:60dbc52f00da90e3428e987679723588598579a7c3c757e9937cecd6e381ddd2 \ - --hash=sha256:6d6ddcf57f97b0899b952c1c0746177c4b4b52af2ca47eb4d6bd0b9096530181 \ - --hash=sha256:73945cd5a8c6e2e4982ba24d70fdba9e1b4ca68b82169337f4733823f7b49fb6 \ - --hash=sha256:852a4e354bb82cc1f68afb204349ca68ea6c5332242644a80651a5c62bb1ab5f \ - --hash=sha256:e162f9af64b49beb435e6543819f604e45534c822eb77fd100773f359fbcb6d8 \ - --hash=sha256:b364d9d9186e793c1c4709eb72a4d29e09067d36ca463b2c2abd995bd1055779 +pyscard==2.0.7 \ + --hash=sha256:06666a597e1293421fa90e0d4fc2418add447b10b7dc85f49b3cafc23480f046 \ + --hash=sha256:278054525fa75fbe8b10460d87edcd03a70ad94d688b11345e4739987f85c1bf \ + --hash=sha256:2d4bdc1f4e0e6c46e417ac1bc9d5990f7cfb24a080e890d453781405f7bd29dc \ + --hash=sha256:39e030c47878b37ae08038a917959357be6468da52e8b144e84ffc659f50e6e2 \ + --hash=sha256:59a466ab7ae20188dd197664b9ca1ea9524d115a5aa5b16b575a6b772cdcb73c \ + --hash=sha256:5a5865675be294c8d91f22dc91e7d897c4138881e5295fb6b2cd821f7c0389d9 \ + --hash=sha256:8e37b697327e8dc4848c481428d1cbd10b7ae2ce037bc799e5b8bbd2fc3ab5ed \ + --hash=sha256:a0c5edbedafba62c68160884f878d9f53996d7219a3fc11b1cea6bab59c7f34a \ + --hash=sha256:a2266345bd387854298153264bff8b74f494581880a76e3e8679460c1b090fab \ + --hash=sha256:beacdcdc3d1516e195f7a38ec3966c5d4df7390c8f036cb41f6fef72bc5cc646 \ + --hash=sha256:da70aa5b7be5868b88cdb6d4a419d2791b6165beeb90cd01d2748033302a0f43 \ + --hash=sha256:f704ad40dc40306e1c0981941789518ab16aa1f84443b1d52ec0264884092b3b requests==2.31.0 \ --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 \ --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f simple-rlp==0.1.3 \ --hash=sha256:2df1d2b769f0a0177d26231ab8be16e65e3546b17bb0a9a490efd3517c082876 six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 trezor==0.13.8 \ --hash=sha256:634d4eddf35603257c321618d8548c6a35b27384657b65e3b0bdbad635a57cff \ --hash=sha256:0bd22f761622199df99f8dada3327a94e68542d0b4b5ccfdfaca133308616c86 typing-extensions==4.9.0 \ --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd urllib3==1.26.14 \ --hash=sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72 \ --hash=sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1 colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 diff --git a/electrum/contrib/deterministic-build/requirements-pip.txt b/electrum/contrib/deterministic-build/requirements-pip.txt index 0c514f57a..c836a92a8 100644 --- a/electrum/contrib/deterministic-build/requirements-pip.txt +++ b/electrum/contrib/deterministic-build/requirements-pip.txt @@ -1,3 +1,3 @@ -pip==21.3.1 \ - --hash=sha256:deaf32dcd9ab821e359cd8330786bcd077604b5c5730c0b096eda46f95c24a2d \ - --hash=sha256:fd11ba3d0fdb4c07fbc5ecbba0b1b719809420f25038f8ee3cd913d3faa3033a +pip==23.2.1 \ + --hash=sha256:7ccf472345f20d35bdc9d1841ff5f313260c2c33fe417f48c30ac46cccabf5be \ + --hash=sha256:fb0bd5435b3200c602b5bf61d2d43c2f13c02e29c1707567ae7fbc514eb9faf2 diff --git a/electrum/contrib/deterministic-build/requirements.txt b/electrum/contrib/deterministic-build/requirements.txt index a6ea820e9..588bae625 100644 --- a/electrum/contrib/deterministic-build/requirements.txt +++ b/electrum/contrib/deterministic-build/requirements.txt @@ -1,217 +1,216 @@ certifi==2023.5.7 \ --hash=sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7 \ --hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716 charset-normalizer==3.0.1 \ --hash=sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b \ --hash=sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42 \ --hash=sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d \ --hash=sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b \ --hash=sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a \ --hash=sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59 \ --hash=sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154 \ --hash=sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1 \ --hash=sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c \ --hash=sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a \ --hash=sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d \ --hash=sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6 \ --hash=sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b \ --hash=sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b \ --hash=sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783 \ --hash=sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5 \ --hash=sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918 \ --hash=sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555 \ --hash=sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639 \ --hash=sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786 \ --hash=sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e \ --hash=sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed \ --hash=sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820 \ --hash=sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8 \ --hash=sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3 \ --hash=sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541 \ --hash=sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14 \ --hash=sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be \ --hash=sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e \ --hash=sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76 \ --hash=sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b \ --hash=sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c \ --hash=sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b \ --hash=sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3 \ --hash=sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc \ --hash=sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6 \ --hash=sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59 \ --hash=sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4 \ --hash=sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d \ --hash=sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d \ --hash=sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3 \ --hash=sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a \ --hash=sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea \ --hash=sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6 \ --hash=sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e \ --hash=sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603 \ --hash=sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24 \ --hash=sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a \ --hash=sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58 \ --hash=sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678 \ --hash=sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a \ --hash=sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c \ --hash=sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6 \ --hash=sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18 \ --hash=sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174 \ --hash=sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317 \ --hash=sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f \ --hash=sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc \ --hash=sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837 \ --hash=sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41 \ --hash=sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c \ --hash=sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579 \ --hash=sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753 \ --hash=sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8 \ --hash=sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291 \ --hash=sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087 \ --hash=sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866 \ --hash=sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3 \ --hash=sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d \ --hash=sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1 \ --hash=sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca \ --hash=sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e \ --hash=sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db \ --hash=sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72 \ --hash=sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d \ --hash=sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc \ --hash=sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539 \ --hash=sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d \ --hash=sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af \ --hash=sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b \ --hash=sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602 \ --hash=sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f \ --hash=sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478 \ --hash=sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c \ --hash=sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e \ --hash=sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479 \ --hash=sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7 \ --hash=sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8 dnspython==2.3.0 \ --hash=sha256:224e32b03eb46be70e12ef6d64e0be123a64e621ab4c0822ff6d450d52a540b9 \ --hash=sha256:89141536394f909066cabd112e3e1a37e4e654db00a25308b0f130bc3152eb46 ecdsa==0.18.0 \ --hash=sha256:190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49 \ --hash=sha256:80600258e7ed2f16b9aa1d7c295bd70194109ad5a30fdee0eaeefef1d4c559dd idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 jsonrpclib-pelix==0.4.3.2 \ --hash=sha256:a9c0178317562a179e83deb27f753840fad4afe3b2bd1ee64495592ce3df1b28 \ --hash=sha256:e9e0b33efa8fa20d817dd78dfd9e4cdb3967c8a5d3cb5a783be1ee81c4a89c7c mnemonic==0.20 \ --hash=sha256:7c6fb5639d779388027a77944680aee4870f0fcd09b1e42a5525ee2ce4c625f6 \ --hash=sha256:acd2168872d0379e7a10873bb3e12bf6c91b35de758135c4fbd1015ef18fafc5 -packaging==23.0 \ - --hash=sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2 \ - --hash=sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97 +packaging==23.2 \ + --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ + --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 pathvalidate==2.5.2 \ --hash=sha256:5ff57d0fabe5ecb7a4f1e4957bfeb5ad8ab5ab4c0fa71f79c6bbc24bd9b7d14d \ --hash=sha256:e39a4dfacdba70e3a96d3e4c6ff617a39e991cf242e6e1f2017f1f67c3408d33 protobuf==3.20.3 \ --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee pyaes==1.6.1 \ --hash=sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 -pycryptodomex==3.17 \ - --hash=sha256:0af93aad8d62e810247beedef0261c148790c52f3cd33643791cc6396dd217c1 \ - --hash=sha256:12056c38e49d972f9c553a3d598425f8a1c1d35b2e4330f89d5ff1ffb70de041 \ - --hash=sha256:23d83b610bd97704f0cd3acc48d99b76a15c8c1540d8665c94d514a49905bad7 \ - --hash=sha256:2d4d395f109faba34067a08de36304e846c791808524614c731431ee048fe70a \ - --hash=sha256:32e764322e902bbfac49ca1446604d2839381bbbdd5a57920c9daaf2e0b778df \ - --hash=sha256:3c2516b42437ae6c7a29ef3ddc73c8d4714e7b6df995b76be4695bbe4b3b5cd2 \ - --hash=sha256:40e8a11f578bd0851b02719c862d55d3ee18d906c8b68a9c09f8c564d6bb5b92 \ - --hash=sha256:4b51e826f0a04d832eda0790bbd0665d9bfe73e5a4d8ea93b6a9b38beeebe935 \ - --hash=sha256:4c4674f4b040321055c596aac926d12f7f6859dfe98cd12f4d9453b43ab6adc8 \ - --hash=sha256:55eed98b4150a744920597c81b3965b632038781bab8a08a12ea1d004213c600 \ - --hash=sha256:599bb4ae4bbd614ca05f49bd4e672b7a250b80b13ae1238f05fd0f09d87ed80a \ - --hash=sha256:5c23482860302d0d9883404eaaa54b0615eefa5274f70529703e2c43cc571827 \ - --hash=sha256:64b876d57cb894b31056ad8dd6a6ae1099b117ae07a3d39707221133490e5715 \ - --hash=sha256:67a3648025e4ddb72d43addab764336ba2e670c8377dba5dd752e42285440d31 \ - --hash=sha256:6feedf4b0e36b395329b4186a805f60f900129cdf0170e120ecabbfcb763995d \ - --hash=sha256:78f0ddd4adc64baa39b416f3637aaf99f45acb0bcdc16706f0cc7ebfc6f10109 \ - --hash=sha256:7a6651a07f67c28b6e978d63aa3a3fccea0feefed9a8453af3f7421a758461b7 \ - --hash=sha256:7a8dc3ee7a99aae202a4db52de5a08aa4d01831eb403c4d21da04ec2f79810db \ - --hash=sha256:7cc28dd33f1f3662d6da28ead4f9891035f63f49d30267d3b41194c8778997c8 \ - --hash=sha256:7fa0b52df90343fafe319257b31d909be1d2e8852277fb0376ba89d26d2921db \ - --hash=sha256:88b0d5bb87eaf2a31e8a759302b89cf30c97f2f8ca7d83b8c9208abe8acb447a \ - --hash=sha256:a4fa037078e92c7cc49f6789a8bac3de06856740bb2038d05f2d9a2e4b165d59 \ - --hash=sha256:a57e3257bacd719769110f1f70dd901c5b6955e9596ad403af11a3e6e7e3311c \ - --hash=sha256:ab33c2d9f275e05e235dbca1063753b5346af4a5cac34a51fa0da0d4edfb21d7 \ - --hash=sha256:c84689c73358dfc23f9fdcff2cb9e7856e65e2ce3b5ed8ff630d4c9bdeb1867b \ - --hash=sha256:c92537b596bd5bffb82f8964cabb9fef1bca8a28a9e0a69ffd3ec92a4a7ad41b \ - --hash=sha256:caa937ff29d07a665dfcfd7a84f0d4207b2ebf483362fa9054041d67fdfacc20 \ - --hash=sha256:d38ab9e53b1c09608ba2d9b8b888f1e75d6f66e2787e437adb1fecbffec6b112 \ - --hash=sha256:d4cf0128da167562c49b0e034f09e9cedd733997354f2314837c2fa461c87bb1 \ - --hash=sha256:db23d7341e21b273d2440ec6faf6c8b1ca95c8894da612e165be0b89a8688340 \ - --hash=sha256:ee8bf4fdcad7d66beb744957db8717afc12d176e3fd9c5d106835133881a049b \ - --hash=sha256:f854c8476512cebe6a8681cc4789e4fcff6019c17baa0fd72b459155dc605ab4 \ - --hash=sha256:fd29d35ac80755e5c0a99d96b44fb9abbd7e871849581ea6a4cb826d24267537 +pycryptodomex==3.19.0 \ + --hash=sha256:09c9401dc06fb3d94cb1ec23b4ea067a25d1f4c6b7b118ff5631d0b5daaab3cc \ + --hash=sha256:0b2f1982c5bc311f0aab8c293524b861b485d76f7c9ab2c3ac9a25b6f7655975 \ + --hash=sha256:136b284e9246b4ccf4f752d435c80f2c44fc2321c198505de1d43a95a3453b3c \ + --hash=sha256:1789d89f61f70a4cd5483d4dfa8df7032efab1118f8b9894faae03c967707865 \ + --hash=sha256:2126bc54beccbede6eade00e647106b4f4c21e5201d2b0a73e9e816a01c50905 \ + --hash=sha256:258c4233a3fe5a6341780306a36c6fb072ef38ce676a6d41eec3e591347919e8 \ + --hash=sha256:263de9a96d2fcbc9f5bd3a279f14ea0d5f072adb68ebd324987576ec25da084d \ + --hash=sha256:50cb18d4dd87571006fd2447ccec85e6cec0136632a550aa29226ba075c80644 \ + --hash=sha256:5b883e1439ab63af976656446fb4839d566bb096f15fc3c06b5a99cde4927188 \ + --hash=sha256:5d73e9fa3fe830e7b6b42afc49d8329b07a049a47d12e0ef9225f2fd220f19b2 \ + --hash=sha256:61056a1fd3254f6f863de94c233b30dd33bc02f8c935b2000269705f1eeeffa4 \ + --hash=sha256:67c8eb79ab33d0fbcb56842992298ddb56eb6505a72369c20f60bc1d2b6fb002 \ + --hash=sha256:6e45bb4635b3c4e0a00ca9df75ef6295838c85c2ac44ad882410cb631ed1eeaa \ + --hash=sha256:7cb51096a6a8d400724104db8a7e4f2206041a1f23e58924aa3d8d96bcb48338 \ + --hash=sha256:800a2b05cfb83654df80266692f7092eeefe2a314fa7901dcefab255934faeec \ + --hash=sha256:8df69e41f7e7015a90b94d1096ec3d8e0182e73449487306709ec27379fff761 \ + --hash=sha256:917033016ecc23c8933205585a0ab73e20020fdf671b7cd1be788a5c4039840b \ + --hash=sha256:a12144d785518f6491ad334c75ccdc6ad52ea49230b4237f319dbb7cef26f464 \ + --hash=sha256:a3866d68e2fc345162b1b9b83ef80686acfe5cec0d134337f3b03950a0a8bf56 \ + --hash=sha256:a588a1cb7781da9d5e1c84affd98c32aff9c89771eac8eaa659d2760666f7139 \ + --hash=sha256:a77b79852175064c822b047fee7cf5a1f434f06ad075cc9986aa1c19a0c53eb0 \ + --hash=sha256:af83a554b3f077564229865c45af0791be008ac6469ef0098152139e6bd4b5b6 \ + --hash=sha256:b801216c48c0886742abf286a9a6b117e248ca144d8ceec1f931ce2dd0c9cb40 \ + --hash=sha256:bfb040b5dda1dff1e197d2ef71927bd6b8bfcb9793bc4dfe0bb6df1e691eaacb \ + --hash=sha256:c01678aee8ac0c1a461cbc38ad496f953f9efcb1fa19f5637cbeba7544792a53 \ + --hash=sha256:c74eb1f73f788facece7979ce91594dc177e1a9b5d5e3e64697dd58299e5cb4d \ + --hash=sha256:c9a68a2f7bd091ccea54ad3be3e9d65eded813e6d79fdf4cc3604e26cdd6384f \ + --hash=sha256:d4dd3b381ff5a5907a3eb98f5f6d32c64d319a840278ceea1dcfcc65063856f3 \ + --hash=sha256:e8e5ecbd4da4157889fce8ba49da74764dd86c891410bfd6b24969fa46edda51 \ + --hash=sha256:eb2fc0ec241bf5e5ef56c8fbec4a2634d631e4c4f616a59b567947a0f35ad83c \ + --hash=sha256:edbe083c299835de7e02c8aa0885cb904a75087d35e7bab75ebe5ed336e8c3e2 \ + --hash=sha256:ff64fd720def623bf64d8776f8d0deada1cc1bf1ec3c1f9d6f5bb5bd098d034f pypng==0.20220715.0 \ --hash=sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c \ --hash=sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1 PySocks==1.7.1 \ --hash=sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299 \ --hash=sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5 \ --hash=sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0 python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 QDarkStyle==3.1 \ --hash=sha256:600584d625343e0ddd128de08393d3c35637786a49827f174d29aa7caa8279c1 \ --hash=sha256:679a38fcd040de9fac8b8cae483310302fdb12c8d912845249c41dc54974a9b2 qrcode==7.4.2 \ --hash=sha256:581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a \ --hash=sha256:9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845 QtPy==2.3.0 \ --hash=sha256:0603c9c83ccc035a4717a12908bf6bc6cb22509827ea2ec0e94c2da7c9ed57c5 \ --hash=sha256:8d6d544fc20facd27360ea189592e6135c614785f0dec0b4f083289de6beb408 requests==2.31.0 \ --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 \ --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f setuptools==66.1.1 \ --hash=sha256:6f590d76b713d5de4e49fe4fbca24474469f53c83632d5d0fd056f7ff7e8112b \ --hash=sha256:ac4008d396bc9cd983ea483cb7139c0240a07bbc74ffb6232fceffedc6cf03a8 six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 stem==1.8.1 \ --hash=sha256:81d43a7c668ba9d7bc1103b2e7a911e9d148294b373d27a59ae8da79ef7a3e2f typing-extensions==4.9.0 \ --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd urllib3==1.26.14 \ --hash=sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72 \ --hash=sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1 wheel==0.38.4 \ --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \ --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8 colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 diff --git a/electrum/contrib/osx/make_osx b/electrum/contrib/osx/make_osx index f46b7abae..a02c31c7b 100755 --- a/electrum/contrib/osx/make_osx +++ b/electrum/contrib/osx/make_osx @@ -1,260 +1,260 @@ #!/bin/bash build_dir="$(dirname "$(realpath "$0")")" test -n "$build_dir" -a -d "$build_dir" || (echo "Cannot determine build dir. FIXME!" && exit 1) # don't create __pycache__/ folders with .pyc file export PYTHONDONTWRITEBYTECODE=1 . "$build_dir"/../base.sh # functions we use below CONTRIB_OSX="$(dirname "$(realpath "$0")")" CACHEDIR="$CONTRIB_OSX/.cache" mkdir -p "$CACHEDIR" OSX_COMPAT="" DARWIN_VER=$(uname -r | cut -f 1 -d .) if ((DARWIN_VER < 17)); then fail "Minimum OSX High Sierra is required to build" fi function DoCodeSignMaybe { # ARGS: infoName fileOrDirName codesignIdentity infoName="$1" file="$2" identity="$3" deep="" if [ -z "$identity" ]; then # we are ok with them not passing anything; master script calls us unconditionally even if no identity is specified return fi if [ -d "$file" ]; then deep="--deep" fi if [ -z "$infoName" ] || [ -z "$file" ] || [ -z "$identity" ] || [ ! -e "$file" ]; then fail "Argument error to internal function DoCodeSignMaybe()" fi preserve_arg="--preserve-metadata=requirements,entitlements" hardened_arg="" hardened_info="" if ((DARWIN_VER >= 18)); then # On Mojave or above, we codesign with the "hardened runtime" which # is required for notarization. # See: https://github.com/pyinstaller/pyinstaller/issues/4629 preserve_arg="" hardened_arg="--entitlements=${build_dir}/entitlements.plist -o runtime --timestamp" hardened_info=" (Hardened Runtime)" fi info "Code signing ${infoName}${hardened_info}..." codesign -f -v $deep -s "$identity" $preserve_arg $hardened_arg "$file" || fail "Could not code sign ${infoName}" } cd "$build_dir/../.." VERSION=$(python3 ${ELECTRUM_ROOT}/setup.py --version) GIT_COMMIT_HASH=$(git rev-parse HEAD) # Paramterize BUILDDIR=/tmp/electrumabc-build LIBSECP_COMMIT="69ccf0d2f758b1a4df9cde8222459381e08fc1dc" # Compute major.minor Python version from above using Bash array magic MAJ_MIN=(${PYTHON_VERSION//./ }) MAJ_MIN=${MAJ_MIN[0]}.${MAJ_MIN[1]} which xcodebuild > /dev/null 2>&1 || fail "Please install Xcode and xcode command line tools to continue" # Code Signing: See https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html APP_SIGN="" if [ -n "$1" ]; then # Test the identity is valid for signing by doing this hack. There is no other way to do this. cp -f /bin/ls ./CODESIGN_TEST codesign -s "$1" --dryrun -f ./CODESIGN_TEST > /dev/null 2>&1 res=$? rm -f ./CODESIGN_TEST if ((res)); then fail "Code signing identity \"$1\" appears to be invalid." fi unset res APP_SIGN="$1" info "Code signing enabled using identity \"$APP_SIGN\"" else warn "Code signing DISABLED. Specify a valid macOS Developer identity installed on the system as the first argument to this script to enable signing." fi have_brew=`which brew` have_macports=`which port` if [ -n "$have_brew" ]; then info "Ensuring build prerequisites are installed via brew" for a in autoconf automake coreutils gettext libtool openssl@1.1 pkgconfig readline sqlite3 xz zlib swig ; do brew list $a > /dev/null 2>&1 if [ "$?" != "0" ]; then info "Installing $a" brew install "$a" || fail "Could not install $a" else info "$a found" fi done elif [ -n "$have_macports" ]; then have_port_swig_python=`port installed | grep swig-python` if [ -z "$have_port_swig_python" ]; then fail "Please install swig-python: sudo port install swig-python" fi else fail "This script requires either brew or MacPorts. Please install either of these package managers and re-run this script." fi have_swig=`which swig` if [ -z "$have_swig" ]; then warn "Please install 'swig' to run this script:" info "If using brew: brew install swig" info "If using MacPorts: sudo port install swig-python" info "Lastly, ensure 'swig' is in your PATH" fail "'swig' not found in path, cannot proceed" fi info "Installing Python $PYTHON_VERSION" PKG_FILE="python-${PYTHON_VERSION}-macos11.pkg" if [ ! -f "$CACHEDIR/$PKG_FILE" ]; then curl -o "$CACHEDIR/$PKG_FILE" "https://www.python.org/ftp/python/${PYTHON_VERSION}/$PKG_FILE" fi echo "$PYTHON_MACOS_BINARY_HASH $CACHEDIR/$PKG_FILE" | shasum -a 256 -c \ || fail "python pkg checksum mismatched" sudo installer -pkg "$CACHEDIR/$PKG_FILE" -target / \ || fail "failed to install python" # sanity check "python3" has the version we just installed. FOUND_PY_VERSION=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:3])))') if [[ "$FOUND_PY_VERSION" != "$PYTHON_VERSION" ]]; then fail "python version mismatch: $FOUND_PY_VERSION != $PYTHON_VERSION" fi # Pip will install scripts for pyinstaller and dmgbuild here export PATH="~/Library/Python/${MAJ_MIN}/bin:$PATH" # We use a hashed requirements file for even the build tools to prevent # dependency attacks even in the build process info "Installing pip, dmgbuild, requests, and other build tools we need..." # Ensure we have wheel because otherwise we get warnings about not having it (even though below installs it again) python3 -m pip install --user --upgrade wheel || fail "Failed to install wheel" python3 -m pip install -I --user -r contrib/deterministic-build/requirements-pip.txt \ || fail "Could not install pip" python3 -m pip install -I --user -r contrib/osx/requirements-osx-build.txt \ || fail "Could not install osx build requirements" # Create the build directory in /tmp rm -rf "$BUILDDIR" > /dev/null 2>&1 mkdir -p "$BUILDDIR" info "Building PyInstaller." PYINSTALLER_REPO="https://github.com/pyinstaller/pyinstaller.git" -PYINSTALLER_COMMIT="fbf7948be85177dd44b41217e9f039e1d176de6b" -# ^ tag "5.3" +PYINSTALLER_COMMIT="90256f93ed943daf6de53c7dd39710a415f705cb" +# ^ tag "v6.4.0" # TODO test newer versions of pyinstaller for build-reproducibility. # we are using this version for now due to change in code-signing behaviour # (https://github.com/pyinstaller/pyinstaller/pull/5581) ( if [ -f "$BUILDDIR/pyinstaller/PyInstaller/bootloader/Darwin-64bit/runw" || -f "$BUILDDIR/pyinstaller/PyInstaller/bootloader/Darwin-64bit-arm/runw" ]; then info "pyinstaller already built, skipping" exit 0 fi pushd "${build_dir}" EC_COMMIT_HASH=$(git rev-parse HEAD) pushd "$BUILDDIR" rm -rf pyinstaller mkdir pyinstaller cd pyinstaller # Shallow clone git init git remote add origin $PYINSTALLER_REPO git fetch --depth 1 origin $PYINSTALLER_COMMIT git checkout -b pinned "${PYINSTALLER_COMMIT}^{commit}" rm -fv PyInstaller/bootloader/Darwin-*/run* || true # add reproducible randomness. this ensures we build a different bootloader for each commit. # if we built the same one for all releases, that might also get anti-virus false positives echo "extern const char * const electrum_tag;" >> ./bootloader/src/pyi_main.c echo "const char * const electrum_tag = \"tagged by $PACKAGE@$GIT_COMMIT_HASH\";" >> ./bootloader/src/pyi_main.c pushd bootloader # compile bootloader python3 ./waf all CFLAGS="-static" popd # sanity check bootloader is there: [[ -e "PyInstaller/bootloader/Darwin-64bit/runw" || -e "PyInstaller/bootloader/Darwin-64bit-arm/runw" ]] || fail "Could not find runw in target dir!" popd # $BUILDDIR popd # $build_dir ) || fail "PyInstaller build failed" info "Installing PyInstaller." python3 -m pip install --user --upgrade --no-warn-script-location "$BUILDDIR/pyinstaller" info "Using these versions for building $PACKAGE:" # NB: PACKAGE var comes from ../base.sh sw_vers python3 --version echo -n "Pyinstaller " pyinstaller --version rm -rf ./dist info "Making locale..." python3 ./contrib/make_locale || fail "Failed to make locale..." info "Downloading libusb..." curl -L https://github.com/PiRK/Electrum-ABC-Build-Tools/releases/download/v1.0/libusb-1.0.21.el_capitan.bottle.tar.gz | \ tar xz --directory "$BUILDDIR" || fail "Could not download libusb" verify_hash $BUILDDIR/libusb/1.0.21/lib/libusb-1.0.dylib d147e7382dfa676d93e8b17d160d50f68e4b01f58f3647c90a8899a7a0519ca3 # this exits on failure cp -fp "$BUILDDIR/libusb/1.0.21/lib/libusb-1.0.dylib" "contrib/osx" || fail "Could not copy libusb" # Build ZBar contrib/make_zbar && mv -vf electrumabc/libzbar.0.dylib contrib/osx/. || fail "Could not build ZBar" info "Building libsecp256k1" contrib_abspath=`greadlink -f contrib` setup_pkg "secp256k1" "https://github.com/Bitcoin-ABC/secp256k1.git" "master" ${contrib_abspath} ./autogen.sh || fail "Could not run autogen for secp256k1" ./configure \ --enable-module-recovery \ --enable-experimental \ --enable-module-ecdh \ --disable-jni \ --with-bignum=no \ --enable-module-schnorr \ --disable-tests \ --disable-static \ --enable-shared || fail "Could not configure for secp256k1" make -j4 || fail "Could not build secp256k1" popd_pkg cp -fp contrib/build/secp256k1/.libs/libsecp256k1.0.dylib contrib/osx || fail "Could not copy secp256k1 binary to its destination" info "Installing requirements..." python3 -m pip install -r ./contrib/deterministic-build/requirements.txt --user || fail "Could not install requirements" python3 -m pip install -r ./contrib/deterministic-build/requirements-binaries.txt --user || fail "Could not install binary requirements" info "Installing hardware wallet requirements..." python3 -m pip install -r ./contrib/deterministic-build/requirements-hw.txt --user || \ fail "Could not install hardware wallet requirements" info "Building $PACKAGE..." python3 setup.py install --user > /dev/null || fail "Could not build $PACKAGE" info "Building binary" # We need to temporarily use a "-", because pyinstaller gets confused when the python # package and MacOS package have the same name (case insensitive). This must match # the PACKAGE variable in osx.spec. # The package file is renamed at the end to remove the -. TMPPACKAGE="Electrum-ABC" -ELECTRUM_VERSION=$VERSION pyinstaller --clean --noconfirm --ascii contrib/osx/osx.spec || fail "Could not build binary" +ELECTRUM_VERSION=$VERSION pyinstaller --clean --noconfirm contrib/osx/osx.spec || fail "Could not build binary" mv dist/$TMPPACKAGE.app dist/$PACKAGE.app # Finally, codesign the whole thing DoCodeSignMaybe ".app bundle" "dist/${PACKAGE}.app" "$APP_SIGN" info "Creating .DMG" dmgbuild -D PACKAGE=$PACKAGE -s contrib/osx/dmgbuild.spec "" "dist/${PACKAGE}-${VERSION}-macosx${OSX_COMPAT}.dmg" || fail "Could not create .DMG" DoCodeSignMaybe ".DMG" "dist/${PACKAGE}-${VERSION}-macosx${OSX_COMPAT}.dmg" "$APP_SIGN" # If APP_SIGN is empty will be a noop if [ -z "$APP_SIGN" ]; then warn "App was built successfully but was not code signed. Users may get security warnings from macOS." warn "Specify a valid code signing identity as the first argument to this script to enable code signing." fi rm -fr $BUILDDIR diff --git a/electrum/contrib/requirements/requirements-binaries.txt b/electrum/contrib/requirements/requirements-binaries.txt index cd6e7555c..788b794b9 100644 --- a/electrum/contrib/requirements/requirements-binaries.txt +++ b/electrum/contrib/requirements/requirements-binaries.txt @@ -1,2 +1,2 @@ -PyQt5>=5.12.3,<=5.15.2 +PyQt5>=5.12.3,<=5.15.9 cryptography>=3.3.2 diff --git a/electrum/contrib/requirements/requirements-build-wine.txt b/electrum/contrib/requirements/requirements-build-wine.txt index 5a7f0b765..477bfdadf 100644 --- a/electrum/contrib/requirements/requirements-build-wine.txt +++ b/electrum/contrib/requirements/requirements-build-wine.txt @@ -1,11 +1,12 @@ pip setuptools wheel +packaging # Below is needed by PyInstaller altgraph pyinstaller-hooks-contrib>=2020.11 pefile pywin32-ctypes future toml