summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* gitlab CI: use the new templates with a single job onlyPeter Hutterer2020-03-173-122/+68
| | | | | | | No more ifnot-exists, it's all build now with a variable to control the forced rebuild. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Don't overrun the changes array when synching > MAX_SLOTSPeter Hutterer2020-03-131-2/+6
| | | | | | | | | | | | | On a device with more than 256 slots we would read (and copy) past our changes stack-allocated changes array. Fix this by capping to MAX_SLOTS though this also requires us to memset the target where it is larger than MAX_SLOTS. There are no real devices with 256+ slots, so this is a theoretical issue only. Fixes #11 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* meson.build: use local include path for testsPeter Seiderer2020-03-131-0/+7
| | | | | | | | | | | | | | | | | | | | | Fixes: ../test/test-common.h: In function ‘print_event’: ../test/test-common.h:97:6: error: ‘const struct input_event’ has no member named ‘input_event_sec’ ev->input_event_sec, ^ ../test/test-common.h:98:6: error: ‘const struct input_event’ has no member named ‘input_event_usec’ ev->input_event_usec, ^ ../test/test-common.h:102:6: error: ‘const struct input_event’ has no member named ‘input_event_sec’ ev->input_event_sec, ^ ../test/test-common.h:103:6: error: ‘const struct input_event’ has no member named ‘input_event_usec’ ev->input_event_usec, ^ Signed-off-by: Peter Seiderer <ps.report@gmx.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* meson.build: use local include path for toolsPeter Seiderer2020-03-131-0/+4
| | | | | | | | | | | | | | | | Fixes the following compile failure with old toolchains and meson build (autotools build not affected): ../tools/mouse-dpi-tool.c: In function ‘handle_event’: ../tools/mouse-dpi-tool.c:115:13: error: ‘const struct input_event’ has no member named ‘input_event_sec’ m->us = ev->input_event_sec * 1000000 + ev->input_event_usec; ^ ../tools/mouse-dpi-tool.c:115:45: error: ‘const struct input_event’ has no member named ‘input_event_usec’ m->us = ev->input_event_sec * 1000000 + ev->input_event_usec; ^ Signed-off-by: Peter Seiderer <ps.report@gmx.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: rebuild images for the new templatesPeter Hutterer2020-03-132-15/+15
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: expand tag lists to 100 per pagePeter Hutterer2020-03-131-1/+1
| | | | | | Lets make sure we can delete more than 20 tags at a time. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: use the ifnot-exists templates from ci-templatesPeter Hutterer2020-03-132-74/+245
| | | | | | | | | | Let's not duplicate the functionality, use the upstream templates because they'll actually see improvements over time. Define two jobs, one that is the ifnot-exists job and one that is the normal container-build job. The second one only runs on schedules. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: remove obsolete variable expansionPeter Hutterer2020-03-132-4/+2
| | | | | | | gitlab doesn't support double-nested variables so we can assume that these variables don't need further expansion Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: Use the new fdo CI templates distribution imagesPeter Hutterer2020-03-132-55/+26
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: make the container-clean dependent on container-prepPeter Hutterer2020-03-132-0/+11
| | | | | | | | This is a test commit only to speed things up when testing the container-clean phase. In the real instance, we don't want to remove our containers until the test suite successfully completes on the new container. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: add static-build meson pipelinePeter Seiderer2020-03-112-0/+14
| | | | Signed-off-by: Peter Seiderer <ps.report@gmx.net>
* meson.build: enable static library buildPeter Seiderer2020-03-101-1/+1
| | | | | | | Use meson library() instead of shared_library() to enable static build. Signed-off-by: Peter Seiderer <ps.report@gmx.net>
* gitlab ci: add a helper script for container deletionPeter Hutterer2020-03-093-128/+95
| | | | | | | Rather than raw curl requests to the API, use a python script using the gitlab python package to access everything. This makes things a bit more readable. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: update to the distribution-independent CI-templatesPeter Hutterer2020-03-093-330/+431
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These templates get rid of the various distribution-specific naming and instead default to the namespaced FDO_DISTRIBUTION_<foo> for whatever value we need. So FEDORA_RPMS, DEBIAN_DEBS etc. becomes FDO_DISTRIBUTION_PACKAGES for example. By necessity this is one large commit. gitlab does not allow nested variable expansion, so the previous approach of global variables didn't work. Specifically, we'd end up with a template in this form: variables: FEDORA_TAG: 12345 .base_template: variables: DISTRO_IMAGE: $DISTRO_TAG .fedora: variables: $DISTRO_TAG: $FEDORA_TAG But the actual DISTRO_IMAGE variable would be the literal string $FEDORA_TAG, not the value of that variable. So all of it needed to be reworked. Specifically: - the packages to install moved to the config yaml file - the distribution tag is now in the config yaml file - all distributions now share the same tag (because lazyness) - there are .fedora:30, .debian:stable, etc. templates now with the variables defined as needed, jobs will extends those templates as they need those distributions - qemu-prep jobs are now generated too (based on the config yaml file) Overall, it ends up cleaner despite the mess in this patch. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: group the config by distribution typePeter Hutterer2020-03-062-31/+34
| | | | | | No functional changes, this produces the same gitlab CI file Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: expire the results.xml artifactsPeter Hutterer2020-03-062-0/+2
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* README: note that patches go as MRs to gitlab nowPeter Hutterer2020-03-061-3/+5
| | | | | | | | Make the GitLab spelling consistent too and remove the git protocol link, it looks awkward in the rendering and you can get all that from the gitlab repo anyway Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* libevdev 1.9.0libevdev-1.9.0Peter Hutterer2020-03-022-2/+2
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: keep the results of the check-commit job as artifactPeter Hutterer2020-03-022-0/+6
| | | | | | | | | | Due to how pytest is used, we don't get the actual errors printed in the commandline log if this job fails. This doesn't matter in merge requests where the results are displayed nicely but where there's no merge request we can't get this info out at all. So let's simply store the xml file for an easy check. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Use editorconfig instead of a sprinkling of :vim: instructionsPeter Hutterer2020-02-277-11/+21
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: drop the distribution "flavor" in favor of just the namePeter Hutterer2020-02-262-29/+29
| | | | | | | This is a leftover from ci-templates where the name of a distribution didn't necessarily match the image (arch vs archlinux) and is no longer needed. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: move the container-clean git strategy to the parent sectionPeter Hutterer2020-02-262-11/+4
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: don't allow failures on the kvm jobsPeter Hutterer2020-02-262-2/+0
| | | | | | | | This is a leftover from libinput where we have to allow failures because of frequent issues with timing. We don't have these issues here so a failed job in the VM indicates a bug. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: update to the latest ci-templates againPeter Hutterer2020-02-252-18/+18
| | | | | | | | Unclear what happend but I suspect a rebase went wrong so e03cdd1d3ff3731eb1432501c48b742e2c6e34ca didn't actually update to the new ci-templates. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: prefill the junit conversion script from the gitlab environmentPeter Hutterer2020-02-242-7/+12
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: re-use the meson-build.sh script for normal meson jobsPeter Hutterer2020-02-243-12/+15
| | | | | | Let's invoke the same meson steps for every build task. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: hook up junit test reports to the meson resultsPeter Hutterer2020-02-245-6/+140
| | | | | | | | | | | The KVM tests use this for now, not the container builds where we run meson directly. The python script to convert meson test logs to junit results expects suite names, so let's add all tests to suites so we don't need to carry local modifications. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: update to latest ci-templatesPeter Hutterer2020-02-243-17/+16
| | | | | | | This gives us a warning where qemu failed to start and it gets rid of the different "flavor" that only archlinux had different to the distribution name. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: generate the template list from the config dataPeter Hutterer2020-02-242-29/+13
| | | | | | | Only change in the actual gitlab CI file is that the sorting is now alphabetical. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: set the vim filetype for the template filePeter Hutterer2020-02-242-2/+2
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* libevdev 1.9rc1libevdev-1.8.901Peter Hutterer2020-02-212-2/+2
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: move the configuration bits into a YAML filePeter Hutterer2020-02-214-35/+47
| | | | | | | Only one change: the meson boolean to decide whether to build with meson is now inside the build: block. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: extend the generation script to be somewhat more genericPeter Hutterer2020-02-211-3/+27
| | | | | | Mostly busywork, it moves the hardcoded paths into a variables, etc. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: make the "this is generated" warning more obviousPeter Hutterer2020-02-212-4/+14
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: add a scan-build targetPeter Hutterer2020-02-202-4/+14
| | | | | | | | To avoid dnf updates and outdated packages (and the resulting delay from a dnf update) we just install the clang-analyzer package into the default Fedora image. It won't mess with the build expectations too much. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: fix a variable substitutionPeter Hutterer2020-02-202-2/+2
| | | | | | Single quotes means we're not expanding the variable here Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* gitlab CI: correct some meson builddirsPeter Hutterer2020-02-202-8/+8
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* meson.build: drop an unused variablePeter Hutterer2020-02-201-1/+0
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* test: remove unreachable switch casePeter Hutterer2020-02-191-3/+0
| | | | | | | | We only test up to 5 slots, so this cannot ever be reached. Found by coverity Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Fix (theoretical) use of uninitialized variablePeter Hutterer2020-02-191-1/+1
| | | | | | | This cannot ever be unset on any real device, but coverity is unhappy and that's not making me happy. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Don't try to send BTN_TOOL events for zero fingersPeter Hutterer2020-02-191-2/+2
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Ignore slot sync for slots > 256Peter Hutterer2020-02-191-6/+5
| | | | | | | | | Clang doesn't support variable length arrays inside a struct so we could either make our life complicated or just assume no-one is using more than 256 slots and hard-code that. Let's go for the easy solution until someone notices. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* test: add missing check for tripletapPeter Hutterer2020-02-191-4/+7
| | | | | | We don't actually expect to get this one, hence the assert a few lines later. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* test: fix a few scan-build errors about dead storagePeter Hutterer2020-02-192-2/+3
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Update the BTN_TOOL bits correctly during SYN_DROPPED handlingPeter Hutterer2020-02-192-3/+253
| | | | | | | | | | | | | | Where at least one touch ends during SYN_DROPPED, we send out two event frames: one with all applicable touch sequences ending (tracking id -1) and the second one with the whole device state *and* the applicable touch sequences starting (tracking id != -1). This requires us to also update the BTN_TOOL_ bits correctly so that they are correct after the first frame. For that we count the number of previously known touches and send a 0 event for the matching BTN_TOOL_ bit, together with a 1 event for the currently known touches. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Terminate all stopped/changed touches during SYN_DROPPED in the first framePeter Hutterer2020-02-191-13/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous event processing had subtle issues with touches stopping during SYN_DROPPED. All of the device state was processed in the same frame, but if any touch changed tracking ID during SYN_DROPPED, an inserted SYN_REPORT resulted in a weird split of events: - the first frame had all key/sw/abs updates including those slots that changed tracking ID, but not the ones that were fully terminated. - the second frame had only the slots states for newly started touches **and** the slot state for touches terminated during SYN_DROPPED but not restarted. In other words, where three fingers were on the touchpad and slot 0 was lifted and put down again and slot 1 was lifted but *not* put down again, our frames contained: - frame 1: terminate slot 0, BTN_TOOL_TRIPLETAP 0, BTN_TOOL_DOUBLETAP 1 - frame 2: start slot 0, terminate slot 1 Where there was no touch changing tracking ID, only one frame was generated. The BTN_TOOL updates were buggy, they may not match the number of fingers down as seen on a frame-by-frame basis. This triggered libinput bug https://gitlab.freedesktop.org/libinput/libinput/issues/422 This patch changes the above example to - frame 1: terminate slot 0, terminate slot 1 - frame 2: start slot 0, BTN_TOOL_TRIPLETAP 0, BTN_TOOL_DOUBLETAP 1 Notably, the first frame no longer contains the BTN_TOOL bits. This patch is one of two, the BTN_TOOL sync bits are part of a follow-up patch. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Invert an if conditionPeter Hutterer2020-02-191-7/+6
| | | | | | | | | | | | | | | | | Go from: if (a != b) continue; foo; to: if (a == b) { foo; } Basically just an indentation change after the condition inversion, makes the follow-up patch easier to review. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Push terminating the slots into a helper functionPeter Hutterer2020-02-191-9/+19
| | | | | | No functional changes. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Split the MT state syncing and event generation into two functionsPeter Hutterer2020-02-191-23/+40
| | | | | | | | | | | | In the near future, we will need to handle slot termination *before* any other state synchronization. So let's start splitting things up. This is functionally equivalent though dropping the need_tracking_id_changes variable means we run through all slots now to check if we need to terminate one of them. Given the normal number of slots on a device and that this should only ever run very rarely anyway... meh. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Expand the touch state handling during SYN_DROPPEDPeter Hutterer2020-02-191-16/+39
| | | | | | | | Keep a better state of each touch before/after the SYN_DROPPED. Most of this is currently unused, it's functionally the same as before but the new code serves to increase readability and it can be passed around easier this way. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>