#1119087 streamdeck-ui: Broken on Debian Trixie due to missing dependency declarations and library incompatibilities

Package:
streamdeck-ui
Source:
streamdeck-ui
Submitter:
Manfred Stock
Date:
2025-10-26 17:49:02 UTC
Severity:
normal
Tags:
#1119087#5
Date:
2025-10-26 17:09:22 UTC
From:
To:
Dear Maintainer,

after the upgrade to Debian Trixie on a machine which has a Streamdeck
attached, I noticed that the streamdeck application is not currently
working. I seems that there are multiple issues:

* When trying to start the application, I get the following error:

    Traceback (most recent call last):
      File "/usr/bin/streamdeck", line 5, in <module>
        from streamdeck_ui.gui import start
      File "/usr/lib/python3/dist-packages/streamdeck_ui/gui.py", line 12, in <module>
        from PySide6 import QtWidgets
    ModuleNotFoundError: No module named 'PySide6'

  So it seems like some Python module is missing, which appears to
  imply that the dependency list of the package is not complete. The
  attached patch in Update-py3dist-overrides-for-pyside6.patch should
  fix that issue.

* After manually installing the missing dependencies, the application
  starts, however, when clicking on a Streamdeck button in the UI, I get
  the following error:

    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/streamdeck_ui/gui.py", line 523, in <lambda>
        button.clicked.connect(lambda button=button, buttons=buttons: button_clicked(ui, button, buttons))
                                                                      ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/streamdeck_ui/gui.py", line 407, in button_clicked
        button_id = selected_button.index  # type: ignore # Index property added
                    ^^^^^^^^^^^^^^^^^^^^^
    AttributeError: 'bool' object has no attribute 'index'

  It seems like there's a library incompatibility here and that there is
  a new first, boolean parameter now. This should be fixed by the patch
  in fix-resolve-inability-to-select-buttons-in-the-ui.patch. Please
  note that this patch looks a bit different than the one from [1]
  since there have been other changes in the meantime. Also note that
  this is a different repo/project than the current upstream which
  appears to be a fork of the project/repo the current Debian package is
  built from and which was also mentioned in Debian Bug #1065001 [2],
  however, by now, it unfortunately seems a bit dormant as well [3].

* With the above patch, it is possible to select buttons. However, when
  entering a label, I get the following error:

    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/streamdeck_ui/gui.py", line 262, in update_button_text
        api.set_button_text(deck_id, _page(ui), selected_button.index, text)  # type: ignore # Index property added
        ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/streamdeck_ui/api.py", line 281, in set_button_text
        self.update_button_filters(deck_id, page, button)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/streamdeck_ui/api.py", line 514, in update_button_filters
        display_handler.replace(page, button, filters)
        ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/streamdeck_ui/display/display_grid.py", line 79, in replace
        filter.initialize(self.size)
        ~~~~~~~~~~~~~~~~~^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/streamdeck_ui/display/text_filter.py", line 43, in initialize
        label_w, _ = backdrop_draw.textsize(self.text, font=self.true_font)
                     ^^^^^^^^^^^^^^^^^^^^^^
    AttributeError: 'ImageDraw' object has no attribute 'textsize'

  When selecting an image instead of adding a label, I get the following
  error when pressing the button on the Streamdeck afterwards:

    Exception in thread Thread-3 (_run):
    Traceback (most recent call last):
      File "/usr/lib/python3.13/threading.py", line 1043, in _bootstrap_inner
        self.run()
        ~~~~~~~~^^
      File "/usr/lib/python3.13/threading.py", line 994, in run
        self._target(*self._args, **self._kwargs)
        ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/streamdeck_ui/display/display_grid.py", line 135, in _run
        image, hashcode = pipeline.execute(current_time)
                          ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/streamdeck_ui/display/pipeline.py", line 35, in execute
        (image, hashcode) = current_filter.transform(
                            ~~~~~~~~~~~~~~~~~~~~~~~~^
            lambda input_image=image: input_image.copy(),  # type: ignore [misc]
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        ...<2 lines>...
            time,
            ^^^^^
        )
        ^
      File "/usr/lib/python3/dist-packages/streamdeck_ui/display/keypress_filter.py", line 38, in transform
        input.thumbnail((self.size[0] - 10, self.size[1] - 10), Image.ANTIALIAS)
                                                            ^^^^^^^^^^^^^^^
    AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'

  Both of these issue should be fixed by the patch based on [4] in
  fix-Fix-for-Pillow-10.0.0-breaking-changes.-13.patch.

With these changes, the streamdeck application seems to work on my
machine on Debian Trixie and to support the features I'm currently
using, without throwing any errors.


Cheers,
Manfred


[1] https://github.com/streamdeck-linux-gui/streamdeck-linux-gui/commit/7451b9ffd686ac45faf7889715bbeec28718bcb8
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1065001
[3] https://github.com/streamdeck-linux-gui/streamdeck-linux-gui/discussions/203
[4] https://github.com/streamdeck-linux-gui/streamdeck-linux-gui/commit/71294789455caa5f5d51acb68f2861ba4ea34968