From c649f1567f1d3f93a79946c3a77ee01505e49279 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 30 Nov 2019 11:27:48 -0800 Subject: python-evdev: Fix build for 32bit arches with 64bit time_t (From meta-openembedded commit: 18805e625b1da4964864bc9f0b165635e814edd8) Signed-off-by: Khem Raj Signed-off-by: Tim Orling --- ...x-build-on-32bit-arches-with-64bit-time_t.patch | 83 ++++++++++++++++++++++ recipes-devtools/python/python-evdev_1.2.0.bb | 4 ++ 2 files changed, 87 insertions(+) create mode 100644 recipes-devtools/python/python-evdev/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch diff --git a/recipes-devtools/python/python-evdev/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/recipes-devtools/python/python-evdev/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 0000000..154172c --- /dev/null +++ b/recipes-devtools/python/python-evdev/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,83 @@ +From 435e78aaf6745e4da0fe3d4455473011626c77d1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Nov 2019 11:21:20 -0800 +Subject: [PATCH] Fix build on 32bit arches with 64bit time_t + +time element is deprecated on new input_event structure in kernel's +input.h [1] + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f + +Upstream-Status: Submitted [https://github.com/gvalkov/python-evdev/pull/112] +Signed-off-by: Khem Raj +--- + evdev/input.c | 13 +++++++++---- + evdev/uinput.c | 9 ++++++++- + 2 files changed, 17 insertions(+), 5 deletions(-) + +diff --git a/evdev/input.c b/evdev/input.c +index 67b9348..432db92 100644 +--- a/evdev/input.c ++++ b/evdev/input.c +@@ -24,6 +24,11 @@ + #include + #endif + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + #define MAX_NAME_SIZE 256 + + extern char* EV_NAME[EV_CNT]; +@@ -60,8 +65,8 @@ device_read(PyObject *self, PyObject *args) + return NULL; + } + +- PyObject* sec = PyLong_FromLong(event.time.tv_sec); +- PyObject* usec = PyLong_FromLong(event.time.tv_usec); ++ PyObject* sec = PyLong_FromLong(event.input_event_sec); ++ PyObject* usec = PyLong_FromLong(event.input_event_usec); + PyObject* val = PyLong_FromLong(event.value); + PyObject* py_input_event = NULL; + +@@ -102,8 +107,8 @@ device_read_many(PyObject *self, PyObject *args) + + // Construct a list of event tuples, which we'll make sense of in Python + for (unsigned i = 0 ; i < nread/event_size ; i++) { +- sec = PyLong_FromLong(event[i].time.tv_sec); +- usec = PyLong_FromLong(event[i].time.tv_usec); ++ sec = PyLong_FromLong(event[i].input_event_sec); ++ usec = PyLong_FromLong(event[i].input_event_usec); + val = PyLong_FromLong(event[i].value); + + py_input_event = Py_BuildValue("OOhhO", sec, usec, event[i].type, event[i].code, val); +diff --git a/evdev/uinput.c b/evdev/uinput.c +index 192568d..56fe86c 100644 +--- a/evdev/uinput.c ++++ b/evdev/uinput.c +@@ -16,6 +16,10 @@ + #include + #endif + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif + + // Workaround for installing on kernels newer than 4.4. + #ifndef FF_MAX_EFFECTS +@@ -232,8 +236,11 @@ uinput_write(PyObject *self, PyObject *args) + if (!ret) return NULL; + + struct input_event event; ++ struct timeval tval; + memset(&event, 0, sizeof(event)); +- gettimeofday(&event.time, 0); ++ gettimeofday(&tval, 0); ++ event.input_event_usec = tval.tv_usec; ++ event.input_event_sec = tval.tv_sec; + event.type = type; + event.code = code; + event.value = value; diff --git a/recipes-devtools/python/python-evdev_1.2.0.bb b/recipes-devtools/python/python-evdev_1.2.0.bb index eb5e9d5..533fa64 100644 --- a/recipes-devtools/python/python-evdev_1.2.0.bb +++ b/recipes-devtools/python/python-evdev_1.2.0.bb @@ -3,6 +3,10 @@ HOMEPAGE = "https://github.com/gvalkov/python-evdev" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2" +FILESEXTRAPATHS_prepend := "${THISDIR}/python-evdev:" + +SRC_URI += " file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch" + SRC_URI[md5sum] = "53e440943dfa2514f95b3c448d6a36cb" SRC_URI[sha256sum] = "b03f5e1be5b4a5327494a981b831d251a142b09e8778eda1a8b53eba91100166" -- cgit 1.2.3-korg