mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 12:49:46 +00:00
libinput: update 1.14.3 -> 1.15.2
(From OE-Core rev: 4abb2f270ba61e99993e53d292bcf5310a59dc19) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
44c4d3d76f
commit
63304e8d4e
-386
@@ -1,386 +0,0 @@
|
|||||||
From ab6ce09bfb669177c90cc5c10155eec44e9fc34b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
Date: Sat, 23 Nov 2019 17:23:56 -0800
|
|
||||||
Subject: [PATCH] Adjust for 64bit time_t for 32bit architectures
|
|
||||||
|
|
||||||
Upstream-Status: Submitted [https://gitlab.freedesktop.org/libinput/libinput/merge_requests/346]
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
meson.build | 1 +
|
|
||||||
src/evdev-mt-touchpad-buttons.c | 15 ++++---
|
|
||||||
src/evdev.c | 5 ++-
|
|
||||||
src/util-input-event.h | 69 +++++++++++++++++++++++++++++++++
|
|
||||||
tools/libinput-record.c | 16 +++++---
|
|
||||||
5 files changed, 90 insertions(+), 16 deletions(-)
|
|
||||||
create mode 100644 src/util-input-event.h
|
|
||||||
|
|
||||||
--- a/meson.build
|
|
||||||
+++ b/meson.build
|
|
||||||
@@ -220,7 +220,8 @@ endif
|
|
||||||
############ libinput-util.a ############
|
|
||||||
src_libinput_util = [
|
|
||||||
'src/libinput-util.c',
|
|
||||||
- 'src/libinput-util.h'
|
|
||||||
+ 'src/libinput-util.h',
|
|
||||||
+ 'src/util-input-event.h'
|
|
||||||
]
|
|
||||||
libinput_util = static_library('libinput-util',
|
|
||||||
src_libinput_util,
|
|
||||||
--- a/src/evdev-mt-touchpad-buttons.c
|
|
||||||
+++ b/src/evdev-mt-touchpad-buttons.c
|
|
||||||
@@ -30,6 +30,7 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
#include "linux/input.h"
|
|
||||||
|
|
||||||
+#include "util-input-event.h"
|
|
||||||
#include "evdev-mt-touchpad.h"
|
|
||||||
|
|
||||||
#define DEFAULT_BUTTON_ENTER_TIMEOUT ms2us(100)
|
|
||||||
@@ -1145,14 +1146,12 @@ tp_notify_clickpadbutton(struct tp_dispa
|
|
||||||
if (tp->buttons.trackpoint) {
|
|
||||||
if (is_topbutton) {
|
|
||||||
struct evdev_dispatch *dispatch = tp->buttons.trackpoint->dispatch;
|
|
||||||
- struct input_event event;
|
|
||||||
- struct input_event syn_report = {{ 0, 0 }, EV_SYN, SYN_REPORT, 0 };
|
|
||||||
+ struct input_event event, syn_report;
|
|
||||||
+ int value;
|
|
||||||
|
|
||||||
- event.time = us2tv(time);
|
|
||||||
- event.type = EV_KEY;
|
|
||||||
- event.code = button;
|
|
||||||
- event.value = (state == LIBINPUT_BUTTON_STATE_PRESSED) ? 1 : 0;
|
|
||||||
- syn_report.time = event.time;
|
|
||||||
+ value = (state == LIBINPUT_BUTTON_STATE_PRESSED) ? 1 : 0;
|
|
||||||
+ event = input_event_init(time, EV_KEY, button, value);
|
|
||||||
+ syn_report = input_event_init(time, EV_SYN, SYN_REPORT, 0);
|
|
||||||
dispatch->interface->process(dispatch,
|
|
||||||
tp->buttons.trackpoint,
|
|
||||||
&event,
|
|
||||||
--- a/src/evdev.c
|
|
||||||
+++ b/src/evdev.c
|
|
||||||
@@ -44,6 +44,7 @@
|
|
||||||
#include "filter.h"
|
|
||||||
#include "libinput-private.h"
|
|
||||||
#include "quirks.h"
|
|
||||||
+#include "util-input-event.h"
|
|
||||||
|
|
||||||
#if HAVE_LIBWACOM
|
|
||||||
#include <libwacom/libwacom.h>
|
|
||||||
@@ -859,7 +860,7 @@ evdev_print_event(struct evdev_device *d
|
|
||||||
{
|
|
||||||
static uint32_t offset = 0;
|
|
||||||
static uint32_t last_time = 0;
|
|
||||||
- uint32_t time = us2ms(tv2us(&e->time));
|
|
||||||
+ uint32_t time = us2ms(input_event_time(e));
|
|
||||||
|
|
||||||
if (offset == 0) {
|
|
||||||
offset = time;
|
|
||||||
@@ -891,7 +892,7 @@ static inline void
|
|
||||||
evdev_process_event(struct evdev_device *device, struct input_event *e)
|
|
||||||
{
|
|
||||||
struct evdev_dispatch *dispatch = device->dispatch;
|
|
||||||
- uint64_t time = tv2us(&e->time);
|
|
||||||
+ uint64_t time = input_event_time(e);
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
evdev_print_event(device, e);
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/util-input-event.h
|
|
||||||
@@ -0,0 +1,69 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright © 2019 Red Hat, Inc.
|
|
||||||
+ *
|
|
||||||
+ * Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
+ * copy of this software and associated documentation files (the "Software"),
|
|
||||||
+ * to deal in the Software without restriction, including without limitation
|
|
||||||
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
+ * and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
+ * Software is furnished to do so, subject to the following conditions:
|
|
||||||
+ *
|
|
||||||
+ * The above copyright notice and this permission notice (including the next
|
|
||||||
+ * paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
+ * Software.
|
|
||||||
+ *
|
|
||||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
+ * DEALINGS IN THE SOFTWARE.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#pragma once
|
|
||||||
+
|
|
||||||
+#include "config.h"
|
|
||||||
+
|
|
||||||
+#include "util-time.h"
|
|
||||||
+#include <linux/input.h>
|
|
||||||
+
|
|
||||||
+static inline struct input_event
|
|
||||||
+input_event_init(uint64_t time,
|
|
||||||
+ unsigned int code,
|
|
||||||
+ unsigned int type,
|
|
||||||
+ int value)
|
|
||||||
+{
|
|
||||||
+ struct input_event ev;
|
|
||||||
+ struct timeval tval = us2tv(time);
|
|
||||||
+
|
|
||||||
+ ev.input_event_sec = tval.tv_sec;
|
|
||||||
+ ev.input_event_usec = tval.tv_usec;
|
|
||||||
+ ev.type = type;
|
|
||||||
+ ev.code = code;
|
|
||||||
+ ev.value = value;
|
|
||||||
+
|
|
||||||
+ return ev;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline uint64_t
|
|
||||||
+input_event_time(const struct input_event *e)
|
|
||||||
+{
|
|
||||||
+ struct timeval tval;
|
|
||||||
+
|
|
||||||
+ tval.tv_sec = e->input_event_sec;
|
|
||||||
+ tval.tv_usec = e->input_event_usec;
|
|
||||||
+
|
|
||||||
+ return tv2us(&tval);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static inline void
|
|
||||||
+input_event_set_time(struct input_event *e,
|
|
||||||
+ uint64_t time)
|
|
||||||
+{
|
|
||||||
+ struct timeval tval = us2tv(time);
|
|
||||||
+
|
|
||||||
+ e->input_event_sec = tval.tv_sec;
|
|
||||||
+ e->input_event_usec = tval.tv_usec;
|
|
||||||
+}
|
|
||||||
--- a/tools/libinput-record.c
|
|
||||||
+++ b/tools/libinput-record.c
|
|
||||||
@@ -41,6 +41,7 @@
|
|
||||||
#include <stdbool.h>
|
|
||||||
|
|
||||||
#include "libinput-versionsort.h"
|
|
||||||
+#include "util-input-event.h"
|
|
||||||
#include "libinput-util.h"
|
|
||||||
#include "libinput-version.h"
|
|
||||||
#include "libinput-git-version.h"
|
|
||||||
@@ -196,8 +197,9 @@ print_evdev_event(struct record_context
|
|
||||||
const char *cname;
|
|
||||||
bool was_modified = false;
|
|
||||||
char desc[1024];
|
|
||||||
+ uint64_t time = input_event_time(ev) - ctx->offset;
|
|
||||||
|
|
||||||
- ev->time = us2tv(tv2us(&ev->time) - ctx->offset);
|
|
||||||
+ input_event_set_time(ev, time);
|
|
||||||
|
|
||||||
/* Don't leak passwords unless the user wants to */
|
|
||||||
if (!ctx->show_keycodes)
|
|
||||||
@@ -215,7 +217,7 @@ print_evdev_event(struct record_context
|
|
||||||
static unsigned long last_ms = 0;
|
|
||||||
unsigned long time, dt;
|
|
||||||
|
|
||||||
- time = us2ms(tv2us(&ev->time));
|
|
||||||
+ time = us2ms(input_event_time(ev));
|
|
||||||
dt = time - last_ms;
|
|
||||||
last_ms = time;
|
|
||||||
|
|
||||||
@@ -239,8 +241,8 @@ print_evdev_event(struct record_context
|
|
||||||
|
|
||||||
iprintf(ctx,
|
|
||||||
"- [%3lu, %6u, %3d, %3d, %6d] # %s\n",
|
|
||||||
- ev->time.tv_sec,
|
|
||||||
- (unsigned int)ev->time.tv_usec,
|
|
||||||
+ ev->input_event_sec,
|
|
||||||
+ (unsigned int)ev->input_event_usec,
|
|
||||||
ev->type,
|
|
||||||
ev->code,
|
|
||||||
ev->value,
|
|
||||||
@@ -268,16 +270,18 @@ handle_evdev_frame(struct record_context
|
|
||||||
while (libevdev_next_event(evdev,
|
|
||||||
LIBEVDEV_READ_FLAG_NORMAL,
|
|
||||||
&e) == LIBEVDEV_READ_STATUS_SUCCESS) {
|
|
||||||
+ uint64_t time;
|
|
||||||
|
|
||||||
if (ctx->offset == 0)
|
|
||||||
- ctx->offset = tv2us(&e.time);
|
|
||||||
+ ctx->offset = input_event_time(&e);
|
|
||||||
|
|
||||||
if (d->nevents == d->events_sz)
|
|
||||||
resize(d->events, d->events_sz);
|
|
||||||
|
|
||||||
event = &d->events[d->nevents++];
|
|
||||||
event->type = EVDEV;
|
|
||||||
- event->time = tv2us(&e.time) - ctx->offset;
|
|
||||||
+ time = input_event_time(&e);
|
|
||||||
+ input_event_set_time(&e, time - ctx->offset);
|
|
||||||
event->u.evdev = e;
|
|
||||||
count++;
|
|
||||||
|
|
||||||
--- a/src/libinput-private.h
|
|
||||||
+++ b/src/libinput-private.h
|
|
||||||
@@ -39,6 +39,7 @@
|
|
||||||
|
|
||||||
#include "libinput.h"
|
|
||||||
#include "libinput-util.h"
|
|
||||||
+#include "util-time.h"
|
|
||||||
#include "libinput-version.h"
|
|
||||||
|
|
||||||
#if LIBINPUT_VERSION_MICRO >= 90
|
|
||||||
--- a/src/libinput-util.h
|
|
||||||
+++ b/src/libinput-util.h
|
|
||||||
@@ -206,12 +206,6 @@ clear_bit(unsigned char *array, int bit)
|
|
||||||
array[bit / 8] &= ~(1 << (bit % 8));
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline void
|
|
||||||
-msleep(unsigned int ms)
|
|
||||||
-{
|
|
||||||
- usleep(ms * 1000);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static inline bool
|
|
||||||
long_bit_is_set(const unsigned long *array, int bit)
|
|
||||||
{
|
|
||||||
@@ -453,53 +447,6 @@ bool
|
|
||||||
parse_switch_reliability_property(const char *prop,
|
|
||||||
enum switch_reliability *reliability);
|
|
||||||
|
|
||||||
-static inline uint64_t
|
|
||||||
-us(uint64_t us)
|
|
||||||
-{
|
|
||||||
- return us;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static inline uint64_t
|
|
||||||
-ns2us(uint64_t ns)
|
|
||||||
-{
|
|
||||||
- return us(ns / 1000);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static inline uint64_t
|
|
||||||
-ms2us(uint64_t ms)
|
|
||||||
-{
|
|
||||||
- return us(ms * 1000);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static inline uint64_t
|
|
||||||
-s2us(uint64_t s)
|
|
||||||
-{
|
|
||||||
- return ms2us(s * 1000);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static inline uint32_t
|
|
||||||
-us2ms(uint64_t us)
|
|
||||||
-{
|
|
||||||
- return (uint32_t)(us / 1000);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static inline uint64_t
|
|
||||||
-tv2us(const struct timeval *tv)
|
|
||||||
-{
|
|
||||||
- return s2us(tv->tv_sec) + tv->tv_usec;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static inline struct timeval
|
|
||||||
-us2tv(uint64_t time)
|
|
||||||
-{
|
|
||||||
- struct timeval tv;
|
|
||||||
-
|
|
||||||
- tv.tv_sec = time / ms2us(1000);
|
|
||||||
- tv.tv_usec = time % ms2us(1000);
|
|
||||||
-
|
|
||||||
- return tv;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static inline bool
|
|
||||||
safe_atoi_base(const char *str, int *val, int base)
|
|
||||||
{
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/util-time.h
|
|
||||||
@@ -0,0 +1,84 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright © 2013-2019 Red Hat, Inc.
|
|
||||||
+ *
|
|
||||||
+ * Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
+ * copy of this software and associated documentation files (the "Software"),
|
|
||||||
+ * to deal in the Software without restriction, including without limitation
|
|
||||||
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
+ * and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
+ * Software is furnished to do so, subject to the following conditions:
|
|
||||||
+ *
|
|
||||||
+ * The above copyright notice and this permission notice (including the next
|
|
||||||
+ * paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
+ * Software.
|
|
||||||
+ *
|
|
||||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
+ * DEALINGS IN THE SOFTWARE.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#pragma once
|
|
||||||
+
|
|
||||||
+#include "config.h"
|
|
||||||
+
|
|
||||||
+#include <time.h>
|
|
||||||
+#include <stdint.h>
|
|
||||||
+#include <unistd.h>
|
|
||||||
+#include <linux/input.h>
|
|
||||||
+
|
|
||||||
+static inline void
|
|
||||||
+msleep(unsigned int ms)
|
|
||||||
+{
|
|
||||||
+ usleep(ms * 1000);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline uint64_t
|
|
||||||
+us(uint64_t us)
|
|
||||||
+{
|
|
||||||
+ return us;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline uint64_t
|
|
||||||
+ns2us(uint64_t ns)
|
|
||||||
+{
|
|
||||||
+ return us(ns / 1000);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline uint64_t
|
|
||||||
+ms2us(uint64_t ms)
|
|
||||||
+{
|
|
||||||
+ return us(ms * 1000);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline uint64_t
|
|
||||||
+s2us(uint64_t s)
|
|
||||||
+{
|
|
||||||
+ return ms2us(s * 1000);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline uint32_t
|
|
||||||
+us2ms(uint64_t us)
|
|
||||||
+{
|
|
||||||
+ return (uint32_t)(us / 1000);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline uint64_t
|
|
||||||
+tv2us(const struct timeval *tv)
|
|
||||||
+{
|
|
||||||
+ return s2us(tv->tv_sec) + tv->tv_usec;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline struct timeval
|
|
||||||
+us2tv(uint64_t time)
|
|
||||||
+{
|
|
||||||
+ struct timeval tv;
|
|
||||||
+
|
|
||||||
+ tv.tv_sec = time / ms2us(1000);
|
|
||||||
+ tv.tv_usec = time % ms2us(1000);
|
|
||||||
+
|
|
||||||
+ return tv;
|
|
||||||
+}
|
|
||||||
+4
-4
@@ -13,11 +13,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63"
|
|||||||
DEPENDS = "libevdev udev mtdev"
|
DEPENDS = "libevdev udev mtdev"
|
||||||
|
|
||||||
SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
|
SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
|
||||||
file://0001-adjust-for-64bit-time_t-for-32bit-architectures.patch \
|
|
||||||
file://determinism.patch \
|
file://determinism.patch \
|
||||||
"
|
"
|
||||||
SRC_URI[md5sum] = "d052faa64eb6d2e649e582cc0fcf6e32"
|
SRC_URI[md5sum] = "eb6bd2907ad33d53954d70dfb881a643"
|
||||||
SRC_URI[sha256sum] = "0feb3a0589709cc1032893bfaf4c49150d5360bd9782bec888f9e4dd9044c5b7"
|
SRC_URI[sha256sum] = "971c3fbfb624f95c911adeb2803c372e4e3647d1b98f278f660051f834597747"
|
||||||
|
|
||||||
UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
|
UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
|
||||||
|
|
||||||
@@ -38,3 +37,4 @@ EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \
|
|||||||
RPROVIDES_${PN} = "libinput"
|
RPROVIDES_${PN} = "libinput"
|
||||||
RREPLACES_${PN} = "libinput"
|
RREPLACES_${PN} = "libinput"
|
||||||
RCONFLICTS_${PN} = "libinput"
|
RCONFLICTS_${PN} = "libinput"
|
||||||
|
|
||||||
Reference in New Issue
Block a user