diff options
author | 2009-02-18 15:37:39 +0000 | |
---|---|---|
committer | 2009-02-18 15:37:39 +0000 | |
commit | 10e44e6a6bc408ef35c7651233ab03f580fac83e (patch) | |
tree | 1bb9cbe0aca66c5fd6c6ac059b2d6e85db51f790 /sys-auth | |
parent | Masking sci-calculators/tilp and dependencies for removal in 30 days (diff) | |
download | gentoo-2-10e44e6a6bc408ef35c7651233ab03f580fac83e.tar.gz gentoo-2-10e44e6a6bc408ef35c7651233ab03f580fac83e.tar.bz2 gentoo-2-10e44e6a6bc408ef35c7651233ab03f580fac83e.zip |
Due to lack of hardware I have been unable to attend to this package. I will now however be proxy maintaining for Víctor Enríquez Miguel <victor.quicksilver@gmail.com> , metadata updated to reflect this. Add a fingerprint group so non-root users can use the software, as per the suggestions by Henning Schild <henning@wh9.tu-dresden.de> in bug #228919. Also add explicit chmod/chown statements to the installed script. Do not apply USB configuration 1 to the device, this was never necessary and broke with kernel 2.6.28 ("hello" patch). Added udev rules to make device handling automatic.
(Portage version: 2.1.6.7/cvs/Linux x86_64)
Diffstat (limited to 'sys-auth')
-rw-r--r-- | sys-auth/thinkfinger/ChangeLog | 20 | ||||
-rw-r--r-- | sys-auth/thinkfinger/files/0.3-carriagereturn.patch | 10 | ||||
-rw-r--r-- | sys-auth/thinkfinger/files/0.3-direct_set_config_usb_hello.patch | 31 | ||||
-rw-r--r-- | sys-auth/thinkfinger/files/0.3-tftoolgroup.patch | 64 | ||||
-rw-r--r-- | sys-auth/thinkfinger/files/60-thinkfinger.rules | 17 | ||||
-rw-r--r-- | sys-auth/thinkfinger/metadata.xml | 5 | ||||
-rw-r--r-- | sys-auth/thinkfinger/thinkfinger-0.3-r1.ebuild | 77 |
7 files changed, 222 insertions, 2 deletions
diff --git a/sys-auth/thinkfinger/ChangeLog b/sys-auth/thinkfinger/ChangeLog index ad2f90407d24..818198ca8c8e 100644 --- a/sys-auth/thinkfinger/ChangeLog +++ b/sys-auth/thinkfinger/ChangeLog @@ -1,6 +1,22 @@ # ChangeLog for sys-auth/thinkfinger -# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-auth/thinkfinger/ChangeLog,v 1.6 2007/09/08 18:21:42 vapier Exp $ +# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sys-auth/thinkfinger/ChangeLog,v 1.7 2009/02/18 15:37:38 chainsaw Exp $ + +*thinkfinger-0.3-r1 (18 Feb 2009) + + 18 Feb 2009; <chainsaw@gentoo.org> +files/0.3-carriagereturn.patch, + +files/0.3-direct_set_config_usb_hello.patch, + +files/0.3-tftoolgroup.patch, +files/60-thinkfinger.rules, metadata.xml, + +thinkfinger-0.3-r1.ebuild: + Due to lack of hardware I have been unable to attend to this package. I + will now however be proxy maintaining for Víctor Enríquez Miguel + <victor.quicksilver@gmail.com> , metadata updated to reflect this. Add a + fingerprint group so non-root users can use the software, as per the + suggestions by Henning Schild <henning@wh9.tu-dresden.de> in bug #228919. + Also add explicit chmod/chown statements to the installed script. Do not + apply USB configuration 1 to the device, this was never necessary and + broke with kernel 2.6.28 ("hello" patch). Added udev rules to make device + handling automatic. 08 Sep 2007; Mike Frysinger <vapier@gentoo.org> thinkfinger-0.3.ebuild: Make kernel check a warning and use emake in src_install. 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-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..21e1ac9461e3 --- /dev/null +++ b/sys-auth/thinkfinger/files/60-thinkfinger.rules @@ -0,0 +1,17 @@ +# +# udev rules file for the thinkfinger fingerprint scanner +# +# gives access to the fingerprint reader to those in the "fingerprint" group +# +# Taken from: +# http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger +# which was taken and modified from: +# http://article.gmane.org/gmane.linux.drivers.thinkfinger/329 +# + +# SGS Thomson Microelectronics Fingerprint Reader +SYSFS{idVendor}=="0483", SYSFS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint" + +# the also-needed uinput device +KERNEL=="uinput", MODE="0660", GROUP="fingerprint" + diff --git a/sys-auth/thinkfinger/metadata.xml b/sys-auth/thinkfinger/metadata.xml index c20e1351f56e..a3b217981493 100644 --- a/sys-auth/thinkfinger/metadata.xml +++ b/sys-auth/thinkfinger/metadata.xml @@ -3,8 +3,13 @@ <pkgmetadata> <herd>no-herd</herd> <maintainer> + <email>victor.quicksilver@gmail.com</email> + <name>Víctor Enríquez Miguel</name> + </maintainer> + <maintainer> <email>chainsaw@gentoo.org</email> <name>Tony Vroon</name> + <description>Proxy Maintainer</description> </maintainer> <longdescription></longdescription> </pkgmetadata> diff --git a/sys-auth/thinkfinger/thinkfinger-0.3-r1.ebuild b/sys-auth/thinkfinger/thinkfinger-0.3-r1.ebuild new file mode 100644 index 000000000000..80b5d14066d3 --- /dev/null +++ b/sys-auth/thinkfinger/thinkfinger-0.3-r1.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-auth/thinkfinger/thinkfinger-0.3-r1.ebuild,v 1.1 2009/02/18 15:37:38 chainsaw Exp $ + +inherit pam linux-info eutils + +DESCRIPTION="Support for the UPEK/SGS Thomson Microelectronics fingerprint reader, often seen in Thinkpads" +HOMEPAGE="http://thinkfinger.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug pam" + +RDEPEND=">=dev-libs/libusb-0.1.12 + pam? ( virtual/pam )" +DEPEND="${RDEPEND} + sys-devel/libtool + >=dev-util/pkgconfig-0.9.0" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}/${PV}-direct_set_config_usb_hello.patch" || die + epatch "${FILESDIR}/${PV}-carriagereturn.patch" || die + epatch "${FILESDIR}/${PV}-tftoolgroup.patch" || die +} + +pkg_preinst() { + enewgroup fingerprint +} + +pkg_setup() { + if use pam ; then + CONFIG_CHECK="~INPUT_UINPUT" + ERROR_CFG="Your kernel needs uinput for the pam module to work" + check_extra_config + fi +} + +src_compile() { + econf \ + $(use_enable pam) \ + $(use_enable debug usb-debug) \ + "--with-securedir=$(getpam_mod_dir)" \ + || die + emake || die +} + +src_install() { + emake DESTDIR="${D}" install || die + keepdir /etc/pam_thinkfinger + dodoc AUTHORS ChangeLog NEWS README + insinto /etc/udev/rules.d/ + doins "${FILESDIR}/60-thinkfinger.rules" +} + +pkg_postinst() { + fowners root:fingerprint /etc/pam_thinkfinger + fperms 710 /etc/pam_thinkfinger + elog "Use tf-tool --acquire to take a finger print" + elog "tf-tool will write the finger print file to /tmp/test.bir" + elog "" + if use pam ; then + elog "To add a fingerprint to PAM, use tf-tool --add-user USERNAME" + elog "" + elog "Add the following to /etc/pam.d/system-auth after pam_env.so" + elog "auth sufficient pam_thinkfinger.so" + elog "" + elog "Your system-auth should look similar to:" + elog "auth required pam_env.so" + elog "auth sufficient pam_thinkfinger.so" + elog "auth sufficient pam_unix.so try_first_pass likeauth nullok" + elog "" + fi +} |