Page MenuHomeSolus

Initial inclusion of libfprint.
ClosedPublic

Authored by abdulocracy on Dec 16 2017, 10:26 AM.

Details

Summary

Initial inclusion of libfprint.

Changelog:

2018-06-12: v0.8.1 release

  • Brown paperbag release to install the udev rules file in the correct directory if the udev pkg-config file doesn't have a trailing slash

2018-06-12: v0.8.0 release

  • Port to meson as the build system
  • Port documentation to gtk-doc
  • Drivers:
    • Add Elan driver
    • Increase threshold to detect encryption on URU4000 devices
    • Remove already replaced UPEKE2 driver
    • Fix possible crash caused by vfs5011 when no lines were captured
  • Library:
    • Fix a number of memory and file descriptor leaks and warnings
    • Make NSS (and URU4000) driver optional
    • Fix assembling of frames for non-reverse and non reverse stripes
    • Split internal private header to clarify drivers API
    • Simplify logging system, now all the builds can be used to output debug information
    • Mark fp_dscv_print functions as deprecated
  • Udev rules:
    • Add some unsupported devices to the whitelist
Test Plan
  1. Install libfprint
  2. Install test build of fprintd (can be packaged after inclusion of libfprint)
  3. fprintd-enroll, enroll fingerprint
  4. fprintd-list <username>, confirm enrolled
  5. Run fprintd-verify on enrolled finger and other fingers, verifying correct working.

Have tested with ThinkPad X220 Upek sensor and can confirm working library.

Diff Detail

Branch
master
Lint
No Linters Available
Unit
No Unit Test Coverage

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
DataDrake requested changes to this revision.Feb 25 2018, 3:11 AM
DataDrake added inline comments.
pspec_x86_64.xml
38

Let's not have unnecessary static libs, thanks!

This revision now requires changes to proceed.Feb 25 2018, 3:11 AM

@DataDrake i can also provide a patch for fprint_demo, a tool to check if the fingerprint device is working

Devil505 edited the test plan for this revision. (Show Details)Feb 25 2018, 10:44 AM
Devil505 updated this revision to Diff 5734.Feb 25 2018, 11:06 AM

removing static libs

DataDrake requested changes to this revision.Mar 3 2018, 3:03 PM
DataDrake added inline comments.
package.yml
1

This should be libfprint

This revision now requires changes to proceed.Mar 3 2018, 3:03 PM
Devil505 updated this revision to Diff 5882.Mar 3 2018, 8:19 PM
Devil505 marked an inline comment as done.

fixing package name

DataDrake accepted this revision.Mar 17 2018, 1:47 PM

LGTM. Thanks!

This revision is now accepted and ready to land.Mar 17 2018, 1:47 PM
JoshStrobl requested changes to this revision.Mar 17 2018, 1:58 PM
JoshStrobl retitled this revision from The inclusion of libfprint fixes T4882 to Initial inclusion of libfprint..
JoshStrobl edited the summary of this revision. (Show Details)
JoshStrobl added a subscriber: JoshStrobl.

this hardware works with only this modified version of libfprint

Do you mean the one in the source or the one you linked? If you're referring to the one you linked, then why isn't that being used as the source instead?

Marking as Request Changes pending response to question.

This revision now requires changes to proceed.Mar 17 2018, 2:00 PM
Devil505 marked an inline comment as done.Mar 17 2018, 7:52 PM

this hardware works with only this modified version of libfprint

Do you mean the one in the source or the one you linked? If you're referring to the one you linked, then why isn't that being used as the source instead?
Marking as Request Changes pending response to question.

The one linked but i'm talking about *my* specific fingerprint, i don't used it as the source because it's not official.
We need others users with different types of fingerprint for test IMHO.

JoshStrobl accepted this revision.Mar 17 2018, 8:19 PM

Gotcha, thanks for the clarification.

This revision is now accepted and ready to land.Mar 17 2018, 8:19 PM

BTW I can also provide a patch for fprint_demo (small GUI to test the fingerprint) and fprintd (dbus service) but this last one uses a git source.

DataDrake requested changes to this revision.Mar 18 2018, 3:09 PM

