uunicorn / open-fprintd

Fprintd replacement which allows you to have your own backend as a standalone service.
GNU General Public License v2.0
46 stars 8 forks source link

Packaging for Fedora / Debugging "list_devices failed:" #6

Open veitw opened 3 years ago

veitw commented 3 years ago

Hi,

I would like to contribute Fedora (and maybe RHEL/CentOS) packaging for python-validity/open-fprintd/fprintd-clients, but I have problems getting open-fprintd to talk to my fingerprint reader (06cb:009a Synaptics, Inc. Metallica MIS Touch Fingerprint Reader):

As far as I understood, my fingerprint reader is supported by python-validity, and $ sudo validity-led-dance lets its LED flash, so it seems to work.

But $ fprintd-enroll exits just displaying list_devices failed:. As open-fprintd emits a corresponding DEBUG:root:GetDefaultDevice messages whenever I run $ fprintd-enroll, I suppose that communication between fprintd-enroll and open-fprintd is working, but open-fprintd either fails to run python-validity or to enumerate the fingerprint reader devices:

$ systemctl status open-fprintd
● open-fprintd.service - Open FPrint Daemon
     Loaded: loaded (/usr/lib/systemd/system/open-fprintd.service; static)
     Active: active (running) since Sat 2020-11-07 15:58:48 CET; 4 days ago
   Main PID: 2452 (open-fprintd)
      Tasks: 1 (limit: 18845)
     Memory: 9.5M
        CPU: 93ms
     CGroup: /system.slice/open-fprintd.service
             └─2452 /usr/bin/python3 /usr/lib/open-fprintd/open-fprintd --debug

Nov 12 12:13:34 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:14:01 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:14:37 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:14:39 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:14:41 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:14:41 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:14:56 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:25:04 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:36:49 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice
Nov 12 12:41:06 vandamn open-fprintd[2452]: DEBUG:root:GetDevices
Nov 12 12:52:52 vandamn open-fprintd[2452]: DEBUG:root:GetDefaultDevice

Any hints on how to debug this further? Did I miss anything, e.g. do I have to set up e.g. a configuration file referring to python-validity?

The currently packaged files of both packages are:

$ rpm -ql open-fprintd
/usr/lib/open-fprintd/open-fprintd
/usr/lib/open-fprintd/resume.py
/usr/lib/open-fprintd/suspend.py
/usr/lib/python3.9/site-packages/open_fprintd-0.6-py3.9.egg-info
/usr/lib/python3.9/site-packages/open_fprintd-0.6-py3.9.egg-info/PKG-INFO
/usr/lib/python3.9/site-packages/open_fprintd-0.6-py3.9.egg-info/SOURCES.txt
/usr/lib/python3.9/site-packages/open_fprintd-0.6-py3.9.egg-info/dependency_links.txt
/usr/lib/python3.9/site-packages/open_fprintd-0.6-py3.9.egg-info/top_level.txt
/usr/lib/python3.9/site-packages/openfprintd
/usr/lib/python3.9/site-packages/openfprintd/__init__.py
/usr/lib/python3.9/site-packages/openfprintd/__pycache__
/usr/lib/python3.9/site-packages/openfprintd/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/openfprintd/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/openfprintd/__pycache__/device.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/openfprintd/__pycache__/device.cpython-39.pyc
/usr/lib/python3.9/site-packages/openfprintd/__pycache__/manager.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/openfprintd/__pycache__/manager.cpython-39.pyc
/usr/lib/python3.9/site-packages/openfprintd/device.py
/usr/lib/python3.9/site-packages/openfprintd/manager.py
/usr/lib/systemd/system/open-fprintd-resume.service
/usr/lib/systemd/system/open-fprintd-suspend.service
/usr/lib/systemd/system/open-fprintd.service
/usr/share/dbus-1/system-services/net.reactivated.Fprint.service
/usr/share/dbus-1/system.d/net.reactivated.Fprint.conf
/usr/share/doc/open-fprintd
/usr/share/doc/open-fprintd/README.md
/usr/share/licenses/open-fprintd
/usr/share/licenses/open-fprintd/COPYING

