platform/upstream/libinput.git
6 years agogitlab CI: build a release with -Werror
Peter Hutterer [Wed, 27 Jun 2018 11:13:30 +0000 (21:13 +1000)]
gitlab CI: build a release with -Werror

Any compiler warnings in the default build are likely caught by developers
anyway. Let's build one with -Werror and the release buildtype to catch
anything triggered by optimization or somesuch.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodoc: fix typo in pointer acceleration docs
Peter Hutterer [Wed, 27 Jun 2018 11:03:50 +0000 (21:03 +1000)]
doc: fix typo in pointer acceleration docs

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/69

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: add record/replay to --help output
Peter Hutterer [Wed, 27 Jun 2018 04:10:57 +0000 (14:10 +1000)]
tools: add record/replay to --help output

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: libinput-record: print the list of quirks
Peter Hutterer [Fri, 22 Jun 2018 06:39:01 +0000 (16:39 +1000)]
tools: libinput-record: print the list of quirks

Now that all device quirks are in the quirks subsystem we have to print those
instead of just the udev devices.

Since libinput-record is there to record system devices, the system-installed
quirk list is used (without any commandline overrides right now). This is
useful to capture misconfigurations or missing quirks on the host system.

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/58

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: move printing device quirks to the shared tools lib
Peter Hutterer [Fri, 22 Jun 2018 06:37:16 +0000 (16:37 +1000)]
tools: move printing device quirks to the shared tools lib

This way we can re-use this from libinput-record instead of having to
duplicate all this. Since the two tools use different printfs, just make the
actual printing a simple callback.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: parse arguments before any other stuff
Peter Hutterer [Mon, 25 Jun 2018 06:06:34 +0000 (16:06 +1000)]
test: parse arguments before any other stuff

If the args are bad, we don't need to check for root and whatnot.

Only exception here is the debugger check because it changes defaults that we
may want to override with commandline arguments later.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotouchpad: don't disable tapping on MT_TOOL_PALM
Peter Hutterer [Mon, 25 Jun 2018 04:50:22 +0000 (14:50 +1000)]
touchpad: don't disable tapping on MT_TOOL_PALM

The tapping code can handle palm states now, so there is no need to disable
tapping altogether when a tool-based palm is detected.

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/65

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: fake-build the measure touch-pressure/size sources
Peter Hutterer [Thu, 21 Jun 2018 04:38:55 +0000 (14:38 +1000)]
tools: fake-build the measure touch-pressure/size sources

This way we can make them execute the list-quirks from the builddir. And it
makes it easier to run these tools from the git directory on machines where we
have libinput without the quirks.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: add a libinput-test runner for 'deviceless' tests
Peter Hutterer [Thu, 21 Jun 2018 07:05:30 +0000 (17:05 +1000)]
test: add a libinput-test runner for 'deviceless' tests

These are tests that don't need *any* uinput devices at all. Mark them
accordingly and create a new binary that only runs those tests. This way we
can run some of the test suite even in containers where we're restricted.

Better have 10% tested than none, I guess.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: switch the global device list to a struct list
Peter Hutterer [Fri, 22 Jun 2018 06:57:51 +0000 (16:57 +1000)]
test: switch the global device list to a struct list

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: fix indentation in litest-int.h
Peter Hutterer [Fri, 22 Jun 2018 06:49:56 +0000 (16:49 +1000)]
test: fix indentation in litest-int.h

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: quirks: init value to avoid valgrind errors
Peter Hutterer [Fri, 22 Jun 2018 06:13:35 +0000 (16:13 +1000)]
test: quirks: init value to avoid valgrind errors

value isn't touched where the quirk doesn't exist, so we're accessing an
uninitialized variable here.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: if we never installed any udev files, we don't need to reload
Peter Hutterer [Fri, 22 Jun 2018 05:47:18 +0000 (15:47 +1000)]
test: if we never installed any udev files, we don't need to reload

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: init test quirks in /tmp, not /run
Peter Hutterer [Thu, 21 Jun 2018 07:03:31 +0000 (17:03 +1000)]
test: init test quirks in /tmp, not /run

We don't need to be root to write to tmp

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: free the dt string
Peter Hutterer [Fri, 22 Jun 2018 07:18:48 +0000 (17:18 +1000)]
quirks: free the dt string

