diff --git a/ibus-typing-booster-libX11-1.8.7.patch b/ibus-typing-booster-libX11-1.8.7.patch new file mode 100644 index 0000000..b1eecb3 --- /dev/null +++ b/ibus-typing-booster-libX11-1.8.7.patch @@ -0,0 +1,145 @@ +Index: ibus-typing-booster-2.24.2/tests/test_itb.py +=================================================================== +--- ibus-typing-booster-2.24.2.orig/tests/test_itb.py ++++ ibus-typing-booster-2.24.2/tests/test_itb.py +@@ -2367,89 +2367,73 @@ class ItbTestCase(unittest.TestCase): + ['en_US'], update_gsettings=False) + self.engine.do_process_key_event(IBus.KEY_dead_macron, 0, 0) + self.assertEqual(self.engine.mock_preedit_text, '¯') +- self.engine.do_process_key_event(0x010001EB, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭ') +- self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭ·') +- self.engine.do_process_key_event(IBus.KEY_macron, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭ¯') +- self.engine.do_process_key_event(0x010001EB, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭ') +- self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭ·') +- self.engine.do_process_key_event(IBus.KEY_underscore, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭ_') +- self.engine.do_process_key_event(0x010001EB, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭ') +- self.engine.do_process_key_event(IBus.KEY_dead_macron, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭ¯') + self.engine.do_process_key_event(IBus.KEY_dead_ogonek, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭ¯˛') ++ self.assertEqual(self.engine.mock_preedit_text, '¯˛') + self.engine.do_process_key_event(IBus.KEY_o, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭ') + self.engine.do_process_key_event(IBus.KEY_dead_macron, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭ¯') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭ¯') + self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭ¯·') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭ¯·') + self.engine.do_process_key_event(IBus.KEY_semicolon, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭ¯·;') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭ¯·;') + self.engine.do_process_key_event(IBus.KEY_o, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭ') + self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭ·') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭ·') + self.engine.do_process_key_event(IBus.KEY_macron, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭ¯') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭ¯') + self.engine.do_process_key_event(IBus.KEY_dead_ogonek, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭ¯˛') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭ¯˛') + self.engine.do_process_key_event(IBus.KEY_o, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭ') + self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭ·') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭ·') + self.engine.do_process_key_event(IBus.KEY_macron, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭ¯') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭ¯') + self.engine.do_process_key_event(IBus.KEY_semicolon, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭ¯;') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭ¯;') + self.engine.do_process_key_event(IBus.KEY_o, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭ') + self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭ·') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭ·') + self.engine.do_process_key_event(IBus.KEY_underscore, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭ_') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭ_') + self.engine.do_process_key_event(IBus.KEY_dead_ogonek, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭ_˛') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭ_˛') + self.engine.do_process_key_event(IBus.KEY_o, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭ') + self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭ·') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭ·') + self.engine.do_process_key_event(IBus.KEY_underscore, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭ_') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭ_') + self.engine.do_process_key_event(IBus.KEY_semicolon, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭ_;') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭ_;') + self.engine.do_process_key_event(IBus.KEY_o, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭ') + self.engine.do_process_key_event(IBus.KEY_dead_caron, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭˇ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭˇ') + self.engine.do_process_key_event(IBus.KEY_EZH, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮ') + self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮ·') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮ·') + self.engine.do_process_key_event(IBus.KEY_c, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮc') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮc') + self.engine.do_process_key_event(IBus.KEY_EZH, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮǮ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮǮ') + self.engine.do_process_key_event(IBus.KEY_dead_caron, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮǮˇ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮǮˇ') + self.engine.do_process_key_event(IBus.KEY_ezh, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮǮǯ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮǮǯ') + self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮǮǯ·') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮǮǯ·') + self.engine.do_process_key_event(IBus.KEY_c, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮǮǯc') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮǮǯc') + self.engine.do_process_key_event(IBus.KEY_ezh, 0, 0) +- self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǭǭǭǮǮǯǯ') ++ self.assertEqual(self.engine.mock_preedit_text, 'ǭǭǭǭǭǭǮǮǯǯ') + self.engine.do_process_key_event(IBus.KEY_space, 0, 0) + self.assertEqual(self.engine.mock_preedit_text, '') +- self.assertEqual(self.engine.mock_committed_text, 'ǭǭǭǭǭǭǭǭǭǮǮǯǯ ') ++ self.assertEqual(self.engine.mock_committed_text, 'ǭǭǭǭǭǭǮǮǯǯ ') + if self._compose_sequences.compose([IBus.KEY_Multi_key, 0x01002276, IBus.KEY_slash]) != '≸': + self.skipTest( + 'Compose file too old, older than ' +@@ -2462,7 +2446,7 @@ class ItbTestCase(unittest.TestCase): + self.assertEqual(self.engine.mock_preedit_text, '≸') + self.engine.do_process_key_event(IBus.KEY_space, 0, 0) + self.assertEqual(self.engine.mock_preedit_text, '') +- self.assertEqual(self.engine.mock_committed_text, 'ǭǭǭǭǭǭǭǭǭǮǮǯǯ ≸ ') ++ self.assertEqual(self.engine.mock_committed_text, 'ǭǭǭǭǭǭǮǮǯǯ ≸ ') + self.engine.do_process_key_event(IBus.KEY_Multi_key, 0, 0) + self.assertEqual(self.engine.mock_preedit_text, '·') + self.engine.do_process_key_event(0x0100093C, 0, 0) +@@ -2473,7 +2457,7 @@ class ItbTestCase(unittest.TestCase): + self.engine.do_process_key_event(IBus.KEY_space, 0, 0) + self.assertEqual(self.engine.mock_preedit_text, '') + self.assertEqual(self.engine.mock_committed_text, +- 'ǭǭǭǭǭǭǭǭǭǮǮǯǯ ≸ \u0915\u093C ') ++ 'ǭǭǭǭǭǭǮǮǯǯ ≸ \u0915\u093C ') + + def test_compose_combining_chars_in_preedit_representation(self) -> None: + self.engine.set_current_imes( diff --git a/ibus-typing-booster.changes b/ibus-typing-booster.changes index a31744f..54776b8 100644 --- a/ibus-typing-booster.changes +++ b/ibus-typing-booster.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Sun Oct 8 16:26:56 UTC 2023 - Marguerite Su + +- fix factory build: + * libX11-data dropped some compose sequences in en_US locale + due to xkeyboard-config changes in version 1.8.7 (commit af2b6dfa) + * so some itb tests are not valid any more. + ------------------------------------------------------------------- Mon Oct 02 09:13:14 UTC 2023 - maiku.fabian@gmail.com diff --git a/ibus-typing-booster.spec b/ibus-typing-booster.spec index f3121bc..59a68c1 100644 --- a/ibus-typing-booster.spec +++ b/ibus-typing-booster.spec @@ -25,27 +25,51 @@ Group: System/X11/Utilities URL: https://mike-fabian.github.io/ibus-typing-booster/ Source0: https://github.com/mike-fabian/ibus-typing-booster/releases/download/%{version}/%{name}-%{version}.tar.gz Source1: https://releases.pagure.org/inscript2/inscript2-20210820.tar.gz +Patch0: %{name}-libX11-1.8.7.patch +BuildRequires: AppStream +BuildRequires: appstream-glib BuildRequires: dbus-1-x11 BuildRequires: desktop-file-utils BuildRequires: fdupes +BuildRequires: glib2 +BuildRequires: glibc-locale +BuildRequires: gtk3 BuildRequires: ibus-devel +BuildRequires: m17n-db +# for the unit tests +BuildRequires: m17n-lib BuildRequires: python3 BuildRequires: python3-devel BuildRequires: python3-gobject BuildRequires: python3-gobject-Gdk -BuildRequires: update-desktop-files -# for the unit tests -BuildRequires: m17n-lib -BuildRequires: AppStream -BuildRequires: appstream-glib -BuildRequires: glib2 -BuildRequires: glibc-locale -BuildRequires: gtk3 -BuildRequires: m17n-db -BuildRequires: python3-pyenchant -BuildRequires: xvfb-run # Because of “from packing import version”: BuildRequires: python3-packaging +BuildRequires: python3-pyenchant +BuildRequires: update-desktop-files +BuildRequires: xvfb-run +Requires: dbus-1-python3 +# Workaround bug with python3-enchant: https://bugzilla.opensuse.org/show_bug.cgi?id=1141993 +Requires: enchant-1-backend +# +Requires: ibus >= 1.5.3 +Requires: m17n-lib +Requires: python3 >= 3.3 +Requires: python3-distro +# Because of “from packing import version”: +Requires: python3-packaging +Requires: python3-pyenchant +Requires: python3-pyxdg +Recommends: gdouros-symbola-fonts +# Recommend reasonably good fonts which have most of the emoji: +Recommends: noto-coloremoji-fonts +# For speech recognition: +Recommends: python3-PyAudio +# To make the setup tool look nicer and the search for dictionaries and imes better: +Recommends: python3-langtable +# Better regexpressions (optional): +Recommends: python3-regex +# To play a sound on error: +Recommends: python3-simpleaudio %if 0%{?sle_version} >= 120200 BuildRequires: python3-pyxdg %endif @@ -64,29 +88,6 @@ BuildRequires: myspell-es_ES BuildRequires: myspell-fr_FR BuildRequires: myspell-it_IT %endif -# -Requires: ibus >= 1.5.3 -Requires: dbus-1-python3 -Requires: m17n-lib -Requires: python3 >= 3.3 -Requires: python3-distro -Requires: python3-pyenchant -# Because of “from packing import version”: -Requires: python3-packaging -# Workaround bug with python3-enchant: https://bugzilla.opensuse.org/show_bug.cgi?id=1141993 -Requires: enchant-1-backend -Requires: python3-pyxdg -# Recommend reasonably good fonts which have most of the emoji: -Recommends: noto-coloremoji-fonts -Recommends: gdouros-symbola-fonts -# For speech recognition: -Recommends: python3-PyAudio -# To play a sound on error: -Recommends: python3-simpleaudio -# To make the setup tool look nicer and the search for dictionaries and imes better: -Recommends: python3-langtable -# Better regexpressions (optional): -Recommends: python3-regex %description Ibus-typing-booster is a context sensitive completion @@ -98,11 +99,12 @@ input method to speedup typing. ##extract inscript2 maps tar xzf %{SOURCE1} %endif +%patch0 -p1 %build export PYTHON=%{_bindir}/python3 %configure --disable-static --libexecdir=%{_libdir}/ibus -make %{?_smp_mflags} +%make_build %install export PYTHON=%{_bindir}/python3 @@ -133,7 +135,7 @@ export M17NDIR=%{buildroot}%{_datadir}/m17n/ desktop-file-validate \ %{buildroot}%{_datadir}/applications/ibus-setup-typing-booster.desktop desktop-file-validate \ - $RPM_BUILD_ROOT%{_datadir}/applications/emoji-picker.desktop + %{buildroot}%{_datadir}/applications/emoji-picker.desktop pushd engine # run doctests # hunspell_suggest.py test currently doesn't work on SuSE because @@ -200,7 +202,8 @@ fi %{_bindir}/ibus write-cache --system &>/dev/null || : %files -f %{name}.lang -%doc AUTHORS COPYING README README.html README.md +%license COPYING +%doc AUTHORS README README.html README.md %{_bindir}/emoji-picker %{_datadir}/%{name} %dir %{_datadir}/metainfo