Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

14 changed files with 3024 additions and 1342 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

344
.gitignore vendored
View File

@ -1 +1,343 @@
SOURCES/ibus-typing-booster-2.1.0.tar.gz
/ibus-typing-booster-0.0.7.tar.gz
/ibus-typing-booster-0.0.8.tar.gz
/ibus-typing-booster-0.0.9.tar.gz
/ibus-typing-booster-0.0.10.tar.gz
/ibus-typing-booster-0.0.11.tar.gz
/ibus-typing-booster-0.0.12.tar.gz
/ibus-typing-booster-0.0.13.tar.gz
/ibus-typing-booster-0.0.14.tar.gz
/ibus-typing-booster-0.0.15.tar.gz
/ibus-typing-booster-0.0.16.tar.gz
/ibus-typing-booster-0.0.17.tar.gz
/ibus-typing-booster-0.0.18.tar.gz
/ibus-typing-booster-0.0.19.tar.gz
/ibus-typing-booster-0.0.20.tar.gz
/ibus-typing-booster-0.0.21.tar.gz
/ibus-typing-booster-0.0.22.tar.gz
/ibus-typing-booster-0.0.23.tar.gz
/ibus-typing-booster-0.0.24.tar.gz
/ibus-typing-booster-0.0.25.tar.gz
/ibus-typing-booster-0.0.26.tar.gz
/ibus-typing-booster-0.0.27.tar.gz
/ibus-typing-booster-0.0.28.tar.gz
/ibus-typing-booster-0.0.29.tar.gz
/ibus-typing-booster-0.0.30.tar.gz
/ibus-typing-booster-0.0.31.tar.gz
/ibus-typing-booster-0.0.32.tar.gz
/ibus-typing-booster-1.0.0.tar.gz
/ibus-typing-booster-1.0.1.tar.gz
/ibus-typing-booster-1.0.2.tar.gz
/ibus-typing-booster-1.0.3.tar.gz
/ibus-typing-booster-1.1.0.tar.gz
/ibus-typing-booster-1.2.0.tar.gz
/ibus-typing-booster-1.2.1.tar.gz
/ibus-typing-booster-1.2.2.tar.gz
/ibus-typing-booster-1.2.3.tar.gz
/ibus-typing-booster-1.2.4.tar.gz
/ibus-typing-booster-1.2.5.tar.gz
/ibus-typing-booster-1.2.6.tar.gz
/ibus-typing-booster-1.2.7.tar.gz
/ibus-typing-booster-1.2.8.tar.gz
/ibus-typing-booster-1.2.9.tar.gz
/ibus-typing-booster-1.2.10.tar.gz
/ibus-typing-booster-1.2.11.tar.gz
/ibus-typing-booster-1.2.12.tar.gz
/ibus-typing-booster-1.2.13.tar.gz
/ibus-typing-booster-1.2.14.tar.gz
/ibus-typing-booster-1.2.15.tar.gz
/ibus-typing-booster-1.3.0.tar.gz
/ibus-typing-booster-1.3.1.tar.gz
/ibus-typing-booster-1.4.0.tar.gz
/ibus-typing-booster-1.4.1.tar.gz
/ibus-typing-booster-1.4.2.tar.gz
/ibus-typing-booster-1.4.3.tar.gz
/ibus-typing-booster-1.4.4.tar.gz
/ibus-typing-booster-1.4.5.tar.gz
/ibus-typing-booster-1.4.6.tar.gz
/ibus-typing-booster-1.4.7.tar.gz
/ibus-typing-booster-1.4.8.tar.gz
/ibus-typing-booster-1.5.0.tar.gz
/ibus-typing-booster-1.5.1.tar.gz
/ibus-typing-booster-1.5.2.tar.gz
/ibus-typing-booster-1.5.3.tar.gz
/ibus-typing-booster-1.5.4.tar.gz
/ibus-typing-booster-1.5.5.tar.gz
/ibus-typing-booster-1.5.6.tar.gz
/ibus-typing-booster-1.5.7.tar.gz
/ibus-typing-booster-1.5.8.tar.gz
/ibus-typing-booster-1.5.9.tar.gz
/ibus-typing-booster-1.5.10.tar.gz
/ibus-typing-booster-1.5.11.tar.gz
/ibus-typing-booster-1.5.12.tar.gz
/ibus-typing-booster-1.5.13.tar.gz
/ibus-typing-booster-1.5.14.tar.gz
/ibus-typing-booster-1.5.15.tar.gz
/ibus-typing-booster-1.5.16.tar.gz
/ibus-typing-booster-1.5.17.tar.gz
/ibus-typing-booster-1.5.18.tar.gz
/ibus-typing-booster-1.5.19.tar.gz
/ibus-typing-booster-1.5.20.tar.gz
/ibus-typing-booster-1.5.21.tar.gz
/ibus-typing-booster-1.5.22.tar.gz
/ibus-typing-booster-1.5.23.tar.gz
/ibus-typing-booster-1.5.24.tar.gz
/ibus-typing-booster-1.5.25.tar.gz
/ibus-typing-booster-1.5.26.tar.gz
/ibus-typing-booster-1.5.27.tar.gz
/ibus-typing-booster-1.5.28.tar.gz
/ibus-typing-booster-1.5.29.tar.gz
/ibus-typing-booster-1.5.30.tar.gz
/ibus-typing-booster-1.5.31.tar.gz
/ibus-typing-booster-1.5.32.tar.gz
/ibus-typing-booster-1.5.33.tar.gz
/ibus-typing-booster-1.5.34.tar.gz
/ibus-typing-booster-1.5.35.tar.gz
/ibus-typing-booster-1.5.36.tar.gz
/ibus-typing-booster-1.5.37.tar.gz
/ibus-typing-booster-1.5.38.tar.gz
/ibus-typing-booster-2.0.0.tar.gz
/ibus-typing-booster-2.0.1.tar.gz
/ibus-typing-booster-2.0.2.tar.gz
/ibus-typing-booster-2.1.0.tar.gz
/ibus-typing-booster-2.1.1.tar.gz
/ibus-typing-booster-2.1.2.tar.gz
/ibus-typing-booster-2.1.3.tar.gz
/ibus-typing-booster-2.1.4.tar.gz
/ibus-typing-booster-2.2.0.tar.gz
/ibus-typing-booster-2.2.1.tar.gz
/ibus-typing-booster-2.3.0.tar.gz
/ibus-typing-booster-2.3.1.tar.gz
/ibus-typing-booster-2.3.2.tar.gz
/ibus-typing-booster-2.3.3.tar.gz
/ibus-typing-booster-2.4.0.tar.gz
/ibus-typing-booster-2.4.1.tar.gz
/ibus-typing-booster-2.5.0.tar.gz
/ibus-typing-booster-2.5.1.tar.gz
/ibus-typing-booster-2.5.2.tar.gz
/ibus-typing-booster-2.5.3.tar.gz
/ibus-typing-booster-2.6.0.tar.gz
/ibus-typing-booster-2.6.1.tar.gz
/ibus-typing-booster-2.6.2.tar.gz
/ibus-typing-booster-2.6.3.tar.gz
/ibus-typing-booster-2.6.4.tar.gz
/ibus-typing-booster-2.6.5.tar.gz
/ibus-typing-booster-2.6.6.tar.gz
/ibus-typing-booster-2.6.7.tar.gz
/ibus-typing-booster-2.6.8.tar.gz
/ibus-typing-booster-2.7.0.tar.gz
/ibus-typing-booster-2.7.1.tar.gz
/ibus-typing-booster-2.7.2.tar.gz
/ibus-typing-booster-2.7.3.tar.gz
/ibus-typing-booster-2.7.4.tar.gz
/ibus-typing-booster-2.7.5.tar.gz
/ibus-typing-booster-2.7.6.tar.gz
/ibus-typing-booster-2.7.7.tar.gz
/ibus-typing-booster-2.7.8.tar.gz
/ibus-typing-booster-2.8.0.tar.gz
/ibus-typing-booster-2.8.1.tar.gz
/ibus-typing-booster-2.8.2.tar.gz
/ibus-typing-booster-2.8.3.tar.gz
/ibus-typing-booster-2.9.0.tar.gz
/ibus-typing-booster-2.9.1.tar.gz
/ibus-typing-booster-2.9.2.tar.gz
/ibus-typing-booster-2.9.3.tar.gz
/ibus-typing-booster-2.9.4.tar.gz
/ibus-typing-booster-2.9.5.tar.gz
/ibus-typing-booster-2.9.6.tar.gz
/ibus-typing-booster-2.9.7.tar.gz
/ibus-typing-booster-2.9.8.tar.gz
/ibus-typing-booster-2.9.9.tar.gz
/ibus-typing-booster-2.10.0.tar.gz
/ibus-typing-booster-2.10.1.tar.gz
/ibus-typing-booster-2.10.2.tar.gz
/ibus-typing-booster-2.10.3.tar.gz
/ibus-typing-booster-2.10.4.tar.gz
/ibus-typing-booster-2.10.5.tar.gz
/ibus-typing-booster-2.10.6.tar.gz
/ibus-typing-booster-2.10.7.tar.gz
/ibus-typing-booster-2.10.8.tar.gz
/ibus-typing-booster-2.11.0.tar.gz
/ibus-typing-booster-2.11.1.tar.gz
/ibus-typing-booster-2.11.2.tar.gz
/ibus-typing-booster-2.11.3.tar.gz
/ibus-typing-booster-2.11.4.tar.gz
/ibus-typing-booster-2.11.5.tar.gz
/ibus-typing-booster-2.11.6.tar.gz
/ibus-typing-booster-2.11.7.tar.gz
/ibus-typing-booster-2.12.0.tar.gz
/ibus-typing-booster-2.12.1.tar.gz
/ibus-typing-booster-2.13.0.tar.gz
/ibus-typing-booster-2.13.1.tar.gz
/ibus-typing-booster-2.13.2.tar.gz
/ibus-typing-booster-2.13.3.tar.gz
/ibus-typing-booster-2.13.4.tar.gz
/ibus-typing-booster-2.13.5.tar.gz
/ibus-typing-booster-2.13.6.tar.gz
/ibus-typing-booster-2.13.7.tar.gz
/ibus-typing-booster-2.13.8.tar.gz
/ibus-typing-booster-2.13.9.tar.gz
/ibus-typing-booster-2.13.10.tar.gz
/ibus-typing-booster-2.13.11.tar.gz
/ibus-typing-booster-2.14.0.tar.gz
/ibus-typing-booster-2.14.1.tar.gz
/ibus-typing-booster-2.14.2.tar.gz
/ibus-typing-booster-2.14.3.tar.gz
/ibus-typing-booster-2.14.4.tar.gz
/ibus-typing-booster-2.14.5.tar.gz
/ibus-typing-booster-2.14.6.tar.gz
/ibus-typing-booster-2.14.7.tar.gz
/ibus-typing-booster-2.14.8.tar.gz
/ibus-typing-booster-2.14.9.tar.gz
/ibus-typing-booster-2.14.10.tar.gz
/ibus-typing-booster-2.14.11.tar.gz
/ibus-typing-booster-2.14.12.tar.gz
/ibus-typing-booster-2.14.13.tar.gz
/ibus-typing-booster-2.14.14.tar.gz
/ibus-typing-booster-2.14.15.tar.gz
/ibus-typing-booster-2.14.16.tar.gz
/ibus-typing-booster-2.14.17.tar.gz
/ibus-typing-booster-2.14.18.tar.gz
/ibus-typing-booster-2.14.19.tar.gz
/ibus-typing-booster-2.14.20.tar.gz
/ibus-typing-booster-2.15.0.tar.gz
/ibus-typing-booster-2.15.1.tar.gz
/ibus-typing-booster-2.15.2.tar.gz
/ibus-typing-booster-2.15.3.tar.gz
/ibus-typing-booster-2.15.4.tar.gz
/ibus-typing-booster-2.15.5.tar.gz
/ibus-typing-booster-2.15.6.tar.gz
/ibus-typing-booster-2.15.7.tar.gz
/ibus-typing-booster-2.15.8.tar.gz
/ibus-typing-booster-2.15.9.tar.gz
/ibus-typing-booster-2.15.10.tar.gz
/ibus-typing-booster-2.15.11.tar.gz
/ibus-typing-booster-2.15.12.tar.gz
/ibus-typing-booster-2.15.13.tar.gz
/ibus-typing-booster-2.15.14.tar.gz
/ibus-typing-booster-2.15.15.tar.gz
/ibus-typing-booster-2.15.16.tar.gz
/ibus-typing-booster-2.15.17.tar.gz
/ibus-typing-booster-2.15.18.tar.gz
/ibus-typing-booster-2.15.19.tar.gz
/ibus-typing-booster-2.15.20.tar.gz
/ibus-typing-booster-2.15.21.tar.gz
/ibus-typing-booster-2.15.22.tar.gz
/ibus-typing-booster-2.15.23.tar.gz
/ibus-typing-booster-2.15.24.tar.gz
/ibus-typing-booster-2.15.25.tar.gz
/ibus-typing-booster-2.15.26.tar.gz
/ibus-typing-booster-2.15.27.tar.gz
/ibus-typing-booster-2.15.28.tar.gz
/ibus-typing-booster-2.15.29.tar.gz
/ibus-typing-booster-2.15.30.tar.gz
/ibus-typing-booster-2.16.0.tar.gz
/ibus-typing-booster-2.16.1.tar.gz
/ibus-typing-booster-2.16.2.tar.gz
/ibus-typing-booster-2.16.3.tar.gz
/ibus-typing-booster-2.16.4.tar.gz
/ibus-typing-booster-2.16.5.tar.gz
/ibus-typing-booster-2.16.6.tar.gz
/ibus-typing-booster-2.16.7.tar.gz
/ibus-typing-booster-2.16.8.tar.gz
/ibus-typing-booster-2.16.9.tar.gz
/ibus-typing-booster-2.16.10.tar.gz
/ibus-typing-booster-2.17.0.tar.gz
/ibus-typing-booster-2.17.1.tar.gz
/ibus-typing-booster-2.17.2.tar.gz
/ibus-typing-booster-2.17.3.tar.gz
/ibus-typing-booster-2.18.0.tar.gz
/ibus-typing-booster-2.18.1.tar.gz
/ibus-typing-booster-2.18.2.tar.gz
/ibus-typing-booster-2.18.3.tar.gz
/ibus-typing-booster-2.18.4.tar.gz
/ibus-typing-booster-2.18.5.tar.gz
/ibus-typing-booster-2.18.6.tar.gz
/ibus-typing-booster-2.18.7.tar.gz
/ibus-typing-booster-2.18.8.tar.gz
/ibus-typing-booster-2.18.9.tar.gz
/ibus-typing-booster-2.18.10.tar.gz
/ibus-typing-booster-2.18.11.tar.gz
/ibus-typing-booster-2.18.12.tar.gz
/ibus-typing-booster-2.18.13.tar.gz
/ibus-typing-booster-2.18.14.tar.gz
/ibus-typing-booster-2.18.15.tar.gz
/ibus-typing-booster-2.18.16.tar.gz
/ibus-typing-booster-2.18.17.tar.gz
/ibus-typing-booster-2.18.18.tar.gz
/ibus-typing-booster-2.18.19.tar.gz
/ibus-typing-booster-2.18.20.tar.gz
/ibus-typing-booster-2.18.21.tar.gz
/ibus-typing-booster-2.19.0.tar.gz
/ibus-typing-booster-2.19.1.tar.gz
/ibus-typing-booster-2.19.2.tar.gz
/ibus-typing-booster-2.19.3.tar.gz
/ibus-typing-booster-2.19.4.tar.gz
/ibus-typing-booster-2.19.5.tar.gz
/ibus-typing-booster-2.19.6.tar.gz
/ibus-typing-booster-2.19.7.tar.gz
/ibus-typing-booster-2.19.8.tar.gz
/ibus-typing-booster-2.19.9.tar.gz
/ibus-typing-booster-2.19.10.tar.gz
/ibus-typing-booster-2.19.11.tar.gz
/ibus-typing-booster-2.19.12.tar.gz
/ibus-typing-booster-2.19.13.tar.gz
/ibus-typing-booster-2.19.14.tar.gz
/ibus-typing-booster-2.19.15.tar.gz
/ibus-typing-booster-2.19.16.tar.gz
/ibus-typing-booster-2.19.17.tar.gz
/ibus-typing-booster-2.20.0.tar.gz
/ibus-typing-booster-2.20.1.tar.gz
/ibus-typing-booster-2.20.2.tar.gz
/ibus-typing-booster-2.20.3.tar.gz
/ibus-typing-booster-2.21.0.tar.gz
/ibus-typing-booster-2.21.1.tar.gz
/ibus-typing-booster-2.21.2.tar.gz
/ibus-typing-booster-2.21.3.tar.gz
/ibus-typing-booster-2.21.4.tar.gz
/ibus-typing-booster-2.21.5.tar.gz
/ibus-typing-booster-2.21.6.tar.gz
/ibus-typing-booster-2.21.7.tar.gz
/ibus-typing-booster-2.21.8.tar.gz
/ibus-typing-booster-2.22.0.tar.gz
/ibus-typing-booster-2.22.1.tar.gz
/ibus-typing-booster-2.22.2.tar.gz
/ibus-typing-booster-2.22.3.tar.gz
/ibus-typing-booster-2.22.4.tar.gz
/ibus-typing-booster-2.22.5.tar.gz
/ibus-typing-booster-2.22.6.tar.gz
/ibus-typing-booster-2.22.7.tar.gz
/ibus-typing-booster-2.22.8.tar.gz
/ibus-typing-booster-2.22.9.tar.gz
/ibus-typing-booster-2.23.0.tar.gz
/ibus-typing-booster-2.23.1.tar.gz
/ibus-typing-booster-2.23.2.tar.gz
/ibus-typing-booster-2.23.3.tar.gz
/ibus-typing-booster-2.23.4.tar.gz
/ibus-typing-booster-2.23.5.tar.gz
/ibus-typing-booster-2.24.0.tar.gz
/ibus-typing-booster-2.24.1.tar.gz
/ibus-typing-booster-2.24.2.tar.gz
/ibus-typing-booster-2.24.3.tar.gz
/ibus-typing-booster-2.24.4.tar.gz
/ibus-typing-booster-2.24.5.tar.gz
/ibus-typing-booster-2.24.6.tar.gz
/ibus-typing-booster-2.24.7.tar.gz
/ibus-typing-booster-2.24.8.tar.gz
/ibus-typing-booster-2.24.9.tar.gz
/ibus-typing-booster-2.24.10.tar.gz
/ibus-typing-booster-2.24.11.tar.gz
/ibus-typing-booster-2.24.12.tar.gz
/ibus-typing-booster-2.24.13.tar.gz
/ibus-typing-booster-2.25.0.tar.gz
/ibus-typing-booster-2.25.1.tar.gz
/ibus-typing-booster-2.25.3.tar.gz
/ibus-typing-booster-2.25.4.tar.gz
/ibus-typing-booster-2.25.5.tar.gz
/ibus-typing-booster-2.25.6.tar.gz
/ibus-typing-booster-2.25.7.tar.gz
/ibus-typing-booster-2.25.8.tar.gz
/ibus-typing-booster-2.25.9.tar.gz
/ibus-typing-booster-2.25.10.tar.gz
/ibus-typing-booster-2.25.11.tar.gz
/ibus-typing-booster-2.25.12.tar.gz
/ibus-typing-booster-2.25.13.tar.gz

