udev requires callout binaries to sit in /lib/udev or otherwise provide an absolute path. The test suite should work without installing everything first, so create two rule files - one to install, one with the path to the $builddir/test
Signed-off-by: Peter Hutterer <[email protected]> --- configure.ac | 10 +++++++++- test/Makefile.am | 2 +- udev/.gitignore | 1 + udev/80-libinput-device-groups.rules | 8 -------- udev/80-libinput-device-groups.rules.in | 8 ++++++++ udev/90-libinput-model-quirks.rules | 28 ---------------------------- udev/90-libinput-model-quirks.rules.in | 28 ++++++++++++++++++++++++++++ udev/Makefile.am | 12 ++++++++++++ 8 files changed, 59 insertions(+), 38 deletions(-) delete mode 100644 udev/80-libinput-device-groups.rules create mode 100644 udev/80-libinput-device-groups.rules.in delete mode 100644 udev/90-libinput-model-quirks.rules create mode 100644 udev/90-libinput-model-quirks.rules.in diff --git a/configure.ac b/configure.ac index 314b0d4..7cf4b73 100644 --- a/configure.ac +++ b/configure.ac @@ -184,6 +184,12 @@ AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"]) AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes"]) AM_CONDITIONAL(BUILD_DOCS, [test "x$build_documentation" = "xyes"]) +# Used by the udev rules so we can use callouts during testing without +# installing everything first. Default is the empty string so the installed +# rule will use udev's default path. Override is in udev/Makefile.am +AC_SUBST(UDEV_TEST_PATH, "") +AC_PATH_PROG(SED, [sed]) + AC_CONFIG_FILES([Makefile doc/Makefile doc/libinput.doxygen @@ -192,7 +198,9 @@ AC_CONFIG_FILES([Makefile src/libinput-version.h test/Makefile tools/Makefile - udev/Makefile]) + udev/Makefile + udev/80-libinput-device-groups.rules + udev/90-libinput-model-quirks.rules]) AC_CONFIG_FILES([test/symbols-leak-test], [chmod +x test/symbols-leak-test]) AC_OUTPUT diff --git a/test/Makefile.am b/test/Makefile.am index 6a55c7f..ebb853a 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -40,7 +40,7 @@ liblitest_la_SOURCES = \ litest.c liblitest_la_LIBADD = $(top_builddir)/src/libinput-util.la liblitest_la_CFLAGS = $(AM_CFLAGS) \ - -DLIBINPUT_UDEV_RULES_FILE="\"$(abs_top_srcdir)/udev/90-libinput-model-quirks.rules\"" \ + -DLIBINPUT_UDEV_RULES_FILE="\"$(abs_top_srcdir)/udev/90-libinput-model-quirks-litest.rules\"" \ -DLIBINPUT_UDEV_HWDB_FILE="\"$(abs_top_srcdir)/udev/90-libinput-model-quirks.hwdb\"" if HAVE_LIBUNWIND liblitest_la_LIBADD += $(LIBUNWIND_LIBS) -ldl diff --git a/udev/.gitignore b/udev/.gitignore index d8e1456..72c77a0 100644 --- a/udev/.gitignore +++ b/udev/.gitignore @@ -1 +1,2 @@ libinput-device-group +*.rules diff --git a/udev/80-libinput-device-groups.rules b/udev/80-libinput-device-groups.rules deleted file mode 100644 index f826bec..0000000 --- a/udev/80-libinput-device-groups.rules +++ /dev/null @@ -1,8 +0,0 @@ -ACTION!="add|change", GOTO="libinput_device_group_end" -KERNEL!="event[0-9]*", GOTO="libinput_device_group_end" - -ATTRS{phys}=="?*", \ - PROGRAM="libinput-device-group %S%p", \ - ENV{LIBINPUT_DEVICE_GROUP}="%c" - -LABEL="libinput_device_group_end" diff --git a/udev/80-libinput-device-groups.rules.in b/udev/80-libinput-device-groups.rules.in new file mode 100644 index 0000000..c2af0ce --- /dev/null +++ b/udev/80-libinput-device-groups.rules.in @@ -0,0 +1,8 @@ +ACTION!="add|change", GOTO="libinput_device_group_end" +KERNEL!="event[0-9]*", GOTO="libinput_device_group_end" + +ATTRS{phys}=="?*", \ + PROGRAM="@UDEV_TEST_PATH@libinput-device-group %S%p", \ + ENV{LIBINPUT_DEVICE_GROUP}="%c" + +LABEL="libinput_device_group_end" diff --git a/udev/90-libinput-model-quirks.rules b/udev/90-libinput-model-quirks.rules deleted file mode 100644 index 43674f5..0000000 --- a/udev/90-libinput-model-quirks.rules +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file, it will be overwritten on update -# -# This file contains lookup rules for libinput model-specific quirks. -# The contents of this file are a contract between libinput, udev rules and -# the hwdb. -# IT IS NOT A STABLE API AND SUBJECT TO CHANGE AT ANY TIME -# -# The hwdb database is in: -# 90-libinput-model-quirks.hwdb - -ACTION!="add|change", GOTO="libinput_model_quirks_end" -KERNEL!="event*", GOTO="libinput_model_quirks_end" - -# Matches below are exclusive, if one matches we skip the rest -# hwdb matches: -# -# libinput:touchpad:<modalias> -ENV{ID_INPUT_TOUCHPAD}=="1", \ - IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=libinput:touchpad:", \ - GOTO="libinput_model_quirks_end" - -# libinput:name:<name>:dmi:<dmi string> -KERNELS=="input*", \ - IMPORT{builtin}="hwdb 'libinput:name:$attr{name}:$attr{[dmi/id]modalias}'", \ - GOTO="libinput_model_quirks_end" - - -LABEL="libinput_model_quirks_end" diff --git a/udev/90-libinput-model-quirks.rules.in b/udev/90-libinput-model-quirks.rules.in new file mode 100644 index 0000000..43674f5 --- /dev/null +++ b/udev/90-libinput-model-quirks.rules.in @@ -0,0 +1,28 @@ +# Do not edit this file, it will be overwritten on update +# +# This file contains lookup rules for libinput model-specific quirks. +# The contents of this file are a contract between libinput, udev rules and +# the hwdb. +# IT IS NOT A STABLE API AND SUBJECT TO CHANGE AT ANY TIME +# +# The hwdb database is in: +# 90-libinput-model-quirks.hwdb + +ACTION!="add|change", GOTO="libinput_model_quirks_end" +KERNEL!="event*", GOTO="libinput_model_quirks_end" + +# Matches below are exclusive, if one matches we skip the rest +# hwdb matches: +# +# libinput:touchpad:<modalias> +ENV{ID_INPUT_TOUCHPAD}=="1", \ + IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=libinput:touchpad:", \ + GOTO="libinput_model_quirks_end" + +# libinput:name:<name>:dmi:<dmi string> +KERNELS=="input*", \ + IMPORT{builtin}="hwdb 'libinput:name:$attr{name}:$attr{[dmi/id]modalias}'", \ + GOTO="libinput_model_quirks_end" + + +LABEL="libinput_model_quirks_end" diff --git a/udev/Makefile.am b/udev/Makefile.am index 7d19809..e5cf95c 100644 --- a/udev/Makefile.am +++ b/udev/Makefile.am @@ -1,6 +1,10 @@ udevdir=$(UDEV_DIR) udev_PROGRAMS = libinput-device-group +litest_rules = 80-libinput-device-groups-litest.rules \ + 90-libinput-model-quirks-litest.rules +udev_SCRIPTS = $(litest_rules) + libinput_device_group_SOURCES = libinput-device-group.c libinput_device_group_CFLAGS = $(LIBUDEV_CFLAGS) $(GCC_CFLAGS) libinput_device_group_LDADD = $(LIBUDEV_LIBS) @@ -13,3 +17,11 @@ dist_udev_rules_DATA = \ udev_hwdbdir=$(UDEV_DIR)/hwdb.d dist_udev_hwdb_DATA = \ 90-libinput-model-quirks.hwdb + +%-litest.rules: %.rules.in + $(SED) -e "s|\@UDEV_TEST_PATH\@|$(abs_builddir)/|" < $^ > $@ + +CLEANFILES = $(litest_rules) +DISTCLEANFILES = \ + 80-libinput-device-groups.rules \ + 90-libinput-model-quirks.rules -- 2.4.3 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
