From f05ab403fb445de2613d1a875b951b6770ebeee7 Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Fri, 3 Feb 2023 17:33:47 +0200 Subject: [PATCH 1/3] Support latest Debian libsecp256k1 package https://packages.debian.org/source/testing/libsecp256k1 --- electrum/ecc_fast.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electrum/ecc_fast.py b/electrum/ecc_fast.py index d95234aa0..3059eda54 100644 --- a/electrum/ecc_fast.py +++ b/electrum/ecc_fast.py @@ -47,7 +47,7 @@ def load_library(): library_paths = ('libsecp256k1.so',) else: # desktop Linux and similar library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1.so.0'), - 'libsecp256k1.so.0') + 'libsecp256k1.so.0', 'libsecp256k1.so.1') exceptions = [] secp256k1 = None From dd141c7fa017deaeffabd9b3b6a340b1da1ac487 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Fri, 3 Feb 2023 17:09:51 +0000 Subject: [PATCH 2/3] libsecp256k1: add runtime support for both 0.2.x and <0.2.0 lib vers related: https://github.com/spesmilo/electrum/pull/8185 https://github.com/bitcoin-core/secp256k1/pull/1055 --- electrum/ecc_fast.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/electrum/ecc_fast.py b/electrum/ecc_fast.py index 3059eda54..fe6e1090e 100644 --- a/electrum/ecc_fast.py +++ b/electrum/ecc_fast.py @@ -38,16 +38,18 @@ class LibModuleMissing(Exception): pass def load_library(): if sys.platform == 'darwin': - library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1.0.dylib'), - 'libsecp256k1.0.dylib') + libnames = ['libsecp256k1.1.dylib', 'libsecp256k1.0.dylib', ] elif sys.platform in ('windows', 'win32'): - library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1-0.dll'), - 'libsecp256k1-0.dll') + libnames = ['libsecp256k1-1.dll', 'libsecp256k1-0.dll', ] elif 'ANDROID_DATA' in os.environ: - library_paths = ('libsecp256k1.so',) + libnames = ['libsecp256k1.so', ] else: # desktop Linux and similar - library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1.so.0'), - 'libsecp256k1.so.0', 'libsecp256k1.so.1') + libnames = ['libsecp256k1.so.1', 'libsecp256k1.so.0', ] + library_paths = [] + for libname in libnames: # try local files in repo dir first + library_paths.append(os.path.join(os.path.dirname(__file__), libname)) + for libname in libnames: + library_paths.append(libname) exceptions = [] secp256k1 = None From 7d83335e34d7ea4752145b47e086a9fbe45742ad Mon Sep 17 00:00:00 2001 From: SomberNight Date: Fri, 3 Feb 2023 17:11:16 +0000 Subject: [PATCH 3/3] bump libsecp256k1 version now there are tags :O --- contrib/android/p4a_recipes/libsecp256k1/__init__.py | 4 ++-- contrib/make_libsecp256k1.sh | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/contrib/android/p4a_recipes/libsecp256k1/__init__.py b/contrib/android/p4a_recipes/libsecp256k1/__init__.py index 177a1ac53..a1b969f7d 100644 --- a/contrib/android/p4a_recipes/libsecp256k1/__init__.py +++ b/contrib/android/p4a_recipes/libsecp256k1/__init__.py @@ -6,9 +6,9 @@ assert LibSecp256k1Recipe.python_depends == [] class LibSecp256k1RecipePinned(LibSecp256k1Recipe): - version = "1253a27756540d2ca526b2061d98d54868e9177c" + version = "21ffe4b22a9683cf24ae0763359e401d1284cc7a" url = "https://github.com/bitcoin-core/secp256k1/archive/{version}.zip" - sha512sum = "92232cdefba54fce5573e8b4a542dcd307e56380e9b72841da00da1d1d48bfa6f4c0d157e5c294be5342e500237761376aee5e29adde70b2bf7be413cbd77571" + sha512sum = "51832bfc6825690d5b71a5426aacce8981163ca1a56a235394aa86e742d105f5e2b331971433a21b8842ee338cbd7877dcbae5605fa01a9e6f4a73171b93f3e9" recipe = LibSecp256k1RecipePinned() diff --git a/contrib/make_libsecp256k1.sh b/contrib/make_libsecp256k1.sh index ba43b28ae..46e091b4c 100755 --- a/contrib/make_libsecp256k1.sh +++ b/contrib/make_libsecp256k1.sh @@ -14,7 +14,8 @@ # sudo apt-get install gcc-multilib g++-multilib # $ AUTOCONF_FLAGS="--host=i686-linux-gnu CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32" ./contrib/make_libsecp256k1.sh -LIBSECP_VERSION="1253a27756540d2ca526b2061d98d54868e9177c" +LIBSECP_VERSION="21ffe4b22a9683cf24ae0763359e401d1284cc7a" +# ^ tag "v0.2.0" set -e