summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2019-09-04 15:09:13 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2019-09-11 12:24:02 +1000
commite7a9c07ffe9009c370ba73494729713ee9a7a279 (patch)
tree766711e7dd53599b02e9002448892dd390dfac10 /meson.build
parent1e6802b91b0c6ed377b21f553c3c842a95068df9 (diff)
downloadlibinput-e7a9c07ffe9009c370ba73494729713ee9a7a279.tar.gz
udev: parse the EVDEV_ABS properties for a potential fuzz setting
Where a fuzz is defined in the 60-evdev.hwdb, we rely on a udev builtin to set the kernel device to that fuzz value. Unfortunately that happens after our program is called with this order of events: 1. 60-evdev.rules calls IMPORT(builtin) for the hwdb which sets the EVDEV_ABS_* properties. It also sets RUN{builtin}=keyboard but that's not invoked yet. 2. 90-libinput-fuzz-override.rules calls IMPORT{program} for our fuzz override bits. That sets the kernel fuzz value to 0 and sets the LIBINPUT_FUZZ_* propertie 3. The keyboard builtin is run once all the rules have been processed. Our problem is that where the fuzz is set in a hwdb entry, the kernel fuzz is still unset when we get to look at it, so we always end up with a fuzz of zero for us and a nonzero kernel fuzz. Work around this by checking the EVDEV_ABS property, extracting the fuzz from there and re-printing that property without the fuzz. This way we ensure the kernel remains at zero fuzz and we use the one from the hwdb instead. Fixes #346 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build12
1 files changed, 10 insertions, 2 deletions
diff --git a/meson.build b/meson.build
index 6dda1926..9f800daa 100644
--- a/meson.build
+++ b/meson.build
@@ -149,8 +149,16 @@ executable('libinput-device-group',
include_directories : [includes_src, includes_include],
install : true,
install_dir : dir_udev_callouts)
-executable('libinput-fuzz-override',
- 'udev/libinput-fuzz-override.c',
+executable('libinput-fuzz-extract',
+ 'udev/libinput-fuzz-extract.c',
+ 'src/util-strings.c',
+ 'src/util-prop-parsers.c',
+ dependencies : [dep_udev, dep_libevdev, dep_lm],
+ include_directories : [includes_src, includes_include],
+ install : true,
+ install_dir : dir_udev_callouts)
+executable('libinput-fuzz-to-zero',
+ 'udev/libinput-fuzz-to-zero.c',
dependencies : [dep_udev, dep_libevdev],
include_directories : [includes_src, includes_include],
install : true,