[oe-commits] [meta-openembedded] 01/14: python-evdev: Fix build for 32bit arches with 64bit time_t
git at git.openembedded.org
git at git.openembedded.org
Sun Dec 1 19:25:08 UTC 2019
This is an automated email from the git hooks/post-receive script.
khem pushed a commit to branch master-next
in repository meta-openembedded.
commit 18805e625b1da4964864bc9f0b165635e814edd8
Author: Khem Raj <raj.khem at gmail.com>
AuthorDate: Sat Nov 30 11:27:48 2019 -0800
python-evdev: Fix build for 32bit arches with 64bit time_t
Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
.../recipes-devtools/python/python-evdev.inc | 4 ++
...x-build-on-32bit-arches-with-64bit-time_t.patch | 83 ++++++++++++++++++++++
2 files changed, 87 insertions(+)
diff --git a/meta-python/recipes-devtools/python/python-evdev.inc b/meta-python/recipes-devtools/python/python-evdev.inc
index 953094b..a536815 100644
--- a/meta-python/recipes-devtools/python/python-evdev.inc
+++ b/meta-python/recipes-devtools/python/python-evdev.inc
@@ -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"
diff --git a/meta-python/recipes-devtools/python/python-evdev/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-python/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/meta-python/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 <raj.khem at gmail.com>
+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 <raj.khem at gmail.com>
+---
+ 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 <linux/input.h>
+ #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 <linux/uinput.h>
+ #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;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list