forked from openembedded/meta-openembedded
-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
onboard: add virtual keyboard to scarthgap
- Loading branch information
1 parent
1235dd4
commit 8f535d6
Showing
3 changed files
with
149 additions
and
0 deletions.
There are no files selected for viewing
67 changes: 67 additions & 0 deletions
67
...s-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
From 1c95f64aa342147387ce4b1b7269a5c8b34bd898 Mon Sep 17 00:00:00 2001 | ||
From: Khem Raj <raj.khem@gmail.com> | ||
Date: Thu, 13 Jul 2017 09:01:04 -0700 | ||
Subject: [PATCH] pypredict/lm: Define error API if platform does not have it | ||
|
||
error() API is not implemented across all libcs on linux | ||
e.g. musl does not provide it. | ||
|
||
Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
--- | ||
Onboard/pypredict/lm/lm.cpp | 1 - | ||
Onboard/pypredict/lm/lm.h | 13 +++++++++++++ | ||
Onboard/pypredict/lm/lm_dynamic.cpp | 2 -- | ||
3 files changed, 13 insertions(+), 3 deletions(-) | ||
|
||
diff --git a/Onboard/pypredict/lm/lm.cpp b/Onboard/pypredict/lm/lm.cpp | ||
index 2e64296..37ae241 100644 | ||
--- a/Onboard/pypredict/lm/lm.cpp | ||
+++ b/Onboard/pypredict/lm/lm.cpp | ||
@@ -19,7 +19,6 @@ | ||
|
||
#include <stdlib.h> | ||
#include <stdio.h> | ||
-#include <error.h> | ||
#include <algorithm> | ||
#include <cmath> | ||
#include <string> | ||
diff --git a/Onboard/pypredict/lm/lm.h b/Onboard/pypredict/lm/lm.h | ||
index ed4164a..b8b63ee 100644 | ||
--- a/Onboard/pypredict/lm/lm.h | ||
+++ b/Onboard/pypredict/lm/lm.h | ||
@@ -32,6 +32,19 @@ | ||
#include <algorithm> | ||
#include <string> | ||
|
||
+#if defined(HAVE_ERROR_H) | ||
+#include <error.h> | ||
+#else | ||
+#include <err.h> | ||
+#define _onboard_error(S, E, F, ...) do { \ | ||
+ if (E) \ | ||
+ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \ | ||
+ else \ | ||
+ err(S, F, ##__VA_ARGS__); \ | ||
+} while(0) | ||
+ | ||
+#define error _onboard_error | ||
+#endif | ||
|
||
// break into debugger | ||
// step twice to come back out of the raise() call into known code | ||
diff --git a/Onboard/pypredict/lm/lm_dynamic.cpp b/Onboard/pypredict/lm/lm_dynamic.cpp | ||
index 7c62824..e7c7f40 100644 | ||
--- a/Onboard/pypredict/lm/lm_dynamic.cpp | ||
+++ b/Onboard/pypredict/lm/lm_dynamic.cpp | ||
@@ -17,8 +17,6 @@ | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
-#include <error.h> | ||
- | ||
#include "lm_dynamic.h" | ||
|
||
using namespace std; | ||
-- | ||
2.13.2 | ||
|
52 changes: 52 additions & 0 deletions
52
meta-gnome/recipes-support/onboard/onboard/0002-onboard-onhover-seg-fault-fix.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
From: 1be95325d320122efd5dedf7437839cfcca01f7a | ||
From: https://github.com/void-linux/void-packages/commit/1be95325d320122efd5dedf7437839cfcca01f7a | ||
Date: Mon, 23 Sep 2024 | ||
Subject: [PATCH] onboard: fix segfault when hovering over the keyboard | ||
|
||
Currently, if the mouse pointer is hovered over the Onboard keyboard, the application crashes with a segmentation fault. | ||
This is because the new_device_event function is not acquiring the GIL before creating a new object. This patch fixes | ||
the issue by acquiring the GIL before creating a new object. It also acquires the GIL before queueing the event. | ||
This patch is taken from the fix provided in the following link: | ||
https://github.com/void-linux/void-packages/commit/1be95325d320122efd5dedf7437839cfcca01f7a | ||
|
||
Signed-off by: Pratheeksha S N <pratheeksha.s.n@ni.com> | ||
|
||
Upstream-Status: Not Submitted [This is being added to the meta-nilrt layer for now. If it is accepted upstream, it will be removed from here.] | ||
|
||
--- a/Onboard/osk/osk_devices.c | ||
+++ b/Onboard/osk/osk_devices.c | ||
@@ -97,13 +97,15 @@ osk_device_event_dealloc (OskDeviceEvent | ||
static OskDeviceEvent* | ||
new_device_event (void) | ||
{ | ||
- OskDeviceEvent *ev = PyObject_New(OskDeviceEvent, &osk_device_event_type); | ||
+ OskDeviceEvent *ev; | ||
+ PyGILState_STATE gstate = PyGILState_Ensure(); | ||
+ ev = PyObject_New(OskDeviceEvent, &osk_device_event_type); | ||
if (ev) | ||
{ | ||
osk_device_event_type.tp_init((PyObject*) ev, NULL, NULL); | ||
- return ev; | ||
} | ||
- return NULL; | ||
+ PyGILState_Release(gstate); | ||
+ return ev; | ||
} | ||
|
||
static PyObject * | ||
@@ -334,6 +336,7 @@ osk_devices_dealloc (OskDevices *dev) | ||
static void | ||
queue_event (OskDevices* dev, OskDeviceEvent* event, Bool discard_pending) | ||
{ | ||
+ PyGILState_STATE state = PyGILState_Ensure (); | ||
GQueue* queue = dev->event_queue; | ||
if (queue) | ||
{ | ||
@@ -364,6 +367,7 @@ queue_event (OskDevices* dev, OskDeviceE | ||
Py_INCREF(event); | ||
g_queue_push_head(queue, event); | ||
} | ||
+ PyGILState_Release (state); | ||
} | ||
|
||
static gboolean idle_process_event_queue (OskDevices* dev) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
SUMMARY = "An onscreen keyboard" | ||
LICENSE = "GPL-3.0-only" | ||
LIC_FILES_CHKSUM = "file://COPYING.GPL3;md5=8521fa4dd51909b407c5150498d34f4e" | ||
|
||
DEPENDS += "gtk+3 hunspell libcanberra libxkbfile dconf python3-distutils-extra-native intltool-native" | ||
|
||
SRC_URI = "https://launchpad.net/onboard/1.4/${PV}/+download/${BPN}-${PV}.tar.gz \ | ||
file://0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch \ | ||
file://0002-onboard-onhover-seg-fault-fix.patch \ | ||
" | ||
SRC_URI[md5sum] = "1a2fbe82e934f5b37841d17ff51e80e8" | ||
SRC_URI[sha256sum] = "01cae1ac5b1ef1ab985bd2d2d79ded6fc99ee04b1535cc1bb191e43a231a3865" | ||
|
||
inherit features_check setuptools3 pkgconfig gtk-icon-cache gsettings mime-xdg | ||
|
||
REQUIRED_DISTRO_FEATURES = "x11" | ||
|
||
FILES:${PN} += " \ | ||
${datadir}/dbus-1 \ | ||
${datadir}/icons \ | ||
${datadir}/gnome-shell \ | ||
${datadir}/help \ | ||
" | ||
|
||
RDEPENDS:${PN} += " \ | ||
ncurses \ | ||
python3-dbus \ | ||
python3-pycairo \ | ||
python3-pygobject \ | ||
" |