Giter Site home page Giter Site logo

rindeal / libfprint-vfs_proprietary-driver Goto Github PK

View Code? Open in Web Editor NEW
73.0 12.0 13.0 61 KB

New libfprint driver for VFS451 (138a:0007), VFS471 (138a:003c), VFS491 (138a:003d), VFS495 (138a:003f). Warning: depends on proprietary binaries.

License: GNU Lesser General Public License v2.1

C 46.71% Meson 0.63% C++ 52.03% Shell 0.63%
fingerprint-sensor fingerprint-reader validity libfprint-driver

libfprint-vfs_proprietary-driver's Introduction

libfprint-vfs_proprietary-driver's People

Contributors

cstayyab avatar rindeal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libfprint-vfs_proprietary-driver's Issues

Error building the software with --noconfirm on manjaro

1 aur/libfprint-vfs_proprietary-git 0.99.0-3 (9) (0.00)
libfprint with support for the Validity/VFS proprietary driver
==> Enter n° of packages to be installed (e.g., 1 2 3 or 1-3)
==> ---------------------------------------------------------
==> 1

==> Downloading libfprint-vfs_proprietary-git PKGBUILD from AUR...
x .SRCINFO
x .gitignore
x PKGBUILD
x build-vfs_proprietary.patch

libfprint-vfs_proprietary-git 0.99.0-3 (2020-08-28 12:02)
This package is orphaned
( Unsupported package: Potentially dangerous ! )
==> libfprint-vfs_proprietary-git dependencies:

  • libusb (already installed)
  • nss (already installed)
  • pixman (already installed)
  • glib2 (already installed)
  • git (already installed) [makedepend]
  • meson (already installed) [makedepend]
  • gtk-doc (already installed) [makedepend]
  • vfs495-daemon (building from AUR) [makedepend]
  • vfs495-daemon (building from AUR) [makedepend]

==> libfprint-vfs_proprietary-git conflicts:

  • libfprint-1.94.5-1

==> Continue building libfprint-vfs_proprietary-git ? [Y/n]
==> -------------------------------------------------------
==>
==> Building and installing package
==> Install or build missing dependencies for libfprint-vfs_proprietary-git:
[sudo] password for unkown9:
error: target not found: vfs495-daemon
==> Restart building libfprint-vfs_proprietary-git ? [y/N]
==> ------------------------------------------------------
==> %

How to install it on Fedora 29?

I have Bus 001 Device 003: ID 138a:003d Validity Sensors, Inc. VFS491 and Fedora Workstation on it. I try some but I can't install insserv that is required. Can you help me?

Is it possible to port to Debian?

I have very little functionality for my Debian.
Laptop: HP Elitbook 8460p
Device: Bus 001 Device 003: ID 138a:003c Validity Sensors, Inc. VFS471 Fingerprint Reader

PROJECT STATUS

Current state

Any development in this repository is permanently halted. The reason being, that libfprint has never been the way to go with this driver, because libfprint's software design is too poor to plug a driver like this into it, and it's just always going to have hiccups. I learned it the hard way when developing this driver, but it was too late to stop it, so I just created this somewhat working version and called it a day.

What's next then?

I will create a small library + utility, which just capture raw images from the binary software and don't need any dependency except for the proprietary binaries. This will re-purpose most of the code from this repository and serve as a basis for other people to develop solutions to their problems. It will also be the point, where I cease my involvement with the software around this hardware.

Tips for my successors

In order to make OS login work like in Microsoft Windows (most common use case), there are two options in my opinion:

  1. Create a solid biometrics framework for Linux ala Windows and then plug this driver into it.
    This option requires some time and dedication, but can serve for many years to come, replacing or consuming libfprint as a better alternative.

  2. Create ad-hoc PAM module just for this driver.
    This should not take long to develop, but will die as soon as the current HW dies, which is fairly soon.

In either case, both libfprint and fprintd are unusable for any development involving a binary driver.


For updates subscribe to this thread.

Fingerprint scanner stops working past 5.4 kernel

Seems kernel 5.4 is the last one whole setup is working with. I haven't seen any specific differences between kernels neither in dmesg nor in journal but still starting kernel 5.6 it's not working.
I understand driver is not actively maintained anymore so would like to thank you for your last commit to fprintd.

how to indicate correct path to vfsFprintWrapper

any help on following error?
meson.build:156:1: ERROR: C shared or static library 'vfsFprintWrapper' not found
I've tried to replace a path in meson.build to absolute path that indicates to "vfsFprintWrapper.h", but I'm not sure if that is the file needed..

Missing meson file

I didn't know this driver existed until today, I have an HP Elitebook 8440p & it has one of these fingerprint readers, I have it enabled on boot-up in the CMOS. I feel like I must be retarded, I can't figure out this meson thing for the life of me. I've taken a look at several PKGBUILDs but nothing works, so I was hoping you could give me a hand if you don't mind, what folder should I be in and what commands should I run? thank you very much for making this thing available by the way.

The Meson build system
Version: 0.48.0
Source dir: /home/user/Compiles/libfprint-vfs_proprietary-driver/libfprint
Build dir: /home/user/Compiles/libfprint-vfs_proprietary-driver/build
Build type: native build

