diff -Nru libfprint-1.0/debian/changelog libfprint-1.90.1/debian/changelog --- libfprint-1.0/debian/changelog 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/changelog 2020-02-22 09:08:48.000000000 +0000 @@ -1,3 +1,37 @@ +libfprint (1:1.90.1-1focal1) focal; urgency=medium + + * Bump version for Focal testing. + + -- Shengyao Xue Sat, 22 Feb 2020 17:08:48 +0800 + +libfprint (1:1.90.1-1) experimental; urgency=medium + + * Team upload. + * The "I should check if somebody else hasn't done the work already" release + * New upstream release + - Replace libusb-1.0 build-dependency by gusb and add libgusb-doc to the + Build-Depends-Indep. Also drop libxv-dev from the build-dep. + - Drop d/patches/kFreeBSD_FTBFS_add_ETIME_definition.patch and + d/patches/use-non-versionned-libusbh-path.patch, not needed anymore + - debian/patches/udev-rules-creation-add-Debian-specifics.patch: refreshed + by Sebastien Bacher, thanks! + - Bump the soname to libfprint-2 + - Bump libglib2.0-dev and meson minimal versions + * Bump debhelper compatibility version to 12 + * Add gobject-introspection and libgirepository1.0-dev to the + build-dependencies and install the GObject introspection bindings + * debian/control: Bump Standards-Version to 4.4.1 (no further changes) + * debian/control: Build-Depends on python3-cairo, python3-gi, umockdev for + the testsuite + * Update debian/libfprint2.postinst for the new supported readers + * debian/gbp.conf: Upstream tags have changed format + * debian/control: Bump Standards-Version to 4.5.0 (no further changes) + * d/p/udev-rules-creation-add-Debian-specifics.patch: Avoid unprivileged + users to be able to read the devices, this is not necessary and could lead + to fingerprint images being captured. + + -- Laurent Bigonville Thu, 13 Feb 2020 16:35:50 +0100 + libfprint (1:1.0-1) unstable; urgency=medium * Team upload. diff -Nru libfprint-1.0/debian/compat libfprint-1.90.1/debian/compat --- libfprint-1.0/debian/compat 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/compat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -10 diff -Nru libfprint-1.0/debian/control libfprint-1.90.1/debian/control --- libfprint-1.0/debian/control 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/control 2020-02-13 15:35:50.000000000 +0000 @@ -3,26 +3,30 @@ Section: libs Maintainer: FingerForce Team Uploaders: Ulises Vitulli , Didier Raboud -Build-Depends: debhelper (>= 10.3), +Build-Depends: debhelper-compat (= 12), + gobject-introspection, gtk-doc-tools, - libglib2.0-dev (>= 2.50), + libgirepository1.0-dev, + libglib2.0-dev (>= 2.56), + libgusb-dev (>= 0.3.0), libnss3-dev, libpixman-1-dev, - libusb-1.0-0-dev, - libxv-dev, - meson -Build-Depends-Indep: libglib2.0-doc -Standards-Version: 4.4.0 + meson (>= 0.49.0), + python3-cairo , + python3-gi , + umockdev +Build-Depends-Indep: libglib2.0-doc , libgusb-doc +Standards-Version: 4.5.0 Homepage: https://www.freedesktop.org/wiki/Software/fprint/libfprint Vcs-Browser: https://salsa.debian.org/debian/libfprint Vcs-Git: https://salsa.debian.org/debian/libfprint.git -Package: libfprint-dev -Section: libdevel +Package: libfprint-2-2 Architecture: any -Depends: libfprint0 (= ${binary:Version}), ${misc:Depends} -Suggests: libfprint-doc -Description: async fingerprint library of fprint project, development headers +Multi-Arch: same +Depends: ${misc:Depends}, ${shlibs:Depends} +Pre-Depends: ${misc:Pre-Depends} +Description: async fingerprint library of fprint project, shared libraries The fprint project aims to support for consumer fingerprint reader devices. . Previously, Linux support for such devices has been scattered amongst different @@ -37,14 +41,16 @@ This library depends on the new libusb, which performs asynchronous callbacks, allowing fprint to perform non-blocking device tasks. . - This package provides development headers. + This package provides shared libraries. -Package: libfprint0 +Package: libfprint-2-dev +Section: libdevel Architecture: any -Multi-Arch: same -Depends: ${misc:Depends}, ${shlibs:Depends} -Pre-Depends: ${misc:Pre-Depends} -Description: async fingerprint library of fprint project, shared libraries +Depends: gir1.2-fprint-2.0 (= ${binary:Version}), + libfprint-2-2 (= ${binary:Version}), + ${misc:Depends} +Suggests: libfprint-2-doc +Description: async fingerprint library of fprint project, development headers The fprint project aims to support for consumer fingerprint reader devices. . Previously, Linux support for such devices has been scattered amongst different @@ -59,9 +65,9 @@ This library depends on the new libusb, which performs asynchronous callbacks, allowing fprint to perform non-blocking device tasks. . - This package provides shared libraries. + This package provides development headers. -Package: libfprint-doc +Package: libfprint-2-doc Section: doc Architecture: all Depends: ${misc:Depends} @@ -81,3 +87,27 @@ allowing fprint to perform non-blocking device tasks. . This package provides the API documentation. + +Package: gir1.2-fprint-2.0 +Architecture: any +Multi-Arch: same +Section: introspection +Depends: ${gir:Depends}, ${misc:Depends}, ${shlibs:Depends} +Pre-Depends: ${misc:Pre-Depends} +Description: async fingerprint library of fprint project, gir bindings + The fprint project aims to support for consumer fingerprint reader devices. + . + Previously, Linux support for such devices has been scattered amongst different + projects (many incomplete) and inconsistent in that application developers + would have to implement support for each type of fingerprint reader separately. + The idea is to change that by providing a central system to support all the + fingerprint readers as it's possible to get hands on. + . + libfprint is the centre of efforts, this component does the dirty job of + talking to fingerprint reading devices, and processing fingerprint data. + . + This library depends on the new libusb, which performs asynchronous callbacks, + allowing fprint to perform non-blocking device tasks. + . + This package can be used by other packages using the GIRepository format to + generate dynamic bindings. diff -Nru libfprint-1.0/debian/gbp.conf libfprint-1.90.1/debian/gbp.conf --- libfprint-1.0/debian/gbp.conf 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/gbp.conf 2020-02-13 15:35:50.000000000 +0000 @@ -1,4 +1,4 @@ [DEFAULT] pristine-tar = True debian-branch = debian -upstream-vcs-tag = V_%(version%.%_)s +upstream-vcs-tag = v%(version)s diff -Nru libfprint-1.0/debian/gir1.2-fprint-2.0.install libfprint-1.90.1/debian/gir1.2-fprint-2.0.install --- libfprint-1.0/debian/gir1.2-fprint-2.0.install 1970-01-01 00:00:00.000000000 +0000 +++ libfprint-1.90.1/debian/gir1.2-fprint-2.0.install 2020-02-13 15:35:50.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/*/girepository-1.0/* diff -Nru libfprint-1.0/debian/libfprint0.install libfprint-1.90.1/debian/libfprint0.install --- libfprint-1.0/debian/libfprint0.install 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint0.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -lib/udev/rules.d/ -usr/lib/*/lib*.so.* diff -Nru libfprint-1.0/debian/libfprint0.lintian-overrides libfprint-1.90.1/debian/libfprint0.lintian-overrides --- libfprint-1.0/debian/libfprint0.lintian-overrides 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint0.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -# For security reasons, we don't want the fingerprint readers to be accessible -# by unprivileged users -udev-rule-missing-uaccess diff -Nru libfprint-1.0/debian/libfprint0.postinst libfprint-1.90.1/debian/libfprint0.postinst --- libfprint-1.0/debian/libfprint0.postinst 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint0.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,139 +0,0 @@ -#!/bin/sh - -set -e - -#DEBHELPER# - -if [ "$1" = "configure" -o "$1" = "upgrade" ] && command -V udevadm >/dev/null 2>&1; then - # apply udev rules at package installation, see - # - # NOTA BENE: after the DEBHELPER section since dh_installudev - # adds stuff there - udevadm trigger --action=add --attr-match=idVendor=0483 --attr-match=idProduct=2016 - udevadm trigger --action=add --attr-match=idVendor=0483 --attr-match=idProduct=2015 - udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=3001 - udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=2016 - udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=1000 - udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=1001 - udevadm trigger --action=add --attr-match=idVendor=061a --attr-match=idProduct=0110 - udevadm trigger --action=add --attr-match=idVendor=045e --attr-match=idProduct=00bb - udevadm trigger --action=add --attr-match=idVendor=045e --attr-match=idProduct=00bc - udevadm trigger --action=add --attr-match=idVendor=045e --attr-match=idProduct=00bd - udevadm trigger --action=add --attr-match=idVendor=045e --attr-match=idProduct=00ca - udevadm trigger --action=add --attr-match=idVendor=05ba --attr-match=idProduct=0007 - udevadm trigger --action=add --attr-match=idVendor=05ba --attr-match=idProduct=0008 - udevadm trigger --action=add --attr-match=idVendor=05ba --attr-match=idProduct=000a - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1600 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1660 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1680 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1681 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1682 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1683 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1684 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1685 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1686 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1687 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1688 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1689 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168a - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168b - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168c - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168d - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168e - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168f - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2500 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2580 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2550 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2810 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2660 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2680 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2681 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2682 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2683 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2684 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2685 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2686 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2687 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2688 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2689 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268a - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268b - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268c - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268d - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268e - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268f - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2691 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=5731 - udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=5501 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0001 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0005 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0008 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0010 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0011 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0015 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0017 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0018 - udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=2020 - udevadm trigger --action=add --attr-match=idVendor=1c7a --attr-match=idProduct=0603 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0050 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0903 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0907 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c01 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c02 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c03 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c04 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c05 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c06 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c07 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c08 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c09 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0a - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0b - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0c - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0d - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0e - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0f - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c10 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c11 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c12 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c13 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c14 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c15 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c16 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c17 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c18 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c19 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1a - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1b - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1c - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1d - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1e - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1f - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c20 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c21 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c22 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c23 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c24 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c25 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c26 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c27 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c28 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c29 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2a - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2b - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2c - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2d - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2e - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2f - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c30 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c31 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c32 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c33 - udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c42 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0090 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0091 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0094 - udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0097 -fi - -exit 0 diff -Nru libfprint-1.0/debian/libfprint0.symbols libfprint-1.90.1/debian/libfprint0.symbols --- libfprint-1.0/debian/libfprint0.symbols 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint0.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -libfprint.so.0 libfprint0 #MINVER# -* Build-Depends-Package: libfprint-dev - fp_async_capture_start@Base 1:0.6.0 - fp_async_capture_stop@Base 1:0.6.0 - fp_async_dev_close@Base 1:0.4.0 - fp_async_dev_open@Base 1:0.4.0 - fp_async_enroll_start@Base 1:0.4.0 - fp_async_enroll_stop@Base 1:0.4.0 - fp_async_identify_start@Base 1:0.4.0 - fp_async_identify_stop@Base 1:0.4.0 - fp_async_verify_start@Base 1:0.4.0 - fp_async_verify_stop@Base 1:0.4.0 - fp_dev_close@Base 1:0.4.0 - fp_dev_get_devtype@Base 1:0.4.0 - fp_dev_get_driver@Base 1:0.4.0 - fp_dev_get_img_height@Base 1:0.4.0 - fp_dev_get_img_width@Base 1:0.4.0 - fp_dev_get_nr_enroll_stages@Base 1:0.4.0 - fp_dev_img_capture@Base 1:0.4.0 - fp_dev_open@Base 1:0.4.0 - fp_dev_supports_dscv_print@Base 1:0.4.0 - fp_dev_supports_identification@Base 1:0.4.0 - fp_dev_supports_imaging@Base 1:0.4.0 - fp_dev_supports_print_data@Base 1:0.4.0 - fp_discover_devs@Base 1:0.4.0 - fp_discover_prints@Base 1:0.4.0 - fp_driver_get_driver_id@Base 1:0.4.0 - fp_driver_get_full_name@Base 1:0.4.0 - fp_driver_get_name@Base 1:0.4.0 - fp_driver_get_scan_type@Base 1:0.4.0 - fp_driver_supports_imaging@Base 1:0.99.0 - fp_dscv_dev_for_dscv_print@Base 1:0.4.0 - fp_dscv_dev_for_print_data@Base 1:0.4.0 - fp_dscv_dev_get_devtype@Base 1:0.4.0 - fp_dscv_dev_get_driver@Base 1:0.4.0 - fp_dscv_dev_get_driver_id@Base 1:0.8.1 - fp_dscv_dev_supports_dscv_print@Base 1:0.4.0 - fp_dscv_dev_supports_print_data@Base 1:0.4.0 - fp_dscv_devs_free@Base 1:0.4.0 - fp_dscv_print_delete@Base 1:0.4.0 - fp_dscv_print_get_devtype@Base 1:0.4.0 - fp_dscv_print_get_driver_id@Base 1:0.4.0 - fp_dscv_print_get_finger@Base 1:0.4.0 - fp_dscv_prints_free@Base 1:0.4.0 - fp_enroll_finger@Base 1:0.8.1 - fp_enroll_finger_img@Base 1:0.4.0 - fp_exit@Base 1:0.4.0 - fp_get_next_timeout@Base 1:0.4.0 - fp_get_pollfds@Base 1:0.4.0 - fp_handle_events@Base 1:0.4.0 - fp_handle_events_timeout@Base 1:0.4.0 - fp_identify_finger@Base 1:0.8.1 - fp_identify_finger_img@Base 1:0.4.0 - fp_img_binarize@Base 1:0.4.0 - fp_img_free@Base 1:0.4.0 - fp_img_get_data@Base 1:0.4.0 - fp_img_get_height@Base 1:0.4.0 - fp_img_get_minutiae@Base 1:0.4.0 - fp_img_get_width@Base 1:0.4.0 - fp_img_save_to_file@Base 1:0.4.0 - fp_img_standardize@Base 1:0.4.0 - fp_init@Base 1:0.4.0 - fp_minutia_get_coords@Base 1:0.8.2-3~ - fp_print_data_delete@Base 1:0.4.0 - fp_print_data_free@Base 1:0.4.0 - fp_print_data_from_data@Base 1:0.4.0 - fp_print_data_from_dscv_print@Base 1:0.4.0 - fp_print_data_get_data@Base 1:0.4.0 - fp_print_data_get_devtype@Base 1:0.4.0 - fp_print_data_get_driver_id@Base 1:0.4.0 - fp_print_data_load@Base 1:0.4.0 - fp_print_data_save@Base 1:0.4.0 - fp_set_debug@Base 1:0.4.0 - fp_set_pollfd_notifiers@Base 1:0.4.0 - fp_verify_finger@Base 1:0.8.1 - fp_verify_finger_img@Base 1:0.4.0 - fprint_get_drivers@Base 1:0.4.0 diff -Nru libfprint-1.0/debian/libfprint-2-2.install libfprint-1.90.1/debian/libfprint-2-2.install --- libfprint-1.0/debian/libfprint-2-2.install 1970-01-01 00:00:00.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint-2-2.install 2020-02-13 15:35:50.000000000 +0000 @@ -0,0 +1,2 @@ +lib/udev/rules.d/ +usr/lib/*/lib*.so.* diff -Nru libfprint-1.0/debian/libfprint-2-2.lintian-overrides libfprint-1.90.1/debian/libfprint-2-2.lintian-overrides --- libfprint-1.0/debian/libfprint-2-2.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint-2-2.lintian-overrides 2020-02-13 15:35:50.000000000 +0000 @@ -0,0 +1,3 @@ +# For security reasons, we don't want the fingerprint readers to be accessible +# by unprivileged users +udev-rule-missing-uaccess diff -Nru libfprint-1.0/debian/libfprint-2-2.postinst libfprint-1.90.1/debian/libfprint-2-2.postinst --- libfprint-1.0/debian/libfprint-2-2.postinst 1970-01-01 00:00:00.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint-2-2.postinst 2020-02-13 15:35:50.000000000 +0000 @@ -0,0 +1,140 @@ +#!/bin/sh + +set -e + +#DEBHELPER# + +if [ "$1" = "configure" -o "$1" = "upgrade" ] && command -V udevadm >/dev/null 2>&1; then + # apply udev rules at package installation, see + # + # NOTA BENE: after the DEBHELPER section since dh_installudev + # adds stuff there + udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=2016 + udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=2020 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0010 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0011 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0015 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0017 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0018 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=5731 + udevadm trigger --action=add --attr-match=idVendor=5501 --attr-match=idProduct=08ff + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1600 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1660 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1680 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1681 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1682 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1683 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1684 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1685 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1686 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1687 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1688 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=1689 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168a + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168b + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168c + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168d + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168e + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=168f + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2660 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2680 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2681 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2682 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2683 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2684 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2685 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2686 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2687 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2688 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2689 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268a + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268b + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268c + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268d + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268e + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=268f + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2691 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2500 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2580 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2550 + udevadm trigger --action=add --attr-match=idVendor=08ff --attr-match=idProduct=2810 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0001 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0005 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0008 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0050 + udevadm trigger --action=add --attr-match=idVendor=1c7a --attr-match=idProduct=0603 + udevadm trigger --action=add --attr-match=idVendor=061a --attr-match=idProduct=0110 + udevadm trigger --action=add --attr-match=idVendor=06cb --attr-match=idProduct=00bd + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0903 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0907 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c01 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c02 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c03 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c04 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c05 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c06 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c07 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c08 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c09 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0a + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0b + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0c + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0d + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0e + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c0f + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c10 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c11 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c12 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c13 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c14 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c15 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c16 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c17 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c18 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c19 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1a + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1b + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1c + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1d + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1e + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c1f + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c20 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c21 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c22 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c23 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c24 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c25 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c26 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c27 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c28 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c29 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2a + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2b + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2c + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2d + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2e + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c2f + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c30 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c31 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c32 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c33 + udevadm trigger --action=add --attr-match=idVendor=04f3 --attr-match=idProduct=0c42 + udevadm trigger --action=add --attr-match=idVendor=045e --attr-match=idProduct=00bb + udevadm trigger --action=add --attr-match=idVendor=045e --attr-match=idProduct=00bc + udevadm trigger --action=add --attr-match=idVendor=045e --attr-match=idProduct=00bd + udevadm trigger --action=add --attr-match=idVendor=045e --attr-match=idProduct=00ca + udevadm trigger --action=add --attr-match=idVendor=05ba --attr-match=idProduct=0007 + udevadm trigger --action=add --attr-match=idVendor=05ba --attr-match=idProduct=0008 + udevadm trigger --action=add --attr-match=idVendor=05ba --attr-match=idProduct=000a + udevadm trigger --action=add --attr-match=idVendor=0483 --attr-match=idProduct=2015 + udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=3001 + udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=1000 + udevadm trigger --action=add --attr-match=idVendor=147e --attr-match=idProduct=1001 + udevadm trigger --action=add --attr-match=idVendor=0483 --attr-match=idProduct=2016 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0090 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0091 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0094 + udevadm trigger --action=add --attr-match=idVendor=138a --attr-match=idProduct=0097 +fi + +exit 0 diff -Nru libfprint-1.0/debian/libfprint-2-2.symbols libfprint-1.90.1/debian/libfprint-2-2.symbols --- libfprint-1.0/debian/libfprint-2-2.symbols 1970-01-01 00:00:00.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint-2-2.symbols 2020-02-13 15:35:50.000000000 +0000 @@ -0,0 +1,78 @@ +libfprint-2.so.2 libfprint-2-2 #MINVER# +* Build-Depends-Package: libfprint-2-dev + LIBFPRINT_2.0.0@LIBFPRINT_2.0.0 1:1.90.1 + fp_context_enumerate@LIBFPRINT_2.0.0 1:1.90.1 + fp_context_get_devices@LIBFPRINT_2.0.0 1:1.90.1 + fp_context_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_context_new@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_capture@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_capture_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_capture_sync@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_close@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_close_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_close_sync@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_delete_print@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_delete_print_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_delete_print_sync@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_enroll@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_enroll_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_enroll_sync@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_error_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_error_quark@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_get_device_id@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_get_driver@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_get_name@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_get_nr_enroll_stages@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_get_scan_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_has_storage@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_identify@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_identify_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_identify_sync@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_is_open@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_list_prints@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_list_prints_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_list_prints_sync@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_open@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_open_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_open_sync@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_retry_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_retry_quark@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_supports_capture@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_supports_identify@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_type_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_verify@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_verify_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_device_verify_sync@LIBFPRINT_2.0.0 1:1.90.1 + fp_finger_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_detect_minutiae@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_detect_minutiae_finish@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_device_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_get_binarized@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_get_data@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_get_height@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_get_minutiae@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_get_ppmm@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_get_width@LIBFPRINT_2.0.0 1:1.90.1 + fp_image_new@LIBFPRINT_2.0.0 1:1.90.1 + fp_minutia_get_coords@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_compatible@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_deserialize@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_equal@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_description@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_device_id@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_device_stored@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_driver@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_enroll_date@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_finger@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_image@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_type@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_get_username@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_new@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_serialize@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_set_description@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_set_enroll_date@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_set_finger@LIBFPRINT_2.0.0 1:1.90.1 + fp_print_set_username@LIBFPRINT_2.0.0 1:1.90.1 + fp_scan_type_get_type@LIBFPRINT_2.0.0 1:1.90.1 diff -Nru libfprint-1.0/debian/libfprint-2-dev.install libfprint-1.90.1/debian/libfprint-2-dev.install --- libfprint-1.0/debian/libfprint-2-dev.install 1970-01-01 00:00:00.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint-2-dev.install 2020-02-13 15:35:50.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/* +usr/lib/*/lib*.so +usr/lib/*/pkgconfig/* +usr/share/gir-1.0/* diff -Nru libfprint-1.0/debian/libfprint-2-doc.install libfprint-1.90.1/debian/libfprint-2-doc.install --- libfprint-1.0/debian/libfprint-2-doc.install 1970-01-01 00:00:00.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint-2-doc.install 2020-02-13 15:35:50.000000000 +0000 @@ -0,0 +1 @@ +usr/share/gtk-doc/ diff -Nru libfprint-1.0/debian/libfprint-dev.install libfprint-1.90.1/debian/libfprint-dev.install --- libfprint-1.0/debian/libfprint-dev.install 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -usr/include/* -usr/lib/*/lib*.so -usr/lib/*/pkgconfig/* diff -Nru libfprint-1.0/debian/libfprint-doc.install libfprint-1.90.1/debian/libfprint-doc.install --- libfprint-1.0/debian/libfprint-doc.install 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/libfprint-doc.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/share/gtk-doc/ diff -Nru libfprint-1.0/debian/patches/kFreeBSD_FTBFS_add_ETIME_definition.patch libfprint-1.90.1/debian/patches/kFreeBSD_FTBFS_add_ETIME_definition.patch --- libfprint-1.0/debian/patches/kFreeBSD_FTBFS_add_ETIME_definition.patch 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/patches/kFreeBSD_FTBFS_add_ETIME_definition.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -Description: Add missing ETIME definition for kFreeBSD flavours. -Author: Steven Chamberlain -Bug-Debian: http://bugs.debian.org/673704 -Forwarded: not-yet -Reviewed-by: Didier Raboud -Last-Update: 2013-03-03 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/libfprint/drivers/uru4000.c -+++ b/libfprint/drivers/uru4000.c -@@ -25,6 +25,10 @@ - - #include "drivers_api.h" - -+#ifndef ETIME -+#define ETIME ETIMEDOUT /* For kFreeBSD */ -+#endif -+ - #define EP_INTR (1 | LIBUSB_ENDPOINT_IN) - #define EP_DATA (2 | LIBUSB_ENDPOINT_IN) - #define USB_RQ 0x04 ---- a/libfprint/drivers/vfs101.c -+++ b/libfprint/drivers/vfs101.c -@@ -21,6 +21,10 @@ - - #include "drivers_api.h" - -+#ifndef ETIME -+#define ETIME ETIMEDOUT /* For kFreeBSD */ -+#endif -+ - /* Input-Output usb endpoint */ - #define EP_IN(n) (n | LIBUSB_ENDPOINT_IN) - #define EP_OUT(n) (n | LIBUSB_ENDPOINT_OUT) ---- a/libfprint/drivers/vfs301.c -+++ b/libfprint/drivers/vfs301.c -@@ -24,6 +24,10 @@ - #include "drivers_api.h" - #include "vfs301_proto.h" - -+#ifndef ETIME -+#define ETIME ETIMEDOUT /* For kFreeBSD */ -+#endif -+ - /************************** GENERIC STUFF *************************************/ - - /* Submit asynchronous sleep */ ---- a/libfprint/drivers/elan.c -+++ b/libfprint/drivers/elan.c -@@ -49,6 +49,10 @@ - else if (len > 2) \ - fp_dbg("%04x... (%d bytes)", buf[0] << 8 | buf[1], len) - -+#ifndef ETIME -+#define ETIME ETIMEDOUT /* For kFreeBSD */ -+#endif -+ - unsigned char elan_get_pixel(struct fpi_frame_asmbl_ctx *ctx, - struct fpi_frame *frame, unsigned int x, - unsigned int y) diff -Nru libfprint-1.0/debian/patches/series libfprint-1.90.1/debian/patches/series --- libfprint-1.0/debian/patches/series 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/patches/series 2020-02-13 15:35:50.000000000 +0000 @@ -1,6 +1,4 @@ # Upstream backports # Debian specifics -kFreeBSD_FTBFS_add_ETIME_definition.patch udev-rules-creation-add-Debian-specifics.patch -use-non-versionned-libusbh-path.patch diff -Nru libfprint-1.0/debian/patches/udev-rules-creation-add-Debian-specifics.patch libfprint-1.90.1/debian/patches/udev-rules-creation-add-Debian-specifics.patch --- libfprint-1.0/debian/patches/udev-rules-creation-add-Debian-specifics.patch 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/patches/udev-rules-creation-add-Debian-specifics.patch 2020-02-13 15:35:50.000000000 +0000 @@ -2,30 +2,32 @@ List all devices; automatic power/control only for the non-blacklisted ones; mode and group to all. Author: Didier Raboud +Author: Sebastien Bacher Origin: vendor -Last-Update: 2015-03-03 +Last-Update: 2020-01-10 --- a/libfprint/fprint-list-udev-rules.c +++ b/libfprint/fprint-list-udev-rules.c -@@ -63,9 +63,6 @@ static void print_driver (struct fp_driv - break; - } - } -- if (blacklist) -- continue; +@@ -66,9 +66,6 @@ print_driver (const FpDeviceClass *cls) + if (entry->vid == bl_entry->vid && entry->pid == bl_entry->pid) + break; + +- if (bl_entry->vid != 0) +- continue; - - key = g_strdup_printf ("%04x:%04x", driver->id_table[i].vendor, driver->id_table[i].product); + key = g_strdup_printf ("%04x:%04x", entry->vid, entry->pid); - if (g_hash_table_lookup (printed, key) != NULL) { -@@ -78,7 +75,10 @@ static void print_driver (struct fp_driv - if (num_printed == 0) - printf ("# %s\n", driver->full_name); + if (g_hash_table_lookup (printed, key) != NULL) +@@ -82,8 +79,10 @@ print_driver (const FpDeviceClass *cls) + if (num_printed == 0) + g_print ("# %s\n", cls->full_name); -- printf ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ATTRS{dev}==\"*\", TEST==\"power/control\", ATTR{power/control}=\"auto\"\n", driver->id_table[i].vendor, driver->id_table[i].product); -+ printf ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ATTRS{dev}==\"*\", ", driver->id_table[i].vendor, driver->id_table[i].product); -+ if (!blacklist) -+ printf ("TEST==\"power/control\", ATTR{power/control}=\"auto\", "); -+ printf ("MODE=\"0664\", GROUP=\"plugdev\"\n"); - printf ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ENV{LIBFPRINT_DRIVER}=\"%s\"\n", driver->id_table[i].vendor, driver->id_table[i].product, driver->full_name); - num_printed++; - } +- g_print ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ATTRS{dev}==\"*\", TEST==\"power/control\", ATTR{power/control}=\"auto\"\n", +- entry->vid, entry->pid); ++ g_print ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ATTRS{dev}==\"*\", ", entry->vid, entry->pid); ++ if (bl_entry->vid == 0) ++ g_print ("TEST==\"power/control\", ATTR{power/control}=\"auto\", "); ++ g_print ("MODE=\"0660\", GROUP=\"plugdev\"\n"); + g_print ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ENV{LIBFPRINT_DRIVER}=\"%s\"\n", + entry->vid, entry->pid, cls->full_name); + num_printed++; diff -Nru libfprint-1.0/debian/patches/use-non-versionned-libusbh-path.patch libfprint-1.90.1/debian/patches/use-non-versionned-libusbh-path.patch --- libfprint-1.0/debian/patches/use-non-versionned-libusbh-path.patch 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/patches/use-non-versionned-libusbh-path.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -Description: Use non-versionned libusb.h path - Reference: http://thread.gmane.org/gmane.comp.lib.libusb.devel.general/11611 - . - Hopefully fixes the kFreeBSD FTBFS. -Author: Didier Raboud -Last-Update: 2013-03-03 ---- a/libfprint/drivers/vfs301_proto.h -+++ b/libfprint/drivers/vfs301_proto.h -@@ -18,7 +18,7 @@ - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ --#include -+#include - - enum { - VFS301_DEFAULT_WAIT_TIMEOUT = 300, diff -Nru libfprint-1.0/debian/rules libfprint-1.90.1/debian/rules --- libfprint-1.0/debian/rules 2019-08-23 15:27:45.000000000 +0000 +++ libfprint-1.90.1/debian/rules 2020-02-13 15:35:50.000000000 +0000 @@ -4,14 +4,14 @@ CONFIG_ARGS = -Dudev_rules_dir=/lib/udev/rules.d -Dgtk-examples=false %: - dh $@ + dh $@ --with gir override_dh_auto_configure: dh_auto_configure -- $(CONFIG_ARGS) override_dh_install: - mv debian/tmp/lib/udev/rules.d/60-fprint-autosuspend.rules \ - debian/tmp/lib/udev/rules.d/60-libfprint0.rules + mv debian/tmp/lib/udev/rules.d/60-libfprint-2-autosuspend.rules \ + debian/tmp/lib/udev/rules.d/60-libfprint-2.rules sed -i '/^Requires.private\|^Libs.private/ d' \ - debian/tmp/usr/lib/*/pkgconfig/libfprint.pc + debian/tmp/usr/lib/*/pkgconfig/libfprint-2.pc dh_install diff -Nru libfprint-1.0/demo/gtk-libfprint-test.c libfprint-1.90.1/demo/gtk-libfprint-test.c --- libfprint-1.0/demo/gtk-libfprint-test.c 2019-08-08 12:54:49.000000000 +0000 +++ libfprint-1.90.1/demo/gtk-libfprint-test.c 2020-02-10 11:24:07.000000000 +0000 @@ -22,502 +22,544 @@ #include #include -#include "loop.h" - -typedef GtkApplication LibfprintDemo; -typedef GtkApplicationClass LibfprintDemoClass; - +struct _LibfprintDemo +{ + GtkApplication parent; +}; +G_DECLARE_FINAL_TYPE (LibfprintDemo, libfprint_demo, FP, DEMO, GtkApplication) G_DEFINE_TYPE (LibfprintDemo, libfprint_demo, GTK_TYPE_APPLICATION) typedef enum { - IMAGE_DISPLAY_NONE = 0, - IMAGE_DISPLAY_MINUTIAE = 1 << 0, - IMAGE_DISPLAY_BINARY = 1 << 1 + IMAGE_DISPLAY_NONE = 0, + IMAGE_DISPLAY_MINUTIAE = 1 << 0, + IMAGE_DISPLAY_BINARY = 1 << 1 } ImageDisplayFlags; -typedef struct { - GtkApplicationWindow parent_instance; +struct _LibfprintDemoWindow +{ + GtkApplicationWindow parent_instance; + + GtkWidget *header_bar; + GtkWidget *mode_stack; + GtkWidget *capture_button; + GtkWidget *cancel_button; + GtkWidget *capture_image; + GtkWidget *spinner; + GtkWidget *instructions; - GtkWidget *header_bar; - GtkWidget *mode_stack; - GtkWidget *capture_button; - GtkWidget *capture_image; - GtkWidget *spinner; - GtkWidget *instructions; - - struct fp_dscv_dev *ddev; - struct fp_dev *dev; - - struct fp_img *img; - ImageDisplayFlags img_flags; -} LibfprintDemoWindow; + GCancellable *cancellable; -typedef GtkApplicationWindowClass LibfprintDemoWindowClass; + gboolean opened; + FpDevice *dev; + + FpImage *img; + ImageDisplayFlags img_flags; +}; +G_DECLARE_FINAL_TYPE (LibfprintDemoWindow, libfprint_demo_window, FP, DEMO_WINDOW, GtkApplicationWindow) G_DEFINE_TYPE (LibfprintDemoWindow, libfprint_demo_window, GTK_TYPE_APPLICATION_WINDOW) typedef enum { - EMPTY_MODE, - NOIMAGING_MODE, - CAPTURE_MODE, - SPINNER_MODE, - ERROR_MODE + EMPTY_MODE, + NOIMAGING_MODE, + CAPTURE_MODE, + SPINNER_MODE, + ERROR_MODE, + RETRY_MODE } LibfprintDemoMode; static void libfprint_demo_set_mode (LibfprintDemoWindow *win, - LibfprintDemoMode mode); - -static void -pixbuf_destroy (guchar *pixels, gpointer data) -{ - if (pixels == NULL) - return; - g_free (pixels); -} + LibfprintDemoMode mode); static unsigned char * -img_to_rgbdata (struct fp_img *img, - int width, - int height) +img_to_rgbdata (const guint8 *imgdata, + int width, + int height) { - int size = width * height; - unsigned char *imgdata = fp_img_get_data (img); - unsigned char *rgbdata = g_malloc (size * 3); - size_t i; - size_t rgb_offset = 0; + int size = width * height; + guint8 *rgbdata = g_malloc (size * 3); + size_t i; + size_t rgb_offset = 0; - for (i = 0; i < size; i++) { - unsigned char pixel = imgdata[i]; + for (i = 0; i < size; i++) + { + guint8 pixel = imgdata[i]; - rgbdata[rgb_offset++] = pixel; - rgbdata[rgb_offset++] = pixel; - rgbdata[rgb_offset++] = pixel; - } + rgbdata[rgb_offset++] = pixel; + rgbdata[rgb_offset++] = pixel; + rgbdata[rgb_offset++] = pixel; + } - return rgbdata; + return rgbdata; } static void -plot_minutiae (unsigned char *rgbdata, - int width, - int height, - struct fp_minutia **minlist, - int nr_minutiae) +plot_minutiae (unsigned char *rgbdata, + int width, + int height, + GPtrArray *minutiae) { - int i; + int i; + #define write_pixel(num) do { \ - rgbdata[((num) * 3)] = 0xff; \ - rgbdata[((num) * 3) + 1] = 0; \ - rgbdata[((num) * 3) + 2] = 0; \ - } while(0) - - for (i = 0; i < nr_minutiae; i++) { - struct fp_minutia *min = minlist[i]; - int x, y; - size_t pixel_offset; - - fp_minutia_get_coords(min, &x, &y); - pixel_offset = (y * width) + x; - write_pixel(pixel_offset - 2); - write_pixel(pixel_offset - 1); - write_pixel(pixel_offset); - write_pixel(pixel_offset + 1); - write_pixel(pixel_offset + 2); - - write_pixel(pixel_offset - (width * 2)); - write_pixel(pixel_offset - (width * 1) - 1); - write_pixel(pixel_offset - (width * 1)); - write_pixel(pixel_offset - (width * 1) + 1); - write_pixel(pixel_offset + (width * 1) - 1); - write_pixel(pixel_offset + (width * 1)); - write_pixel(pixel_offset + (width * 1) + 1); - write_pixel(pixel_offset + (width * 2)); - } + rgbdata[((num) * 3)] = 0xff; \ + rgbdata[((num) * 3) + 1] = 0; \ + rgbdata[((num) * 3) + 2] = 0; \ + } while(0) + + for (i = 0; i < minutiae->len; i++) + { + struct fp_minutia *min = g_ptr_array_index (minutiae, i); + int x, y; + size_t pixel_offset; + + fp_minutia_get_coords (min, &x, &y); + pixel_offset = (y * width) + x; + write_pixel (pixel_offset - 2); + write_pixel (pixel_offset - 1); + write_pixel (pixel_offset); + write_pixel (pixel_offset + 1); + write_pixel (pixel_offset + 2); + + write_pixel (pixel_offset - (width * 2)); + write_pixel (pixel_offset - (width * 1) - 1); + write_pixel (pixel_offset - (width * 1)); + write_pixel (pixel_offset - (width * 1) + 1); + write_pixel (pixel_offset + (width * 1) - 1); + write_pixel (pixel_offset + (width * 1)); + write_pixel (pixel_offset + (width * 1) + 1); + write_pixel (pixel_offset + (width * 2)); + } } static GdkPixbuf * -img_to_pixbuf (struct fp_img *img, - ImageDisplayFlags flags) +img_to_pixbuf (FpImage *img, + ImageDisplayFlags flags) { - int width; - int height; - unsigned char *rgbdata; - - width = fp_img_get_width (img); - height = fp_img_get_height (img); - - if (flags & IMAGE_DISPLAY_BINARY) { - struct fp_img *binary; - binary = fp_img_binarize (img); - rgbdata = img_to_rgbdata (binary, width, height); - fp_img_free (binary); - } else { - rgbdata = img_to_rgbdata (img, width, height); - } - - if (flags & IMAGE_DISPLAY_MINUTIAE) { - struct fp_minutia **minlist; - int nr_minutiae; - - minlist = fp_img_get_minutiae (img, &nr_minutiae); - plot_minutiae (rgbdata, width, height, minlist, nr_minutiae); - } - - return gdk_pixbuf_new_from_data (rgbdata, GDK_COLORSPACE_RGB, - FALSE, 8, width, height, - width * 3, pixbuf_destroy, - NULL); + int width; + int height; + const guint8 *data; + unsigned char *rgbdata; + + width = fp_image_get_width (img); + height = fp_image_get_height (img); + + if (flags & IMAGE_DISPLAY_BINARY) + data = fp_image_get_binarized (img, NULL); + else + data = fp_image_get_data (img, NULL); + + if (!data) + return NULL; + + rgbdata = img_to_rgbdata (data, width, height); + + if (flags & IMAGE_DISPLAY_MINUTIAE) + { + GPtrArray *minutiae; + + minutiae = fp_image_get_minutiae (img); + plot_minutiae (rgbdata, width, height, minutiae); + } + + return gdk_pixbuf_new_from_data (rgbdata, GDK_COLORSPACE_RGB, + FALSE, 8, width, height, + width * 3, (GdkPixbufDestroyNotify) g_free, + NULL); } static void update_image (LibfprintDemoWindow *win) { - GdkPixbuf *pixbuf; + GdkPixbuf *pixbuf; - if (win->img == NULL) { - gtk_image_clear (GTK_IMAGE (win->capture_image)); - return; - } - - g_debug ("Updating image, minutiae %s, binary mode %s", - win->img_flags & IMAGE_DISPLAY_MINUTIAE ? "shown" : "hidden", - win->img_flags & IMAGE_DISPLAY_BINARY ? "on" : "off"); - pixbuf = img_to_pixbuf (win->img, win->img_flags); - gtk_image_set_from_pixbuf (GTK_IMAGE (win->capture_image), pixbuf); - g_object_unref (pixbuf); + if (win->img == NULL) + { + gtk_image_clear (GTK_IMAGE (win->capture_image)); + return; + } + + g_debug ("Updating image, minutiae %s, binary mode %s", + win->img_flags & IMAGE_DISPLAY_MINUTIAE ? "shown" : "hidden", + win->img_flags & IMAGE_DISPLAY_BINARY ? "on" : "off"); + pixbuf = img_to_pixbuf (win->img, win->img_flags); + gtk_image_set_from_pixbuf (GTK_IMAGE (win->capture_image), pixbuf); + g_object_unref (pixbuf); } static void libfprint_demo_set_spinner_label (LibfprintDemoWindow *win, - const char *message) + const char *message) { - char *label; + char *label; - label = g_strdup_printf ("%s", message); - gtk_label_set_markup (GTK_LABEL (win->instructions), label); - g_free (label); + label = g_strdup_printf ("%s", message); + gtk_label_set_markup (GTK_LABEL (win->instructions), label); + g_free (label); } static void libfprint_demo_set_capture_label (LibfprintDemoWindow *win) { - struct fp_driver *drv; - enum fp_scan_type scan_type; - const char *message; + FpScanType scan_type; + const char *message; + + scan_type = fp_device_get_scan_type (win->dev); + + switch (scan_type) + { + case FP_SCAN_TYPE_PRESS: + message = "Place your finger on the fingerprint reader"; + break; - drv = fp_dscv_dev_get_driver (win->ddev); - scan_type = fp_driver_get_scan_type(drv); + case FP_SCAN_TYPE_SWIPE: + message = "Swipe your finger across the fingerprint reader"; + break; - switch (scan_type) { - case FP_SCAN_TYPE_PRESS: - message = "Place your finger on the fingerprint reader"; - break; - case FP_SCAN_TYPE_SWIPE: - message = "Swipe your finger across the fingerprint reader"; - break; - default: - g_assert_not_reached (); - } + default: + g_assert_not_reached (); + } - libfprint_demo_set_spinner_label (win, message); + libfprint_demo_set_spinner_label (win, message); } static void -dev_capture_start_cb (struct fp_dev *dev, - int result, - struct fp_img *img, - void *user_data) +dev_capture_start_cb (FpDevice *dev, + GAsyncResult *res, + void *user_data) { - LibfprintDemoWindow *win = user_data; + g_autoptr(GError) error = NULL; + LibfprintDemoWindow *win = user_data; + FpImage *image = NULL; - if (result < 0) { - libfprint_demo_set_mode (win, ERROR_MODE); - return; - } + g_clear_object (&win->cancellable); - fp_async_capture_stop (dev, NULL, NULL); + image = fp_device_capture_finish (dev, res, &error); + if (!image) + { + g_warning ("Error capturing data: %s", error->message); + if (error->domain == FP_DEVICE_RETRY || + g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + libfprint_demo_set_mode (win, RETRY_MODE); + else + libfprint_demo_set_mode (win, ERROR_MODE); + return; + } - win->img = img; - update_image (win); + g_clear_object (&win->img); + win->img = image; + update_image (win); - libfprint_demo_set_mode (win, CAPTURE_MODE); + libfprint_demo_set_mode (win, CAPTURE_MODE); } static void -dev_open_cb (struct fp_dev *dev, int status, void *user_data) +dev_start_capture (LibfprintDemoWindow *win) { - LibfprintDemoWindow *win = user_data; - int r; + libfprint_demo_set_capture_label (win); - if (status < 0) { - libfprint_demo_set_mode (win, ERROR_MODE); - return; - } + fp_device_capture (win->dev, TRUE, win->cancellable, (GAsyncReadyCallback) dev_capture_start_cb, win); +} + +static void +dev_open_cb (FpDevice *dev, GAsyncResult *res, void *user_data) +{ + LibfprintDemoWindow *win = user_data; - libfprint_demo_set_capture_label (win); + g_autoptr(GError) error = NULL; - win->dev = dev; - r = fp_async_capture_start (win->dev, FALSE, dev_capture_start_cb, user_data); - if (r < 0) { - g_warning ("fp_async_capture_start failed: %d", r); - libfprint_demo_set_mode (win, ERROR_MODE); - return; - } + if (!fp_device_open_finish (dev, res, &error)) + { + g_warning ("Failed to open device: %s", error->message); + libfprint_demo_set_mode (win, ERROR_MODE); + return; + } + + dev_start_capture (win); } static void activate_capture (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) + GVariant *parameter, + gpointer user_data) +{ + LibfprintDemoWindow *win = user_data; + + libfprint_demo_set_mode (win, SPINNER_MODE); + g_clear_pointer (&win->img, g_object_unref); + + g_clear_object (&win->cancellable); + win->cancellable = g_cancellable_new (); + + if (win->opened) + { + dev_start_capture (win); + return; + } + + libfprint_demo_set_spinner_label (win, "Opening fingerprint reader"); + + win->opened = TRUE; + fp_device_open (win->dev, win->cancellable, (GAsyncReadyCallback) dev_open_cb, user_data); +} + +static void +cancel_capture (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - LibfprintDemoWindow *win = user_data; - int r; + LibfprintDemoWindow *win = user_data; - libfprint_demo_set_mode (win, SPINNER_MODE); - g_clear_pointer (&win->img, fp_img_free); + g_debug ("cancelling %p", win->cancellable); - if (win->dev != NULL) { - dev_open_cb (win->dev, 0, user_data); - return; - } - - libfprint_demo_set_spinner_label (win, "Opening fingerprint reader"); - - r = fp_async_dev_open (win->ddev, dev_open_cb, user_data); - if (r < 0) { - g_warning ("fp_async_dev_open failed: %d", r); - libfprint_demo_set_mode (win, ERROR_MODE); - return; - } + if (win->cancellable) + g_cancellable_cancel (win->cancellable); } static void activate_quit (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) + GVariant *parameter, + gpointer user_data) { - GtkApplication *app = user_data; - GtkWidget *win; - GList *list, *next; - - list = gtk_application_get_windows (app); - while (list) - { - win = list->data; - next = list->next; + GtkApplication *app = user_data; + GtkWidget *win; + GList *list, *next; + + list = gtk_application_get_windows (app); + while (list) + { + win = list->data; + next = list->next; - gtk_widget_destroy (GTK_WIDGET (win)); + gtk_widget_destroy (GTK_WIDGET (win)); - list = next; - } + list = next; + } } static void activate_show_minutiae (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) + GVariant *parameter, + gpointer user_data) { - LibfprintDemoWindow *win = user_data; - GVariant *state; - gboolean new_state; - - state = g_action_get_state (G_ACTION (action)); - new_state = !g_variant_get_boolean (state); - g_action_change_state (G_ACTION (action), g_variant_new_boolean (new_state)); - g_variant_unref (state); - - if (new_state) - win->img_flags |= IMAGE_DISPLAY_MINUTIAE; - else - win->img_flags &= ~IMAGE_DISPLAY_MINUTIAE; + LibfprintDemoWindow *win = user_data; + GVariant *state; + gboolean new_state; + + state = g_action_get_state (G_ACTION (action)); + new_state = !g_variant_get_boolean (state); + g_action_change_state (G_ACTION (action), g_variant_new_boolean (new_state)); + g_variant_unref (state); + + if (new_state) + win->img_flags |= IMAGE_DISPLAY_MINUTIAE; + else + win->img_flags &= ~IMAGE_DISPLAY_MINUTIAE; - update_image (win); + update_image (win); } static void activate_show_binary (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) + GVariant *parameter, + gpointer user_data) { - LibfprintDemoWindow *win = user_data; - GVariant *state; - gboolean new_state; - - state = g_action_get_state (G_ACTION (action)); - new_state = !g_variant_get_boolean (state); - g_action_change_state (G_ACTION (action), g_variant_new_boolean (new_state)); - g_variant_unref (state); - - if (new_state) - win->img_flags |= IMAGE_DISPLAY_BINARY; - else - win->img_flags &= ~IMAGE_DISPLAY_BINARY; + LibfprintDemoWindow *win = user_data; + GVariant *state; + gboolean new_state; + + state = g_action_get_state (G_ACTION (action)); + new_state = !g_variant_get_boolean (state); + g_action_change_state (G_ACTION (action), g_variant_new_boolean (new_state)); + g_variant_unref (state); + + if (new_state) + win->img_flags |= IMAGE_DISPLAY_BINARY; + else + win->img_flags &= ~IMAGE_DISPLAY_BINARY; - update_image (win); + update_image (win); } static void change_show_minutiae_state (GSimpleAction *action, - GVariant *state, - gpointer user_data) + GVariant *state, + gpointer user_data) { - g_simple_action_set_state (action, state); + g_simple_action_set_state (action, state); } static void change_show_binary_state (GSimpleAction *action, - GVariant *state, - gpointer user_data) + GVariant *state, + gpointer user_data) { - g_simple_action_set_state (action, state); + g_simple_action_set_state (action, state); } static GActionEntry app_entries[] = { - { "quit", activate_quit, NULL, NULL, NULL }, + { "quit", activate_quit, NULL, NULL, NULL }, }; static GActionEntry win_entries[] = { - { "show-minutiae", activate_show_minutiae, NULL, "false", change_show_minutiae_state }, - { "show-binary", activate_show_binary, NULL, "false", change_show_binary_state }, - { "capture", activate_capture, NULL, NULL, NULL } + { "show-minutiae", activate_show_minutiae, NULL, "false", change_show_minutiae_state }, + { "show-binary", activate_show_binary, NULL, "false", change_show_binary_state }, + { "capture", activate_capture, NULL, NULL, NULL }, + { "cancel", cancel_capture, NULL, NULL, NULL } }; static void activate (GApplication *app) { - LibfprintDemoWindow *window; + LibfprintDemoWindow *window; - window = g_object_new (libfprint_demo_window_get_type (), - "application", app, - NULL); - gtk_widget_show (GTK_WIDGET (window)); + window = g_object_new (libfprint_demo_window_get_type (), + "application", app, + NULL); + gtk_widget_show (GTK_WIDGET (window)); } static void libfprint_demo_set_mode (LibfprintDemoWindow *win, - LibfprintDemoMode mode) + LibfprintDemoMode mode) { - struct fp_driver *drv; - char *title; + char *title; - switch (mode) { - case EMPTY_MODE: - gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "empty-mode"); - gtk_widget_set_sensitive (win->capture_button, FALSE); - gtk_spinner_stop (GTK_SPINNER (win->spinner)); - break; - case NOIMAGING_MODE: - gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "noimaging-mode"); - gtk_widget_set_sensitive (win->capture_button, FALSE); - gtk_spinner_stop (GTK_SPINNER (win->spinner)); - break; - case CAPTURE_MODE: - gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "capture-mode"); - gtk_widget_set_sensitive (win->capture_button, TRUE); - - drv = fp_dscv_dev_get_driver (win->ddev); - title = g_strdup_printf ("%s Test", fp_driver_get_full_name (drv)); - gtk_header_bar_set_title (GTK_HEADER_BAR (win->header_bar), title); - g_free (title); - - gtk_spinner_stop (GTK_SPINNER (win->spinner)); - break; - case SPINNER_MODE: - gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "spinner-mode"); - gtk_widget_set_sensitive (win->capture_button, FALSE); - gtk_spinner_start (GTK_SPINNER (win->spinner)); - break; - case ERROR_MODE: - gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "error-mode"); - gtk_widget_set_sensitive (win->capture_button, FALSE); - gtk_spinner_stop (GTK_SPINNER (win->spinner)); - break; - default: - g_assert_not_reached (); - } + switch (mode) + { + case EMPTY_MODE: + gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "empty-mode"); + gtk_widget_set_sensitive (win->capture_button, FALSE); + gtk_widget_set_sensitive (win->cancel_button, FALSE); + gtk_spinner_stop (GTK_SPINNER (win->spinner)); + break; + + case NOIMAGING_MODE: + gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "noimaging-mode"); + gtk_widget_set_sensitive (win->capture_button, FALSE); + gtk_widget_set_sensitive (win->cancel_button, FALSE); + gtk_spinner_stop (GTK_SPINNER (win->spinner)); + break; + + case CAPTURE_MODE: + gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "capture-mode"); + gtk_widget_set_sensitive (win->capture_button, TRUE); + gtk_widget_set_sensitive (win->cancel_button, FALSE); + + title = g_strdup_printf ("%s Test", fp_device_get_name (win->dev)); + gtk_header_bar_set_title (GTK_HEADER_BAR (win->header_bar), title); + g_free (title); + + gtk_spinner_stop (GTK_SPINNER (win->spinner)); + break; + + case SPINNER_MODE: + gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "spinner-mode"); + gtk_widget_set_sensitive (win->capture_button, FALSE); + gtk_widget_set_sensitive (win->cancel_button, TRUE); + gtk_spinner_start (GTK_SPINNER (win->spinner)); + break; + + case ERROR_MODE: + gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "error-mode"); + gtk_widget_set_sensitive (win->capture_button, FALSE); + gtk_widget_set_sensitive (win->cancel_button, FALSE); + gtk_spinner_stop (GTK_SPINNER (win->spinner)); + break; + + case RETRY_MODE: + gtk_stack_set_visible_child_name (GTK_STACK (win->mode_stack), "retry-mode"); + gtk_widget_set_sensitive (win->capture_button, TRUE); + gtk_widget_set_sensitive (win->cancel_button, FALSE); + gtk_spinner_stop (GTK_SPINNER (win->spinner)); + break; + + default: + g_assert_not_reached (); + } } static void libfprint_demo_init (LibfprintDemo *app) { - g_action_map_add_action_entries (G_ACTION_MAP (app), - app_entries, G_N_ELEMENTS (app_entries), - app); + g_action_map_add_action_entries (G_ACTION_MAP (app), + app_entries, G_N_ELEMENTS (app_entries), + app); } static void libfprint_demo_class_init (LibfprintDemoClass *class) { - GApplicationClass *app_class = G_APPLICATION_CLASS (class); + GApplicationClass *app_class = G_APPLICATION_CLASS (class); - app_class->activate = activate; + app_class->activate = activate; } static void libfprint_demo_window_init (LibfprintDemoWindow *window) { - struct fp_dscv_dev **discovered_devs; + FpContext *ctx; + GPtrArray *devices; - gtk_widget_init_template (GTK_WIDGET (window)); - gtk_window_set_default_size (GTK_WINDOW (window), 700, 500); + gtk_widget_init_template (GTK_WIDGET (window)); + gtk_window_set_default_size (GTK_WINDOW (window), 700, 500); - g_action_map_add_action_entries (G_ACTION_MAP (window), - win_entries, G_N_ELEMENTS (win_entries), - window); - - if (fp_init () < 0) { - libfprint_demo_set_mode (window, ERROR_MODE); - return; - } - - setup_pollfds (); - - discovered_devs = fp_discover_devs(); - if (!discovered_devs) { - libfprint_demo_set_mode (window, ERROR_MODE); - return; - } - - /* Empty list? */ - if (discovered_devs[0] == NULL) { - fp_dscv_devs_free (discovered_devs); - libfprint_demo_set_mode (window, EMPTY_MODE); - return; - } - - if (!fp_driver_supports_imaging(fp_dscv_dev_get_driver(discovered_devs[0]))) { - libfprint_demo_set_mode (window, NOIMAGING_MODE); - return; - } + g_action_map_add_action_entries (G_ACTION_MAP (window), + win_entries, G_N_ELEMENTS (win_entries), + window); + + ctx = fp_context_new (); + + devices = fp_context_get_devices (ctx); + if (!devices) + { + libfprint_demo_set_mode (window, ERROR_MODE); + return; + } + + /* Empty list? */ + if (devices->len == 0) + { + libfprint_demo_set_mode (window, EMPTY_MODE); + return; + } + + if (!fp_device_supports_capture (g_ptr_array_index (devices, 0))) + { + libfprint_demo_set_mode (window, NOIMAGING_MODE); + return; + } - window->ddev = discovered_devs[0]; - libfprint_demo_set_mode (window, CAPTURE_MODE); + window->dev = g_object_ref (g_ptr_array_index (devices, 0)); + libfprint_demo_set_mode (window, CAPTURE_MODE); } static void libfprint_demo_window_class_init (LibfprintDemoWindowClass *class) { - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); - gtk_widget_class_set_template_from_resource (widget_class, "/libfprint_demo/gtk-libfprint-test.ui"); - gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, header_bar); - gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, mode_stack); - gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, capture_button); - gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, capture_image); - gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, spinner); - gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, instructions); + gtk_widget_class_set_template_from_resource (widget_class, "/libfprint_demo/gtk-libfprint-test.ui"); + gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, header_bar); + gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, mode_stack); + gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, capture_button); + gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, cancel_button); + gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, capture_image); + gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, spinner); + gtk_widget_class_bind_template_child (widget_class, LibfprintDemoWindow, instructions); - //FIXME setup dispose + //FIXME setup dispose } -int main (int argc, char **argv) +int +main (int argc, char **argv) { - GtkApplication *app; + GtkApplication *app; - app = GTK_APPLICATION (g_object_new (libfprint_demo_get_type (), - "application-id", "org.freedesktop.libfprint.Demo", - "flags", G_APPLICATION_FLAGS_NONE, - NULL)); + app = GTK_APPLICATION (g_object_new (libfprint_demo_get_type (), + "application-id", "org.freedesktop.libfprint.Demo", + "flags", G_APPLICATION_FLAGS_NONE, + NULL)); - return g_application_run (G_APPLICATION (app), 0, NULL); + return g_application_run (G_APPLICATION (app), 0, NULL); } diff -Nru libfprint-1.0/demo/gtk-libfprint-test.ui libfprint-1.90.1/demo/gtk-libfprint-test.ui --- libfprint-1.0/demo/gtk-libfprint-test.ui 2019-08-08 12:54:49.000000000 +0000 +++ libfprint-1.90.1/demo/gtk-libfprint-test.ui 2020-02-10 11:24:07.000000000 +0000 @@ -1,5 +1,5 @@ - +