$ rpm -ql python3-validity
/usr/bin/validity-led-dance
/usr/bin/validity-sensors-firmware
/usr/lib/python-validity/dbus-service
/usr/lib/python3.9/site-packages/python_validity-0.12-py3.9.egg-info
/usr/lib/python3.9/site-packages/python_validity-0.12-py3.9.egg-info/PKG-INFO
/usr/lib/python3.9/site-packages/python_validity-0.12-py3.9.egg-info/SOURCES.txt
/usr/lib/python3.9/site-packages/python_validity-0.12-py3.9.egg-info/dependency_links.txt
/usr/lib/python3.9/site-packages/python_validity-0.12-py3.9.egg-info/requires.txt
/usr/lib/python3.9/site-packages/python_validity-0.12-py3.9.egg-info/top_level.txt
/usr/lib/python3.9/site-packages/validitysensor
/usr/lib/python3.9/site-packages/validitysensor/__init__.py
/usr/lib/python3.9/site-packages/validitysensor/__pycache__
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/blobs.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/blobs.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/blobs_90.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/blobs_90.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/blobs_97.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/blobs_97.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/blobs_9a.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/blobs_9a.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/db.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/db.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/firmware_tables.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/firmware_tables.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/flash.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/flash.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/generated_tables.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/generated_tables.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/hw_tables.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/hw_tables.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/init.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/init.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/init_db.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/init_db.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/init_flash.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/init_flash.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/sensor.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/sensor.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/sid.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/sid.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/table_types.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/table_types.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/timeslot.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/timeslot.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/tls.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/tls.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/upload_fwext.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/upload_fwext.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/usb.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/usb.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/util.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/util.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/winbio_constants.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/validitysensor/__pycache__/winbio_constants.cpython-39.pyc
/usr/lib/python3.9/site-packages/validitysensor/blobs.py
/usr/lib/python3.9/site-packages/validitysensor/blobs_90.py
/usr/lib/python3.9/site-packages/validitysensor/blobs_97.py
/usr/lib/python3.9/site-packages/validitysensor/blobs_9a.py
/usr/lib/python3.9/site-packages/validitysensor/db.py
/usr/lib/python3.9/site-packages/validitysensor/firmware_tables.py
/usr/lib/python3.9/site-packages/validitysensor/flash.py
/usr/lib/python3.9/site-packages/validitysensor/generated_tables.py
/usr/lib/python3.9/site-packages/validitysensor/hw_tables.py
/usr/lib/python3.9/site-packages/validitysensor/init.py
/usr/lib/python3.9/site-packages/validitysensor/init_db.py
/usr/lib/python3.9/site-packages/validitysensor/init_flash.py
/usr/lib/python3.9/site-packages/validitysensor/sensor.py
/usr/lib/python3.9/site-packages/validitysensor/sid.py
/usr/lib/python3.9/site-packages/validitysensor/table_types.py
/usr/lib/python3.9/site-packages/validitysensor/timeslot.py
/usr/lib/python3.9/site-packages/validitysensor/tls.py
/usr/lib/python3.9/site-packages/validitysensor/upload_fwext.py
/usr/lib/python3.9/site-packages/validitysensor/usb.py
/usr/lib/python3.9/site-packages/validitysensor/util.py
/usr/lib/python3.9/site-packages/validitysensor/winbio_constants.py
/usr/share/dbus-1/system.d/io.github.uunicorn.Fprint.conf
/usr/share/doc/python3-validity
/usr/share/doc/python3-validity/README.md
/usr/share/licenses/python3-validity
/usr/share/licenses/python3-validity/LICENSE
/usr/share/python-validity
/usr/share/python-validity/playground
/usr/share/python-validity/playground/dbus-cmd.py
/usr/share/python-validity/playground/factory-reset.py
/usr/share/python-validity/playground/lsdbus.py
/usr/share/python-validity/playground/prototype.py

Thanks in advance and best regards, // Veit

veitw commented 3 years ago

Nevermind, I just realized that python-validity is also a DBus service that needs to be registered and not a Python module being loaded or a binary being executed by open-fprintd. :)

It works now, though I have to fight some remaining SELinux issues. I will look into this and provide packaging for Fedora once I succeeded.

biladina commented 3 years ago

hi @veitw, any recent news on this??