libfprint/fprint-add-udev-rules.patch
Matthew Garrett 3caeb4a7b4 - fprint-add-udev-rules.patch - build udev rules for autosuspend
- move hal fdi into the main package rather than -devel
2009-06-09 17:59:28 +00:00

103 lines
3.4 KiB
Diff

--- libfprint-0.1.0-pre1/libfprint/fprint-list-udev-rules.c 1970-01-01 01:00:00.000000000 +0100
+++ libfprint-0.1.0-pre1.bak/libfprint/fprint-list-udev-rules.c 2009-06-09 18:30:20.000000000 +0100
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2009 Red Hat <mjg@redhat.com>
+ * Copyright (C) 2008 Bastien Nocera <hadess@hadess.net>
+ * Copyright (C) 2008 Timo Hoenig <thoenig@suse.de>, <thoenig@nouse.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * 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 <config.h>
+#include <stdio.h>
+
+#include "fp_internal.h"
+
+static const struct usb_id whitelist_id_table[] = {
+ { .vendor = 0x08ff, .product = 0x2810 },
+ { 0, 0, 0, },
+};
+
+static const struct usb_id blacklist_id_table[] = {
+ { 0, 0, 0 },
+};
+
+struct fp_driver whitelist = {
+ .id_table = whitelist_id_table,
+};
+
+static void print_driver (struct fp_driver *driver)
+{
+ int i, j, blacklist;
+
+ for (i = 0; driver->id_table[i].vendor != 0; i++) {
+ blacklist = 0;
+ for (j = 0; blacklist_id_table[j].vendor != 0; j++) {
+ if (driver->id_table[i].vendor == blacklist_id_table[j].vendor &&
+ driver->id_table[j].product == blacklist_id_table[j].product) {
+ blacklist = 1;
+ }
+ }
+ if (blacklist)
+ continue;
+
+ printf ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ATTR{power/level}=\"auto\"\n", driver->id_table[i].vendor, driver->id_table[i].product);
+ }
+}
+
+int main (int argc, char **argv)
+{
+ struct fp_driver **list;
+ guint i;
+
+ list = fprint_get_drivers ();
+
+ for (i = 0; list[i] != NULL; i++) {
+ print_driver (list[i]);
+ }
+
+ print_driver (&whitelist);
+
+ return 0;
+}
--- libfprint-0.1.0-pre1/libfprint/Makefile.am 2008-11-18 17:18:21.000000000 +0000
+++ libfprint-0.1.0-pre1.bak/libfprint/Makefile.am 2009-06-09 18:32:10.000000000 +0100
@@ -1,6 +1,6 @@
lib_LTLIBRARIES = libfprint.la
-noinst_PROGRAMS = fprint-list-hal-info
-MOSTLYCLEANFILES = $(hal_fdi_DATA)
+noinst_PROGRAMS = fprint-list-hal-info fprint-list-udev-rules
+MOSTLYCLEANFILES = $(hal_fdi_DATA) $(udev_rules_DATA)
UPEKTS_SRC = drivers/upekts.c
UPEKTC_SRC = drivers/upektc.c
@@ -66,6 +66,15 @@
$(hal_fdi_DATA): fprint-list-hal-info
$(builddir)/fprint-list-hal-info > $@
+fprint_list_udev_rules_SOURCES = fprint-list-udev-rules.c
+fprint_list_udev_rules_CFLAGS = -fvisibility=hidden -I$(srcdir)/nbis/include $(LIBUSB_CFLAGS) $(GLIB_CFLAGS) $(IMAGEMAGICK_CFLAGS) $(CRYPTO_CFLAGS) $(AM_CFLAGS)
+fprint_list_udev_rules_LDADD = $(builddir)/libfprint.la
+
+udev_rules_DATA = 60-fprint-autosuspend.rules
+udev_rulesdir = $(sysconfdir)/udev/rules.d/
+
+$(udev_rules_DATA): fprint-list-udev-rules
+ $(builddir)/fprint-list-udev-rules > $@
if ENABLE_UPEKTS
DRIVER_SRC += $(UPEKTS_SRC)