diff --git a/NEWS b/NEWS index 9291089b..91351eea 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,17 @@ This file lists notable changes in each release. For the full history of all changes, see ChangeLog. +2018-07-15: v0.8.2 release +* Drivers: + - Add USB ID for TNP Nano USB Fingerprint Reader + - Fix UPEKTS enrollment never finishing on some devices + +* Library: + - Fix fp_get_pollfds() retval type, a small ABI change + - Downgrade fatal errors to run-time warnings, as a number of drivers + used to throw silent errors and we made them fatal. Those will now + be visible warnings, hopefully helping with fixing them. + 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 diff --git a/doc/libfprint-docs.xml b/doc/libfprint-docs.xml index fd674ec4..e56f4b77 100644 --- a/doc/libfprint-docs.xml +++ b/doc/libfprint-docs.xml @@ -11,7 +11,7 @@ This document is the API reference for the libfprint library. The latest version of libfprint, as well as the latest version of - this API reference, is available online. + this API reference, is available online. diff --git a/doc/xml/meson.build b/doc/xml/meson.build index ea3ddf59..e35f7eeb 100644 --- a/doc/xml/meson.build +++ b/doc/xml/meson.build @@ -1,10 +1,10 @@ ent_conf = configuration_data() ent_conf.set('PACKAGE', 'libfprint') -ent_conf.set('PACKAGE_BUGREPORT', 'https://bugs.freedesktop.org/enter_bug.cgi?product=libfprint') +ent_conf.set('PACKAGE_BUGREPORT', 'https://gitlab.freedesktop.org/libfprint/libfprint/issues') ent_conf.set('PACKAGE_NAME', 'libfprint') ent_conf.set('PACKAGE_STRING', 'libfprint') ent_conf.set('PACKAGE_TARNAME', 'libfprint-' + meson.project_version()) -ent_conf.set('PACKAGE_URL', 'https://www.freedesktop.org/wiki/Software/fprint/libfprint/') +ent_conf.set('PACKAGE_URL', 'https://fprint.freedesktop.org/') ent_conf.set('PACKAGE_VERSION', meson.project_version()) ent_conf.set('PACKAGE_API_VERSION', '1.0') configure_file(input: 'gtkdocentities.ent.in', output: 'gtkdocentities.ent', configuration: ent_conf) diff --git a/libfprint/drivers/elan.c b/libfprint/drivers/elan.c index 0ff16dcd..dff75a6d 100644 --- a/libfprint/drivers/elan.c +++ b/libfprint/drivers/elan.c @@ -102,7 +102,7 @@ static void elan_save_frame(struct fp_img_dev *dev) elandev->num_frames += 1; } -/* Transform raw sesnsor data to normalized 8-bit grayscale image. */ +/* Transform raw sensor data to normalized 8-bit grayscale image. */ static void elan_process_frame(unsigned short *raw_frame, GSList ** frames) { unsigned int frame_size = @@ -603,6 +603,7 @@ static void dev_deactivate(struct fp_img_dev *dev) static const struct usb_id id_table[] = { {.vendor = 0x04f3,.product = 0x0907}, + {.vendor = 0x04f3,.product = 0x0c26}, {0, 0, 0,}, }; diff --git a/libfprint/drivers/upekts.c b/libfprint/drivers/upekts.c index a2bf971a..b448e364 100644 --- a/libfprint/drivers/upekts.c +++ b/libfprint/drivers/upekts.c @@ -1018,6 +1018,9 @@ static void e_handle_resp00(struct fp_dev *dev, unsigned char *data, case 0x0c: case 0x0d: case 0x0e: + case 0x26: + case 0x27: + case 0x2e: /* if we previously completed a non-last enrollment stage, we'll * get this code to indicate successful stage completion */ if (upekdev->enroll_passed) { diff --git a/libfprint/drivers_api.h b/libfprint/drivers_api.h index 2bf547a1..2679c778 100644 --- a/libfprint/drivers_api.h +++ b/libfprint/drivers_api.h @@ -40,10 +40,16 @@ #define fp_dbg g_debug #define fp_info g_debug #define fp_warn g_warning -#define fp_err g_error +#define fp_err g_warning -#define BUG_ON(condition) g_assert(!(condition)) -#define BUG() g_assert_not_reached() +#define BUG_ON(condition) G_STMT_START \ + if (condition) { \ + char *s; \ + s = g_strconcat ("BUG: (", #condition, ")", NULL); \ + g_warning ("%s: %s() %s:%d", s, G_STRFUNC, __FILE__, __LINE__); \ + g_free (s); \ + } G_STMT_END +#define BUG() BUG_ON(1) enum fp_dev_state { DEV_STATE_INITIAL = 0, diff --git a/libfprint/fp_internal.h b/libfprint/fp_internal.h index b4d43e15..e7501824 100644 --- a/libfprint/fp_internal.h +++ b/libfprint/fp_internal.h @@ -42,10 +42,16 @@ #define fp_dbg g_debug #define fp_info g_debug #define fp_warn g_warning -#define fp_err g_error +#define fp_err g_warning -#define BUG_ON(condition) g_assert(!(condition)) -#define BUG() g_assert_not_reached() +#define BUG_ON(condition) G_STMT_START \ + if (condition) { \ + char *s; \ + s = g_strconcat ("BUG: (", #condition, ")", NULL); \ + g_warning ("%s: %s() %s:%d", s, G_STRFUNC, __FILE__, __LINE__); \ + g_free (s); \ + } G_STMT_END +#define BUG() BUG_ON(1) enum fp_dev_state { DEV_STATE_INITIAL = 0, diff --git a/libfprint/fprint.h b/libfprint/fprint.h index c927690b..be94a540 100644 --- a/libfprint/fprint.h +++ b/libfprint/fprint.h @@ -314,7 +314,7 @@ struct fp_pollfd { int fp_handle_events_timeout(struct timeval *timeout); int fp_handle_events(void); -size_t fp_get_pollfds(struct fp_pollfd **pollfds); +ssize_t fp_get_pollfds(struct fp_pollfd **pollfds); int fp_get_next_timeout(struct timeval *tv); /** diff --git a/libfprint/poll.c b/libfprint/poll.c index 8a007bc9..615ba40f 100644 --- a/libfprint/poll.c +++ b/libfprint/poll.c @@ -313,12 +313,12 @@ API_EXPORTED int fp_get_next_timeout(struct timeval *tv) * * Returns: the number of pollfds in the resultant list, or negative on error. */ -API_EXPORTED size_t fp_get_pollfds(struct fp_pollfd **pollfds) +API_EXPORTED ssize_t fp_get_pollfds(struct fp_pollfd **pollfds) { const struct libusb_pollfd **usbfds; const struct libusb_pollfd *usbfd; struct fp_pollfd *ret; - size_t cnt = 0; + ssize_t cnt = 0; size_t i = 0; usbfds = libusb_get_pollfds(fpi_usb_ctx); diff --git a/meson.build b/meson.build index 088bd112..c5c691d4 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('libfprint', [ 'c', 'cpp' ], - version: '0.8.1', + version: '0.8.2', license: 'LGPLv2.1+', default_options: [ 'buildtype=debugoptimized',