caribou: initial add 0.4.21

caribou is required for cinnamom-screensaver and we should get rid of it as
soon as cinnomon turns into usable state.

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
Andreas Müller
2022-04-26 22:58:14 +02:00
parent 506791f0ff
commit 7b1c5181df
10 changed files with 357 additions and 0 deletions

View File

@@ -30,6 +30,7 @@ FILES:${PN} += "${datadir}/dbus-1"
RDEPENDS:${PN} += " \ RDEPENDS:${PN} += " \
accountsservice \ accountsservice \
cinnamon-desktop \ cinnamon-desktop \
caribou \
libgnomekbd \ libgnomekbd \
python3-core \ python3-core \
python3-pygobject \ python3-pygobject \

View File

@@ -0,0 +1,21 @@
diff -urN caribou-0.4.20.old/bin/antler-keyboard.in caribou-0.4.20/bin/antler-keyboard.in
--- caribou-0.4.20.old/bin/antler-keyboard.in 2016-06-27 19:31:55.547580177 +0530
+++ caribou-0.4.20/bin/antler-keyboard.in 2016-06-27 19:37:00.369738066 +0530
@@ -38,4 +38,4 @@
export ANTLER_THEME_PATH="$(dirname $script_dir)/data"
fi
-@PYTHON@ -m caribou.antler.main "$@"
+exec @PYTHON@ -m caribou.antler.main "$@"
diff -urN caribou-0.4.20.old/bin/caribou-preferences.in caribou-0.4.20/bin/caribou-preferences.in
--- caribou-0.4.20.old/bin/caribou-preferences.in 2016-06-27 19:31:55.547580177 +0530
+++ caribou-0.4.20/bin/caribou-preferences.in 2016-06-27 19:37:14.392561317 +0530
@@ -37,7 +37,7 @@
export LD_LIBRARY_PATH="$(dirname $script_dir)/libcaribou/.lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
fi
-@PYTHON@ -c "
+exec @PYTHON@ -c "
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

View File

@@ -0,0 +1,13 @@
--- a/data/caribou-autostart.desktop.in.in
+++ b/data/caribou-autostart.desktop.in.in
@@ -2,7 +2,7 @@
Type=Application
Name=Caribou
Exec=@libexecdir@/caribou
-AutostartCondition=GSettings org.gnome.desktop.a11y.applications screen-keyboard-enabled
+AutostartCondition=GSettings org.cinnamon.desktop.a11y.applications screen-keyboard-enabled
X-GNOME-AutoRestart=true
#X-GNOME-Autostart-Phase=Initialization
-OnlyShowIn=GNOME;Unity;
+OnlyShowIn=X-Cinnamon;

View File

