Popax21 / synaTudor

GNU Lesser General Public License v2.1
89 stars 10 forks source link

Sol: undefined symbol: fp_device_suspend_finish #16

Open LuoShaoyin opened 1 year ago

LuoShaoyin commented 1 year ago

I've struggled with the problem just as issue9 did, then I fixed it by complying this project on a clear Ubuntu. However the fprintd service refuses to load our so file:

× fprintd.service - Fingerprint Authentication Daemon
     Loaded: loaded (/lib/systemd/system/fprintd.service; static)
     Active: failed (Result: exit-code) since Sun 2023-06-04 16:58:46 CST; 13s ago
       Docs: man:fprintd(1)
    Process: 2955 ExecStart=/usr/libexec/fprintd (code=exited, status=127)
   Main PID: 2955 (code=exited, status=127)

Jun 04 16:58:46 lenovo-air14 systemd[1]: Starting fprintd.service - Fingerprint Authentication Daemon...
Jun 04 16:58:46 lenovo-air14 fprintd[2955]: /usr/libexec/fprintd: symbol lookup error: /usr/libexec/fprintd: undefined symbol: fp_device_suspend_finish, version LIBFPRINT_2.0.0
Jun 04 16:58:46 lenovo-air14 systemd[1]: fprintd.service: Main process exited, code=exited, status=127/n/a
Jun 04 16:58:46 lenovo-air14 systemd[1]: fprintd.service: Failed with result 'exit-code'.
Jun 04 16:58:46 lenovo-air14 systemd[1]: Failed to start fprintd.service - Fingerprint Authentication Daemon.

and ldd /usr/libexec/fprintd shows me a suspicious loading: libfprint-2.so.2 => /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2 It's the only .so files placed in directory /usr/local/.... . So I try to remove it, and then it loads a different .so file automatically: libfprint-2-tod.so.1 => /lib/x86_64-linux-gnu/libfprint-2-tod.so.1 (0x00007fbcf2800000) and then everything works fine.

Also I complied again in my system after deleting flies under /usr/local/include/libfprint-2/. No error occurs. The directories /usr/local/ and /usr/ look same, which really make me confused.

Popax21 commented 1 year ago

You seem to somehow have both libfprint and libfprint-tod installed - can you try uninstalling both + fprintd, then reinstalling just libfprint-tod, and then installing fprintd again?

LuoShaoyin commented 1 year ago

I've thought about it, but these packages seem to have a wrong dependence in Ubuntu repo;

$ sudo apt remove libfprint-2-2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libfprint-2-tod1
Use 'sudo apt autoremove' to remove it.
The following packages will be REMOVED
  fprintd gir1.2-fprint-2.0 libfprint-2-2 libfprint-2-dev libfprint-2-tod-dev libpam-fprintd
0 to upgrade, 0 to newly install, 6 to remove and 1 not to upgrade.
After this operation, 1,886 kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.

Installing a fake package may also be a solution.

Popax21 commented 1 year ago

I've thought about it, but these packages seem to have a wrong dependence in Ubuntu repo;

$ sudo apt remove libfprint-2-2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libfprint-2-tod1
Use 'sudo apt autoremove' to remove it.
The following packages will be REMOVED
  fprintd gir1.2-fprint-2.0 libfprint-2-2 libfprint-2-dev libfprint-2-tod-dev libpam-fprintd
0 to upgrade, 0 to newly install, 6 to remove and 1 not to upgrade.
After this operation, 1,886 kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.

Installing a fake package may also be a solution.

Those dependencies appear correct - you will have to reinstall all of those (namely fprintd, gir1.2-fprint-2.0, libprint-2-tod-dev and libpam-fprintd) after uninstalling libfprint