[ANNOUNCE] libevdev 1.8.901

Peter Hutterer peter.hutterer at who-t.net
Fri Feb 21 01:17:23 UTC 2020


The first rc for libevdev 1.9 is now available.

This release fixes a bug in the way libevdev handles touches after a
SYN_DROPPED. For convenience, libevdev provides the events to terminate and
start touches after a SYN_DROPPED so that the client can use the event
stream as if it was a real event stream from the device. Where a touch has
changed (lifted and put down again in the same slot) during a SYN_DROPPED,
libevdev generates two event frames - one with the touch stopping, one with
the touch starting.

These frames were correct for the touches themselves, but the respective
BTN_TOOL_ bits were not synchronised, leading to bugs in clients that rely
on the slot state and the BTN_TOOL bits to be in sync. See this libinput
issue for some more details.
https://gitlab.freedesktop.org/libinput/libinput/issues/422

libevdev 1.9 changes how touches are synced after a SYN_DROPPED. Where two
event frames are required (i.e. at least one touch changed tracking id),
**all** touches that stopped are now stopped in the first frame and the
BTN_TOOL changes reflect that state. Any changed touches will then be
started in the second frame, together with the touches that started in
previously empty slots.

libevdev now also supports the meson build system. We will keep both
autotools and meson for now but in the long-term autotools support will go
away.

The CI has been extended and revamped to be easier to maintain and thanks to
the new meson support we hooked up things like valgrind runs and scan-build
as well.

Please do test this one since these are quite gory details within libevdev
and need a fair bit of exposure to make sure they work. CI only goes so far.

As usual, the git shortlog is below.

Alexander Dahl (1):
      doc: Fix function names in simple code example

Michael Forney (3):
      Add fallback min/max for compilers that don't have statement expressions
      Avoid initializer index range
      Only use GCC pragma on GCC

Peter Hutterer (80):
      make-event-names.py should take the files as argument
      CI: extend the CI to work with containers
      CI: move the configure flags into a variable
      CI: deduplicate distcheck by making it a variable
      CI: add a Centos 8 container build
      test: replace the SW_LID tests with SW_HEADPHONE_INSERT
      gitlab CI: switch the custom builds to Fedora 31
      gitlab CI: force a rebuild of all the docker containers
      gitlab CI: don't run distcheck on centos 7 anymore
      gitlab CI: some more centos deduplication
      test: add mangle_path to the excluded symbols leak list
      doc: add markdown for monospace rendering of defines
      test: wrap the event checks into a macro
      test: split the tests into one test case each
      test: provide a function to print an event
      test: slightly modernize some of the tests
      Simplify some error handling by assuming a >=3.4 kernel
      Add queue_push_event as shortcut for the two-liner we use everywhere
      configure.ac: add a toggle to enable the special coverity options
      gitlab CI: add a check-commit stage
      gitlab CI: remove a reference to libinput
      gitlab CI: use extends over yaml anchors
      gitlab CI: separate builddir from srcdir
      tools: drop use of HAVE_CONFIG_H
      config.h is a local include path
      tools: drop explicit GNU_SOURCE define
      uinput: drop an unused function argument
      test: fix two signed vs unsigned warnings
      test: silence warnings about missing field initializers
      Change the python script to generate event names to Python3
      flake8 fixes for make-event-names.py
      gitlab CI: rename the default_build to autotools_build
      gitlab CI: align the image tags a bit nicer
      Drop the mt_sync_state in our device struct
      Push the slot_update bits on the stack
      Push the tracking id change bits on the stack
      Uncomplicate the setting of axis during slot sync
      Localize two variables
      Compress an if statement
      gitlab CI: visually align the container images
      gitlab CI: move a few sections around
      Auto-generate the gitlab CI script
      gitlab CI: rename the default build jobs to autotools
      tools: fix the include path for local includes
      Add support for the meson build system
      gitlab CI: hook up the meson build
      meson/configure: put a comment in that we don't want to bump the soname
      gitlab CI: rename few targets for autotools
      gitlab CI: add more targets for custom meson builds
      gitlab CI: add targets to build from each others tarballs
      gitlab CI: run the test suite through valgrind
      gitlab CI: rename the custom build jobs
      gitlab CI: add a job to make sure the soname is correct for both build systems
      meson.build: fix some whitespace, put reminder comment in
      test: always ship with the helper files
      test: change the static symbol leak test to a shell script
      meson.build: hook up the static symbols leak test
      gitlab CI: replace the hardcoded meson builddir with a variable
      gitlab CI: hook up qemu
      Make the code for handling before/after SYN_DROPPED slot values more readable
      Expand the touch state handling during SYN_DROPPED
      Split the MT state syncing and event generation into two functions
      Push terminating the slots into a helper function
      Invert an if condition
      Terminate all stopped/changed touches during SYN_DROPPED in the first frame
      Update the BTN_TOOL bits correctly during SYN_DROPPED handling
      test: fix a few scan-build errors about dead storage
      test: add missing check for tripletap
      Ignore slot sync for slots > 256
      Don't try to send BTN_TOOL events for zero fingers
      Fix (theoretical) use of uninitialized variable
      test: remove unreachable switch case
      meson.build: drop an unused variable
      gitlab CI: correct some meson builddirs
      gitlab CI: fix a variable substitution
      gitlab CI: add a scan-build target
      gitlab CI: make the "this is generated" warning more obvious
      gitlab CI: extend the generation script to be somewhat more generic
      gitlab CI: move the configuration bits into a YAML file
      libevdev 1.9rc1

git tag: libevdev-1.8.901

https://www.freedesktop.org/software/libevdev/libevdev-1.8.901.tar.xz
MD5:  02c7b7f8930e6da78ef7e741396a1f78  libevdev-1.8.901.tar.xz
SHA1: ebf58ba2478c99ef99103d59f1794382c4a6dae1  libevdev-1.8.901.tar.xz
SHA256: 385c1beb311ed80301260851ccc7ba3474359c939ab47e0501afce25ab9cc5a3  libevdev-1.8.901.tar.xz
SHA512: bfee32bbfe6a8d8130202a635bff65b1465c26321e0fa02548a12ff5dd1b285afc16801384cde07f497f7a7c983e014bf26efee6da202d3e18220b7ae49f1a1e  libevdev-1.8.901.tar.xz
PGP:  https://www.freedesktop.org/software/libevdev/libevdev-1.8.901.tar.xz.sig

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/input-tools/attachments/20200221/7a164624/attachment.sig>


More information about the Input-tools mailing list