Needs a rebuild for pspec change to package name.

This revision now requires changes to proceed.Mar 18 2018, 3:09 PM

Is there a way I can make changes to this or do I need to create a new patch?

Is there a way I can make changes to this or do I need to create a new patch?

check https://solus-project.com/articles/packaging/submitting-a-package/en/#updating-a-patch-that-needs-changes

Is there a way I can make changes to this or do I need to create a new patch?

check https://solus-project.com/articles/packaging/submitting-a-package/en/#updating-a-patch-that-needs-changes

Will it work on a patch that isn't mine?

Is there a way I can make changes to this or do I need to create a new patch?

check https://solus-project.com/articles/packaging/submitting-a-package/en/#updating-a-patch-that-needs-changes

Will it work on a patch that isn't mine?

If you use arc diff --update D1657, I think it will work

Is there a way I can make changes to this or do I need to create a new patch?

What do you want to change? Or do you just want to do the rebuild ?
*wonders why @Devil505 hasn't done it*

I can't test it anyway

Well, to be fair I don't know if VirtualBox can even connect the scanner to my temporal virtual machine(s) :P, but I'll try it later

Devil505 updated this revision to Diff 7678.Jun 15 2018, 11:59 AM

update libfprint to 0.8.1

Devil505 edited the summary of this revision. (Show Details)Jun 15 2018, 12:00 PM
Devil505 edited the test plan for this revision. (Show Details)

Ok i bumped it to 0.8.1, more hardware supported, I hope someone can test it.

Devil505 edited the test plan for this revision. (Show Details)Jun 15 2018, 12:17 PM
DataDrake requested changes to this revision.Jul 19 2018, 12:52 PM
Building documentation for libfprint
Traceback (most recent call last):
  File "/usr/bin/meson", line 29, in <module>
    sys.exit(mesonmain.main())
  File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line 379, in main
    return run(sys.argv[1:], launcher)
  File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line 316, in run
    sys.exit(run_script_command(args[1:]))
  File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line 232, in run_script_command
    return cmdfunc(cmdargs)
  File "/usr/lib/python3.6/site-packages/mesonbuild/scripts/gtkdochelper.py", line 243, in run
    options.mode)
  File "/usr/lib/python3.6/site-packages/mesonbuild/scripts/gtkdochelper.py", line 118, in build_gtkdoc
    gtkdoc_run_check(scan_cmd, abs_out)
  File "/usr/lib/python3.6/site-packages/mesonbuild/scripts/gtkdochelper.py", line 55, in gtkdoc_run_check
    p, out = Popen_safe(cmd, cwd=cwd, env=env, stderr=subprocess.STDOUT)[0:2]
  File "/usr/lib/python3.6/site-packages/mesonbuild/mesonlib.py", line 841, in Popen_safe
    stdout=stdout, stderr=stderr, **kwargs)
  File "/usr/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'gtkdoc-scan': 'gtkdoc-scan'
FAILED: meson-install 
/usr/bin/python3 /usr/bin/meson install --no-rebuild
ninja: build stopped: subcommand failed.
Command '['/bin/bash', '--norc', '--noprofile', '/tmp/ypkg-installCThvtX']' returned non-zero exit status 1
[Build] install failed

You /are/ building this with soilbuild, right?

This revision now requires changes to proceed.Jul 19 2018, 12:52 PM

strange, it doesn't build anymore now, maybe a recent changes in one of the depends ?

for 0.8.2 they switch to gtk-doc to generate the documentation, I added gtk-doc as builddeps but I've got this error

Building documentation for libfprint
ERROR: 
Error in gtkdoc helper script:

ERROR: 'gtkdoc-scangobj' failed with status 1
Traceback (most recent call last):
  File "/usr/bin/gtkdoc-scangobj", line 71, in <module>
    sys.exit(scangobj.run(options))
  File "/usr/share/gtk-doc/python/gtkdoc/scangobj.py", line 1230, in run
    for line in common.open_text(options.types):
  File "/usr/share/gtk-doc/python/gtkdoc/common.py", line 57, in open_text
    return codecs.open(filename, mode, encoding=encoding)
  File "/usr/lib/python2.7/codecs.py", line 898, in open
    file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: '/home/build/YPKG/root/libfprint/build/libfprint-0.8.2/solusBuildDir/doc/libfprint.types'

