Commit graph

2675 commits

Author SHA1 Message Date
Philip Withnall
2d8b79877f build: Add -Iinclude to unit tests
It seems the unit tests rely on another part of <linux/input.h> which I
missed in the previous commit (5cf4b35b).

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-08-21 12:00:36 +10:00
Philip Withnall
1cfae5a4a5 build: Add -Iinclude to libinput and its tools
Various files use #include <linux/input.h> and, if the system input.h is
too old, will fail to compile. Use the internal copy by adding -Iinclude
to the build command lines. This was the case in the old autotools build
system.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-08-21 12:00:34 +10:00
Jussi Kukkonen
3dffe36854 tools: Fix race in (autotools) install
exec/data distinction is done based on install dir so compat scripts
must be moved in exec hook.

This should fix this occasional failure:
| install: cannot change permissions of
| ‘/usr/bin/libinput-debug-events.compat’: No such file or directory

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-08-15 09:46:52 +02:00
Peter Hutterer
cc9a4debd3 configure.ac: libinput 1.8.1 2017-07-19 10:01:03 +10:00
Peter Hutterer
c75e052ad4 touchpad: set keyboard to non-active when the keyboard is removed
If the keyboard is removed while dwt thinks it is in active state, that state
is never reset and subsequent touches are ignored.

https://bugs.freedesktop.org/show_bug.cgi?id=101743

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 9e5d1df4bb)
2017-07-13 15:08:34 +10:00
Peter Hutterer
429fc47bb1 Add support for CircleCI
This isn't currently hooked up to the fdo repo but it's hooked up to my
github mirror. I had SemaphoreCI hooked up to that before but it only
supports ubuntu 14.04 and the recent meson switch made it a bit hard to setup.

CircleCI supports running docker containers, so let's do that and run against
the most recent released Fedora and a recent Ubuntu. I'm not bothering with
rawhide, it's likely to increase the work for little gain when it's in a
semi-broken state.

Run the default build with a few permutations to test meson options. Run
scan-build too but that's just for the logs, eventually this may turn into a
hard failure.

Ubuntu 17.04's meson is too old, so we have to clone that from git. Install
arguments are taken from the meson.deb package.

Most of this effort was done by Benjamin Tissoires.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Cc: Benjamin Tissoires <benjamin.tissoires@gmail.com>
(cherry picked from commit eb36957625)
2017-07-10 15:17:18 +10:00
Peter Hutterer
b6ce9c0f3b doc: expand on the meson build instructions
https://bugs.freedesktop.org/show_bug.cgi?id=101686

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 7b98f8ef47)
2017-07-10 15:16:43 +10:00
Peter Hutterer
40439b7347 meson: fix build with --libwacom=false
Triggered an error because we still used dep_libwacom unconditionally:
	Meson encountered an error in file meson.build, line 76, column 0:
	Unknown variable "dep_libwacom".

https://bugs.freedesktop.org/show_bug.cgi?id=101693

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit c6e0c96e74)
2017-07-10 15:16:39 +10:00
Peter Hutterer
d1a575c8e5 touchpad: increase palm edge zones to 8%
Most modern touchpads are around 100mm wide, so this provides a ca 8mm edge
zone on each side. The extra 3mm should provide for more reliable palm
detection, a few touches happen to be just on the edge of the 5mm mark.

https://bugs.freedesktop.org/show_bug.cgi?id=101433

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 381cce8ddd)
2017-07-10 15:16:37 +10:00
Peter Hutterer
401728a157 configure.ac: libinput 1.8.0
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-07-03 15:07:20 +10:00
Peter Hutterer
945122c691 tools: tidy up the libinput man pages again
Make the libinput page more generic but suitable for short attention spans and
most importantly, point to the xf86-input-libinput man page in a more obvious
manner since we're now shadowing that.

