FS#75348 - [solaar] 1.1.4-2 breaks device pairing from command line

Attached to Project: Community Packages
Opened by Toby (dude) - Saturday, 16 July 2022, 21:00 GMT
Last edited by Chih-Hsuan Yen (yan12125) - Monday, 27 February 2023, 18:06 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To David Runge (dvzrv)
freswa (frederik)
Filipe Laíns (FFY00)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description: When I try to pair a device from the command line, it prints a python stack trace

Additional info:
* package version(s): 1.1.4-2

Steps to reproduce:
1. Run "solaar pair" from command line

$ solaar pair
/usr/lib/python3.10/site-packages/logitech_receiver/diversion.py:35: PyGIWarning: Gdk was imported without specifying a version first. Use gi.require_version('Gdk', '4.0') before import to ensure that the right version gets loaded.
from gi.repository import Gdk, GLib
solaar: error: Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/gi/importer.py", line 142, in load_module
introspection_module = get_introspection_module(namespace)
File "/usr/lib/python3.10/site-packages/gi/module.py", line 257, in get_introspection_module
module = IntrospectionModule(namespace, version)
File "/usr/lib/python3.10/site-packages/gi/module.py", line 109, in __init__
repository.require(namespace, version)
gi.RepositoryError: Requiring namespace 'Gdk' version '3.0', but '4.0' is already loaded

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/solaar/cli/__init__.py", line 204, in run
m = import_module('.' + action, package=__name__)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3.10/site-packages/solaar/cli/pair.py", line 23, in <module>
from logitech_receiver import notifications as _notifications
File "/usr/lib/python3.10/site-packages/logitech_receiver/notifications.py", line 27, in <module>
from . import diversion as _diversion
File "/usr/lib/python3.10/site-packages/logitech_receiver/diversion.py", line 36, in <module>
from solaar.ui.config_panel import change_setting as _change_setting
File "/usr/lib/python3.10/site-packages/solaar/ui/__init__.py", line 27, in <module>
from gi.repository import GLib, Gtk, Gio # NOQA: E402 # isort:skip
File "/usr/lib/python3.10/site-packages/gi/importer.py", line 144, in load_module
raise ImportError(e)
ImportError: Requiring namespace 'Gdk' version '3.0', but '4.0' is already loaded
This task depends upon

Closed by  Chih-Hsuan Yen (yan12125)
Monday, 27 February 2023, 18:06 GMT
Reason for closing:  Upstream
Additional comments about closing:  Both issues fixed with upstream solaar 1.1.5 release.
Comment by Chih-Hsuan Yen (yan12125) - Sunday, 17 July 2022, 04:49 GMT
`ImportError: Requiring namespace 'Gdk' version '3.0', but '4.0' is already loaded` happens when gtk4 is installed. Without gtk4, I got another error:

$ solaar pair
/usr/lib/python3.10/site-packages/logitech_receiver/diversion.py:35: PyGIWarning: Gdk was imported without specifying a version first. Use gi.require_version('Gdk', '3.0') before import to ensure that the right version gets loaded.
from gi.repository import Gdk, GLib
solaar: error: Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/solaar/cli/__init__.py", line 204, in run
m = import_module('.' + action, package=__name__)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3.10/site-packages/solaar/cli/pair.py", line 23, in <module>
from logitech_receiver import notifications as _notifications
File "/usr/lib/python3.10/site-packages/logitech_receiver/notifications.py", line 27, in <module>
from . import diversion as _diversion
File "/usr/lib/python3.10/site-packages/logitech_receiver/diversion.py", line 36, in <module>
from solaar.ui.config_panel import change_setting as _change_setting
File "/usr/lib/python3.10/site-packages/solaar/ui/__init__.py", line 101, in <module>
from . import diversion_rules, notify, tray, window # isort:skip # noqa: E402
File "/usr/lib/python3.10/site-packages/solaar/ui/diversion_rules.py", line 32, in <module>
from logitech_receiver.diversion import XK_KEYS as _XK_KEYS
ImportError: cannot import name 'XK_KEYS' from partially initialized module 'logitech_receiver.diversion' (most likely due to a circular import) (/usr/lib/python3.10/site-packages/logitech_receiver/diversion.py)
Comment by Chih-Hsuan Yen (yan12125) - Monday, 27 February 2023, 17:57 GMT
With solaar 1.1.8, `solaar pair` works fine. Tested with and without gtk4 installed.

Broken XK_KEYS is fixed with https://github.com/pwr-Solaar/Solaar/pull/1673. RepositoryError seems related to https://github.com/pwr-Solaar/Solaar/pull/1679.

Loading...