Commit Graph
100 Commits
Author SHA1 Message Date
Marco Trevisan (Treviño) ac36b213ad New upstream version 1.94.5+tod1 2022-10-13 20:52:19 +02:00
Marco Trevisan (Treviño) 3ea2ee8a76 tod: Change namespace of internal functions to tod_*
In this way we don't have the risk of them being exported because
starting with `fpi_*`.
2022-10-13 20:42:31 +02:00
Marco Trevisan (Treviño) 17818cffe6 ci: allow failure on valgrind job
We have tests depending on external libraries that must not be updated
just to fix such issues
2022-10-13 20:21:15 +02:00
Marco Trevisan (Treviño) 18ca916c4d tod: Add fpi_device_suspend and fpi_device_resume to 1.94 version 2022-10-13 20:12:14 +02:00
Marco Trevisan (Treviño) 082b335300 Merge tag 'v1.94.5' into tod
v1.94.5

 * New driver: fpcmoc, supporting various FPC MOC Fingerprint Sensors
 * goodixmoc: New PIDs 0x6014, 0x6094, 0x631C, 0x634C, 0x6384, 0x659A.
 * goodixmoc: Support resetting device on firmware failure due to corrupted DB.
 * elanmoc: New PIDs 0x0c88, 0x0c8c, 0x0c8d.
 * synaptics: New PID 0x0104.
 * upektc: New PID 0x2017.
 * Fixed various memory leaks
 * More tests

Git-EVTag-v0-SHA512: a36e4b627ffc830a78932266119b73e53921965990bd1b6cae6fd8d166b1b8e62f5a538151a74b82a2a2d83a4ab7399ed17cb2bef39441f881a38a24252e4efa
2022-10-13 20:08:10 +02:00
Marco Trevisan (Treviño) 2e79e6f353 tod-goodix-wrapper: Fix syntax as per uncrustify 2022-10-13 20:06:13 +02:00
Marco Trevisan (Treviño) e96669208b test-fp-context-tod: Try to open/close a device from the public library
We need to skip this for devices with no close vfunc (like the SSM one)
2022-10-13 20:06:13 +02:00
Marco Trevisan (Treviño) f2816024e0 test-device-fake: Add more logging showing the current device action 2022-10-13 20:06:13 +02:00
Marco Trevisan (Treviño) 2f3d9240b7 tod-symbols: Define other macros that could be useful in future 2022-10-13 19:46:26 +02:00
Marco Trevisan (Treviño) c36310fed1 tod: Force libfprint-tod to be a shared library and link whole with private
Also unset the private library if set and make libfprint to only link
with the tod one.

This fixes the issue we had with wrong symbols shared by multiple
libraries
2022-10-13 19:45:17 +02:00
Marco Trevisan (Treviño) c04d15bbf1 fp-device: Move FpDevice private functions to public library
This these functions are not really needed by anything else than
FpDevice, so move them back to the cpp file, so that we don't expose
them in the private library, given that we don't need them
2022-10-13 19:42:50 +02:00
Marco Trevisan (Treviño) 8e7e5bf710 tests: Add tests to ensure that we don't duplicate symbols in libraries
We have an issue where some symbols are exposed by both the tod library
and the public one, and this may lead to big issues like GType's being
defined multiple times.

So add a test checking whether this is working

See: 3v1n0/libfprint#1
2022-10-13 19:41:39 +02:00
Marco Trevisan (Treviño) 4824380f79 Revert "fpi-device: Avoid using device action strings"
This reverts commit fbffb62ecb.
2022-10-13 14:09:25 +02:00
Marco Trevisan (Treviño) 86961a9429 Release 1.94.5 2022-10-13 05:57:04 +02:00
Marco Trevisan (Treviño) 3ca20a8e70 ci: Do not run two image rebuild pipelines on schedules 2022-10-13 05:37:12 +02:00
Marco Trevisan (Treviño) 3100404419 ci: Install more debug symbols 2022-10-13 05:27:44 +02:00
Marco Trevisan (Treviño) 892c9767a2 tests: Be stricter on valgrind leak checks
We used to ignore leaks, and we are ending up in having various of them,
so let's make valgrind to exit with error when using the valgrind test
setup (so in CI) to catch them better.
2022-10-13 05:20:28 +02:00
Marco Trevisan (Treviño) 2718dc02e0 vfs0050: Initialize the usb transfer buffer when allocating it
Ensure that the memory that we're going to populate via USB transfer is
initialized, otherwise valgrind may complain about (even if that's not
really an issue).
2022-10-13 05:04:03 +02:00
Marco Trevisan (Treviño) abd7c66833 fp-device: Do not setup current action before updating temperature
At every action we update the device temperature, and this can
potentially lead to a failure, if the temperature is too hot.