The rest of the man pages have punctuation and formatting cleanups only.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-07-03 15:04:11 +10:00
Peter Hutterer
57e35f4afa README: tidy up the documentation links
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-07-03 14:43:26 +10:00
Peter Hutterer
5bba2dbb3f tools: add the libinput version to the man pages
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-07-03 11:09:03 +10:00
Peter Hutterer
24ad008294 meson: install the libinput-debug-gui if we build it
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-28 07:20:10 +10:00
Peter Hutterer
1e9ebfa300 README: fix link to libinput-debug-events
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-28 07:20:10 +10:00
Peter Hutterer
98b8fb8f98 configure.ac: libinput 1.7.902
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-26 19:04:08 +10:00
Peter Hutterer
1d52f2f567 tools: fix invocation of subtools
One dash too many. Oops.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-26 18:44:00 +10:00
Peter Hutterer
1cfab540a4 meson: add preceding spaces before colons where needed
Meson does not have a single style but the "foo : bar" style is more common in
the docs and in our meson.build file. Make it consistent.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-26 18:43:59 +10:00
Peter Hutterer
3b2c47a86d test: strdup the suite and test name
The check framework takes and stores the pointer and expects it to be live for
the livetime of the test but it doesn't strdup it. We have to keep those
pointers around ourselves.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-26 18:43:59 +10:00
Peter Hutterer
d1b7b6267c tools: split the configuration option parsing out
We had one shared parsing function for all config options so tools parse
options that don't actually make sense (e.g. --quiet or --show-keycodes for
libinput-list-devices).

This patch splits the actual libinput device configuration out and reshuffles
everything to make use of that. One large patch, because splitting this up is
more confusing than dumping it all.

This means the actual option parsing is partially duplicated between debug-gui
and debug-events but hey, not everything in life is perfect.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-26 18:43:59 +10:00
Peter Hutterer
be7da7f7da touchpad: ignore the tap motion threshold if fingers > slots
Do so on the synaptics serial touchpads at least, they're known to cause
cursor jumps when the third finger is down. Not detecting a tap move means
three-finger taps get more reliable on these touchpads.

This change affects gestures who now effectively have to wait for the tap
timeout to happen. It's a trade-off.

https://bugs.freedesktop.org/show_bug.cgi?id=101435
https://bugzilla.redhat.com/show_bug.cgi?id=1455443

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-26 18:43:59 +10:00
Peter Hutterer
96b885c29a meson: swap libinput dependencies
Since meson commit ae9b238 "ninja: De-dup libraries and use --start/end-group"
we get linker errors with the tools. The duplication is apparently a bit too
agressive, swapping the order here make sure libinput isn't removed.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reported-by: Michel Dänzer <michel@daenzer.net>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
2017-06-26 18:43:21 +10:00
Peter Hutterer
ec27aa3a78 Skip restorecon if it cannot be found
https://bugs.freedesktop.org/show_bug.cgi?id=101557

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-23 09:58:42 +10:00
Peter Hutterer
8728b5b38f tools: shorten the --help output for the commands
The full information is now in the man page, the usage() now just tells you
how to use it. This way there's only one place to maintain it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-22 17:48:12 +10:00
Peter Hutterer
933ab0e95f test: remove duplicate test
Copy/paste error, no functional changes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-22 14:53:22 +10:00
Peter Hutterer
f10c0c590c touchpad: update the timestamp even when we only get other axes
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-21 19:07:11 +10:00
Peter Hutterer
64f6603ecb touchpad: rename tp_touch->millis to tp_touch->time
This is in µs and hasn't been in ms for a long time.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-21 19:07:11 +10:00
Peter Hutterer
dd25e1799f meson: restore the SELinux context for our .so file on install
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2017-06-21 19:06:46 +10:00
Eric Engestrom
2ee95c7b76 doc: update build instructions for Arch
`abs` has been deprecated, and shut down last month. [1]
`asp` replaces it, so rewrite the instructions to use this instead.

Also, add `--noextract` to the makepkg command, as there is no point
downloading and extracting the sources since they're not going to be
built here.

[1] https://www.archlinux.org/news/deprecation-of-abs/

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-21 08:41:45 +10:00
Peter Hutterer
948cd6ee54 doc: add instructions for handling SELinux denials
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-06-21 08:30:55 +10:00
Peter Hutterer
ca1edce2e1 tools: add the compat scripts installer script to the tarball
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-06-20 16:43:49 +10:00
Peter Hutterer
cca3b5f630 meson: build docs by default, but allow disabling it
This is the behavior of configure as well.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-06-20 16:43:49 +10:00
Peter Hutterer
088c3ea16b meson: rename 'enable-tests' option to just 'tests'
All the other config options have a simple true/false as well.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-06-20 16:43:49 +10:00
Philippe Coval
4cf9f8bee1 doc: Fix mistake in Matrix example to relect only X along Y axis
On some devices, X coordinate is not working well, like if it is swapped:
click on right, pointer appear on left and vice versa.

