yubioath-desktop: missing runtime dependencies
A few dependencies are missing.
qt5-qtquickcontrols
is the most obvious one; yubioath-desktop
will immediately crash at startup without it installed:
> yubioath-desktop
QQmlApplicationEngine failed to load component
qrc:/qml/main.qml:454:5: Type Navigator unavailable
qrc:/qml/Navigator.qml:350:9: Type NewCredentialView unavailable
qrc:/qml/NewCredentialView.qml:6:1: module "QtQuick.Dialogs" is not installed
zsh: segmentation fault yubioath-desktop
Additionally, py3-fido2
and py3-pyscard
are required; otherwise there's a few import errors at startup and I don't think any functionality can work without these:
> yubioath-desktop
qrc:/qml/main.qml:305:5: QML Shortcut: Shortcut: Only binding to one of multiple key bindings associated with 7. Use 'sequences: [ <key> ]' to bind to all of them.
qrc:/qml/main.qml:297:5: QML Shortcut: Shortcut: Only binding to one of multiple key bindings associated with 9. Use 'sequences: [ <key> ]' to bind to all of them.
Qt Quick Layouts: Detected recursive rearrange. Aborting after two iterations.
Qt Quick Layouts: Detected recursive rearrange. Aborting after two iterations.
"PyOtherSide error: Traceback (most recent call last):\n\n File \"qrc:///py/yubikey.py\", line 12, in <module>\n import ykman.logging_setup\n\n File \"/usr/lib/python3.11/site-packages/ykman/__init__.py\", line 28, in <module>\n from .base import YUBIKEY, PID, YkmanDevice # noqa\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n File \"/usr/lib/python3.11/site-packages/ykman/base.py\", line 29, in <module>\n from yubikit.management import USB_INTERFACE\n\n File \"/usr/lib/python3.11/site-packages/yubikit/management.py\", line 47, in <module>\n from .core.fido import FidoConnection\n\n File \"/usr/lib/python3.11/site-packages/yubikit/core/fido.py\", line 29, in <module>\n from fido2.ctap import CtapDevice\n\nModuleNotFoundError: No module named 'fido2'\n"
Unhandled PyOtherSide error: Cannot import module: yubikey (Traceback (most recent call last):
File "qrc:///py/yubikey.py", line 12, in <module>
import ykman.logging_setup
File "/usr/lib/python3.11/site-packages/ykman/__init__.py", line 28, in <module>
from .base import YUBIKEY, PID, YkmanDevice # noqa
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/ykman/base.py", line 29, in <module>
from yubikit.management import USB_INTERFACE
File "/usr/lib/python3.11/site-packages/yubikit/management.py", line 47, in <module>
from .core.fido import FidoConnection
File "/usr/lib/python3.11/site-packages/yubikit/core/fido.py", line 29, in <module>
from fido2.ctap import CtapDevice
ModuleNotFoundError: No module named 'fido2'
)
"PyOtherSide error: Traceback (most recent call last):\n\n File \"<string>\", line 1, in <module>\n\nNameError: name 'yubikey' is not defined\n"
Unhandled PyOtherSide error: Function not found: 'yubikey.init' (Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'yubikey' is not defined
)
"PyOtherSide error: Traceback (most recent call last):\n\n File \"<string>\", line 1, in <module>\n\nNameError: name 'yubikey' is not defined\n"
Unhandled PyOtherSide error: Function not found: 'yubikey.controller.check_descriptors' (Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'yubikey' is not defined
)
"PyOtherSide error: Traceback (most recent call last):\n\n File \"<string>\", line 1, in <module>\n\nNameError: name 'yubikey' is not defined\n"
Unhandled PyOtherSide error: Function not found: 'yubikey.controller.is_win_non_admin' (Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'yubikey' is not defined
)
qml: TypeError: Cannot read property 'success' of undefined undefined
qml: TypeError: Cannot read property 'winNonAdmin' of undefined undefined
That aside, pcsc-lite
needs to be installed and the pcscd
service must be running. This last item is not strictly a package dependency, but a service that needs to be running.
Finally, with all these changes the application starts, but won't detect any yubikeys. I suspect some udev rules are required, but haven't figure out which ones yet.