ERROR: Missing Meson file in /home/user/Compiles/libfprint-vfs_proprietary-driver/libfprint/meson.build

A full log can be found at /home/user/Compiles/libfprint-vfs_proprietary-driver/build/meson-logs/meson-log.txt

Not possible to build AUR:fprintd-vfs_proprietary

Since a few days attempts to build fprintd-vfs_proprietary end up with ld related error message:

`Preparing...
Cloning fprintd-vfs_proprietary build files...
Checking fprintd-vfs_proprietary dependencies...
Resolving dependencies...
Checking inter-conflicts...

Building fprintd-vfs_proprietary...
==> Making package: fprintd-vfs_proprietary 0.8.1-1 (czw, 11 cze 2020, 08:40:08)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating fprintd git repo...
Fetching origin
  -> Found disable-systemd-protection.patch
==> Validating source files with sha256sums...
    fprintd ... Skipped
    disable-systemd-protection.patch ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of fprintd git repo...
Cloning into 'fprintd'...
done.
Switched to a new branch 'makepkg'
==> Starting prepare()...
patching file data/fprintd.service.in
/var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd /var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd
Copying file po/Makefile.in.in

Please add the files
  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4
  progtest.m4
from the /usr/share/aclocal directory to your autoconf macro directory
or directly to your aclocal.m4 file.
You will also need config.guess and config.sub, which you can get from
ftp://ftp.gnu.org/pub/gnu/config/.

libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:10: installing './compile'
configure.ac:10: installing './config.guess'
configure.ac:10: installing './config.sub'
configure.ac:2: installing './install-sh'
configure.ac:2: installing './missing'
doc/Makefile.am:32: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
pam/Makefile.am: installing './depcomp'
/var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd
==> Starting pkgver()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking for LC_MESSAGES... yes
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for ngettext in libc... yes
checking for dgettext in libc... yes
checking for bind_textdomain_codeset... yes
checking for msgfmt... /usr/bin/msgfmt
checking for dcgettext... yes
checking if msgfmt accepts -c... yes
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking whether NLS is requested... yes
checking for intltool >= 0.35.0... 0.51.0 found
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... (cached) /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for msgfmt... (cached) /usr/bin/msgfmt
checking for gmsgfmt... (cached) /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.30.2
checking for XML::Parser... ok
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for FPRINT... yes
checking for GLIB... yes
checking for DAEMON... yes
checking security/pam_modules.h usability... yes
checking security/pam_modules.h presence... yes
checking for security/pam_modules.h... yes
checking for pam_start in -lpam... yes
checking for PAM headers and library... yes
checking for xmllint... xmllint
checking for xsltproc... xsltproc
checking for pod2man... pod2man
checking for gtk-doc... yes
checking for gtkdoc-check... gtkdoc-check.test
checking for gtkdoc-check... /usr/bin/gtkdoc-check
checking for gtkdoc-rebase... /usr/bin/gtkdoc-rebase
checking for gtkdoc-mkpdf... /usr/bin/gtkdoc-mkpdf
checking whether to build gtk-doc documentation... yes
checking for GTKDOC_DEPS... yes
checking what warning flags to pass to the C compiler... -Wall -Wmissing-prototypes
checking what language compliance flags to pass to the C compiler... 
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating data/Makefile
config.status: creating tests/Makefile
config.status: creating pam/Makefile
config.status: creating doc/Makefile
config.status: creating doc/version.xml
config.status: creating doc/dbus/Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: executing po/stamp-it commands
make -C po fprintd.pot
make[1]: Entering directory '/var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd/po'
Making check in src
make[1]: Entering directory '/var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd/src'
dbus-binding-tool --prefix=fprint_manager --mode=glib-server manager.xml --output=manager-dbus-glue.h
dbus-binding-tool --prefix=fprint_device --mode=glib-server device.xml --output=device-dbus-glue.h
( `pkg-config --variable=glib_genmarshal glib-2.0` --prefix=fprintd_marshal ./fprintd-marshal.list --header > fprintd-marshal.h )
INTLTOOL_EXTRACT="/usr/bin/intltool-extract" XGETTEXT="/usr/bin/xgettext" srcdir=. /usr/bin/intltool-update --gettext-package fprintd --pot
INFO: Reading ./fprintd-marshal.list...
WARNING: Using --header and --body at the same time is deprecated; use --body --prototypes instead
INFO: Reading /tmp/dbus-binding-tool-c-marshallers.DY01L0...
cat manager.xml > net.reactivated.Fprint.Manager.xml
cat device.xml > net.reactivated.Fprint.Device.xml
WARNING: Using --header and --body at the same time is deprecated; use --body --prototypes instead
INFO: Reading /tmp/dbus-binding-tool-c-marshallers.7J11L0...
WARNING: The token "NONE" is deprecated; use "VOID" instead
WARNING: The token "NONE" is deprecated; use "VOID" instead
( `pkg-config --variable=glib_genmarshal glib-2.0` --prefix=fprintd_marshal ./fprintd-marshal.list --body --header > fprintd-marshal.c )
WARNING: Using --header and --body at the same time is deprecated; use --body --prototypes instead
INFO: Reading ./fprintd-marshal.list...
make  check-am
make[2]: Entering directory '/var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd/src'
  CC       main.o
  CC       loop.o
  CC       file_storage.o
make[1]: Leaving directory '/var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd/po'
  CC       manager.lo
  CC       device.lo
  CC       fprintd-marshal.lo
manager.c: In function ‘fprint_manager_finalize’:
manager.c:54:13: warning: Deprecated pre-processor symbol, replace with 
   54 |  FprintManagerPrivate *priv = FPRINT_MANAGER_GET_PRIVATE (object);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
manager.c: In function ‘fprint_manager_class_init’:
manager.c:67:2: warning: ‘g_type_class_add_private’ is deprecated [-Wdeprecated-declarations]
   67 |  g_type_class_add_private ((GObjectClass *) klass, sizeof (FprintManagerPrivate));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:24,
                 from /usr/include/glib-2.0/gobject/gbinding.h:29,
                 from /usr/include/glib-2.0/glib-object.h:22,
                 from /usr/include/dbus-1.0/dbus/dbus-glib.h:27,
                 from /usr/include/dbus-1.0/dbus/dbus-glib-bindings.h:4,
                 from manager.c:22:
/usr/include/glib-2.0/gobject/gtype.h:1308:10: note: declared here
 1308 | void     g_type_class_add_private       (gpointer                    g_class,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
manager.c: In function ‘fprint_manager_in_use_notified’:
manager.c:90:13: warning: Deprecated pre-processor symbol, replace with 
   90 |  FprintManagerPrivate *priv = FPRINT_MANAGER_GET_PRIVATE (manager);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
manager.c: In function ‘fprint_manager_init’:
manager.c:117:13: warning: Deprecated pre-processor symbol, replace with 
  117 |  FprintManagerPrivate *priv = FPRINT_MANAGER_GET_PRIVATE (manager);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
manager.c: In function ‘fprint_manager_new’:
manager.c:149:13: warning: Deprecated pre-processor symbol, replace with 
  149 |  priv = FPRINT_MANAGER_GET_PRIVATE (object);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
manager.c: In function ‘fprint_manager_get_devices’:
manager.c:161:13: warning: Deprecated pre-processor symbol, replace with 
  161 |  FprintManagerPrivate *priv = FPRINT_MANAGER_GET_PRIVATE (manager);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
manager.c: In function ‘fprint_manager_get_default_device’:
manager.c:183:13: warning: Deprecated pre-processor symbol, replace with 
  183 |  FprintManagerPrivate *priv = FPRINT_MANAGER_GET_PRIVATE (manager);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
device.c: In function ‘fprint_device_finalize’:
device.c:152:13: warning: Deprecated pre-processor symbol, replace with 
  152 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(self);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_set_property’:
device.c:162:13: warning: Deprecated pre-processor symbol, replace with 
  162 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(self);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_get_property’:
device.c:178:13: warning: Deprecated pre-processor symbol, replace with 
  178 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(self);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_class_init’:
device.c:222:2: warning: ‘g_type_class_add_private’ is deprecated [-Wdeprecated-declarations]
  222 |  g_type_class_add_private(klass, sizeof(FprintDevicePrivate));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:24,
                 from /usr/include/glib-2.0/gobject/gbinding.h:29,
                 from /usr/include/glib-2.0/glib-object.h:22,
                 from /usr/include/dbus-1.0/dbus/dbus-glib.h:27,
                 from /usr/include/dbus-1.0/dbus/dbus-glib-bindings.h:4,
                 from device.c:22:
/usr/include/glib-2.0/gobject/gtype.h:1308:10: note: declared here
 1308 | void     g_type_class_add_private       (gpointer                    g_class,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
device.c: In function ‘fprint_device_init’:
device.c:267:13: warning: Deprecated pre-processor symbol, replace with 
  267 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(device);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
device.c: In function ‘_fprint_device_get_id’:
device.c:287:13: warning: Deprecated pre-processor symbol, replace with 
  287 |  return DEVICE_GET_PRIVATE(rdev)->id;
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~                       
device.c: In function ‘_fprint_device_check_claimed’:
device.c:378:13: warning: Deprecated pre-processor symbol, replace with 
  378 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘_fprint_device_check_polkit_for_action’:
device.c:404:13: warning: Deprecated pre-processor symbol, replace with 
  404 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘_fprint_device_client_vanished’:
device.c:532:13: warning: Deprecated pre-processor symbol, replace with 
  532 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘_fprint_device_add_client’:
device.c:586:13: warning: Deprecated pre-processor symbol, replace with 
  586 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘dev_open_cb’:
device.c:606:13: warning: Deprecated pre-processor symbol, replace with 
  606 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_claim’:
device.c:632:13: warning: Deprecated pre-processor symbol, replace with 
  632 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘dev_close_cb’:
device.c:703:13: warning: Deprecated pre-processor symbol, replace with 
  703 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_release’:
device.c:724:13: warning: Deprecated pre-processor symbol, replace with 
  724 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘verify_cb’:
device.c:758:13: warning: Deprecated pre-processor symbol, replace with 
  758 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘identify_cb’:
device.c:782:13: warning: Deprecated pre-processor symbol, replace with 
  782 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_verify_start’:
device.c:808:13: warning: Deprecated pre-processor symbol, replace with 
  808 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_verify_stop’:
device.c:950:13: warning: Deprecated pre-processor symbol, replace with 
  950 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘enroll_stage_cb’:
device.c:1011:13: warning: Deprecated pre-processor symbol, replace with 
 1011 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_enroll_start’:
device.c:1040:13: warning: Deprecated pre-processor symbol, replace with 
 1040 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_enroll_stop’:
device.c:1105:13: warning: Deprecated pre-processor symbol, replace with 
 1105 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_list_enrolled_fingers’:
device.c:1149:13: warning: Deprecated pre-processor symbol, replace with 
 1149 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
device.c: In function ‘fprint_device_delete_enrolled_fingers’:
device.c:1204:13: warning: Deprecated pre-processor symbol, replace with 
 1204 |  FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(rdev);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  CCLD     libfprintd.la
  CCLD     fprintd
/usr/bin/ld: ./.libs/libfprintd.a(device.o):(.bss+0x0): multiple definition of `store'; main.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:523: fprintd] Error 1
make[2]: Leaving directory '/var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd/src'
make[1]: *** [Makefile:679: check] Error 2
make[1]: Leaving directory '/var/tmp/pamac-build-percy/fprintd-vfs_proprietary/src/fprintd/src'
make: *** [Makefile:448: check-recursive] Error 1
==> ERROR: A failure occurred in build().
    Aborting...`

Encounter Mason build error

Hi I saw your post at AUR so I am trying to build an Arch package mimicking your ebuild. With a lot of hard-wiring, I manage to make it to the build process. That's when I get to this following build error. I was wondering if you would be so kind to help me out.

➜  vfs makepkg -si
==> Making package: libfprint-git 1:0.9.0-1
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating libfprint git repo...
Fetching origin
  -> Found v0.9.0.tar.gz
  -> Found sp84530.tar
==> Validating source files with md5sums...
    libfprint ... Skipped
    v0.9.0.tar.gz ... Skipped
    sp84530.tar ... Skipped
==> Extracting sources...
  -> Creating working copy of libfprint git repo...
Reset branch 'makepkg'
  -> Extracting v0.9.0.tar.gz with bsdtar
==> Starting prepare()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
+ exec meson setup --prefix /usr --libdir /usr/lib --libexecdir /usr/lib --bindir /usr/bin --sbindir /usr/bin --includedir /usr/include --datadir /usr/share --mandir /usr/share/man --infodir /usr/share/info --localedir /usr/share/locale --sysconfdir /etc --localstatedir /var --sharedstatedir /var/lib --buildtype release --auto-features enabled --wrap-mode nofallback -D b_lto=true libfprint build -D drivers=all -D udev_rules=true -D udev_rules_dir=/usr/lib/udev/rules.d/ -D x11-examples=false -D doc=false
The Meson build system
Version: 0.48.2
Build type: native build
Project name: libfprint
Project version: 0.99.0
Appending CFLAGS from environment: '-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt'
Appending LDFLAGS from environment: '-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Appending CPPFLAGS from environment: '-D_FORTIFY_SOURCE=2'
Native C compiler: cc (gcc 8.2.1 "cc (GCC) 8.2.1 20181127")
Appending CXXFLAGS from environment: '-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt'
Appending LDFLAGS from environment: '-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Appending CPPFLAGS from environment: '-D_FORTIFY_SOURCE=2'
Native C++ compiler: c++ (gcc 8.2.1 "c++ (GCC) 8.2.1 20181127")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Compiler for C supports arguments -fgnu89-inline: YES
Compiler for C supports arguments -fvisibility=hidden: YES
Compiler for C supports arguments -std=gnu99: YES
Compiler for C supports arguments -Wall: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wunused: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Werror-implicit-function-declaration: YES
Compiler for C supports arguments -Wno-pointer-sign -Wpointer-sign: YES
Compiler for C supports arguments -Wshadow: YES
Found pkg-config: /usr/bin/pkg-config (1.5.4)
Dependency glib-2.0 found: YES 2.58.1
Dependency libusb-1.0 found: YES 1.0.22
Library m found: YES
Dependency nss found: YES 3.40.1
Dependency pixman-1 found: YES 0.36.0
Dependency pixman-1 found: YES (cached)
Dependency gtk+-3.0 found: YES 3.24.1
Configuring config.h using configuration
Configuring drivers_definitions.h with command
Configuring drivers_arrays.h with command
Library vfsFprintWrapper found: YES
Build targets in project: 8
Option buildtype is: release [default: debugoptimized]
Found ninja-1.8.2 at /usr/bin/ninja
ninja: Entering directory `build'
[6/85] Compiling C object 'libfprint/l...print@@fprint@sha/fpi-assembling.c.o'.
../libfprint/libfprint/fpi-assembling.c: In function ‘find_overlap’:
../libfprint/libfprint/fpi-assembling.c:110:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (dy = 2; dy < ctx->frame_height; dy++) {
                  ^
../libfprint/libfprint/fpi-assembling.c: In function ‘do_movement_estimation’:
../libfprint/libfprint/fpi-assembling.c:157:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  } while (frame < num_stripes);
                 ^
