[fprint] Makefile, permissions, saved data and Python.

Antonio G.M. tonygon at gmail.com
Fri Jul 25 14:59:55 PDT 2014


Hello everybody,

I'm writing an application using libfprint.
We want to launch certain demos when a certain finger is verified.
My questions are about:
   1) Makefile
   2) Permissions
   3) Saved data

1) How to compile application with libfprint correctly?
With what (little) I know, I made a makefile, but the library
libfprint is not found in any way. Here's the code.

CC = gcc

FINGER_CFLAGS = -I/home/viki/libFinger/include
FINGER_LIBS = -llibfprint.la
DEPS = fprint.h
OBJ = enroll.o

CRYPTO_CFLAGS = -I/usr/include/nss -I/usr/include/nspr
CRYPTO_LIBS = -lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4

GLIB_CFLAGS = -I/usr/include/glib-2.0
-I/usr/lib/i386-linux-gnu/glib-2.0/include
GLIB_LIBS = -lglib-2.0

LIBUSB_CFLAGS = -I/usr/include/libusb-1.0
LIBUSB_LIBS = -lusb-1.0

LIBS = $(CRYPTO_LIBS) $(GLIB_LIBS) $(LIBUSB_LIBS) $(FINGER_LIBS)
CFLAGS = $(CRYPTO_FLAGS) $(GLIB_FLAGS) $(LIBUSB_LIBS) $(FINGER_CFLAGS)

%.o: %.c $(DEPS)
	$(CC) -c -o $@ $< $(CFLAGS)
	
enroll: $(OBJ)
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

I copied a few lines from the Makefile under /examples folder of the
library. I configured the installation with
--prefix=/home/viki/libFinger/. So, one level up from where my source
code files are, you can find the installed /include and /lib folders.

All the examples run correctly when compiled with the generated Makefile.
Could you tell me what I'm doing wrong? or provide a simplistic
example on how to compile with libfprint with a Makefile.

2) When I run an example say ./enroll. I get this error message:
libusb couldn't open USB device.
I get "permission denied" errors also when I read/load any previously
saved finger prints, since they are saved in the folder /.fprints. in
the home directory.
How can I control where to save the files, and how to 'give'
permissions to libusb in order not to get these errors? Since writing
sudo ./enroll, defeats the purpose of having the fingerprint sensor to
do authentication.

3) I have an eikon swipe-type sensor. The saved finger prints are
saved with the name corresponding a finger number, i.e. file '1' holds
the finger print from the LEFT_THUMB. In my computer at least, they
are inside folder '/000d/00000000'.
I want to save various fingerprints for (around) 5 users.
Is there any way of saving the files using other file/folder names?
Say folder 'User-1' holds the prints for fingers 'Prog-1', 'Prog-2',
where these would correspond to some fingers.

4) Has anyone written a Python wrapper? I read some articles about
this, but all of them had the C/C++ header and implementation files to
write the wrapper. Any pointers to examples where the C program uses
external libraries, like with libfprint, as well?? (libusb, glib, nss,
libfprint).

I thought about sending ROS messages from the .c file to my .py files,
where I need the authentication. Since we're using ROS anyways.
But Python wrapper would be nicer.

Thank you in advanced.
Any comments are very much welcomed.


More information about the fprint mailing list