From dd141c7fa017deaeffabd9b3b6a340b1da1ac487 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Fri, 3 Feb 2023 17:09:51 +0000 Subject: [PATCH] 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