summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/udev.c4
-rw-r--r--configure.ac9
-rw-r--r--include/dix-config.h.in6
3 files changed, 19 insertions, 0 deletions
diff --git a/config/udev.c b/config/udev.c
index 1ba0d500d..e2b3726cc 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -285,8 +285,10 @@ config_udev_init(void)
udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "input", NULL);
udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "tty", NULL); /* For Wacom serial devices */
+#ifdef HAVE_UDEV_MONITOR_FILTER_ADD_MATCH_TAG
if (SeatId && strcmp(SeatId, "seat0"))
udev_monitor_filter_add_match_tag(udev_monitor, SeatId);
+#endif
if (udev_monitor_enable_receiving(udev_monitor)) {
ErrorF("config/udev: failed to bind the udev monitor\n");
@@ -300,8 +302,10 @@ config_udev_init(void)
udev_enumerate_add_match_subsystem(enumerate, "input");
udev_enumerate_add_match_subsystem(enumerate, "tty");
+#ifdef HAVE_UDEV_ENUMERATE_ADD_MATCH_TAG
if (SeatId && strcmp(SeatId, "seat0"))
udev_enumerate_add_match_tag(enumerate, SeatId);
+#endif
udev_enumerate_scan_devices(enumerate);
devices = udev_enumerate_get_list_entry(enumerate);
diff --git a/configure.ac b/configure.ac
index ecd538674..7c5aaaf03 100644
--- a/configure.ac
+++ b/configure.ac
@@ -822,6 +822,15 @@ if test "x$CONFIG_UDEV" = xyes; then
AC_MSG_ERROR([udev configuration API requested, but libudev is not installed])
fi
AC_DEFINE(CONFIG_UDEV, 1, [Use libudev for input hotplug])
+
+ SAVE_LIBS=$LIBS
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS=$UDEV_CFLAGS
+ LIBS=$UDEV_LIBS
+ AC_CHECK_FUNCS([udev_monitor_filter_add_match_tag])
+ AC_CHECK_FUNCS([udev_enumerate_add_match_tag])
+ LIBS=$SAVE_LIBS
+ CFLAGS=$SAVE_CFLAGS
fi
dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index aa7de60bd..7d6cb966c 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -399,6 +399,12 @@
/* Use libudev for input hotplug */
#undef CONFIG_UDEV
+/* Use udev_monitor_filter_add_match_tag() */
+#undef HAVE_UDEV_MONITOR_FILTER_ADD_MATCH_TAG
+
+/* Use udev_enumerate_add_match_tag() */
+#undef HAVE_UDEV_ENUMERATE_ADD_MATCH_TAG
+
/* Use D-Bus for input hotplug */
#undef CONFIG_NEED_DBUS