However in such case we were failing a task that we had just stolen,
causing an error, tasks never returning and the device was left in an
undefined state.

So, just return early in case temperature is too hot, as we don't really
need to have the current task or action set at this point because
there's no active action to cancel yet.

This was causing random errors when running tests under valgrind
2022-10-13 05:04:03 +02:00
Marco Trevisan (Treviño) 8716ddb07a fp-print: Fix a typo in documentation 2022-10-13 05:04:03 +02:00
Marco Trevisan (Treviño) fd7d93e619 fpi-device: Do not leak suspend/resume tasks
We kept suspend/resume GTask's around but at the moment of completing
them we didn't unref them, leading to leaks.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 0592c0e5ad uru4000: Cleanup cancelled error before early return 2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 684e3c460a uru4000: Shutdown NSS on device close
We were allocating NSS during device opening but never closing it,
causing many leaks.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 4278668c8f egis0570: Cleanup the received image that is going to be resized
It's just temporary for us as we're providing the resized one instead.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) a86ab6c854 test-fpi-device: Cleanup the device ID / driver before overriding it
Otherwise we'd leak the one that was initially set.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) b04eed0aea test-device-fake: Consume the identify print if we're returning with error 2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 669e091b03 virtual-device: Use an autoptr to handle the new scan print
We may not use this print, so let's use an autoptr to handle its life
cycle to clean it up when not used.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 0b6a92150c tests/fpcmoc: Ensure python tests exit with error on every exception
We ignored assertions happening on callbacks as they only raise
exceptions that does not stop the execution.

So ensure that this is happening in all the tests as synaptics was
doing already

Same as commit: be8888431
2022-10-13 04:26:58 +02:00
Marco Trevisan (Treviño) b718f4d567 tests/meson: Avoid searching for programs multiple times 2022-09-28 01:23:58 +02:00
Marco Trevisan (Treviño) be88884315 tests: Ensure python tests exit with error on every exception
We ignored assertions happening on callbacks as they only raise
exceptions that does not stop the execution.

So ensure that this is happening in all the tests as synaptics was
doing already
2022-09-28 01:22:15 +02:00
Marco Trevisan (Treviño) d2a0eda56c synaptics, goodix: Properly check for finger status during enroll progress
It may contain other values, but for sure we finger must be neeeded
2022-09-28 01:21:31 +02:00
Marco Trevisan (Treviño) 5d9fc8b3c8 fpi-device: Do not leak USB devices while iterating
To compute the device ports we walked up through the devices using
g_usb_device_get_parent(), but this is supposed to return a device with
transfer full, so we need to unref it when done with it.

To handle this nicely, use a mixture of autopointer's and g_set_object
to ensure we're doing the right thing when passing the ownership around.
2022-09-27 18:21:20 +02:00
Marco Trevisan (Treviño) 62f2f34655 fpi-device: Fix a small leak when configuring the wakeup 2022-09-27 17:38:51 +02:00
Marco Trevisan (Treviño) 171e65f73f libfprint: Use g_memdup2 everywhere
It's just safer when available.
2022-09-27 17:10:33 +02:00
Marco Trevisan (Treviño) 446cedbcfc fpi-compat: Add definition for g_memdup2 when not available or deprecated
It's suggested to use g_memdup2 everywhere, but since we've a max-glib
version set we'd get a "deprecation" warning.

Avoid it this by re-defininig it through a macro in both cases.
2022-09-27 17:10:33 +02:00
Marco Trevisan (Treviño) 4012a4fe6f fpi-device: Clarify identify prints gallery usage in drivers docs 2022-09-27 16:43:33 +02:00
Marco Trevisan (Treviño) 70dc61d647 libfprint: Add top-level sync-udev-hwdb target for updating DB 2022-09-27 16:32:09 +02:00
Marco Trevisan (Treviño) ca481cce50 fprint-list-udev-hwdb: Update devices from wiki 2022-09-27 16:32:09 +02:00
Marco Trevisan (Treviño) 4d74838c50 ci: Generate Cobertura XML and use it to feed gitlab for MR integration
gitlab has coverage integration in MRs, but we need a cobertura
formatted XML files (each must be less than 10 MB) to show it, since
meson generates it already via gcovr, we can just inform gitlab about it

