[PATCH libinput 1/9] udev: make sure the udev callout path is valid for a test run
Hans de Goede
hdegoede at redhat.com
Wed Jul 8 05:28:46 PDT 2015
Hi,
On 01-07-15 08:08, Peter Hutterer wrote:
> 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 <peter.hutterer at who-t.net>
LGTM: Reviewed-by: Hans de Goede <hdegoede at redhat.com>
Regards,
Hans
> ---
> 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 at 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
>
More information about the wayland-devel
mailing list