Not sure how that got through the valgind test before...

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agogitlab CI: add Arch to the list of built images
Peter Hutterer [Fri, 22 Jun 2018 03:34:59 +0000 (13:34 +1000)]
gitlab CI: add Arch to the list of built images

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agogitlab CI: add pkgconfig to the list
Peter Hutterer [Fri, 22 Jun 2018 03:29:09 +0000 (13:29 +1000)]
gitlab CI: add pkgconfig to the list

It's pulled in by some dependency anyway, but for the sake of being explicit,
pull it in.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoutil: use assert() instead of abort() for testing for size limits
Peter Hutterer [Thu, 21 Jun 2018 23:36:20 +0000 (09:36 +1000)]
util: use assert() instead of abort() for testing for size limits

This way we can send a message to the user, a simple abort() isn't informative
enough.

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/54

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: don't require a device for quirks parsing tests
Peter Hutterer [Thu, 21 Jun 2018 06:16:08 +0000 (16:16 +1000)]
test: don't require a device for quirks parsing tests

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agolibinput-private: constify inline helpers
Konstantin Kharlamov [Wed, 20 Jun 2018 11:09:58 +0000 (14:09 +0300)]
libinput-private: constify inline helpers

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
6 years agogitlab CI: run ninja test too
Peter Hutterer [Thu, 21 Jun 2018 05:03:49 +0000 (15:03 +1000)]
gitlab CI: run ninja test too

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/62

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: skip the test-suite runner based on SKIP_LIBINPUT_TEST_SUITE_RUNNER
Peter Hutterer [Thu, 21 Jun 2018 05:32:02 +0000 (15:32 +1000)]
test: skip the test-suite runner based on SKIP_LIBINPUT_TEST_SUITE_RUNNER