@@ -0,0 +1,26 @@
From 13df8b92ae89c796238e669ee6ef4447a42d6355 Mon Sep 17 00:00:00 2001
From: Jeremy Bicha <jbicha@ubuntu.com>
Date: Fri, 1 Dec 2017 12:11:35 -0500
Subject: [PATCH] style.css: Fix failure to start in GNOME Flashback
The order for 'font' properties matters
https://developer.gnome.org/gtk3/stable/chap-css-properties.html
https://bugzilla.gnome.org/show_bug.cgi?id=791001
---
data/antler/style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/antler/style.css b/data/antler/style.css
index 5ab6f71..4d84904 100644
--- a/data/antler/style.css
+++ b/data/antler/style.css
@@ -13,7 +13,7 @@
border-width: 0px;
border-radius: 2px;
border-image: url("dark-key-border.svg") 2 2 2 2 repeat stretch;
- font: Sans 14px;
+ font: 14px Sans;
background-image: -gtk-gradient (linear,
left top,
left bottom,

View File

@@ -0,0 +1,25 @@
From bc6f3e7ca0921b50a3ff836d08ce264a4f114224 Mon Sep 17 00:00:00 2001
From: Clement Lefebvre <clement.lefebvre@linuxmint.com>
Date: Tue, 12 Jan 2021 17:29:16 +0000
Subject: [PATCH 1/4] Fix compilation error
---
libcaribou/key-model.vala | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libcaribou/key-model.vala b/libcaribou/key-model.vala
index 89015bc..e88342e 100644
--- a/libcaribou/key-model.vala
+++ b/libcaribou/key-model.vala
@@ -101,7 +101,7 @@ namespace Caribou {
unichar uc;
while (text.get_next_char (ref index, out uc)) {
uint keyval = Gdk.unicode_to_keyval (uc);
- if (keyval != uc | 0x01000000)
+ if (keyval != (uc | 0x01000000))
_keyvals += keyval;
}
} else {
--
2.29.2

View File

@@ -0,0 +1,32 @@
From 85ac8f9e210243d95163cf8b1013470a6d9c7eaa Mon Sep 17 00:00:00 2001
From: Clement Lefebvre <clement.lefebvre@linuxmint.com>
Date: Tue, 12 Jan 2021 17:30:25 +0000
Subject: [PATCH 2/4] Fix subkey popmenu not showing after being dismissed
To reproduce the issue:
- long-press the "e" button
- don't select any sub button.. just select "e" again to close the menu
After this the menu no long appears when long-pressing "e".
This commit fixes that.
---
libcaribou/key-model.vala | 1 +
1 file changed, 1 insertion(+)
diff --git a/libcaribou/key-model.vala b/libcaribou/key-model.vala
index e88342e..2f640f2 100644
--- a/libcaribou/key-model.vala
+++ b/libcaribou/key-model.vala
@@ -179,6 +179,7 @@ namespace Caribou {
hold_tid = GLib.Timeout.add (1000, on_key_held);
key_pressed(this);
+ show_subkeys = false;
}
public void release () {
--
2.29.2

View File

@@ -0,0 +1,46 @@
From 00653c5dcc4be5e983b670d00d5724fc21da2e82 Mon Sep 17 00:00:00 2001
From: Clement Lefebvre <clement.lefebvre@linuxmint.com>
Date: Tue, 12 Jan 2021 18:01:47 +0000
Subject: [PATCH 3/4] [mtwebster] xadapter.vala: Remove XkbKeyTypesMask and
fields from XKbChangeMap call.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This was originally a workaround for xFree86 4.3 - see:
https://bugzilla.gnome.org/show_bug.cgi?id=673547
As of https://gitlab.freedesktop.org/xorg/xserver/-/commit/87c64fc5b0 this
causes a BadLength error when attempting to use shifted characters.
Ref:
https://www.x.org/releases/X11R7.7/doc/libX11/XKB/xkblib.html#Changing_Map_Components_in_the_Server
---
libcaribou/xadapter.vala | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/libcaribou/xadapter.vala b/libcaribou/xadapter.vala
index 22858b7..1da5a78 100644
--- a/libcaribou/xadapter.vala
+++ b/libcaribou/xadapter.vala
@@ -195,15 +195,10 @@ namespace Caribou {
Xkb.MapChanges changes = Xkb.MapChanges ();
- // We don't touch key types here but include the
- // information in XkbSetMap request to the server, because
- // some X servers need the information to check the sanity
- // of the keysyms change.
- changes.changed = (ushort) (Xkb.KeySymsMask | Xkb.KeyTypesMask);
+ changes.changed = (ushort) Xkb.KeySymsMask;
changes.first_key_sym = (char) this.reserved_keycode;
changes.num_key_syms = this.xkbdesc.map.key_sym_map[this.reserved_keycode].width;
- changes.first_type = 0;
- changes.num_types = this.xkbdesc.map.num_types;
+
Xkb.change_map (this.xdisplay, this.xkbdesc, changes);
this.xdisplay.flush ();
--
2.29.2

View File

@@ -0,0 +1,117 @@
From c52ce71c49dc8d6109a58d16cc8d491d7bd1d781 Mon Sep 17 00:00:00 2001
From: Rico Tzschichholz <ricotz@ubuntu.com>
Date: Wed, 20 Jan 2021 22:59:49 +0100
Subject: [PATCH] Stop patching the generated GIR
---
libcaribou/Makefile.am | 8 ++-----
tools/Makefile.am | 1 -
tools/fix_gir.py | 53 ------------------------------------------
3 files changed, 2 insertions(+), 60 deletions(-)
delete mode 100755 tools/fix_gir.py
diff --git a/libcaribou/Makefile.am b/libcaribou/Makefile.am
index 05f2774..0634374 100644
--- a/libcaribou/Makefile.am
+++ b/libcaribou/Makefile.am
@@ -7,7 +7,7 @@ libcaribou_la_VALAFLAGS = \
--pkg xtst --pkg gee-0.8 --pkg gdk-x11-3.0 --pkg libxml-2.0 \
--pkg libxklavier --pkg external-libs \
--internal-vapi caribou-internals-1.0.vapi \
- --library caribou-1.0 --gir _Caribou-1.0.gir \
+ --library caribou-1.0 --gir Caribou-1.0.gir \
--symbols libcaribou.symbols \
$(VALAFLAGS)
@@ -63,9 +63,6 @@ gir_DATA = Caribou-1.0.gir
typelibdir = $(libdir)/girepository-1.0
typelib_DATA = Caribou-1.0.typelib
-Caribou-1.0.gir: _Caribou-1.0.gir
- $(AM_V_GEN)$(PYTHON) -B $(top_srcdir)/tools/fix_gir.py $< > $@
-
Caribou-1.0.typelib: Caribou-1.0.gir
@INTROSPECTION_COMPILER@ --shared-library=libcaribou.so.0 -o $@ $^
@@ -81,8 +78,7 @@ CLEANFILES = \
caribou-1.0.vapi \
caribou-internals-1.0.vapi \
Caribou-1.0.typelib \
- Caribou-1.0.gir \
- _Caribou-1.0.gir
+ Caribou-1.0.gir
DISTCLEANFILES = \
caribou-1.0.pc
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 3a9bcdb..89f753d 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,5 +1,4 @@
EXTRA_DIST = \
- fix_gir.py \
make_schema.py \
convert_cldr.py \
basic.xsl
diff --git a/tools/fix_gir.py b/tools/fix_gir.py
deleted file mode 100755
index 182d108..0000000
--- a/tools/fix_gir.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/python
-
-from xml.dom import minidom
-
-def purge_white_space_and_fix_namespace(node, indent=0):
- if getattr(node, "tagName", None) == "namespace":
- name = node.getAttribute("name")
- node.setAttribute("name", name.lstrip('_'))
- for child in [c for c in node.childNodes]:
- if child.nodeType == node.TEXT_NODE or \
- getattr(child, "tagName", None) == "annotation":
- node.removeChild(child)
- continue
- purge_white_space_and_fix_namespace(child, indent+1)
-
-def find_ancestor(node, name):
- if getattr(node, "tagName", None) == name:
- return node
- parent = getattr(node, "parentNode", None)
- if not parent:
- return None
- return find_ancestor(parent, name)
-
-def fix_vfuncs(dom):
- for f in dom.getElementsByTagName("field"):
- callbacks = f.getElementsByTagName("callback")
-
- record = find_ancestor(f, "record")
- if not record:
- continue
-
- name = record.getAttribute("name")
- cname = record.getAttribute("c:type")
-
- assert(name.endswith("Class") or name.endswith("Iface"))
- assert(cname.endswith("Class") or name.endswith("Iface"))
-
- if len(callbacks) == 2:
- callbacks[-1].parentNode.removeChild(callbacks[-1])
-
-if __name__ == "__main__":
- import sys
-
- if len(sys.argv) != 2:
- print("supply a gir file")
- sys.exit(1)
-
- dom = minidom.parse(sys.argv[-1])
-
- purge_white_space_and_fix_namespace(dom)
- fix_vfuncs(dom)
-
- print(dom.toprettyxml(indent=" ", newl="\n"))
--
GitLab

View File

@@ -0,0 +1,31 @@
From 28984a9b5633ef8c34764efb3fb45819c3a8a52c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Tue, 26 Apr 2022 22:18:33 +0200
Subject: [PATCH] Add a dummy --enable-introspection - our environment assumes
it supported
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
configure.ac | 3 +++
1 file changed, 3 insertions(+)
diff --git a/configure.ac b/configure.ac
index 3959dca..c0cff13 100644
--- a/configure.ac
+++ b/configure.ac
@@ -128,6 +128,9 @@ IT_PROG_INTLTOOL([0.35.0])
dnl == GObject introspection ==
GOBJECT_INTROSPECTION_REQUIRE([0.10.7])
+AC_ARG_ENABLE([introspection],
+ AS_HELP_STRING([--enable-introspection],[Dummy enable introspection]),
+ [enable_foo=$enableval], [enable_foo=no])
dnl == Documentation ==
AC_ARG_ENABLE([docs],
--
2.34.1

View File

@@ -0,0 +1,45 @@
SUMMARY = "A simplified in-place on-screen keyboard"
LICENSE = "LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=e2aa4f66375a24019b0ff5e99cec40ad"
DEPENDS = " \
libxml2-native \
libxslt-native \
intltool-native \
glib-2.0-native \
python3-pygobject-native \
gtk+ \
gtk+3 \
libxklavier \
python3-pygobject \
clutter-1.0 \
libgee \
"
inherit gnomebase gobject-introspection gsettings vala gettext features_check
REQUIRED_DISTRO_FEATURES = "x11 gobject-introspection-data"
# 0001..0007.. are taken from
# https://src.fedoraproject.org/rpms/caribou/tree/rawhide
SRC_URI += " \
file://0001-caribou-0.4.20-fix-python-exec.patch \
file://0002-change_autostart_cinnamon.patch \
file://0003-fix-style-css.patch \
file://0004-Fix-compilation-error.patch \
file://0005-Fix-subkey-popmenu-not-showing-after-being-dismissed.patch \
file://0006-xadapter.vala-Remove-XkbKeyTypesMask-and-f.patch \
file://0007-drop_gir_patch.patch \
file://0008-Add-a-dummy-enable-introspection-our-environment-ass.patch \
"
SRC_URI[archive.sha256sum] = "9c43d9f4bd30f4fea7f780d4e8b14f7589107c52e9cb6bd202bd0d1c2064de55"
FILES:${PN} += " \
${datadir}/antler \
${datadir}/dbus-1 \
${PYTHON_SITEPACKAGES_DIR} \
${libdir}/gnome-settings-daemon-3.0 \
${libdir}/gtk-2.0/modules \
${libdir}/gtk-3.0/modules \
"