../libfprint/libfprint/fpi-assembling.c: In function ‘aes_blit_stripe’:
../libfprint/libfprint/fpi-assembling.c:213:19: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
  if ((ix + width) > img->width)
                   ^
../libfprint/libfprint/fpi-assembling.c:232:9: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
  if (ix > img->width)
         ^
../libfprint/libfprint/fpi-assembling.c:235:9: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
  if (iy > img->height)
         ^
../libfprint/libfprint/fpi-assembling.c:238:20: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
  if ((iy + height) > img->height)
                    ^
../libfprint/libfprint/fpi-assembling.c: In function ‘fpi_assemble_frames’:
../libfprint/libfprint/fpi-assembling.c:297:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  } while (i < num_stripes);
             ^
../libfprint/libfprint/fpi-assembling.c:339:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  } while (i < num_stripes);
             ^
../libfprint/libfprint/fpi-assembling.c: In function ‘fpi_assemble_lines’:
../libfprint/libfprint/fpi-assembling.c:427:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; (i < num_lines - 1) && row1; i += 2) {
                 ^
../libfprint/libfprint/fpi-assembling.c:456:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; i <= (num_lines / 2) - 1; i++)
                ^~
../libfprint/libfprint/fpi-assembling.c:459:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; i < num_lines - 1; i++, row1 = g_slist_next(row1)) {
                ^
../libfprint/libfprint/fpi-assembling.c:464:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
     if (line_ind > ctx->max_height - 1)
                  ^
[15/85] Compiling C object 'libfprint/libfprint@@fprint@sha/fpi-img.c.o'.
../libfprint/libfprint/fpi-img.c: In function ‘fp_img_save_to_file’:
../libfprint/libfprint/fpi-img.c:231:8: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  if (r < write_size) {
        ^
[16/85] Compiling C object 'libfprint/...nt@@fprint@sha/drivers_upeksonly.c.o'.
../libfprint/libfprint/drivers/upeksonly.c: In function ‘upeksonly_get_deviation2’:
../libfprint/libfprint/drivers/upeksonly.c:118:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (i = 0; i < ctx->line_width; i+= 2)
                ^
../libfprint/libfprint/drivers/upeksonly.c:123:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (i = 0; i < ctx->line_width; i+= 2) {
                ^
../libfprint/libfprint/drivers/upeksonly.c: In function ‘deactivate_done’:
../libfprint/libfprint/drivers/upeksonly.c:1215:31: warning: cast between incompatible function types from ‘void (*)(void *)’ to ‘void (*)(void *, void *)’ [-Wcast-function-type]
   g_slist_foreach(sdev->rows, (GFunc) g_free, NULL);
                               ^
[17/85] Compiling C object 'libfprint/...print@@fprint@sha/drivers_upektc.c.o'.
../libfprint/libfprint/drivers/upektc.c: In function ‘upektc_next_init_cmd’:
../libfprint/libfprint/drivers/upektc.c:66:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  if (upekdev->init_idx == upekdev->setup_commands_len)
                        ^~
../libfprint/libfprint/drivers/upektc.c: In function ‘finger_present’:
../libfprint/libfprint/drivers/upektc.c:165:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; i < len; i++) {
                ^
[25/85] Compiling C object 'libfprint/...print@@fprint@sha/drivers_vfs101.c.o'.
../libfprint/libfprint/drivers/vfs101.c: In function ‘img_copy’:
../libfprint/libfprint/drivers/vfs101.c:723:22: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
  for (line = 0; line < img->height; line++)
                      ^
[27/85] Compiling C object 'libfprint/...t@@fprint@sha/drivers_upektc_img.c.o'.
../libfprint/libfprint/drivers/upektc_img.c: In function ‘capture_read_data_cb’:
../libfprint/libfprint/drivers/upektc_img.c:215:21: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   if (response_size > transfer->actual_length) {
                     ^
../libfprint/libfprint/drivers/upektc_img.c:267:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
     fpi_imgdev_report_finger_status(dev, TRUE);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libfprint/libfprint/drivers/upektc_img.c:269:4: note: here
    case 0x24:
    ^~~~
[28/85] Compiling C object 'libfprint/...@fprint@sha/drivers_vfs301_proto.c.o'.
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:32,
                 from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from ../libfprint/libfprint/drivers/vfs301_proto.c:35:
../libfprint/libfprint/drivers/vfs301_proto.c: In function ‘usb_recv’:
../libfprint/libfprint/drivers/vfs301_proto.c:68:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
  g_assert(max_bytes <= sizeof(dev->recv_buf));
                     ^~
/usr/include/glib-2.0/glib/gmacros.h:418:8: note: in definition of macro ‘_G_BOOLEAN_EXPR’
    if (expr)                                    \
        ^~~~
/usr/include/glib-2.0/glib/gtestutils.h:125:49: note: in expansion of macro ‘G_LIKELY’
                                              if G_LIKELY (expr) ; else \
                                                 ^~~~~~~~
../libfprint/libfprint/drivers/vfs301_proto.c:68:2: note: in expansion of macro ‘g_assert’
  g_assert(max_bytes <= sizeof(dev->recv_buf));
  ^~~~~~~~
[29/85] Compiling C object 'libfprint/...rint@@fprint@sha/drivers_etes603.c.o'.
../libfprint/libfprint/drivers/etes603.c: In function ‘process_hist’:
../libfprint/libfprint/drivers/etes603.c:477:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; i < s; i++) {
                ^
[31/85] Compiling C object 'libfprint/...print@@fprint@sha/drivers_aeslib.c.o'.
../libfprint/libfprint/drivers/aeslib.c: In function ‘continue_write_regv’:
../libfprint/libfprint/drivers/aeslib.c:126:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (i = offset; i <= upper_bound; i++)
                     ^~
[33/85] Compiling C object 'libfprint/...bfprint@@fprint@sha/drivers_elan.c.o'.
../libfprint/libfprint/drivers/elan.c: In function ‘elan_save_img_frame’:
../libfprint/libfprint/drivers/elan.c:209:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (int i = 0; i < frame_size; i++) {
                    ^
../libfprint/libfprint/drivers/elan.c: In function ‘elan_process_frame_linear’:
../libfprint/libfprint/drivers/elan.c:239:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (int i = 0; i < frame_size; i++) {
                    ^
../libfprint/libfprint/drivers/elan.c:249:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (int i = 0; i < frame_size; i++) {
                    ^
../libfprint/libfprint/drivers/elan.c: In function ‘elan_process_frame_thirds’:
../libfprint/libfprint/drivers/elan.c:279:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (int i = 0; i < frame_size; i++) {
                    ^
../libfprint/libfprint/drivers/elan.c: In function ‘elan_need_calibration’:
../libfprint/libfprint/drivers/elan.c:600:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  for (int i = 0; i < frame_size; i++)
                    ^
[34/85] Compiling C object 'libfprint/...rint@@fprint@sha/drivers_aesx660.c.o'.
../libfprint/libfprint/drivers/aesx660.c: In function ‘capture_set_idle_cmd_cb’:
../libfprint/libfprint/drivers/aesx660.c:310:35: warning: cast between incompatible function types from ‘void (*)(void *)’ to ‘void (*)(void *, void *)’ [-Wcast-function-type]
   g_slist_foreach(aesdev->strips, (GFunc) g_free, NULL);
                                   ^
[35/85] Compiling C object 'libfprint/...fprint@@fprint@sha/drivers_aes3k.c.o'.
../libfprint/libfprint/drivers/aes3k.c: In function ‘img_cb’:
../libfprint/libfprint/drivers/aes3k.c:88:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; i < aesdev->frame_number; i++) {
                ^
[36/85] Compiling C object 'libfprint/...rint@@fprint@sha/drivers_uru4000.c.o'.
../libfprint/libfprint/drivers/uru4000.c: In function ‘calc_dev2’:
../libfprint/libfprint/drivers/uru4000.c:681:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
  for (i = r = idx = 0; i < G_N_ELEMENTS(img->block_info) && idx < 2; i++) {
                          ^
../libfprint/libfprint/drivers/uru4000.c: In function ‘imaging_run_state’:
../libfprint/libfprint/drivers/uru4000.c:802:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
   for (i = 0; i < G_N_ELEMENTS(img->block_info) && r < img->num_lines; i++) {
                 ^
[39/85] Compiling C object 'libfprint/..._vfs_proprietary_vfs_proprietary.c.o'.
FAILED: libfprint/libfprint@@fprint@sha/drivers_vfs_proprietary_vfs_proprietary.c.o 
cc -Ilibfprint/libfprint@@fprint@sha -Ilibfprint -I../libfprint/libfprint -I. -I../libfprint/ -I../libfprint/libfprint/nbis/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/nss -I/usr/include/nspr -I/usr/include/pixman-1 -flto -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c99 -O3 -D_GNU_SOURCE '-DG_LOG_DOMAIN="libfprint"' -march=x86-64 -mtune=generic -O2 -fstack-protector-strong -fno-plt -D_FORTIFY_SOURCE=2 -fPIC -fgnu89-inline -fvisibility=hidden -std=gnu99 -Wall -Wundef -Wunused -Wstrict-prototypes -Werror-implicit-function-declaration -Wno-pointer-sign -Wshadow -Wno-unused-parameter '-DVFS_PROPRIETARY_CAPTURE_HELPER_PATH="/usr/lib/libfprint/vfs_proprietary-capture-helper"' -Wall -Wextra  -MD -MQ 'libfprint/libfprint@@fprint@sha/drivers_vfs_proprietary_vfs_proprietary.c.o' -MF 'libfprint/libfprint@@fprint@sha/drivers_vfs_proprietary_vfs_proprietary.c.o.d' -o 'libfprint/libfprint@@fprint@sha/drivers_vfs_proprietary_vfs_proprietary.c.o' -c ../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c: In function ‘vfs_proprietary_dev_open’:
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:86:31: error: implicit declaration of function ‘fpi_imgdev_get_dev’; did you mean ‘fpi_imgdev_get_action’? [-Werror=implicit-function-declaration]
  fpi_dev_set_nr_enroll_stages(fpi_imgdev_get_dev(imgdev), VFS_PROPRIETARY_NR_ENROLL);
                               ^~~~~~~~~~~~~~~~~~
                               fpi_imgdev_get_action
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:86:31: warning: passing argument 1 of ‘fpi_dev_set_nr_enroll_stages’ makes pointer from integer without a cast [-Wint-conversion]
  fpi_dev_set_nr_enroll_stages(fpi_imgdev_get_dev(imgdev), VFS_PROPRIETARY_NR_ENROLL);
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libfprint/libfprint/drivers_api.h:28,
                 from ../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:25:
../libfprint/libfprint/fpi-dev.h:43:50: note: expected ‘struct fp_dev *’ but argument is of type ‘int’
 void fpi_dev_set_nr_enroll_stages(struct fp_dev *dev,
                                   ~~~~~~~~~~~~~~~^~~
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:32,
                 from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from ../libfprint/libfprint/fpi-log.h:44,
                 from ../libfprint/libfprint/drivers_api.h:27,
                 from ../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:25:
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c: In function ‘vfs_proprietary_dev_activate’:
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:221:33: error: implicit declaration of function ‘fpi_dev_get_dev_state’; did you mean ‘fp_dev_get_devtype’? [-Werror=implicit-function-declaration]
  if (G_UNLIKELY( retcode < 0 && fpi_dev_get_dev_state(fpi_imgdev_get_dev(imgdev)) != DEV_STATE_ERROR ))
                                 ^~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:418:8: note: in definition of macro ‘_G_BOOLEAN_EXPR’
    if (expr)                                    \
        ^~~~
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:221:6: note: in expansion of macro ‘G_UNLIKELY’
  if (G_UNLIKELY( retcode < 0 && fpi_dev_get_dev_state(fpi_imgdev_get_dev(imgdev)) != DEV_STATE_ERROR ))
      ^~~~~~~~~~
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:221:86: error: ‘DEV_STATE_ERROR’ undeclared (first use in this function); did you mean ‘G_IO_STATUS_ERROR’?
  if (G_UNLIKELY( retcode < 0 && fpi_dev_get_dev_state(fpi_imgdev_get_dev(imgdev)) != DEV_STATE_ERROR ))
                                                                                      ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:418:8: note: in definition of macro ‘_G_BOOLEAN_EXPR’
    if (expr)                                    \
        ^~~~
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:221:6: note: in expansion of macro ‘G_UNLIKELY’
  if (G_UNLIKELY( retcode < 0 && fpi_dev_get_dev_state(fpi_imgdev_get_dev(imgdev)) != DEV_STATE_ERROR ))
      ^~~~~~~~~~
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:221:86: note: each undeclared identifier is reported only once for each function it appears in
  if (G_UNLIKELY( retcode < 0 && fpi_dev_get_dev_state(fpi_imgdev_get_dev(imgdev)) != DEV_STATE_ERROR ))
                                                                                      ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:418:8: note: in definition of macro ‘_G_BOOLEAN_EXPR’
    if (expr)                                    \
        ^~~~
../libfprint/libfprint/drivers/vfs_proprietary/vfs_proprietary.c:221:6: note: in expansion of macro ‘G_UNLIKELY’
  if (G_UNLIKELY( retcode < 0 && fpi_dev_get_dev_state(fpi_imgdev_get_dev(imgdev)) != DEV_STATE_ERROR ))
      ^~~~~~~~~~
cc1: some warnings being treated as errors
[44/85] Compiling C object 'libfprint/...@@fprint@sha/nbis_bozorth3_bz_io.c.o'.
ninja: build stopped: subcommand failed.

My PKGBUILD is pretty primal and at very early stage.


prepare() {
  bsdtar xf "sp84530.tar" --strip-components 1
  rpmextract.sh Validity-Sensor-Setup-4.5-136.0.x86_64.rpm
  mkdir -p libfprint/libfprint/drivers
  tar -xf v0.9.0.tar.gz -C libfprint
  #mv libfprint/libfprint-vfs_proprietary-driver-0.9.0/* libfprint/libfprint/drivers
  cd libfprint
  #git describe --tags | sed 's/^V_//;s/_/./g;s/-/.r/;s/-/./'

	sed -e "\|ATTR{power/control}|r"<(
			echo 'printf ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ",'
			echo '            driver->id_table[i].vendor, driver->id_table[i].product);'
			echo 'printf ("MODE=\"0664\", ");'
			echo "printf (\"GROUP=\\\"${FP_GROUP}\\\"\");"
			echo 'printf ("\n");'
		) -i -- libfprint/fprint-list-udev-rules.c

  local driver_name="vfs_proprietary"
  sed -e "/^all_drivers *=/a all_drivers += [ '${driver_name}' ]" -i -- meson.build
  sed -e "/^libfprint *=/i subdir('drivers/${driver_name}')" -i -- libfprint/meson.build
	sed -e "/subdir('examples')/d" -i -- meson.build
}

build() {
  chrpath -d usr/lib/libvfsFprintWrapper.so usr/bin/vcsFPService
  #install -D -t usr/lib /usr/lib/libvfsFprintWrapper.so
  arch-mesonv $_pkgname build -D drivers=all -D udev_rules=true -D udev_rules_dir="/usr/lib/udev/rules.d/" -D x11-examples=false -D doc=false
  ninja -C build
}

Ubuntu install

Hello,

I have an HP EliteBook 8460p, which has the vfs471 sensor.. After mucking around looking for linux support, I eventually came across the "ancient source floating around" which you referenced, then fprint, and then your repo here, which seems to be the most up to date working version of a driver.
Unfortunately, I'm not on Arch or similar, but rather on Ubuntu 18.04. I'm wondering if you could provide some guidance for building and installing this? I'm not quite sure where to even start, your install instructions seem rather alien to me.

Error -103

I've installed your AUR package and when I try to run fprintd-enroll, id gives me this:
Using device /net/reactivated/Fprint/Device/0 Enrolling right-index-finger finger. EnrollStart failed: Enroll start failed with error -103
Can you help me with this?

error building on manjaro 21.2

Cloning libfprint-vfs_proprietary-git build files...
Generating libfprint-vfs_proprietary-git information...
Checking libfprint-vfs_proprietary-git dependencies...
Resolving dependencies...
Checking inter-conflicts...

Building libfprint-vfs_proprietary-git...
==> Making package: libfprint-vfs_proprietary-git 0.99.0-3 (28 ديس, 2021 10:55:06 م)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating libfprint-vfs_proprietary-driver git repo...
Fetching origin
  -> Found build-vfs_proprietary.patch
==> Validating source files with md5sums...
    libfprint-vfs_proprietary-driver ... Skipped
    build-vfs_proprietary.patch ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of libfprint-vfs_proprietary-driver git repo...
Cloning into 'libfprint-vfs_proprietary-driver'...
done.
==> Starting prepare()...
Submodule 'libfprint' (https://gitlab.freedesktop.org/libfprint/libfprint.git) registered for path 'libfprint'
Cloning into '/var/tmp/pamac-build-midoo/libfprint-vfs_proprietary-git/src/libfprint-vfs_proprietary-driver/libfprint'...
fatal: unable to access 'https://gitlab.freedesktop.org/libfprint/libfprint.git/': HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
fatal: clone of 'https://gitlab.freedesktop.org/libfprint/libfprint.git' into submodule path '/var/tmp/pamac-build-midoo/libfprint-vfs_proprietary-git/src/libfprint-vfs_proprietary-driver/libfprint' failed
Failed to clone 'libfprint'. Retry scheduled
Cloning into '/var/tmp/pamac-build-midoo/libfprint-vfs_proprietary-git/src/libfprint-vfs_proprietary-driver/libfprint'...
Submodule path 'libfprint': checked out '1abe213844b28fd8afc28eb072fd569f0f72d7f1'
Submodule path 'libfprint': checked out '1abe213844b28fd8afc28eb072fd569f0f72d7f1'
patching file libfprint/meson.build
patching file meson.build
==> Starting build()...
+ exec meson setup --prefix /usr --libexecdir lib --sbindir bin --buildtype plain --auto-features enabled --wrap-mode nodownload -D b_lto=true -D b_pie=true -D drivers=vfs_proprietary -D x11-examples=false -D doc=false build
The Meson build system
Version: 0.60.2
Source dir: /var/tmp/pamac-build-midoo/libfprint-vfs_proprietary-git/src/libfprint-vfs_proprietary-driver/libfprint
Build dir: /var/tmp/pamac-build-midoo/libfprint-vfs_proprietary-git/src/libfprint-vfs_proprietary-driver/libfprint/build
Build type: native build
Project name: libfprint
Project version: 0.99.0
C compiler for the host machine: cc (gcc 11.1.0 "cc (GCC) 11.1.0")
C linker for the host machine: cc ld.bfd 2.36.1
C++ compiler for the host machine: c++ (gcc 11.1.0 "c++ (GCC) 11.1.0")
C++ linker for the host machine: c++ ld.bfd 2.36.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -fgnu89-inline: YES 
Compiler for C supports arguments -fvisibility=hidden: YES 
Compiler for C supports arguments -std=gnu99: YES 
Compiler for C supports arguments -Wall: YES 
Compiler for C supports arguments -Wundef: YES 
Compiler for C supports arguments -Wunused: YES 
Compiler for C supports arguments -Wstrict-prototypes: YES 
Compiler for C supports arguments -Werror-implicit-function-declaration: YES 
Compiler for C supports arguments -Wno-pointer-sign: YES 
Compiler for C supports arguments -Wshadow: YES 
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Run-time dependency glib-2.0 found: YES 2.70.1
Run-time dependency libusb-1.0 found: YES 1.0.24
Library m found: YES
Run-time dependency udev found: YES 249
Run-time dependency gtk+-3.0 found: YES 3.24.30
Configuring config.h using configuration

libfprint/meson.build:162:3: ERROR: 
Trying to compare values of different types (NotFoundDependency, list) using !=.
This was deprecated and undefined behavior previously and is as of 0.60.0 a hard error.


A full log can be found at /var/tmp/pamac-build-midoo/libfprint-vfs_proprietary-git/src/libfprint-vfs_proprietary-driver/libfprint/build/meson-logs/meson-log.txt
==> ERROR: A failure occurred in build().
    Aborting...```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.