The current /dev/input/* check isn't reliable enough. So rather than adding
extra heuristics prone to fail add an environment variable that says "do not
run the test suite runner". All other tests are run since they do not
require/modify any specific system setup.

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/62

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: libinput-replay: set INPUT_PROP_* properties on the device
Peter Hutterer [Thu, 21 Jun 2018 04:07:02 +0000 (14:07 +1000)]
tools: libinput-replay: set INPUT_PROP_* properties on the device

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/60

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodoc: update docs to use a .yml suffix for libinput recorded files
Peter Hutterer [Thu, 21 Jun 2018 03:49:41 +0000 (13:49 +1000)]
doc: update docs to use a .yml suffix for libinput recorded files

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: libinput-record: use .yml suffix in the man page
Peter Hutterer [Thu, 21 Jun 2018 03:48:26 +0000 (13:48 +1000)]
tools: libinput-record: use .yml suffix in the man page

Makes things easier when users save it as yml file

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: fix zalloc max size tests
Peter Hutterer [Thu, 21 Jun 2018 04:59:58 +0000 (14:59 +1000)]
test: fix zalloc max size tests

Missing from 9873d68bf1f93b424f920a8c095e3d3ee7d3fdf5

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: touch-size: update to use the device quirks
Peter Hutterer [Thu, 21 Jun 2018 01:43:52 +0000 (11:43 +1000)]
tools: touch-size: update to use the device quirks

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/57

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: touchpad-pressure: update man page for device quirks
Peter Hutterer [Thu, 21 Jun 2018 01:41:25 +0000 (11:41 +1000)]
tools: touchpad-pressure: update man page for device quirks

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/48

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoMerge branch 'wip/measure-thumb-pressure'
Peter Hutterer [Thu, 21 Jun 2018 01:34:11 +0000 (11:34 +1000)]
Merge branch 'wip/measure-thumb-pressure'

6 years agodoc: use @verbatim, not @code for shell commands
Peter Hutterer [Thu, 21 Jun 2018 01:08:17 +0000 (11:08 +1000)]
doc: use @verbatim, not @code for shell commands

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodoc: update docs to drop hwdb references
Peter Hutterer [Thu, 21 Jun 2018 00:58:34 +0000 (10:58 +1000)]
doc: update docs to drop hwdb references

In favour of the device quirks system.

Fixes #55

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agozalloc limit fix for libinput-record
Sergiusz Michalik [Wed, 20 Jun 2018 17:34:28 +0000 (19:34 +0200)]
zalloc limit fix for libinput-record

6 years agotools: touchpad-pressure: add thumb pressure handling
Peter Hutterer [Tue, 19 Jun 2018 07:33:01 +0000 (17:33 +1000)]
tools: touchpad-pressure: add thumb pressure handling

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/49

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: touchpad-pressure: switch to using quirks for pre-loading thresholds
Peter Hutterer [Tue, 19 Jun 2018 07:17:31 +0000 (17:17 +1000)]
tools: touchpad-pressure: switch to using quirks for pre-loading thresholds

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/48

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: list-quirks: make the output easier to parse
Peter Hutterer [Tue, 19 Jun 2018 06:35:44 +0000 (16:35 +1000)]
tools: list-quirks: make the output easier to parse

Print the "has no quirks" to stderr to keep stdout tidy.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: list-quirks: print the value of the quirk too
Peter Hutterer [Tue, 19 Jun 2018 05:48:54 +0000 (15:48 +1000)]
tools: list-quirks: print the value of the quirk too

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodata: lenovo: fix device name for the X1 Carbon 6th
Peter Hutterer [Wed, 20 Jun 2018 03:07:38 +0000 (13:07 +1000)]
data: lenovo: fix device name for the X1 Carbon 6th

Possibly a typo, who knows.

https://gitlab.freedesktop.org/libinput/libinput/issues/46

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: list-quirks: add the thumb pressure threshold property
Peter Hutterer [Tue, 19 Jun 2018 06:47:45 +0000 (16:47 +1000)]
tools: list-quirks: add the thumb pressure threshold property

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: list-quirks: fix usage to read "libinput list-quirks"
Peter Hutterer [Tue, 19 Jun 2018 06:43:52 +0000 (16:43 +1000)]
tools: list-quirks: fix usage to read "libinput list-quirks"

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: list-quirks: compress a condition
Peter Hutterer [Tue, 19 Jun 2018 05:45:35 +0000 (15:45 +1000)]
tools: list-quirks: compress a condition

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: drop the JUMPING_SEMI_MT model
Peter Hutterer [Tue, 19 Jun 2018 06:48:58 +0000 (16:48 +1000)]
quirks: drop the JUMPING_SEMI_MT model

Removed from the udev properties in a55693f87c58c24b6866ed0f38c5470124be3df7
but survived here while the branch was in process.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agomeson.build: add more overrides for coverity
Peter Hutterer [Wed, 20 Jun 2018 00:13:47 +0000 (10:13 +1000)]
meson.build: add more overrides for coverity

"/usr/include/math.h", line 381: error #20: identifier "_Float32" is undefined
  # define _Mdouble_ _Float32

Same for a few others. Since we don't actually need those anyway, we can just
cast those to the some close-enough sizes. We don't have stdint.h in config.h
and meson cannot have a custom #include line in the config object. So let's go
with what does the job for now.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Matheus Santana <embs@cin.ufpe.br>
6 years agoutil: abort if we try to allocate more than a MB
Peter Hutterer [Tue, 19 Jun 2018 23:34:30 +0000 (09:34 +1000)]
util: abort if we try to allocate more than a MB

The ssize_t cast upsets coverity for some reason but we can be a lot more
restrictive here anyway. Quick analysis of the zalloc calls in the test suite
show the largest allocation is 9204 bytes.

Let's put a cap on for one MB, anything above that is likely some memory
corruption and should be caught early.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Matheus Santana <embs@cin.ufpe.br>
6 years agomeson.build: add a libinput list-devices run to the test suite
Peter Hutterer [Tue, 19 Jun 2018 22:15:14 +0000 (08:15 +1000)]
meson.build: add a libinput list-devices run to the test suite

This will only catch a segfault or some other bug since we don't actually look
at the output. But that's still better than not running it at all.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: list-devices: unref the udev device
Peter Hutterer [Tue, 19 Jun 2018 23:54:25 +0000 (09:54 +1000)]
tools: list-devices: unref the udev device

Fixes a memory leak that prevents us from running list-devices in valgrind.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: pass a valid grab parameter to list-devices
Peter Hutterer [Tue, 19 Jun 2018 21:56:05 +0000 (07:56 +1000)]
tools: pass a valid grab parameter to list-devices

My kingdome for a compiler warning. Or a scan-build warning. Or a coverity
warning. Or anything... But no, nothing.

Also make the open_restricted() more robust to a NULL userdata, because
effectively that's what we were passing here.

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/50

Introduced in 0a13223c39fdf0f079715bf83d498c0dcd9cf4f8

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoCI: WIP: attempt to clean up the registry before leaving
Benjamin Tissoires [Mon, 18 Jun 2018 13:13:17 +0000 (15:13 +0200)]
CI: WIP: attempt to clean up the registry before leaving

According to multiple sources, referenced in
https://engineering.facile.it/blog/eng/continuous-deployment-from-gitlab-ci-to-k8s-using-docker-in-docker/

The garbage collector of the registry won't clean up docker images that
still have blob references. We should clean up the manifests instead
of simply overwriting the tag.

Note: this requires to set up a personal token with api access from the
maintainers in the form of (for instance): "PERSONAL_TOKEN_bentiss"

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
6 years agoCI: speed up the docker_check stage
Benjamin Tissoires [Mon, 18 Jun 2018 07:34:10 +0000 (09:34 +0200)]
CI: speed up the docker_check stage

There is no point in login in to the registry if there is no need to
create a new docker image.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
6 years agoCI: do not pull images when checking for the creation date
Benjamin Tissoires [Fri, 15 Jun 2018 20:15:40 +0000 (22:15 +0200)]
CI: do not pull images when checking for the creation date

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
6 years agodoc: point to the gitlab ci file for a list of required packages
Peter Hutterer [Tue, 19 Jun 2018 03:27:42 +0000 (13:27 +1000)]
doc: point to the gitlab ci file for a list of required packages

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: remove a compiler warning
Peter Hutterer [Tue, 19 Jun 2018 03:13:24 +0000 (13:13 +1000)]
test: remove a compiler warning

Leftover from a previous iteration of this code - having a static but
unnecessarily large size for dirname results in:

../test/litest.c:1251:38: warning: â€˜snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
   snprintf(dest, sizeof(dest), "%s/%s", dirname, filename);
                                      ^
../test/litest.c:1251:3: note: â€˜snprintf’ output 2 or more bytes (assuming 4097) into a destination of size 4096
   snprintf(dest, sizeof(dest), "%s/%s", dirname, filename);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: add more assertion to avoid API misusage (v2)
Peter Hutterer [Tue, 19 Jun 2018 03:07:12 +0000 (13:07 +1000)]
quirks: add more assertion to avoid API misusage (v2)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoRevert "quirks: add more assertion to avoid API misusage"
Peter Hutterer [Mon, 18 Jun 2018 10:55:03 +0000 (20:55 +1000)]
Revert "quirks: add more assertion to avoid API misusage"

Ooops, this clearly didn't get tested and now aborts libinput list-quirks

Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/47

This reverts commit 2c4f963b18ff7f36cc14994c8b18bc4e4754ddde.

6 years agotest: pass the open mode to open(O_CREAT)
Peter Hutterer [Mon, 18 Jun 2018 03:41:18 +0000 (13:41 +1000)]
test: pass the open mode to open(O_CREAT)

Found by coverity

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: add more assertion to avoid API misusage
Peter Hutterer [Mon, 18 Jun 2018 03:35:34 +0000 (13:35 +1000)]
quirks: add more assertion to avoid API misusage

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: explicitly cast the log priority
Peter Hutterer [Mon, 18 Jun 2018 03:27:57 +0000 (13:27 +1000)]
quirks: explicitly cast the log priority

The values are the same and this is ABI so they will never change. Make the
cast explicit for coverity's benefit.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirk: remove unused variable
Peter Hutterer [Mon, 18 Jun 2018 03:25:02 +0000 (13:25 +1000)]
quirk: remove unused variable

Also fixes a coverity complaint about incrementing an uninitialized variable.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agogitlab ci: use GIT_DEPTH of 1
Peter Hutterer [Mon, 18 Jun 2018 02:35:42 +0000 (12:35 +1000)]
gitlab ci: use GIT_DEPTH of 1

We don't need the full repo

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoDrop the udev hwdb model quirks
Peter Hutterer [Mon, 18 Jun 2018 01:04:43 +0000 (11:04 +1000)]
Drop the udev hwdb model quirks

Replaced with the quirks files in merge commit
000ac14c27f1920fc84c0ecb1512eb7495e67634

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoRemove circle.yml
Peter Hutterer [Mon, 18 Jun 2018 01:00:23 +0000 (11:00 +1000)]
Remove circle.yml

This has been replaced with the GitLab CI in the repository proper. Circle CI
was ony ever run on a private github repo.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoMerge branch 'wip/quirks-fixes'
Peter Hutterer [Mon, 18 Jun 2018 00:55:27 +0000 (10:55 +1000)]
Merge branch 'wip/quirks-fixes'

6 years agodata: don't disable the keyboard on any Thinkpad Yoga models
Peter Hutterer [Thu, 14 Jun 2018 01:33:41 +0000 (11:33 +1000)]
data: don't disable the keyboard on any Thinkpad Yoga models

These (probably) all disable the mechanical keyboard anyway, so let's keep it
enabled to be able to access the screen keys, if any.

https://gitlab.freedesktop.org/libinput/libinput/issues/39

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodata: add the alps firmware version LUT
Peter Hutterer [Thu, 14 Jun 2018 01:57:42 +0000 (11:57 +1000)]
data: add the alps firmware version LUT

Just in case we need it

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodata: put a 'do not edit' warning into all data files
Peter Hutterer [Thu, 14 Jun 2018 01:54:52 +0000 (11:54 +1000)]
data: put a 'do not edit' warning into all data files

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodata: add ALPS v8 trackpoint range
Peter Hutterer [Thu, 14 Jun 2018 01:48:33 +0000 (11:48 +1000)]
data: add ALPS v8 trackpoint range

Got lost in the hwdb to quirks conversion

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodata: re-add the ALPS v8 size hint
Peter Hutterer [Thu, 14 Jun 2018 01:47:50 +0000 (11:47 +1000)]
data: re-add the ALPS v8 size hint

Got lost in the udev to quirks file conversion

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodata: switch alps touchpad matching to the bus/vid/pid matching
Peter Hutterer [Thu, 14 Jun 2018 01:44:48 +0000 (11:44 +1000)]
data: switch alps touchpad matching to the bus/vid/pid matching

PSMOUSE_ALPS is 0x8

https://gitlab.freedesktop.org/libinput/libinput/issues/30

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: add MatchVersion in addition to VID/PID
Peter Hutterer [Thu, 14 Jun 2018 01:42:27 +0000 (11:42 +1000)]
quirks: add MatchVersion in addition to VID/PID

Needed for the ALPS firmware detection in #39

https://gitlab.freedesktop.org/libinput/libinput/issues/39

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodata: re-add the IBM X41 quirk
Peter Hutterer [Thu, 14 Jun 2018 01:36:44 +0000 (11:36 +1000)]
data: re-add the IBM X41 quirk

Was merged while the config branch was ongoing and got lost in the process.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoCI: Hook up GitLab CI
Benjamin Tissoires [Mon, 11 Jun 2018 09:22:41 +0000 (11:22 +0200)]
CI: Hook up GitLab CI

The main tasks it does is build on a few different distros as well as build
with the various build options to make sure they work.It doesn't (yet) run the
test suite runner because that one mostly requires device nodes to operate on.

Most of the fancy is to get the docker images ready. A dnf update takes
forever, so we don't want to do that on 10 different machines. So instead we
build docker images with all the bits pre-installed, push that to the registry
and use those images for testing.

To speed things up, we only do that when the current image is older than a
week. And we only do that when we push to libinput proper, so a merge request
or pushing to your private gitlab repo will never trigger a docker image
update - it will trigger the tests and use the docker images tough.

Co-authored-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
6 years agotools: measure touchpad-pressure: prevent division by zero
Peter Hutterer [Sun, 17 Jun 2018 22:38:58 +0000 (08:38 +1000)]
tools: measure touchpad-pressure: prevent division by zero

And make sure the equivalent entry in the measure touch-size is long enough to
overwrite the current status line

https://gitlab.freedesktop.org/libinput/libinput/issues/42

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotouchpad: ignore motion on finger-up
Konstantin Kharlamov [Wed, 13 Jun 2018 11:38:20 +0000 (14:38 +0300)]
touchpad: ignore motion on finger-up

Ignore motion when pressure/touch size fell below the threshold, thus
ending the touch.

Real world significance: subjectively scrolling/cursor positioning with
a touchpad now a bit better on SAMSUNG NP305V5A laptop.

https://gitlab.freedesktop.org/libinput/libinput/merge_requests/4

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
6 years agoquirks: use realloc instead of reallocarray
Peter Hutterer [Thu, 14 Jun 2018 21:59:06 +0000 (07:59 +1000)]
quirks: use realloc instead of reallocarray

The latter requires libbsd and for that one call it's not worth it

https://gitlab.freedesktop.org/libinput/libinput/issues/40

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: fix a test device section name
Peter Hutterer [Thu, 14 Jun 2018 05:16:03 +0000 (15:16 +1000)]
test: fix a test device section name

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: fix the input_id struct for the ALPS touchpad
Peter Hutterer [Thu, 14 Jun 2018 05:17:46 +0000 (15:17 +1000)]
test: fix the input_id struct for the ALPS touchpad

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agomeson.build: always build some tests
Peter Hutterer [Thu, 14 Jun 2018 04:48:49 +0000 (14:48 +1000)]
meson.build: always build some tests

Make the meson -Dtests=false option only apply to the libinput test suite
itself which has extra dependencies, etc. The build tests and symbol leak
tests should always run.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agodata: add pressure range/palm threshold for the Dell XPS13 9333
Peter Hutterer [Thu, 14 Jun 2018 00:04:35 +0000 (10:04 +1000)]
data: add pressure range/palm threshold for the Dell XPS13 9333

https://gitlab.freedesktop.org/libinput/libinput/issues/37

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotools: fix grab argument passing for libinput debug-events
Peter Hutterer [Wed, 13 Jun 2018 03:38:09 +0000 (13:38 +1000)]
tools: fix grab argument passing for libinput debug-events

The &grab pointer we used to pass as userdata was the address of the function
argument which goes out of scope at the end of the function. This works fine
for devices immediately opened but when a device connects later, the address
may have been re-used since and it's content is undefined. If not NULL, we
end up grabbing the device.

Instead pass the grab option in which is guaranteed to live until the end of
main.

https://gitlab.freedesktop.org/libinput/libinput/issues/26

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoMove CODING_STYLE to markdown
Peter Hutterer [Wed, 13 Jun 2018 22:39:28 +0000 (08:39 +1000)]
Move CODING_STYLE to markdown

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotouchpad: replace last_point with history.samples
Konstantin Kharlamov [Tue, 12 Jun 2018 15:53:51 +0000 (18:53 +0300)]
touchpad: replace last_point with history.samples

Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
6 years agomeson.build: bump to 1.11.900
Peter Hutterer [Wed, 13 Jun 2018 05:45:27 +0000 (15:45 +1000)]
meson.build: bump to 1.11.900

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agocircleci: drop the separate libsolv update
Peter Hutterer [Wed, 13 Jun 2018 05:22:24 +0000 (15:22 +1000)]
circleci: drop the separate libsolv update

This was a F26 bug that is well and truly in stable by now
https://bugzilla.redhat.com/show_bug.cgi?id=1483553

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoMerge branch 'wip/config-files'
Peter Hutterer [Mon, 11 Jun 2018 03:45:50 +0000 (13:45 +1000)]
Merge branch 'wip/config-files'

6 years agotools: libinput-record: put extra guard in to protect from OOB access
Peter Hutterer [Mon, 11 Jun 2018 01:20:09 +0000 (11:20 +1000)]
tools: libinput-record: put extra guard in to protect from OOB access

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoutil: abort for a negative zalloc() size
Peter Hutterer [Mon, 11 Jun 2018 01:13:03 +0000 (11:13 +1000)]
util: abort for a negative zalloc() size

Nothing in libinput needs large buffers, so if we ever get something that
large, we probably passed a negative number to zalloc.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoutil: put limits on how many strings we join
Peter Hutterer [Mon, 11 Jun 2018 03:43:20 +0000 (13:43 +1000)]
util: put limits on how many strings we join

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoutil: add null string test handling to strv_join
Peter Hutterer [Mon, 11 Jun 2018 00:45:58 +0000 (10:45 +1000)]
util: add null string test handling to strv_join

Make it return NULL for a string array in the form of [ NULL ], like the docs
say. This also adds an extra safety check for the joiner to be of a reasonable
length to avoid overflows.

Found in
https://gitlab.freedesktop.org/libinput/libinput/issues/26#note_6320

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotouchpad: don't pair external touchpads with lid/tablet mode switches
Peter Hutterer [Fri, 8 Jun 2018 05:15:24 +0000 (15:15 +1000)]
touchpad: don't pair external touchpads with lid/tablet mode switches

https://gitlab.freedesktop.org/libinput/libinput/issues/29

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoHook up list-quirks --validate for the test suite
Peter Hutterer [Wed, 6 Jun 2018 04:39:39 +0000 (14:39 +1000)]
Hook up list-quirks --validate for the test suite

All the tests fill fail anyway if the validation fails but this is a quick way
to fail everything early.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: add the devicetree implementation
Peter Hutterer [Mon, 4 Jun 2018 01:18:02 +0000 (11:18 +1000)]
quirks: add the devicetree implementation

Using the compatible string

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoSwitch from udev property parsing to the quirks system
Peter Hutterer [Thu, 24 May 2018 01:56:24 +0000 (11:56 +1000)]
Switch from udev property parsing to the quirks system

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agolibinput: initialize the quirks subsystem
Peter Hutterer [Thu, 24 May 2018 01:46:31 +0000 (11:46 +1000)]
libinput: initialize the quirks subsystem

A bit quirky (haha), because we cannot do this during context creation - we
really want any parsing error messages to show up in the right log file and
the log handler isn't set up during context creation. So we do it on the first
real call to the backend - path_add_device or udev_assign_seat.

Also, failure to initialize the quirks subsystem just means we continue as
normal. This shouldn't be a hard failure, it just means a lot of devices won't
work properly.

If the LIBINPUT_DATA_DIR environment variable is set, that directory is used
for the data file. Only that directory, no custom override file in that case.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: switch the udev tag tests to be quirk tests
Peter Hutterer [Fri, 25 May 2018 00:01:47 +0000 (10:01 +1000)]
test: switch the udev tag tests to be quirk tests

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: init the quirks once per test suite run
Peter Hutterer [Thu, 24 May 2018 06:52:42 +0000 (16:52 +1000)]
test: init the quirks once per test suite run

So we have them available per litest device and can check in tests for certain
quirks to be present.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agotest: install per-test device quirks files
Peter Hutterer [Thu, 24 May 2018 05:36:22 +0000 (15:36 +1000)]
test: install per-test device quirks files

These will replace the custom udev rules we currently have in place.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: allow for in-line comments
Peter Hutterer [Wed, 30 May 2018 23:42:15 +0000 (09:42 +1000)]
quirks: allow for in-line comments

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoquirks: use an empty dmi modalias string for the test suite
Peter Hutterer [Thu, 24 May 2018 23:23:50 +0000 (09:23 +1000)]
quirks: use an empty dmi modalias string for the test suite

We don't want any of the test devices to match the local machine's DMI
modalias. This was a major drawback in the previous test suite, hacking the
dmi modalias string was nontrivial but a wrong string could cause false
positives or negatives.

The quirks system is internal, so rather than having some fancy API we just
hook it off the environment variable that the test suite always sets. Hacky,
but a lot easier than the other options.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoImplement a quirks system to replace the udev property parsing
Peter Hutterer [Mon, 21 May 2018 04:28:53 +0000 (14:28 +1000)]
Implement a quirks system to replace the udev property parsing

Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.

This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.

The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.

Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.

THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoudev: remove duplicate Chromebook Falco hwdb entry
Peter Hutterer [Wed, 30 May 2018 05:23:21 +0000 (15:23 +1000)]
udev: remove duplicate Chromebook Falco hwdb entry

We can expand the first one and re-use it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
6 years agoutil: add a safe_atou() as unsigned equivalent to safe_atoi()
Peter Hutterer [Fri, 1 Jun 2018 00:21:18 +0000 (10:21 +1000)]
util: add a safe_atou() as unsigned equivalent to safe_atoi()

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>