FAILED: meson-install 
/usr/bin/python3 /usr/bin/meson install --no-rebuild
ninja: build stopped: subcommand failed.
Command '['/bin/bash', '--norc', '--noprofile', '/tmp/ypkg-installAQu2_w']' returned non-zero exit status 1

any idea ?

OK it's an issue from upstream https://gitlab.freedesktop.org/libfprint/libfprint/merge_requests/9

let's wait for 0.8.3 then

OK it's an issue from upstream https://gitlab.freedesktop.org/libfprint/libfprint/merge_requests/9
let's wait for 0.8.3 then

It looks like the new version is out. A change in version numbering though.
https://gitlab.freedesktop.org/libfprint/libfprint/tags/V_0_99_0

libfprint is now on v0.99

I updated package.yml (attached) and it builds, but I am at a loss for how to test, and so don't want to propose the diff yet. Ideas?

abdulocracy edited the summary of this revision. (Show Details)

Update libfprint to 0.99.0, previous documentation issue fixed upstream.

I have a ThinkPad X220 which is supported by libfprint, the fingerprint sensor is this: Bus 001 Device 004: ID 147e:2016 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor

I have built and installed libfprint on my system and compiled fprintd from source to test, however getting this error on every fprintd command:
list_devices failed: Rejected send message, 1 matched rules; type="method_call", sender=":1.109" (uid=1000 pid=9289 comm="fprintd-enroll " label="unconfined") interface="net.reactivated.Fprint.Manager" member="GetDefaultDevice" error name="(unset)" requested_reply="0" destination="net.reactivated.Fprint" (bus)

Not exactly sure how to go forward with testing the package.

abdulocracy commandeered this revision.Dec 20 2018, 9:54 AM
abdulocracy added a reviewer: Devil505.

Alright so I created a local fprintd package and can confirm that my sensor works with this libfprint. Would be happy to package fprintd as well, Solus could really use some working fingerprint sensor support.

Devil505 seems to be inactive with Solus-related development lately, discontinuing his third-party repo and his last activity on the dev tracker being more than a month ago.

abdulocracy edited the test plan for this revision. (Show Details)Dec 20 2018, 10:12 AM
kyrios123 added inline comments.Dec 20 2018, 10:23 AM
package.yml
13

libgtk-3-devel depends on this so it shouldn't be added

19

This shouldn't be necessary as well since it depends on libx11-devel and libxext-devel which are required for libgtk-3-devel

20

this is part of system.devel so it shouldn't be added

Removed unnecessary builddeps. xv needs to be included, not installed by other deps.

abdulocracy marked 3 inline comments as done.Dec 20 2018, 10:32 AM

Seems like I removed Makefile and pspec on accident, sorry new to this.

This comment was removed by abdulocracy.

I am unable to add the files back, since this patch was by another user and there is no git repo to clone, I am unsure how to further amend the patch. Any help?

I am unable to add the files back, since this patch was by another user and there is no git repo to clone, I am unsure how to further amend the patch. Any help?

What git log in your local repo outputs? If it contains more than 1 commit, can you squash them all together like described in the doc?

Seems okay now, was unable to see the pspec in the patch for some reason.

abdulocracy edited the test plan for this revision. (Show Details)Dec 20 2018, 1:27 PM

I tested this package with a locally built fprintd, should I use another method of testing as fprintd is not from Solus?

DataDrake accepted this revision.Dec 27 2018, 7:34 PM

LGTM. Thanks!

This revision is now accepted and ready to land.Dec 27 2018, 7:34 PM
DataDrake requested changes to this revision.Dec 27 2018, 7:38 PM

Missing abi_used_libs and abi_symbols

This revision now requires changes to proceed.Dec 27 2018, 7:38 PM

Include abi files.

DataDrake accepted this revision.Dec 31 2018, 4:54 PM

LGTM. Thanks!

This revision is now accepted and ready to land.Dec 31 2018, 4:54 PM
This revision was automatically updated to reflect the committed changes.