See https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization.html
2022-09-27 13:05:01 +02:00
Marco Trevisan (Treviño) c429052e5e tests: Do not use deprecated declarations in virtual device tests 2022-09-27 12:52:38 +02:00
Marco Trevisan (Treviño) 7ea2e55793 ci: Check for uncrustify changes in a safer way 2022-09-27 01:38:26 +02:00
Marco Trevisan (Treviño) 34e8655a08 ci: Use versioned image tags 2022-09-27 01:06:35 +02:00
Marco Trevisan (Treviño) c512a47e8a ci: Install debuginfo packages for better valgrind debugging
Related-to: https://gitlab.freedesktop.org/libfprint/libfprint/-/issues/507
2022-09-27 00:21:05 +02:00
Marco Trevisan (Treviño) 012d77ac41 libfprint-templates: Include exec commands 2022-09-27 00:15:16 +02:00
Marco Trevisan (Treviño) 2acd3ca571 ci: Rebuild the image in case deps changed 2022-09-27 00:15:16 +02:00
Marco Trevisan (Treviño) fbffb62ecb fpi-device: Avoid using device action strings
It may cause initializing a type twice in some cases, and thus some
hard-locking, let's just avoid it since we don't care about full debug
strings here.
2022-07-17 17:34:23 +02:00
Marco Trevisan (Treviño) 0d5c897b3d tod: Add wrapper for goodix-tod not handling identification with no prints
Newer fprintd supports duplicate-detection, this implies sending to the
device an empty prints gallery, expecting the device to give us a
matched print against its storage.

In case the device has no storage we're doing this anyway, but goodix
doesn't handle this properly, so let's just ignore the case if no prints
are passed.
2022-07-17 17:34:23 +02:00
Marco Trevisan (Treviño) 15bee898b8 ci: Use junit test reports
They can be used to show test failure logs directly in the MR's
pipelines page.
2022-07-14 22:13:49 +02:00
Marco Trevisan (Treviño) fb9e054637 test-fp-device: Add few tests to check identification init errors 2022-07-14 21:35:30 +02:00
Marco Trevisan (Treviño) 7f6ab61292 fp-device: Return an error if prints are invalid
We'd crash later otherwise, while it's better to return an error.
2022-07-14 21:14:29 +02:00
Marco Trevisan (Treviño) f03d9361e3 fpi-device: Improve documentation for identify/verify report and complete
We still mentioned variables that are not accepted anymore since we
switched to match reporting API.
2022-07-14 21:13:35 +02:00
Marco Trevisan (Treviño) 3a47ce48e3 New upstream version 1.94.3+tod1 2022-02-23 15:43:06 +01:00
Marco Trevisan (Treviño) 8c5a4e3b41 libfprint-tod.ver: Use explicit versioning for old symbols
Given that we won't go in the past, it's better to be explicit in
using versions for symbols so that all new symbols will be added to the
latest listed release, while others won't be moved from where they are.
2022-02-15 13:07:35 +01:00
Marco Trevisan (Treviño) 31f8d8c067 libfprint-tod.ver: Add new APIs to 1.94 symbols 2022-02-15 13:07:35 +01:00
Marco Trevisan (Treviño) a1340485b6 tests/tod-drivers: Add tests for 1.94.3-built tod drivers 2022-02-15 13:07:31 +01:00
Marco Trevisan (Treviño) f3187ad9f4 tod: Ensure we install tod-macros.h header 2022-02-15 13:06:35 +01:00
Marco Trevisan (Treviño) a328dfe1d9 tests/tod-drivers: Add tests for FpDeviceFeature on 1.94.3 2022-02-14 18:50:47 +01:00
Marco Trevisan (Treviño) b6ef314434 tests/tod-drivers: Move FpDeviceFeature definitions to base-fp-device
They're public enums, so put there in the expected file.
2022-02-14 18:50:11 +01:00
Marco Trevisan (Treviño) 600e6f2107 tests/meson: Remove unsupported sources_dir from gnome mkenums 2022-02-14 18:49:40 +01:00
Marco Trevisan (Treviño) 6b894dbd5c Merge tag 'v1.94.3' into tod
2021-11-02: v1.94.3 release