To sort this issue, coordinates should be reflected on Y axis:
- new X position is changed (width is subtracted by X position)
- Y is unchanged (it was wrongly set to X)

In landscape (or portrait) mode:

                [  x  ]
                [  y  ]
                [  1  ]
              *    =
  [ -1 0 1  ]   [  x' ] = -x + 0*y + 1*width
  [  0 1 0  ]   [  y' ] = 0*x + 1*y + 0*height
  [  0 0 1  ]   [  1  ]

This was verified using this touch screen (usb="0eef:0001")

  E: ID_VENDOR=eGalax_Inc.
  E: ID_VENDOR_ENC=eGalax\x20Inc.
  E: ID_VENDOR_ID=0eef

https://bugs.freedesktop.org/show_bug.cgi?id=101474

Signed-off-by: Philippe Coval <philippe.coval@osg.samsung.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-20 16:43:49 +10:00
Peter Hutterer
d2054c8188 touchpad: use the "is internal keyboard" tag to enable dwt
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-19 15:42:43 +10:00
Peter Hutterer
3a17d0da5e doc: drop the Fedora "ninja-build" note
The packages have been in stable for 6 weeks as of this patch, let's not worry
about the old ones.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-19 13:11:58 +10:00
Peter Hutterer
2887bb4783 tools: assert on malloc failure
No need for proper recovery here in this debugging tool.
Also sneak in a whitespace fix while we're here.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-19 12:16:23 +10:00
Peter Hutterer
673d946275 evdev: default to log error priority
Fixes compiler warning:
evdev.c:2899:2: warning: 'pri' may be used uninitialized in this function
[-Wmaybe-uninitialized]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-19 10:37:36 +10:00
Peter Hutterer
6d27ff38c0 configure.ac: libinput 1.7.901
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-19 09:32:43 +10:00
Peter Hutterer
7e57123069 tools: grab the pointer in the debug gui
Because it's too annoying to trigger the hot corner every few seconds while
pointer debugging.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-15 17:46:51 +10:00
Peter Hutterer
980ad92c88 gitignore: drop test/test-* pattern
Obsolete since the libinput-test-suite-runner was added

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-15 17:46:51 +10:00
Peter Hutterer
69d0bacee9 Remove vestiges of the event-gui
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-15 17:46:51 +10:00
Peter Hutterer
2d2e523549 tools: note that the touchpad-tap measuring tool picks a touchpad
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-13 13:56:28 +10:00
Peter Hutterer
2c9de57667 doc: use the same formatting for the gcc command as for everything else
Without the @code tag, the font size differs to everything else in this file

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-13 12:32:43 +10:00
Peter Hutterer
bb5db8dbca doc: update building notes with the bug to ninja vs ninja-build on Fedora
Up-to-date Fedora doesn't need to use ninja-build anymore

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-13 12:30:35 +10:00
Peter Hutterer
44b9dca9d5 tools: update the publish-doc tool to use ninja
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-13 12:28:37 +10:00
Peter Hutterer
b3779caef7 doc: add a short blurb regarding lid switch handling
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-13 12:21:33 +10:00
Peter Hutterer
42ee99ee4d test: decouple our tests/test suites from the ones used by check
Check arranges the tests into suites and test cases (which then can have
multiple test functions). The primary feature for suites is the ability to
select them with environment variables and that the log messages are printed
per suite, not per test case.

We used the suites to distribute tests across the processes forked by the test
runner, but that also resulted in slow suites relying on timeouts (tap/dwt) to
take a lot longer than other suites and hold everything else up.

This patch basically drops the use of check test suites. Our test runner has a
--filter-group argument which selects on suite names, the log messages are
more useful if they immediately include the device and the test case name.

So we just save the test metatdata in our own struct and then assemble a
suite/test case on the fly for each test.

The advantage of this is that tests of the same suite are now distributed
across the forks so slow tests that rely on length timeouts are now run in
parallel. This brings the test runs down to under 6 min again.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-13 10:09:55 +10:00
Peter Hutterer
c837cf8d78 tools: free the tap data on error
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-13 08:33:12 +10:00
Peter Hutterer
5ba30f7b42 tools: add missing toffset copy from src to dest while duplicating
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-13 08:31:15 +10:00