Commit graph

950 commits

Author SHA1 Message Date
Benjamin Berg
538038867b tests: Add umockdev based testing
Initially only the vfs5011 driver is tested. Please note that these
tests will be unreliable before umockdev 0.13.2.

See also https://github.com/martinpitt/umockdev/pull/92
2019-11-20 13:53:45 +01:00
Benjamin Berg
e372311afe upekts: Port upekts driver to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
4a95f795cb upeksonly: Port upeksonly driver to the new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
fcfe82a7b8 upektc: Port upektc driver to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
a8d15bccba uru4000: Port URU4000 driver to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
aec1b7caad build: Add -Wtype-limits to default cflags 2019-11-20 13:53:45 +01:00
Benjamin Berg
5eba6067a3 elan: Port driver to new API
This changes the cancellation logic a bit to ensure we always deactivate
the device (equivalent to the AWAIT_OFF state in the driver). All
commands except for the deactivation command should be cancelled when an
operation is stopped, this is to ensure that the LED is turned off at
the end of an operation.
2019-11-20 13:53:45 +01:00
Benjamin Berg
664d18836e synaptics: Encode metadata into userid string
This allows us to properly extract metadata for prints that are stored
on the device. We could for example delete the oldest prints first with
this information.
2019-11-20 13:53:45 +01:00
Vincent Huang
ac65cf455e synaptics: Add synaptics driver
Heavily modified by Benjamin Berg <bberg@redhat.com> to port it to the
new libfprint API and adjust the coding style to follow more closely
other drivers.
2019-11-20 13:53:45 +01:00
Benjamin Berg
b8bb08649d lib: Add byte data reader/writer helpers
These helpers are directly copied from GStreamer and stripped down quite
a bit to e.g. always assume the machine does not support unaligned
access.
2019-11-20 13:53:45 +01:00
Benjamin Berg
57866c45cd vcom5s: Port vcom5s to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
fbf4b45e76 etes603: Chain into exit SM from other SMs when deactivating
When the device is deactivated while it is still active then the exit SM
needs to be executed from the SM that was active at the time. This is
signalled by is_active being set to FALSE while the active SM completes.

Call m_exit_start in those cases to ensure proper device deactivation.
2019-11-20 13:53:45 +01:00
Benjamin Berg
431ed7210b etes603: Port etes603 driver to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
043b31df70 vfs0050: Port vfs0050 driver to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
2e30572364 vfs301: Port driver to new API
This driver is synchronuous mostly, and the sync API is not well tested.
It should work, but there has been some re-shuffling of buffers, etc.
2019-11-20 13:53:45 +01:00
Benjamin Berg
fd64c46c74 vfs101: Port vfs101 driver to new API
This driver has a rather odd state machine and also used to mess iwth
the internal state of the image device. This code has been removed, but
is untested unfortunately due to a lack of hardware.

Most likely, this driver is not quite functional currently.
2019-11-20 13:53:45 +01:00
Benjamin Berg
61e49c2659 aes2550: Port aes2550 driver to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
441b1238a5 aes2501: Port aes2501 to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
0a47df7bb7 aesx660: Port aes1660 and aes2660 drivers to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
5e05afecf2 aes1610: Port driver to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
7ef64b5f5f aes3k: Port aes3500 and aes4000 drivers to new API 2019-11-20 13:53:45 +01:00
Benjamin Berg
0169fe8cf6 vfs5011: Port driver and add it back into build
There is still a warning where a USB transfer should be cancelled but it
not at this point.
2019-11-20 13:53:45 +01:00
Benjamin Berg
f119c273fd upektc_img: Port upektc_img and back in
Note that this port currently conflicts with with the upeksonly driver
as the revision check is non-functional right now.
2019-11-20 13:53:45 +01:00
Benjamin Berg
dac489b7f6 scripts: Add an uncrustify script
It currently will only uncrustify the new internal libfprint code, not
the drivers or other parts.
2019-11-20 13:53:45 +01:00
Benjamin Berg
6ec11a2b26 cocci: Add spatch/coccinelle patches for driver porting
This is an impartial set of transformations to help port the drivers to
the new interfaces.
2019-11-20 13:53:45 +01:00
Benjamin Berg
4640e3f5b0 demo: Use 3.32 runtime for flatpak
We do not need the master runtime environment and the stable 3.32 one is
more readily available to users.
2019-11-20 13:53:45 +01:00
Benjamin Berg
36777896c2 CI: Update dependencies and run tests 2019-11-20 13:53:45 +01:00
Benjamin Berg
6e25a27870 tests: Add basic unit test based on virtual_image device 2019-11-20 13:53:45 +01:00
Benjamin Berg
0b4f682233 demo: Add ability to cancel capture operation 2019-11-20 13:53:45 +01:00
Benjamin Berg
d184a7662c demo: Update flatpak manifest
Build libgusb and the current v2 development branch.
2019-11-20 13:53:45 +01:00
Benjamin Berg
3f0a143037 demo: Add UI for retry errors 2019-11-20 13:53:44 +01:00
Marco Trevisan (Treviño)
b46d336d2b examples: Add back examples using the async APIs
Add the examples back by using the new async API, support verification and
enroll for devices with own storage.
2019-11-20 13:53:44 +01:00
Benjamin Berg
7d6b0c1376 demo: Port to new API 2019-11-20 11:03:09 +01:00
Benjamin Berg
dd40aeaa79 examples: Add sendvirtimg.py script to send a print to virtual_imgdev
With this script it is possible to test libfprint/fprintd without any
hardware device. The image needs to be provides as a PNG with the alpha
channel storing the print data.