Highlights:
 * Ensure idle mainloop before completing enumeration (fprintd#119)
 * It is now possible to extend already enrolled prints
 * elanspi: Fix timeout error with some hardware (#438)
 * elanspi: Fix cancellation issues
 * goodixmoc: Return matching device print; fixes duplicate checking (#444)
 * goodixmoc: Support clearing the storage (usually unused)

Git-EVTag-v0-SHA512: 779b560b97bc7da5972d9a4854be5b74f8d310a22ac782fde50fa02c869cf93cc11254d75519076ac8ee59f81c8a9fc0466030eb249519827343ab84eb45e640
2022-02-14 17:03:21 +01:00
Marco Trevisan (Treviño) 2be7eed63d New upstream version 1.94.2+tod1 2021-12-14 19:46:02 +01:00
Marco Trevisan (Treviño) d46c34b21c Merge tag 'v1.94.2' into tod
Tag 1.94.2

Git-EVTag-v0-SHA512: 3eed67186b9533300d5ba70ce9abc36055068c3eafa663a48c655ef0e8c7a6928bb7cd875a7ae1860a65324fb806da79d83ca3c97a0640b10dc92dc497f04f11
2021-12-14 19:32:04 +01:00
Marco Trevisan (Treviño) a36a4f20ff tod-inspector: Add support for 1.94 device class members 2021-10-31 23:44:37 +01:00
Marco Trevisan (Treviño) 8ae5522201 tod-inspector: Support udev devices 2021-10-31 23:44:05 +01:00
Marco Trevisan (Treviño) fef4120ae1 test-fpi-todv1-types: Check missing device class members for 1.94
Not a problem now, as we're still on 1.94, but will be needed to ensure
that future versions will be checked.
2021-10-31 23:28:21 +01:00
Marco Trevisan (Treviño) 608a9f10df libfprint: Use a macro to easily compute TOD padding 2021-10-31 23:09:30 +01:00
Marco Trevisan (Treviño) ec8a9ba0fd fpi-device: Adjust padding based on actual gpointer size
In some architectures pointer size is different. So let's adapt it to it
2021-10-31 22:31:01 +01:00
Marco Trevisan (Treviño) 8839ed6b69 New upstream version 1.94.1+tod1 2021-10-28 19:24:08 +02:00
Marco Trevisan (Treviño) 77ff30e19d tod: Mark symbols that were added in 1.90 series as part of TOD 1.0.0
Otherwise we'd cause the symbols to disappear on such versions
2021-10-28 19:22:21 +02:00
Marco Trevisan (Treviño) 378fae0ea2 doc: Add missing Drivers API SSM functions 2021-10-28 16:56:11 +02:00
Marco Trevisan (Treviño) 01b0f7aba0 doc: Include missing types (SPI) and functions to the Drivers API 2021-10-28 16:39:35 +02:00
Marco Trevisan (Treviño) 1153fc85a5 Merge with libfprint 1.94.1 and followup fixup commits 2021-10-28 15:46:02 +02:00
Marco Trevisan (Treviño) de46e1e4b8 tests: Add missing trailing new lines on devices attributes
This as per the same reasons of commit 63bfaf4, and without trailing new
lines such attributes aren't picked by umockdev in ubuntu and debian.
2021-10-27 02:01:50 +02:00
Marco Trevisan (Treviño) 312b75fe66 test-fp-todv1-types: Ensure we check all the enum values
We were ignoring enum values when there were gaps, so let's check that
all the values in the old version enums are present in the current one.
2021-09-04 04:13:15 +02:00
Marco Trevisan (Treviño) 125d6e276f tests: Repeat tests for TOD drivers compiled for each supported version 2021-09-04 03:20:58 +02:00
Marco Trevisan (Treviño) 4a337393a6 tests: Use more versioned types for fpi types tests
Also move images into its own header
2021-09-04 01:00:34 +02:00
Marco Trevisan (Treviño) 9c37ffa4be tests: Run TOD driver-independent tests alone 2021-09-03 20:18:36 +02:00
Marco Trevisan (Treviño) c63455d289 TOD: Add wrappers for SSM functions that are not compatible with 1.90
Expose new versioned symbols that work with previous API so that we can
keep compatibility with old drivers without having to recompile them.

We disable the GCancellable API in delayed SSM actions since that was
something that wasn't really needed and prone to errors, instead of
just re-implementing it as it was in the TOD case.
2021-09-03 20:18:36 +02:00
Marco Trevisan (Treviño) e4ef2ed7a0 tests: Do add TOD testing for SSM API
Driver is coming from the TOD drivers testing project [1].

https://gitlab.freedesktop.org/3v1n0/libfprint-tod-test-drivers
2021-09-03 19:41:17 +02:00
Marco Trevisan (Treviño) fdf86e65ec TOD: Add changed functions in libfprint 1.92, a fallback version is needed 2021-09-03 19:41:17 +02:00
Marco Trevisan (Treviño) 71827856c9 tod: Update version file to include new APIs per versions 2021-09-03 19:41:17 +02:00
Marco Trevisan (Treviño) d0aa30a435 tod: Check the message emission if the tod path isn't readable 2021-09-03 19:41:17 +02:00
Marco Trevisan (Treviño) 29b904b93d tests: Add versions check on TOD drivers based on their IDs
Recompile tod drivers using libfprint-tod-test-drivers project [1] so
that we don't have to reorder the private driver structure, plus use a
versioned driver ID and parse it to check whether a feature is supported
for such TOD test driver.

https://gitlab.freedesktop.org/3v1n0/libfprint-tod-test-drivers
2021-09-03 19:41:17 +02:00
Marco Trevisan (Treviño) 88cb452e05 fpi-device: Do not include config.h in headers
It should be included in files requiring it only.
2021-09-03 18:49:45 +02:00
Marco Trevisan (Treviño) 0a7473dce1 fpi-device: Do not include config.h in headers
It should be included in files requiring it only.
2021-09-02 13:43:43 +02:00
Marco Trevisan (Treviño) 4ed67f9084 build: Use host machine family from meson 2021-09-02 13:23:30 +02:00
Marco Trevisan (Treviño) 2d20c6a8f2 fpi-device: Ensure FpDeviceClass is still compatible with TODv1 ABI
Tests are ensuring it, adapt internal tests to ignore new features when
using old drivers
2021-08-28 03:07:23 +02:00
Marco Trevisan (Treviño) 2e00b03a43 Merge tag 'v1.94.0' into tod
Tag 1.94.0

Git-EVTag-v0-SHA512: 7cf9d7defb02433140f575589099569a5848ab34e8ecb0a4a90bb3c9eb1c228a16438afe1b23c381b59c1506f189a845752fead3dbd3c1c11f686cf47302cb1b
2021-08-28 02:19:40 +02:00
Marco Trevisan (Treviño) df36c66730 tod: Use dynamically defined version script
So we don't have to manage the soname manually
2021-04-14 18:15:07 +02:00
Marco Trevisan (Treviño) 35bcd4326c libfprint-tod.ver: Add new symbols to newer TOD subversion
This should be something to do every time, as it may allow to define
multiple symbol versions, if something changes upstream.
2021-04-14 18:14:35 +02:00
Marco Trevisan (Treviño) 00128e11fd README: Link to TOD README file 2021-04-13 22:35:34 +02:00
Marco Trevisan (Treviño) 81ecee3ead tests/tod-drivers: Add newly supported types 2021-04-13 22:35:34 +02:00
Marco Trevisan (Treviño) 18b3acdfb0 fpi-spi-transfer: Add structure padding 2021-04-13 22:35:34 +02:00
Marco Trevisan (Treviño) 1d7a561b0b tod-inspector: Add support reading features 2021-04-13 22:35:28 +02:00
Marco Trevisan (Treviño) a79a8d0e22 device: Keep device type ordering as default 2021-04-13 22:35:28 +02:00
Marco Trevisan (Treviño) 344d5cb2a9 fpi-device: Reduce padding on FpIdEntry to make space to new elements 2021-04-13 22:35:28 +02:00
Marco Trevisan (Treviño) c906b30cba tod: Add support for device features, keeping ABI compatibility 2021-04-13 22:35:28 +02:00
Marco Trevisan (Treviño) eb329903b4 test-fp-device-tod: Ignore deprecated functions and use new ones 2021-04-13 22:17:39 +02:00
Marco Trevisan (Treviño) 20ac5c10a4 Merge branch 'origin/master' into tod 2021-04-13 22:17:37 +02:00
Marco Trevisan (Treviño) 58756ab62e tests: Ensure that we don't break ABI with expected TODv1 structures
We can check whether each relevant structure element has not changed and
that the supported enum and flag values didn't change value.
2021-04-13 22:14:56 +02:00