From aecc22dc081339fb570a7a3b09f3e47bf9ea5021 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Thu, 5 Jun 2025 17:24:29 +0000 Subject: [PATCH] build: win/mac: fix trezor plugin for new trezorlib trezor==0.13.10 pulls in new dep "slip10", which relies on importlib magic see https://github.com/trezor/python-slip10/blob/19561f04298ae24a9623464b82b765504f1f0bcd/slip10/__init__.py#L6 ``` 10.13 | E | plugins.trezor.trezor | error importing trezor plugin deps Traceback (most recent call last): File "importlib/metadata/__init__.py", line 397, in from_name StopIteration During handling of the above exception, another exception occurred: Traceback (most recent call last): File "electrum/plugins/trezor/trezor.py", line 29, in from .clientbase import TrezorClientBase, RecoveryDeviceInputMethod File "PyInstaller/loader/pyimod02_importers.py", line 450, in exec_module File "electrum/plugins/trezor/clientbase.py", line 18, in import trezorlib.device File "PyInstaller/loader/pyimod02_importers.py", line 450, in exec_module File "trezorlib/device.py", line 27, in File "PyInstaller/loader/pyimod02_importers.py", line 450, in exec_module File "slip10/__init__.py", line 6, in File "importlib/metadata/__init__.py", line 889, in version File "importlib/metadata/__init__.py", line 862, in distribution File "importlib/metadata/__init__.py", line 399, in from_name importlib.metadata.PackageNotFoundError: No package metadata was found for slip10 ``` --- contrib/build-wine/deterministic.spec | 6 +++++- contrib/osx/osx.spec | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/contrib/build-wine/deterministic.spec b/contrib/build-wine/deterministic.spec index 0c8196b4c..76399ffab 100644 --- a/contrib/build-wine/deterministic.spec +++ b/contrib/build-wine/deterministic.spec @@ -1,6 +1,6 @@ # -*- mode: python -*- -from PyInstaller.utils.hooks import collect_data_files, collect_submodules, collect_dynamic_libs +from PyInstaller.utils.hooks import collect_data_files, collect_submodules, collect_dynamic_libs, copy_metadata import sys, os @@ -44,6 +44,10 @@ datas += collect_data_files('safetlib') datas += collect_data_files('ckcc') datas += collect_data_files('bitbox02') +# some deps rely on importlib metadata +datas += copy_metadata('slip10') # from trezor->slip10 + + # We don't put these files in to actually include them in the script but to make the Analysis method scan them for imports a = Analysis([f"{PROJECT_ROOT}/{MAIN_SCRIPT}", f"{PROJECT_ROOT}/{PYPKG}/gui/qt/main_window.py", diff --git a/contrib/osx/osx.spec b/contrib/osx/osx.spec index e6501b395..c3472883e 100644 --- a/contrib/osx/osx.spec +++ b/contrib/osx/osx.spec @@ -47,6 +47,10 @@ datas += collect_data_files('safetlib') datas += collect_data_files('ckcc') datas += collect_data_files('bitbox02') +# some deps rely on importlib metadata +datas += copy_metadata('slip10') # from trezor->slip10 + + # We don't put these files in to actually include them in the script but to make the Analysis method scan them for imports a = Analysis([f"{PROJECT_ROOT}/{MAIN_SCRIPT}", f"{PROJECT_ROOT}/{PYPKG}/gui/qt/main_window.py",