View File

@ -1,50 +0,0 @@
From 956b0cf51f7d3803bb605695c4ccc6fea77524a8 Mon Sep 17 00:00:00 2001
From: Mike FABIAN <mfabian@redhat.com>
Date: Thu, 27 Feb 2020 15:50:37 +0100
Subject: [PATCH] =?UTF-8?q?Prevent=20also=20BackSpace=20from=20reopening?=
=?UTF-8?q?=20a=20preedit=20when=20the=20option=20=E2=80=9CArrow=20keys=20?=
=?UTF-8?q?can=20reopen=20a=20preedit=E2=80=9D=20is=20off?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reopening the preedit is so terribly buggy, especially under Gnome Wayland
but also in many other applications.
Often surrounding text is reported as supported by the application but
ibus-typing-booster then gets completely wrong results when querying
the surrounding text. Without properly working surrounding text,
reopening a preedit cannot work correctly either.
Until now this option switched reopening the preedit on and off only for the arrow keys.
So even when this was switched off for the arrow keys, it was still causing problems
when using backspace in case of broken support for surrounding text.
Now reopening preedits is disabled completely when this option is off, which is
better in most cases as surrounding text is so terribly broken.
One can still turn it on, it might be helpful in some cases where
surrounding text works reasonably well (e.g. in gedit when using Xorg
and not Wayland). But in most cases it is unfortunately better to
switch this off.
---
engine/hunspell_table.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/engine/hunspell_table.py b/engine/hunspell_table.py
index 9214254..e3b61cf 100644
--- a/engine/hunspell_table.py
+++ b/engine/hunspell_table.py
@@ -2396,7 +2396,8 @@ class TypingBoosterEngine(IBus.Engine):
return self._return_false(key.val, key.code, key.state)
if (not self._arrow_keys_reopen_preedit
and key.val in (IBus.KEY_Left, IBus.KEY_KP_Left,
- IBus.KEY_Right, IBus.KEY_KP_Right)):
+ IBus.KEY_Right, IBus.KEY_KP_Right,
+ IBus.KEY_BackSpace)):
# using arrows key to reopen the preëdit is disabled
return self._return_false(key.val, key.code, key.state)
if (key.shift
--
2.29.2

View File

@ -1,48 +0,0 @@
diff -ru ibus-typing-booster-2.1.0.orig/engine/itb_util.py ibus-typing-booster-2.1.0/engine/itb_util.py
--- ibus-typing-booster-2.1.0.orig/engine/itb_util.py 2018-07-24 08:43:58.000000000 +0200
+++ ibus-typing-booster-2.1.0/engine/itb_util.py 2023-10-09 18:24:53.617131025 +0200
@@ -1757,6 +1757,9 @@
TR9> and its matching PDI or, if it has no matching PDI, the end of the
TR9> paragraph
+ U+2069 POP DIRECTIONAL ISOLATE
+ U+2068 FIRST STRONG ISOLATE
+
Examples:
>>> is_right_to_left('Hallo!')
@@ -1765,16 +1768,16 @@
>>> is_right_to_left('﷼')
True
- >>> is_right_to_left('⁨﷼⁩')
+ >>> is_right_to_left('\u2068﷼\u2069')
False
- >>> is_right_to_left('⁨﷼⁩﷼')
+ >>> is_right_to_left('\u2068﷼\u2069﷼')
True
- >>> is_right_to_left('a﷼')
+ >>> is_right_to_left('a\u2068﷼\u2069﷼')
False
- >>> is_right_to_left('a﷼')
+ >>> is_right_to_left('\u2068a\u2069\u2068﷼\u2069﷼')
True
'''
skip = False
@@ -1806,10 +1809,10 @@
Examples:
>>> bidi_embed('a')
- 'a'
+ '\u202Aa\u202C'
>>> bidi_embed('﷼')
- '‫﷼‬'
+ '\u202B﷼\u202C'
'''
if is_right_to_left(text):
return chr(0x202B) + text + chr(0x202C) # RLE + text + PDF
ibus-typing-booster-2.1.0/engine のみに存在: itb_util.py.orig

View File

@ -1,54 +0,0 @@
diff -ru ibus-typing-booster-2.1.0.orig/tests/run_tests.in ibus-typing-booster-2.1.0/tests/run_tests.in
--- ibus-typing-booster-2.1.0.orig/tests/run_tests.in 2018-06-05 11:32:44.000000000 +0200
+++ ibus-typing-booster-2.1.0/tests/run_tests.in 2020-06-09 17:52:21.789989905 +0200
@@ -21,6 +21,21 @@
import sys
import unittest
+# pip3 install tap.py --user
+IMPORT_TAP_SUCCESSFUL = False
+try:
+ from tap import TAPTestRunner
+ IMPORT_TAP_SUCCESSFUL = True
+except (ImportError,):
+ pass
+
+if 'IBUS_TYPING_BOOSTER_LOCATION' in os.environ:
+ location_path = os.environ['IBUS_TYPING_BOOSTER_LOCATION']
+ if location_path != None and location_path != '':
+ engine_path = os.path.join(location_path, 'engine')
+ sys.path.append(engine_path)
+sys.path.append('/usr/share/ibus-typing-booster/engine')
+
from gi import require_version
require_version('IBus', '1.0')
from gi.repository import IBus
@@ -182,10 +197,25 @@
sys.modules["gi.repository.IBus"].PropList = MockPropList
# -- Load and run our unit tests ---------------------------------------------
-os.environ['IBUS_TYPING_BOOSTER_DEBUG_LEVEL'] = '255'
+pattern = 'test*.py'
+start_dir = os.path.dirname(__file__)
+if len(sys.argv) > 1:
+ pattern = sys.argv[-1]
+ dir = os.path.dirname(pattern)
+ pattern = os.path.basename(pattern)
+ if dir != '.':
+ start_dir = os.path.join(start_dir, dir)
loader = unittest.TestLoader()
-suite = loader.discover(".")
-runner = unittest.TextTestRunner(stream = sys.stderr, verbosity = 255)
+suite = loader.discover(start_dir=start_dir, pattern=pattern)
+
+if IMPORT_TAP_SUCCESSFUL:
+ runner = TAPTestRunner(stream=sys.stderr, verbosity=255)
+ runner.set_outdir('.')
+ runner.set_format('Hi: {method_name} - {short_description}')
+ runner.set_combined(True)
+else:
+ runner = unittest.TextTestRunner(stream=sys.stderr, verbosity=255)
+
result = runner.run(suite)
if result.failures or result.errors:

File diff suppressed because it is too large Load Diff

2263
changelog Normal file

File diff suppressed because it is too large Load Diff

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

235
ibus-typing-booster.spec Normal file
View File

@ -0,0 +1,235 @@
Name: ibus-typing-booster
Version: 2.25.13
Release: %autorelease
Summary: A completion input method
License: GPL-3.0-or-later AND Apache-2.0
URL: https://mike-fabian.github.io/ibus-typing-booster/
Source0: https://github.com/mike-fabian/ibus-typing-booster/releases/download/%{version}/ibus-typing-booster-%{version}.tar.gz
Requires: ibus >= 1.5.3
Requires: m17n-lib
%{?__python3:Requires: %{__python3}}
Requires: python3-dbus
Requires: python3-distro
# because of “from packing import version”:
Requires: python3-packaging
Requires: python3-enchant
Requires: python3-pyxdg
%if 0%{?fedora} >= 24 || 0%{?rhel} > 7
# Recommend reasonably good fonts which have most of the emoji:
Recommends: google-noto-emoji-color-fonts
Recommends: gdouros-symbola-fonts
# For better description of the dictionaries in the setup tool
# makes it possible to search for full language and territory names
# and not just locale codes:
Recommends: python3-langtable
# To play a sound on error:
Recommends: python3-simpleaudio
# Use better regexpressions if available:
Recommends: python3-regex
# To get the currently active window in a Gnome Wayland session:
Recommends: python3-pyatspi
%endif
%if 0%{?fedora} >= 26 || 0%{?rhel} > 7
# Save some space in the binary rpm by requiring the Fedora
# packages which contain the emoji data files:
Requires: cldr-emoji-annotation
Requires: unicode-ucd
%endif
BuildRequires: ibus-devel
BuildRequires: gcc
%if 0%{?fedora} >= 24 || 0%{?rhel} > 7
BuildRequires: python3-devel >= 3.6.0
BuildRequires: python3-pyxdg
%else
BuildRequires: python34-devel
%endif
# for the unit tests
BuildRequires: m17n-lib
BuildRequires: m17n-db-extras
BuildRequires: m17n-db-devel
BuildRequires: python3-enchant
BuildRequires: enchant2
BuildRequires: hunspell-en
# because of “from packing import version”:
BuildRequires: python3-packaging
%if 0%{?fedora} >= 35
# to make the python3-enchant test work for hunspell dictionaries which are not yet UTF-8:
BuildRequires: glibc-gconv-extra
%endif
%if 0%{?fedora} && 0%{?fedora} >= 34
BuildRequires: python3-libvoikko
BuildRequires: voikko-fi
%endif
BuildRequires: appstream
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: python3-gobject
BuildRequires: python3-gobject-base
BuildRequires: hunspell-cs
BuildRequires: hunspell-de
BuildRequires: hunspell-en
BuildRequires: hunspell-es
BuildRequires: hunspell-fr
BuildRequires: hunspell-it
BuildRequires: hunspell-ko
BuildRequires: glib2
BuildRequires: gtk3
BuildRequires: dconf
BuildRequires: dbus-x11
BuildRequires: ibus
BuildRequires: glibc-langpack-en
BuildRequires: glibc-langpack-cs
BuildRequires: glibc-langpack-km
BuildRequires: glibc-langpack-pt
BuildRequires: glibc-langpack-am
BuildRequires: glibc-langpack-de
BuildRequires: glibc-langpack-ar
BuildRequires: make
BuildArch: noarch
# Some test cases fail on ppc64 and s390x (because of some bugs on
# these platforms I think). This makes the build fail for no good
# reason if it accidentally is build on one of these platforms.
#
# So even though this is a noarch package, tell koji to never build it
# on ppc64 and s390x:
ExcludeArch: ppc64 s390x
%description
Ibus-typing-booster is a context sensitive completion
input method to speedup typing.
%package tests
Summary: Tests for the %{name} package
Requires: %{name} = %{version}-%{release}
%description tests
The %{name}-tests package contains tests that can be used to verify
the functionality of the installed %{name} package.
%package -n emoji-picker
Summary: An emoji selection tool
Requires: ibus-typing-booster = %{version}-%{release}
%description -n emoji-picker
A simple application to find and insert emoji and other
Unicode symbols.
%prep
%setup -q
%build
export PYTHON=%{__python3}
%configure --disable-static --enable-installed-tests
%make_build
%install
export PYTHON=%{__python3}
%make_install NO_INDEX=true pkgconfigdir=%{_datadir}/pkgconfig
%py_byte_compile %{python3} /usr/share/ibus-typing-booster/engine
%py_byte_compile %{python3} /usr/share/ibus-typing-booster/setup
%if 0%{?fedora} >= 26 || 0%{?rhel} > 7
# These files are in the required package “cldr-emoji-annotation”
rm $RPM_BUILD_ROOT/%{_datadir}/%{name}/data/annotations/*.xml
rm $RPM_BUILD_ROOT/%{_datadir}/%{name}/data/annotationsDerived/*.xml
# This file is in the required package “unicode-ucd”:
rm $RPM_BUILD_ROOT/%{_datadir}/%{name}/data/UnicodeData.txt
# At least emoji-data.txt emoji-sequences.txt emoji-zwj-sequences.txt
# are still there even on Fedora >= 26 they are not available in any packages:
gzip -n --force --best $RPM_BUILD_ROOT/%{_datadir}/%{name}/data/*.txt
# The json file from emojione is not deleted anymore because
# the package nodejs-emojione-json has been orphaned:
gzip -n --force --best $RPM_BUILD_ROOT/%{_datadir}/%{name}/data/*.json
%else
gzip -n --force --best $RPM_BUILD_ROOT/%{_datadir}/%{name}/data/*.{txt,json}
gzip -n --force --best $RPM_BUILD_ROOT/%{_datadir}/%{name}/data/annotations/*.xml
gzip -n --force --best $RPM_BUILD_ROOT/%{_datadir}/%{name}/data/annotationsDerived/*.xml
%endif
%find_lang %{name}
%check
export LC_ALL=C.UTF-8
appstreamcli validate --pedantic --no-net %{buildroot}/%{_datadir}/metainfo/*.appdata.xml
# According to the appstream developers, appstream-util is unmaintained:
# https://github.com/ximion/appstream/issues/494#issuecomment-1521419742
# But I keep it here for the time being because the Fedora packaging guidelines ask for it:
# https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/#_app_data_validate_usage
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdata.xml
desktop-file-validate \
$RPM_BUILD_ROOT%{_datadir}/applications/ibus-setup-typing-booster.desktop
desktop-file-validate \
$RPM_BUILD_ROOT%{_datadir}/applications/emoji-picker.desktop
pushd engine
# run doctests
# commented out because of https://bugzilla.redhat.com/show_bug.cgi?id=2218460
#python3 hunspell_suggest.py
if [ -e /usr/share/m17n/si-wijesekara.mim ] ; then
python3 m17n_translit.py -v
else
echo "/usr/share/m17n/si-wijesekara.mim does not exist, m17n-db probably < 1.8.6, skipping doctest of m17n_translit.py"
fi
python3 itb_emoji.py -v
python3 itb_util.py -v
popd
mkdir -p /tmp/glib-2.0/schemas/
cp org.freedesktop.ibus.engine.typing-booster.gschema.xml \
/tmp/glib-2.0/schemas/org.freedesktop.ibus.engine.typing-booster.gschema.xml
glib-compile-schemas /tmp/glib-2.0/schemas #&>/dev/null || :
export XDG_DATA_DIRS=/tmp:%{_datadir} # /usr/share is needed to make enchant2 work!
eval $(dbus-launch --sh-syntax)
dconf dump /
dconf write /org/freedesktop/ibus/engine/typing-booster/offtherecord false
dconf write /org/freedesktop/ibus/engine/typing-booster/usedigitsasselectkeys true
dconf write /org/freedesktop/ibus/engine/typing-booster/addspaceoncommit true
dconf write /org/freedesktop/ibus/engine/typing-booster/tabenable false
dconf write /org/freedesktop/ibus/engine/typing-booster/inputmethod "'NoIME'"
dconf write /org/freedesktop/ibus/engine/typing-booster/rememberlastusedpreeditime true
dconf write /org/freedesktop/ibus/engine/typing-booster/mincharcomplete 1
dconf write /org/freedesktop/ibus/engine/typing-booster/dictionary "'en_US'"
dconf write /org/freedesktop/ibus/engine/typing-booster/emojipredictions true
dconf write /org/freedesktop/ibus/engine/typing-booster/autocommitcharacters "''"
dconf write /org/freedesktop/ibus/engine/typing-booster/pagesize 6
dconf write /org/freedesktop/ibus/engine/typing-booster/shownumberofcandidates true
dconf write /org/freedesktop/ibus/engine/typing-booster/showstatusinfoinaux true
dconf write /org/freedesktop/ibus/engine/typing-booster/inlinecompletion false
dconf write /org/freedesktop/ibus/engine/typing-booster/keybindings "{'next_input_method': <['Control+Down', 'Control+KP_Down']>, 'previous_input_method': <['Control+Up', 'Control+KP_Up']>, 'lookup_related': <['Mod5+F12']>, 'enable_lookup': <['Tab', 'ISO_Left_Tab', 'KP_Divide']>, 'select_next_candidate': <['Tab', 'ISO_Left_Tab', 'Down', 'KP_Down']>, 'lookup_table_page_down': <['Page_Down', 'KP_Page_Down', 'KP_Next']>, 'toggle_emoji_prediction': <['Mod5+F6']>, 'lookup_table_page_up': <['Page_Up', 'KP_Page_Up', 'KP_Prior']>, 'toggle_off_the_record': <['Mod5+F9']>, 'cancel': <['Escape']>, 'setup': <['Mod5+F10']>, 'select_previous_candidate': <['Shift+Tab', 'Shift+ISO_Left_Tab', 'Up', 'KP_Up']>}"
dconf dump /
make check && rc=0 || rc=1
cat tests/*.log
if [ $rc != 0 ] ; then
exit $rc
fi
%files -f %{name}.lang
%doc AUTHORS COPYING README README.html README.md
%{_datadir}/%{name}
%{_datadir}/metainfo/typing-booster.appdata.xml
%{_datadir}/ibus/component/typing-booster.xml
%{_datadir}/icons/hicolor/16x16/apps/ibus-typing-booster.png
%{_datadir}/icons/hicolor/22x22/apps/ibus-typing-booster.png
%{_datadir}/icons/hicolor/32x32/apps/ibus-typing-booster.png
%{_datadir}/icons/hicolor/48x48/apps/ibus-typing-booster.png
%{_datadir}/icons/hicolor/64x64/apps/ibus-typing-booster.png
%{_datadir}/icons/hicolor/128x128/apps/ibus-typing-booster.png
%{_datadir}/icons/hicolor/256x256/apps/ibus-typing-booster.png
%{_datadir}/icons/hicolor/scalable/apps/ibus-typing-booster.svg
%{_libexecdir}/ibus-engine-typing-booster
%{_libexecdir}/ibus-setup-typing-booster
%{_datadir}/applications/ibus-setup-typing-booster.desktop
%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.engine.typing-booster.gschema.xml
%files tests
%dir %{_libexecdir}/installed-tests
%{_libexecdir}/installed-tests/%{name}
%dir %{_datadir}/installed-tests
%{_datadir}/installed-tests/%{name}
%files -n emoji-picker
%{_bindir}/emoji-picker
%{_datadir}/metainfo/emoji-picker.appdata.xml
%{_datadir}/applications/emoji-picker.desktop
%changelog
%autochangelog

9
plans/basic.fmf Normal file
View File

@ -0,0 +1,9 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt
prepare:
how: shell
script:
- dnf config-manager --enable rhel-CRB --enable rhel-buildroot

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (ibus-typing-booster-2.25.13.tar.gz) = 634a554b6921594cd0f90618fbed15597362b1442e6c1dfb6b2aab8a80010243108b2d7411fde9e87577e60394172f6051ef36330d178eb28a030b58bb343240

54
tests/main.fmf Normal file
View File

@ -0,0 +1,54 @@
test: ./runtest.sh
duration: 50m
framework: beakerlib
require:
# This stuff is only needed if gnome-desktop-testing
# cannot be required as a package and needs to be cloned
# from the git repo and build from source:
# - git
# - make
# - gcc
# - diffutils
# - autoconf
# - automake
# - libtool
# - glib2-devel
# - systemd-devel
# - gnome-session
# - gnome-shell
# - gnome-shell-extension-no-overview
- dbus-x11
- xorg-x11-server-Xwayland
- xwayland-run
- ibus
- ibus-devel
# - ibus-desktop-testing
# - gnome-desktop-testing
- ibus-typing-booster
- ibus-typing-booster-tests
- python3-packaging
- rsync
- m17n-lib
- m17n-db-extras
- python3-enchant
- libappstream-glib
- desktop-file-utils
- python3-gobject
- python3-gobject-base
- hunspell-cs
- hunspell-de
- hunspell-en
- hunspell-es
- hunspell-fr
- hunspell-it
- hunspell-ko
- dconf
- python3-devel
- python3-pyxdg
- glibc-langpack-en
- glibc-langpack-cs
- glibc-langpack-km
- glibc-langpack-pt
- glibc-langpack-am
- glibc-langpack-de
- glibc-langpack-ar

80
tests/runtest.sh Executable file
View File

@ -0,0 +1,80 @@
#!/bin/bash
. /usr/share/beakerlib/beakerlib.sh || exit 1
NAME=ibus-typing-booster
XFWB_SCRIPT=$(pwd)/xwfb-script.sh
rlJournalStart
rlPhaseStartSetup
rlAssertRpm ibus-typing-booster
# rlAssertRpm gnome-desktop-testing
# rlAssertRpm gnome-shell-extension-no-overview
# rlAssertBinaryOrigin gnome-desktop-testing-runner gnome-desktop-testing
rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory"
rlRun "pushd $tmp"
rlPhaseEnd
# rlPhaseStartTest
# rlRun -t -l "ibus-desktop-testing-runner \
# --no-graphics \
# --runner=gnome \
# --timeout=1500 \
# --tests=${NAME} \
# --output=${NAME}.log \
# --result=test.log \
# " 0 "Running ibus-typing-booster tests"
# echo "==== ${NAME}.log: ===="
# cat ${NAME}.log
# echo "==== EOF ${NAME}.log: ===="
# echo "==== test.log ===="
# cat test.log
# echo "==== EOF test.log: ===="
# rlAssertNotGrep FAIL test.log
# rlFileSubmit ibus-typing-booster.log
# rlFileSubmit test.log
# rlPhaseEnd
rlPhaseStartTest
rlRun -t -l "pushd /usr/libexec/installed-tests/ibus-typing-booster" \
0 "Change to directory of installed tests"
TEST_FILES="test_*.py"
# When running locally with `tmt run -vvv -a provision -h local`
# DISPLAY might be set here and XDG_SESSION_TYPE might be "x11".
# In that case, all tests, including the graphical test_0_gtk.py
# will run fine in this "for" loop. Otherwise the graphical
# test_0_gtk.py in this for loop will be skipped:
for test_file in ${TEST_FILES}
do
rlRun -t -s "./run_tests ${test_file}" 0
echo "==== START of `cat ${rlRun_LOG}`: log of ${test_file} ===="
cat ${rlRun_LOG}
echo "==== END of `cat ${rlRun_LOG}`: log of ${test_file} ===="
rlAssertNotGrep FAIL ${rlRun_LOG}
rlGetTestState
rlLog "Number of failed asserts so far: ${ECODE}"
rlFileSubmit ${rlRun_LOG}
done
if [ -z "${DISPLAY:-}" ]; then
rlLogInfo "DISPLAY is empty or unset."
rlLogInfo "Therefore, use xfwb-run to run the graphical test_0_gtk.py:"
rlRun -t -s "xwfb-run -c mutter -e $tmp/xwfb-run.log -n 99 $XFWB_SCRIPT" \
0 "Running test_0_gtk.py in xfwb-run"
echo "==== START of `cat ${rlRun_LOG}`: log of xwfb-run ===="
cat ${rlRun_LOG}
echo "==== END of `cat ${rlRun_LOG}`: log of xwfb-run ===="
rlAssertNotGrep FAIL ${rlRun_LOG}
rlGetTestState
rlLog "Total number of failed asserts: ${ECODE}"
rlFileSubmit ${rlRun_LOG}
rlFileSubmit xwfb-run.log
fi
rlGetTestState
rlLog "Total number of failed asserts: ${ECODE}"
rlRun "popd" 0
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $tmp" 0 "Remove tmp directory"
rlPhaseEnd
rlJournalEnd

32
tests/xwfb-script.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
# Run this with `xwfb-run -e /tmp/xwfb-run.log -n 99 xwfb-script.sh`
# Redirect stderr to stdout:
exec 2>&1
# without setting GDK_BACKEND=x11, Gtk programs cannot open windows in xfwb-run:
export GDK_BACKEND=x11
export XDG_SESSION_TYPE=x11
echo "starting mutter ..."
mutter --x11 &
sleep 5
echo "mutter started"
ibus-daemon --verbose \
--replace \
--single \
--desktop=mutter \
--panel=disable \
--config=disable &
sleep 5
echo "ibus-daemon started."
pushd /usr/share/ibus-typing-booster/engine
/usr/libexec/installed-tests/ibus-typing-booster/test_0_gtk.py -v &
TEST_PID=$!
# A screenshot for debugging can be made here:
#sleep 1
#import -window root /tmp/screenshot.png
#echo "screenshot done."
# Wait for test_0_gtk.py to finish and get its exit code
wait $TEST_PID
EXIT_CODE=$?
echo "The exit code of test_0_gtk.py: $EXIT_CODE"
exit $EXIT_CODE