See the comment in the file on how the script can be used.
2019-11-20 11:03:09 +01:00
Benjamin Berg
2b6f22b84d virtual_image: Add new virtual image driver 2019-11-20 11:03:09 +01:00
Benjamin Berg
689aff0232 lib: Major rewrite of the libfprint core and API
This is a rewrite of the core based on GObject and Gio. This commit
breaks the build in a lot of ways, but basic functionality will start
working again with the next commits.
2019-11-20 11:03:09 +01:00
Benjamin Berg
30a449841c nbis: Use GLib memory management functions
Apply the previously added spatch/coccinell file to replace all
free/malloc/realloc calls with g_free/g_malloc/g_realloc. It also removes
all the error code paths that we do not need to check anymore.

This means that the returned data must be free'ed using g_free rather
than free, making memory management more consistent.
2019-11-19 21:07:58 +01:00
Benjamin Berg
56543e1311 nbis: Add spatch file to use GLib memory management functions
Add an spatch/coccinelle file to replace all free/malloc/realloc calls
with g_free/g_malloc/g_realloc. It also removes all the error code paths
that we do not need to check anymore.
2019-11-19 21:07:58 +01:00
Benjamin Berg
9b175a7681 examples: Add PNGs for NIST example prints
These PNGs were generated using gimp simply by using the greyscale image
itself as an alpha mask. The reason to do this is solely for easier
consumption together with cairo A8 surfaces.
2019-11-19 21:07:58 +01:00
Benjamin Berg
d67a801f1f examples: Add a few example prints from NIST
These prints are from NIST and are not copyrighted. They were sourced
via wikipedia.
2019-11-19 21:07:58 +01:00
Benjamin Berg
95d7c0e800 lib: Add dummy namespace versioning file 2019-11-19 21:07:58 +01:00
Benjamin Berg
059fc5ef7d examples: Disable existing examples
These examples will stop working with the following API changes. Updated
examples may be re-enabled again later.
2019-11-19 21:07:51 +01:00
Benjamin Berg
7fed33fb49 build: Disable all drivers
We will re-enable them again when they are ported.
2019-11-18 15:39:35 +01:00
Benjamin Berg
ce9702571b build: Add a "default" driver selection to exclude virtual drivers
We will not want to install virtual drivers by default, yet they should
be inside the "all" category. So add a new "default" category and also a
separate array for the future virtual drivers.
2019-11-18 15:39:35 +01:00
Benjamin Berg
01ec1c5777 build: Add dependency to GUsb rather than libusb
We will use GUsb rather than libusb directly in the future. This should
simplify a lot of the integration work and changes such as supporting
hotplugging. It will also require quite a lot of internal changes.
2019-11-18 15:39:35 +01:00
Benjamin Berg
ec8dd6410e build: Make glib a libfprint dependency
We are going to use GLib types in the public API now.
2019-11-18 15:39:35 +01:00
Benjamin Berg
45d7046f99 lib: Remove all deprecated API 2019-11-18 15:39:35 +01:00
Benjamin Berg
5fcd41b962 CI: Disable ABI check
As the ABI check is not useful for now until the API becomes stable
again. Disable it.
2019-11-18 15:39:35 +01:00
Benjamin Berg
6ba8a15d3a build: We are now working on version 2 of libfprint
Bump the version to 1.90.0, the soname to 2.0.0. Also rename the
pkgconfig file to libfprint2.pc.
2019-11-18 15:39:20 +01:00
worldofpeace
5b615e33a0 build: Don't hardcode /bin/echo
So that the shell builtin is used instead when available.
2019-09-20 15:01:52 +02:00