diff options
Diffstat (limited to 'sys-auth/thinkfinger/files')
6 files changed, 184 insertions, 0 deletions
diff --git a/sys-auth/thinkfinger/files/0.3-carriagereturn.patch b/sys-auth/thinkfinger/files/0.3-carriagereturn.patch new file mode 100644 index 000000000000..731f1531947b --- /dev/null +++ b/sys-auth/thinkfinger/files/0.3-carriagereturn.patch @@ -0,0 +1,10 @@ +--- pam/pam_thinkfinger-uinput.c 2007-02-27 17:52:50.000000000 +0100 ++++ pam/pam_thinkfinger-uinput.c 2009-02-17 13:56:02.013033249 +0100 +@@ -95,6 +95,7 @@ + /* our single key keyboard */ + i = ioctl (*fd, UI_SET_EVBIT, EV_KEY) < 0; + i |= ioctl (*fd, UI_SET_KEYBIT, KEY_ENTER) < 0; ++ i |= ioctl (*fd, UI_SET_KEYBIT, KEY_A) < 0; + + if (write (*fd, &device, device_size) != device_size) { + retval = errno; diff --git a/sys-auth/thinkfinger/files/0.3-direct_set_config_usb_hello.patch b/sys-auth/thinkfinger/files/0.3-direct_set_config_usb_hello.patch new file mode 100644 index 000000000000..06723ad1306c --- /dev/null +++ b/sys-auth/thinkfinger/files/0.3-direct_set_config_usb_hello.patch @@ -0,0 +1,31 @@ +Index: libthinkfinger/libthinkfinger.c +=================================================================== +--- libthinkfinger/libthinkfinger.c (revision 118) ++++ libthinkfinger/libthinkfinger.c (working copy) +@@ -265,18 +265,7 @@ + int retval = -1; + char dummy[] = "\x10"; + +- /* SET_CONFIGURATION 1 -- should not be relevant */ + retval = usb_control_msg (handle, // usb_dev_handle *dev +- 0x00000000, // int requesttype +- 0x00000009, // int request +- 0x001, // int value +- 0x000, // int index +- dummy, // char *bytes +- 0x00000000, // int size +- USB_TIMEOUT); // int timeout +- if (retval < 0) +- goto out; +- retval = usb_control_msg (handle, // usb_dev_handle *dev + 0x00000040, // int requesttype + 0x0000000c, // int request + 0x100, // int value +@@ -285,7 +274,6 @@ + 0x00000001, // int size + USB_TIMEOUT); // int timeout + +-out: + return retval; + } + diff --git a/sys-auth/thinkfinger/files/0.3-send-sync-event.patch b/sys-auth/thinkfinger/files/0.3-send-sync-event.patch new file mode 100644 index 000000000000..39e0edb27ba1 --- /dev/null +++ b/sys-auth/thinkfinger/files/0.3-send-sync-event.patch @@ -0,0 +1,50 @@ +--- pam/pam_thinkfinger-uinput.c 2009-12-27 18:42:26.000000000 +0100 ++++ pam/pam_thinkfinger-uinput.c 2009-12-27 18:41:55.000000000 +0100 +@@ -34,27 +34,40 @@ + int uinput_cr (int *fd) + { + int retval = 0, ev_size = 0; +- struct input_event ev = { ++ struct input_event key_ev = { + .type = EV_KEY, + .code = KEY_ENTER, + .time = {0, } + }; + +- ev_size = sizeof (ev); ++ ev_size = sizeof (key_ev); + + /* key press */ +- ev.value = 1; +- if (write (*fd, &ev, ev_size) != ev_size) { ++ key_ev.value = 1; ++ if (write (*fd, &key_ev, ev_size) != ev_size) { + retval = errno; + goto out; + } + /* key release */ +- ev.value = 0; +- if (write (*fd, &ev, ev_size) != ev_size) { ++ key_ev.value = 0; ++ if (write (*fd, &key_ev, ev_size) != ev_size) { + retval = errno; + goto out; + } +- ++ ++ /* syn event */ ++ struct input_event syn_ev = { ++ .time = {0, }, ++ .type = EV_SYN, ++ .code = SYN_REPORT, ++ .value = 0 ++ }; ++ ++ if (write (*fd, &syn_ev, ev_size) != ev_size) { ++ retval = errno; ++ goto out; ++ } ++ + out: + return retval; + } diff --git a/sys-auth/thinkfinger/files/0.3-strip-strip.patch b/sys-auth/thinkfinger/files/0.3-strip-strip.patch new file mode 100644 index 000000000000..1339baf63a00 --- /dev/null +++ b/sys-auth/thinkfinger/files/0.3-strip-strip.patch @@ -0,0 +1,24 @@ +Strip is handled by the package manager. + +--- a/pam/Makefile.am ++++ b/pam/Makefile.am +@@ -8,7 +8,7 @@ pam_thinkfinger_so_SOURCES = pam_thinkfinger-compat.c pam_thinkfinger-compat.h p + else + pam_thinkfinger_so_SOURCES = pam_thinkfinger-uinput.c pam_thinkfinger-uinput.h pam_thinkfinger.c + endif +-pam_thinkfinger_so_LDFLAGS = -shared --strip-all -Wl,-soname,pam_thinkfinger.so -Wl,--as-needed ++pam_thinkfinger_so_LDFLAGS = -shared -Wl,-soname,pam_thinkfinger.so -Wl,--as-needed + pam_thinkfinger_so_CFLAGS = $(CFLAGS) + pam_thinkfinger_so_LDADD = $(top_builddir)/libthinkfinger/libthinkfinger.la $(PAM_LIBS) $(PTHREAD_LIBS) + +--- a/pam/Makefile.in ++++ b/pam/Makefile.in +@@ -201,7 +201,7 @@ pamdir = $(SECUREDIR) + INCLUDES = -I$(top_srcdir)/libthinkfinger + @HAVE_OLD_PAM_FALSE@pam_thinkfinger_so_SOURCES = pam_thinkfinger-uinput.c pam_thinkfinger-uinput.h pam_thinkfinger.c + @HAVE_OLD_PAM_TRUE@pam_thinkfinger_so_SOURCES = pam_thinkfinger-compat.c pam_thinkfinger-compat.h pam_thinkfinger-uinput.c pam_thinkfinger-uinput.h pam_thinkfinger.c +-pam_thinkfinger_so_LDFLAGS = -shared --strip-all -Wl,-soname,pam_thinkfinger.so -Wl,--as-needed ++pam_thinkfinger_so_LDFLAGS = -shared -Wl,-soname,pam_thinkfinger.so -Wl,--as-needed + pam_thinkfinger_so_CFLAGS = $(CFLAGS) + pam_thinkfinger_so_LDADD = $(top_builddir)/libthinkfinger/libthinkfinger.la $(PAM_LIBS) $(PTHREAD_LIBS) + all: all-am diff --git a/sys-auth/thinkfinger/files/0.3-tftoolgroup.patch b/sys-auth/thinkfinger/files/0.3-tftoolgroup.patch new file mode 100644 index 000000000000..169b7cefe286 --- /dev/null +++ b/sys-auth/thinkfinger/files/0.3-tftoolgroup.patch @@ -0,0 +1,64 @@ +--- tf-tool/tf-tool.c 2007-03-30 11:00:45.000000000 +0200 ++++ tf-tool/tf-tool.c 2009-02-18 14:57:24.316197097 +0100 +@@ -26,6 +26,9 @@ + #include <errno.h> + #include <libgen.h> + #include <pwd.h> ++#include <grp.h> ++#include <sys/stat.h> ++#include <unistd.h> + + #include <config.h> + #include <libthinkfinger.h> +@@ -54,6 +57,21 @@ + int swipe_failed; + } s_tfdata; + ++int changegroup(const char *groupname,const char *filename) ++{ ++ struct group *g; ++ g = getgrnam(groupname); ++ if(g == NULL) { ++ perror("getgrnam:"); ++ return 1; ++ } ++ if( chown(filename,-1,g->gr_gid) == -1) { ++ perror("chown: "); ++ return 1; ++ } ++ return 0; ++} ++ + static void print_status (int swipe_success, int swiped_required, int swipe_failed) + { + printf ("\rPlease swipe your finger (successful swipes %i/%i, failed swipes: %i)...", +@@ -64,6 +82,8 @@ + static void callback (libthinkfinger_state state, void *data) + { + char *str; ++ int err; ++ gid_t gfp; + s_tfdata *tfdata = (s_tfdata *) data; + + if (tfdata->verbose == true) { +@@ -108,8 +128,18 @@ + case TF_STATE_ENROLL_SUCCESS: + print_status (tfdata->swipe_success, 3, tfdata->swipe_failed); + printf (" done.\nStoring data (%s)...", tfdata->bir); +- fflush (stdout); +- break; ++ /*small hack to change group and chmod 640 on created bir file*/ ++ err = chmod(tfdata->bir, S_IRUSR | S_IWUSR | S_IRGRP); ++ if(err == -1) { ++ printf("Couldn't change perms on file %s\n",tfdata->bir); ++ perror("chmod:"); ++ fflush(stdout); ++ break; ++ } ++ changegroup("fingerprint",tfdata->bir); ++ fflush(stdout); ++ break; ++ /*done*/ + case TF_STATE_SWIPE_FAILED: + print_status (tfdata->swipe_success, 3, ++tfdata->swipe_failed); + break; diff --git a/sys-auth/thinkfinger/files/60-thinkfinger.rules b/sys-auth/thinkfinger/files/60-thinkfinger.rules new file mode 100644 index 000000000000..1ccc394d49ff --- /dev/null +++ b/sys-auth/thinkfinger/files/60-thinkfinger.rules @@ -0,0 +1,5 @@ +# SGS Thomson Microelectronics Fingerprint Reader +ATTRS{idVendor}=="0483", ATTRS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint" + +# the also-needed uinput device +KERNEL=="uinput", MODE="0660", GROUP="fingerprint" |