enteropositivo / seedsigner-emulator

Allows to execute SeedSigner air-gapped hardware wallet in your desktop computer (windows/linux/mac)
47 stars 10 forks source link

Crashes on Debian 11 installation #9

Open 314159-r opened 1 year ago

314159-r commented 1 year ago

On my Debian 11 system, I can install and start the emulator with both SeedSigner ver. 0.6.0 and 0.5.1.

The UI shows up ,and I can move around in most parts of the the menu system. But almost everywhere there is a view that crashes the emulator with the error: AttributeError: 'FreeTypeFont' object has no attribute 'getsize' - every time I try to enter the view.

With my limited knowledge... The only guess I can come up with is perhaps a missing font dependency in my Debian install? The problem is identical with both versions of SeedSigner.

Here is the console output when trying to create a new seed using dices: Seeds / Create a seed / Dice New seed Error on selecting.

user@debian11:~$ python3 main.py

back_stack: []
Executing MainMenuView()
Emulator GPIO: 19
Emulator GPIO: 13
Appending next destination: ToolsMenuView()
------------------------------
back_stack: [
     0: ToolsMenuView()
]
Executing ToolsMenuView()
Emulator GPIO: 19
Emulator GPIO: 13
Appending next destination: ToolsDiceEntropyMnemonicLengthView()
------------------------------
back_stack: [
     1: ToolsDiceEntropyMnemonicLengthView()
     0: ToolsMenuView()
]
Executing ToolsDiceEntropyMnemonicLengthView()
Emulator GPIO: 13
Appending next destination: ToolsDiceEntropyEntryView({'total_rolls': 50})
------------------------------
back_stack: [
     2: ToolsDiceEntropyEntryView({'total_rolls': 50})
     1: ToolsDiceEntropyMnemonicLengthView()
     0: ToolsMenuView()
]
Executing ToolsDiceEntropyEntryView({'total_rolls': 50})
'FreeTypeFont' object has no attribute 'getsize'
Traceback (most recent call last):
  File "/home/user/git/seedsigner/src/seedsigner/controller.py", line 244, in start
    next_destination = next_destination.run()
  File "/home/user/git/seedsigner/src/seedsigner/views/view.py", line 101, in run
    return self.View_cls(**self.view_args).run()
  File "/home/user/git/seedsigner/src/seedsigner/views/tools_views.py", line 211, in run
    ret = ToolsDiceEntropyEntryScreen(
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 60, in display
    raise e
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 51, in display
    self._render()
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 1030, in _render
    self.text_entry_display.render()
  File "/home/user/git/seedsigner/src/seedsigner/gui/keyboard.py", line 594, in render
    tw_left, th = self.font.getsize(self.cur_text[:cursor_position])
AttributeError: 'FreeTypeFont' object has no attribute 'getsize'
Appending next destination: UnhandledExceptionView({'error': ['AttributeError', 'keyboard.py, 594, in render', " 'FreeTypeFont' object has no attribute 'getsize'"]}) | clear_history: True
------------------------------
back_stack: [
     0: UnhandledExceptionView({'error': ['AttributeError', 'keyboard.py, 594, in render', " 'FreeTypeFont' object has no attribute 'getsize'"]}) | clear_history: True
]
Executing UnhandledExceptionView({'error': ['AttributeError', 'keyboard.py, 594, in render', " 'FreeTypeFont' object has no attribute 'getsize'"]}) | clear_history: True
'FreeTypeFont' object has no attribute 'getsize'
Traceback (most recent call last):
  File "/home/user/git/seedsigner/src/seedsigner/controller.py", line 244, in start
    next_destination = next_destination.run()
  File "/home/user/git/seedsigner/src/seedsigner/views/view.py", line 101, in run
    return self.View_cls(**self.view_args).run()
  File "/home/user/git/seedsigner/src/seedsigner/views/view.py", line 243, in run
    DireWarningScreen(
  File "<string>", line 26, in __init__
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 868, in __post_init__
    super().__post_init__()
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 851, in __post_init__
    super().__post_init__()
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 772, in __post_init__
    self.components.append(TextArea(
  File "<string>", line 20, in __init__
  File "/home/user/git/seedsigner/src/seedsigner/gui/components.py", line 372, in __post_init__
    (index, tw) = _binary_len_search(0, len(words))
  File "/home/user/git/seedsigner/src/seedsigner/gui/components.py", line 339, in _binary_len_search
    tw, th = self.font.getsize(" ".join(words[0:index]))
AttributeError: 'FreeTypeFont' object has no attribute 'getsize'
Appending next destination: UnhandledExceptionView({'error': ['AttributeError', 'components.py, 339, in _binary_len_search', " 'FreeTypeFont' object has no attribute 'getsize'"]}) | clear_history: True
------------------------------
back_stack: [
     0: UnhandledExceptionView({'error': ['AttributeError', 'components.py, 339, in _binary_len_search', " 'FreeTypeFont' object has no attribute 'getsize'"]}) | clear_history: True
]
Executing UnhandledExceptionView({'error': ['AttributeError', 'components.py, 339, in _binary_len_search', " 'FreeTypeFont' object has no attribute 'getsize'"]}) | clear_history: True
'FreeTypeFont' object has no attribute 'getsize'
Traceback (most recent call last):
  File "/home/user/git/seedsigner/src/seedsigner/controller.py", line 244, in start
    next_destination = next_destination.run()
  File "/home/user/git/seedsigner/src/seedsigner/views/view.py", line 101, in run
    return self.View_cls(**self.view_args).run()
  File "/home/user/git/seedsigner/src/seedsigner/views/view.py", line 243, in run
    DireWarningScreen(
  File "<string>", line 26, in __init__
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 868, in __post_init__
    super().__post_init__()
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 851, in __post_init__
    super().__post_init__()
  File "/home/user/git/seedsigner/src/seedsigner/gui/screens/screen.py", line 772, in __post_init__
    self.components.append(TextArea(
  File "<string>", line 20, in __init__
  File "/home/user/git/seedsigner/src/seedsigner/gui/components.py", line 372, in __post_init__
    (index, tw) = _binary_len_search(0, len(words))
  File "/home/user/git/seedsigner/src/seedsigner/gui/components.py", line 339, in _binary_len_search
    tw, th = self.font.getsize(" ".join(words[0:index]))
AttributeError: 'FreeTypeFont' object has no attribute 'getsize'
Appending next destination: UnhandledExceptionView({'error': ['AttributeError', 'components.py, 339, in _binary_len_search', " 'FreeTypeFont' object has no attribute 'getsize'"]}) | clear_history: True
------------------------------
...
...
...

The error "Executing UnhandledExceptionView" loops until I stop it.

This same error comes for all alternatives to enter a seed, on power of or reboot, etc...

tadeubas commented 9 months ago

Plz uninstall Pillow with this command python3 -m pip uninstall pillow and install it using this version: python3 -m pip install pillow==9.5.0