diff mbox series

[meta-gnome] onboard: add recipe

Message ID 20260123064818.1475439-1-yi.zhao@windriver.com
State New
Headers show
Series [meta-gnome] onboard: add recipe | expand

Commit Message

Yi Zhao Jan. 23, 2026, 6:48 a.m. UTC
Onboard is an onscreen keyboard useful for everybody that cannot use a
hardware keyboard; for example Tablet-PC users or mobility impaired
users. It has been designed with simplicity in mind and can be used
right away without the need of any configuration, as it can read the
keyboard layout from the X server.

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
 ...ine-error-API-if-platform-does-not-h.patch | 69 +++++++++++++++++++
 ...overclick-use-bin-sh-default-shell-i.patch | 29 ++++++++
 .../onboard/onboard_1.4.3-9.bb                | 39 +++++++++++
 3 files changed, 137 insertions(+)
 create mode 100644 meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch
 create mode 100644 meta-gnome/recipes-support/onboard/onboard/0002-toggle-onboard-hoverclick-use-bin-sh-default-shell-i.patch
 create mode 100644 meta-gnome/recipes-support/onboard/onboard_1.4.3-9.bb
diff mbox series

Patch

diff --git a/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch b/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch
new file mode 100644
index 0000000000..9fb2cd6814
--- /dev/null
+++ b/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch
@@ -0,0 +1,69 @@ 
+From 71804c06c7179333f44b57e04ba268f37fe54f62 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.
+
+Upstream-Status: Pending
+
+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 2e642965..37ae241e 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 ed4164a4..b8b63ee8 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 7c628240..e7c7f40e 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.34.1
+
diff --git a/meta-gnome/recipes-support/onboard/onboard/0002-toggle-onboard-hoverclick-use-bin-sh-default-shell-i.patch b/meta-gnome/recipes-support/onboard/onboard/0002-toggle-onboard-hoverclick-use-bin-sh-default-shell-i.patch
new file mode 100644
index 0000000000..b4bbe7c023
--- /dev/null
+++ b/meta-gnome/recipes-support/onboard/onboard/0002-toggle-onboard-hoverclick-use-bin-sh-default-shell-i.patch
@@ -0,0 +1,29 @@ 
+From d68300ca8c7c518abd404873a8201b71988e492d Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Fri, 23 Jan 2026 09:28:56 +0800
+Subject: [PATCH] toggle-onboard-hoverclick: use /bin/sh default shell
+ interpreter
+
+checkbashism reports no issues, therefore using /bin/sh instead of
+/bin/bash should be safe.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ scripts/toggle-onboard-hoverclick | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/toggle-onboard-hoverclick b/scripts/toggle-onboard-hoverclick
+index 7ee3b024..48636225 100755
+--- a/scripts/toggle-onboard-hoverclick
++++ b/scripts/toggle-onboard-hoverclick
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ STATUS=$(gsettings get org.gnome.desktop.a11y.mouse dwell-click-enabled)
+ case $STATUS in
+     true )
+-- 
+2.34.1
+
diff --git a/meta-gnome/recipes-support/onboard/onboard_1.4.3-9.bb b/meta-gnome/recipes-support/onboard/onboard_1.4.3-9.bb
new file mode 100644
index 0000000000..d544f169f8
--- /dev/null
+++ b/meta-gnome/recipes-support/onboard/onboard_1.4.3-9.bb
@@ -0,0 +1,39 @@ 
+SUMMARY = "An onscreen keyboard"
+HOMEPAGE = "https://github.com/onboard-osk/onboard"
+DESCRIPTION = "Onboard is an onscreen keyboard useful for everybody \
+that cannot use a hardware keyboard. It has been designed with simplicity \
+in mind and can be used right away without the need of any configuration, \
+as it can read the keyboard layout from the X server."
+
+LICENSE = "GPL-3.0-or-later & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.GPL3;md5=8521fa4dd51909b407c5150498d34f4e \
+                    file://COPYING.BSD3;md5=f56403ae5b2d6b82ad136d753c05a82e \
+                   "
+
+SRC_URI = "git://github.com/onboard-osk/onboard.git;protocol=https;branch=main \
+           file://0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch \
+           file://0002-toggle-onboard-hoverclick-use-bin-sh-default-shell-i.patch \
+          "
+SRCREV = "350f7643576bc8c5f2cff9c6ddce0e1e7cff995d"
+
+inherit features_check setuptools3 pkgconfig gtk-icon-cache gsettings mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS = "gtk+3 hunspell libcanberra libxkbfile dconf hicolor-icon-theme python3-distutils-extra-native intltool-native glib-2.0-native"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/icons \
+    ${datadir}/gnome-shell \
+    ${datadir}/help \
+"
+
+RDEPENDS:${PN} += " \
+    ncurses \
+    librsvg-gtk \
+    python3-dbus \
+    python3-pycairo \
+    python3-pygobject \
+    python3-image \
+"