Compare commits

...

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

14 changed files with 778 additions and 9153 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

102
.gitignore vendored
View File

@ -1 +1,101 @@
SOURCES/ibus-table-1.9.18.tar.gz
ibus-table-1.3.0.20100621.tar.gz
/ibus-table-1.3.9.20110827.tar.gz
/ibus-table-1.4.99.20120907.tar.gz
/ibus-table-1.4.99.20121113.tar.gz
/ibus-table-1.4.99.20130103.tar.gz
/ibus-table-1.4.99.20130108.tar.gz
/ibus-table-1.4.99.20130110.tar.gz
/ibus-table-1.5.0.tar.gz
/ibus-table-1.5.0.20130419.tar.gz
/ibus-table-1.5.0.20140203.tar.gz
/ibus-table-1.5.0.20140205.tar.gz
/ibus-table-1.5.0.20140218.tar.gz
/ibus-table-1.5.0.20140306.tar.gz
/ibus-table-1.5.0.20140311.tar.gz
/ibus-table-1.5.0.20140312.tar.gz
/ibus-table-1.5.0.20140402.tar.gz
/ibus-table-1.5.0.20140409.tar.gz
/ibus-table-1.5.0.20140416.tar.gz
/ibus-table-1.5.0.20140519.tar.gz
/ibus-table-1.5.0.20140527.tar.gz
/ibus-table-1.5.0.20140528.tar.gz
/ibus-table-1.8.0.tar.gz
/ibus-table-1.8.1.tar.gz
/ibus-table-1.8.2.tar.gz
/ibus-table-1.8.3.tar.gz
/ibus-table-1.8.4.tar.gz
/ibus-table-1.8.5.tar.gz
/ibus-table-1.8.6.tar.gz
/ibus-table-1.8.7.tar.gz
/ibus-table-1.8.8.tar.gz
/ibus-table-1.8.9.tar.gz
/ibus-table-1.8.10.tar.gz
/ibus-table-1.8.11.tar.gz
/ibus-table-1.9.0.tar.gz
/ibus-table-1.9.1.tar.gz
/ibus-table-1.9.2.tar.gz
/ibus-table-1.9.3.tar.gz
/ibus-table-1.9.4.tar.gz
/ibus-table-1.9.5.tar.gz
/ibus-table-1.9.6.tar.gz
/ibus-table-1.9.7.tar.gz
/ibus-table-1.9.8.tar.gz
/ibus-table-1.9.9.tar.gz
/ibus-table-1.9.10.tar.gz
/ibus-table-1.9.11.tar.gz
/ibus-table-1.9.12.tar.gz
/ibus-table-1.9.13.tar.gz
/ibus-table-1.9.14.tar.gz
/ibus-table-1.9.15.tar.gz
/ibus-table-1.9.16.tar.gz
/ibus-table-1.9.17.tar.gz
/ibus-table-1.9.18.tar.gz
/ibus-table-1.9.19.tar.gz
/ibus-table-1.9.20.tar.gz
/ibus-table-1.9.21.tar.gz
/ibus-table-1.9.22.tar.gz
/ibus-table-1.9.23.tar.gz
/ibus-table-1.9.24.tar.gz
/ibus-table-1.9.25.tar.gz
/ibus-table-1.10.0.tar.gz
/ibus-table-1.10.1.tar.gz
/ibus-table-1.11.0.tar.gz
/ibus-table-1.12.0.tar.gz
/ibus-table-1.12.1.tar.gz
/ibus-table-1.12.2.tar.gz
/ibus-table-1.12.3.tar.gz
/ibus-table-1.12.4.tar.gz
/ibus-table-1.12.5.tar.gz
/ibus-table-1.12.6.tar.gz
/ibus-table-1.13.0.tar.gz
/ibus-table-1.13.1.tar.gz
/ibus-table-1.13.2.tar.gz
/ibus-table-1.13.3.tar.gz
/ibus-table-1.13.4.tar.gz
/ibus-table-1.13.5.tar.gz
/ibus-table-1.13.6.tar.gz
/ibus-table-1.13.7.tar.gz
/ibus-table-1.14.0.tar.gz
/ibus-table-1.14.1.tar.gz
/ibus-table-1.15.0.tar.gz
/ibus-table-1.15.1.tar.gz
/ibus-table-1.16.0.tar.gz
/ibus-table-1.16.3.tar.gz
/ibus-table-1.16.4.tar.gz
/ibus-table-1.16.5.tar.gz
/ibus-table-1.16.6.tar.gz
/ibus-table-1.16.7.tar.gz
/ibus-table-1.16.8.tar.gz
/ibus-table-1.16.9.tar.gz
/ibus-table-1.16.10.tar.gz
/ibus-table-1.16.11.tar.gz
/ibus-table-1.16.12.tar.gz
/ibus-table-1.16.13.tar.gz
/ibus-table-1.16.14.tar.gz
/ibus-table-1.17.0.tar.gz
/ibus-table-1.17.1.tar.gz
/ibus-table-1.17.2.tar.gz
/ibus-table-1.17.3.tar.gz
/ibus-table-1.17.4.tar.gz
/ibus-table-1.17.5.tar.gz
/ibus-table-1.17.6.tar.gz

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,166 +0,0 @@
diff -Nru ibus-table-1.9.18/engine/table.py ibus-table-1.9.18.new/engine/table.py
--- ibus-table-1.9.18/engine/table.py 2020-07-23 17:21:31.934904346 +0200
+++ ibus-table-1.9.18.new/engine/table.py 2020-07-23 17:28:19.342746241 +0200
@@ -1752,6 +1752,9 @@
self._input_mode)
self._update_ui()
+ def get_pinyin_mode(self):
+ return self._editor._py_mode
+
def set_onechar_mode(self, mode=False, update_dconf=True):
if mode == self._editor._onechar:
return
diff -Nru ibus-table-1.9.18/tests/test_0_gtk.py ibus-table-1.9.18.new/tests/test_0_gtk.py
--- ibus-table-1.9.18/tests/test_0_gtk.py 2020-07-23 17:21:31.940904285 +0200
+++ ibus-table-1.9.18.new/tests/test_0_gtk.py 2020-07-23 17:37:23.234210681 +0200
@@ -205,14 +205,14 @@
object_path = '%s/%d' % (self.ENGINE_PATH, self.__id)
db_dir = '/usr/share/ibus-table/tables'
db_file = os.path.join(db_dir, engine_name + '.db')
- database = tabsqlitedb.TabSqliteDb(filename=db_file, user_db=':memory:')
- self.__engine = table.TabEngine(
+ database = tabsqlitedb.tabsqlitedb(filename=db_file, user_db=':memory:')
+ self.__engine = table.tabengine(
self.__bus,
object_path,
database)
self.__engine.connect('focus-in', self.__engine_focus_in)
self.__engine.connect('focus-out', self.__engine_focus_out)
- # FIXME: Need to connect 'reset' after TabEngine.clear_all_input_and_preedit()
+ # FIXME: Need to connect 'reset' after tabengine.clear_all_input_and_preedit()
# is called.
self.__engine.connect_after('reset', self.__engine_reset)
self.__bus.get_connection().signal_subscribe(
diff -Nru ibus-table-1.9.18/tests/test_it.py ibus-table-1.9.18.new/tests/test_it.py
--- ibus-table-1.9.18/tests/test_it.py 2020-07-23 17:21:31.940904285 +0200
+++ ibus-table-1.9.18.new/tests/test_it.py 2020-07-23 17:29:52.032800325 +0200
@@ -78,7 +78,6 @@
ORIG_SINGLE_WILDCARD_CHAR = None
ORIG_MULTI_WILDCARD_CHAR = None
ORIG_PINYIN_MODE = None
-ORIG_SUGGESTION_MODE = None
def backup_original_settings():
global ENGINE
@@ -97,7 +96,6 @@
global ORIG_SINGLE_WILDCARD_CHAR
global ORIG_MULTI_WILDCARD_CHAR
global ORIG_PINYIN_MODE
- global ORIG_SUGGESTION_MODE
ORIG_INPUT_MODE = ENGINE.get_input_mode()
ORIG_CHINESE_MODE = ENGINE.get_chinese_mode()
ORIG_LETTER_WIDTH = ENGINE.get_letter_width()
@@ -113,7 +111,6 @@
ORIG_SINGLE_WILDCARD_CHAR = ENGINE.get_single_wildcard_char()
ORIG_MULTI_WILDCARD_CHAR = ENGINE.get_multi_wildcard_char()
ORIG_PINYIN_MODE = ENGINE.get_pinyin_mode()
- ORIG_SUGGESTION_MODE = ENGINE.get_suggestion_mode()
def restore_original_settings():
global ENGINE
@@ -132,7 +129,6 @@
global ORIG_SINGLE_WILDCARD_CHAR
global ORIG_MULTI_WILDCARD_CHAR
global ORIG_PINYIN_MODE
- global ORIG_SUGGESTION_MODE
ENGINE.set_input_mode(ORIG_INPUT_MODE)
ENGINE.set_chinese_mode(ORIG_CHINESE_MODE)
ENGINE.set_letter_width(ORIG_LETTER_WIDTH[0], input_mode=0)
@@ -150,7 +146,6 @@
ENGINE.set_single_wildcard_char(ORIG_SINGLE_WILDCARD_CHAR)
ENGINE.set_multi_wildcard_char(ORIG_MULTI_WILDCARD_CHAR)
ENGINE.set_pinyin_mode(ORIG_PINYIN_MODE)
- ENGINE.set_suggestion_mode(ORIG_SUGGESTION_MODE)
def set_default_settings():
global ENGINE
@@ -256,7 +251,6 @@
ENGINE.set_multi_wildcard_char(multi_wildcard_char)
ENGINE.set_pinyin_mode(False)
- ENGINE.set_suggestion_mode(False)
def set_up(engine_name):
'''
@@ -290,7 +284,7 @@
assert IBus.PropList is not IBUS_PROP_LIST
assert IBus.PropList is MockPropList
# Reload the table module so that the patches
- # are applied to TabEngine:
+ # are applied to tabengine:
sys.path.insert(0, '../engine')
importlib.reload(table)
sys.path.pop(0)
@@ -302,9 +296,9 @@
ENGINE = None
tear_down()
return False
- TABSQLITEDB = tabsqlitedb.TabSqliteDb(
+ TABSQLITEDB = tabsqlitedb.tabsqlitedb(
filename=db_file, user_db=':memory:')
- ENGINE = table.TabEngine(
+ ENGINE = table.tabengine(
bus,
'/com/redhat/IBus/engines/table/%s/engine/0' %engine_name,
TABSQLITEDB,
@@ -380,59 +374,6 @@
self.assertEqual(ENGINE.mock_preedit_text, '')
self.assertEqual(ENGINE.mock_committed_text, '工爱工')
- def test_suggestion_mode(self):
- if not ENGINE._ime_sg:
- self.skipTest("This engine does not have a suggestion mode.")
- # Suggestion mode is False by default:
- self.assertEqual(ENGINE.get_suggestion_mode(), False)
- self.assertEqual(ENGINE.get_pinyin_mode(), False)
- ENGINE.do_process_key_event(IBus.KEY_a, 0, 0)
- self.assertEqual(ENGINE.mock_preedit_text, '工')
- ENGINE.do_process_key_event(IBus.KEY_space, 0, 0)
- self.assertEqual(ENGINE.mock_preedit_text, '')
- self.assertEqual(ENGINE.mock_committed_text, '工')
- self.assertEqual(ENGINE._editor._lookup_table.mock_candidates, [])
- ENGINE.set_suggestion_mode(True)
- ENGINE.do_process_key_event(IBus.KEY_a, 0, 0)
- self.assertEqual(ENGINE.mock_preedit_text, '工')
- ENGINE.do_process_key_event(IBus.KEY_space, 0, 0)
- self.assertEqual(ENGINE.mock_preedit_text, '')
- self.assertEqual(ENGINE.mock_committed_text, '工工')
- self.assertEqual(ENGINE._editor._lookup_table.mock_candidates,
- ['工作人员 673 0',
- '工作会议 310 0',
- '工作报告 267 0',
- '工人阶级 146 0',
- '工作重点 78 0',
- '工作小组 73 0',
- '工业企业 71 0',
- '工业大学 69 0',
- '工作单位 61 0',
- '工业生产 58 0'])
- ENGINE.do_process_key_event(IBus.KEY_space, 0, 0)
- self.assertEqual(ENGINE.mock_preedit_text, '')
- self.assertEqual(ENGINE.mock_committed_text, '工工作人员')
- ENGINE.set_pinyin_mode(True)
- ENGINE.do_process_key_event(IBus.KEY_a, 0, 0)
- self.assertEqual(ENGINE.mock_preedit_text, '爱')
- ENGINE.do_process_key_event(IBus.KEY_space, 0, 0)
- self.assertEqual(ENGINE.mock_preedit_text, '')
- self.assertEqual(ENGINE.mock_committed_text, '工工作人员爱')
- self.assertEqual(ENGINE._editor._lookup_table.mock_candidates,
- ['爱因斯坦 1109 0',
- '爱情故事 519 0',
- '爱国主义 191 0',
- '爱尔兰语 91 0',
- '爱好和平 62 0',
- '爱情小说 58 0',
- '爱不释手 39 0',
- '爱国热情 35 0',
- '爱莫能助 34 0',
- '爱理不理 32 0'])
- ENGINE.do_process_key_event(IBus.KEY_space, 0, 0)
- self.assertEqual(ENGINE.mock_preedit_text, '')
- self.assertEqual(ENGINE.mock_committed_text, '工工作人员爱因斯坦')
-
def test_commit_to_preedit_switching_to_pinyin_defining_a_phrase(self):
ENGINE.do_process_key_event(IBus.KEY_a, 0, 0)
# commit to preëdit needs a press and release of either

View File

@ -1,62 +0,0 @@
diff -ru ibus-table-1.9.18.orig/tests/test_0_gtk.py ibus-table-1.9.18/tests/test_0_gtk.py
--- ibus-table-1.9.18.orig/tests/test_0_gtk.py 2020-07-27 09:41:25.799087549 +0200
+++ ibus-table-1.9.18/tests/test_0_gtk.py 2020-07-28 12:23:43.127130148 +0200
@@ -68,6 +68,7 @@
DONE_EXIT = True
ENGINE_NAME = 'wubi-jidian86'
+CONFIG_SECTION = 'engine/table/%s' % ENGINE_NAME
from gtkcases import TestCases
@@ -96,16 +97,18 @@
class SimpleGtkTestCase(unittest.TestCase):
global DONE_EXIT
global ENGINE_NAME
+ global CONFIG_SECTION
ENGINE_PATH = '/com/redhat/IBus/engines/table/Test/Engine'
@classmethod
def setUpClass(cls):
cls._flag = False
IBus.init()
- cls._gsettings = Gio.Settings(
- schema='org.freedesktop.ibus.engine.table',
- path='/org/freedesktop/ibus/engine/table/%s/' % ENGINE_NAME)
- cls._orig_chinesemode = cls._gsettings.get_int('chinesemode')
+ cls.__bus = IBus.Bus()
+ cls._config = cls.__bus.get_config()
+ cls._orig_chinesemode = table.variant_to_value(
+ cls._config.get_value(
+ CONFIG_SECTION, 'chinesemode'))
signums = [getattr(signal, s, None) for s in
'SIGINT SIGTERM SIGHUP'.split()]
for signum in filter(None, signums):
@@ -116,7 +119,11 @@
(signum, original_handler))
@classmethod
def tearDownClass(cls):
- cls._gsettings.set_int('chinesemode', cls._orig_chinesemode)
+ if cls._orig_chinesemode:
+ cls._config.set_value(
+ CONFIG_SECTION,
+ 'chinesemode',
+ GLib.Variant.new_int32(cls._orig_chinesemode))
@classmethod
def signal_handler(cls, user_data):
@@ -136,10 +142,12 @@
self.__inserted_text = ''
self.__commit_done = False
self.__reset_coming = False
- self._gsettings.set_int('chinesemode', 4)
+ self._config.set_value(
+ CONFIG_SECTION,
+ 'chinesemode',
+ GLib.Variant.new_int32(4))
def register_ibus_engine(self):
- self.__bus = IBus.Bus()
if not self.__bus.is_connected():
self.fail('ibus-daemon is not running')
return False

View File

@ -1,164 +1,405 @@
Name: ibus-table
Version: 1.9.18
Release: 8%{?dist}
Summary: The Table engine for IBus platform
License: LGPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://mfabian.fedorapeople.org/ibus-table/%{name}-%{version}.tar.gz
Patch0: add-a-test-suite.patch
Patch1: add-a-gui-test.patch
Patch2: use-config-not-gsettings-for-gui-test.patch
Patch3: fix-test-cases-for-old-ibus-table.patch
Requires: ibus > 1.3.0
Requires: %{__python3}
BuildRequires: ibus-devel > 1.3.0
BuildRequires: python3-devel
# for the unit tests
BuildRequires: automake
BuildRequires: autoconf
BuildRequires: gettext-devel
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: python3-mock
BuildRequires: python3-gobject
BuildRequires: python3-gobject-base
BuildRequires: dbus-x11
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: ibus-table-chinese-wubi-jidian
BuildRequires: ibus-table-chinese-cangjie
BuildRequires: ibus-table-chinese-stroke5
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
Obsoletes: ibus-table-additional < 1.2.0.20100111-5
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
* Fri Nov 10 2023 Mike FABIAN <mfabian@redhat.com> - 1.17.4-1
- Update to 1.17.4
- Fix compose support for ibus >= 1.5.28
(Resolves: https://github.com/mike-fabian/ibus-table/issues/145)
- Translation update from Weblate (New language, Russian, (ru) 80%)
- Use “<developer><name>…</name></developer>” in ibus-table.appdata.xml instead of “<developer_name>…</developer_name>”
Because </developer_name> is deprecated and it makes the build fail on Fedora rawhide.
%description
The Table engine for IBus platform.
* Thu Sep 14 2023 Mike FABIAN <mfabian@redhat.com> - 1.17.3-1
- Update to 1.17.3
- Support several backends for playing sounds
Resolves: rhbz#2237674 https://bugzilla.redhat.com/show_bug.cgi?id=2237674
- Update Unihan_Variants.txt and regenerate engine/chinese_variants.py to Unicode Version 15.1.0
%package -n %{name}-devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}, pkgconfig
* Mon Aug 21 2023 Mike FABIAN <mfabian@redhat.com> - 1.17.2-1
- Update to 1.17.2
- Translation update from Weblate (de 100%, tr 100%)
%description -n %{name}-devel
Development files for %{name}.
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
%package tests
Summary: Tests for the %{name} package
Requires: %{name} = %{version}-%{release}
* Mon Jul 10 2023 Mike FABIAN <mfabian@redhat.com> - 1.17.1-1
- Update to 1.17.1
- Fix mypy warnings
- Return empty program_name and window_title in get_active_window_xprop()
when xprop results are unexpected (Resolves: rhbz#2215466)
- Translation update from Weblate (si 10.0%)
%description tests
The %{name}-tests package contains tests that can be used to verify
the functionality of the installed %{name} package.
* Fri Apr 07 2023 Mike FABIAN <mfabian@redhat.com> - 1.17.0-1
- Update to 1.17.0
- New option commit_invalid_mode: Choose what happens when a
character not in valid input characters is typed
(Resolves: github-mike-fabian-issue#133)
- Translation update from Weblate (de 100%, uk 100%)
%prep
%setup -q
%patch0 -p1 -b .add-a-test-suite
%patch1 -p1 -b .add-a-gui-test
%patch2 -p1 -b .use-config-not-gsettings-for-gui-test
%patch3 -p1 -b .fix-test-cases-for-old-ibus-table
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.14-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
%build
export PYTHON=%{__python3}
./autogen.sh --prefix=/usr
%configure --enable-installed-tests
%__make %{?_smp_mflags}
* Fri Nov 25 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.14-2
- Migrate license tag to SPDX
%install
%__rm -rf $RPM_BUILD_ROOT
export PYTHON=%{__python3}
%__make DESTDIR=${RPM_BUILD_ROOT} NO_INDEX=true install pkgconfigdir=%{_datadir}/pkgconfig
* Thu Nov 10 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.14-1
- Update to 1.16.14
- Fix a problem in C/POSIX and invalid locales:
Use lower() on LC_MESSAGES only if it is a string and not None
Resolves: https://github.com/mike-fabian/ibus-table/issues/130
Resolves: rhbz#2131410 https://bugzilla.redhat.com/show_bug.cgi?id=2131410
%find_lang %{name}
* Tue Nov 01 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.13-1
- Update to 1.16.13
- Get program name of focused window also when ibus cannot get it
- Use focus id if available (it is available for ibus >= 1.5.27)
- Use IBus.PreeditFocusMode.COMMIT and make sure the input is
cleared and the UI updated when the focus changes
(Resolves: https://github.com/mike-fabian/ibus-table/issues/129)
- Do not reset input purpose on focus out
(See: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5966#note_1576732)
- Do not commit by index when OSK is visible
(Resolves: https://github.com/mike-fabian/ibus-table/issues/128)
%check
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdata.xml
pushd engine
# run doctests
%{__python3} table.py
%{__python3} it_util.py
popd
export DISPLAY=:1
Xvfb $DISPLAY -screen 0 1024x768x16 &
ibus-daemon -drx # not needed on Fedora 32
# A window manager and and ibus-daemon are needed to run the GUI
# test tests/test_gtk.py, for example i3 can be used.
#
# To debug what is going on if there is a problem with the GUI test
# add BuildRequires: x11vnc and start a vnc server:
#
# x11vnc -display $DISPLAY -unixsock /tmp/mysock -bg -nopw -listen localhost -xkb
#
# Then one can view what is going on outside of the chroot with vncviewer:
#
# vncviewer /var/lib/mock/fedora-32-x86_64/root/tmp/mysock
#
# The GUI test will be skipped if XDG_SESSION_TYPE is not x11 or wayland.
#
#ibus-daemon -drx
#touch /tmp/i3config
#i3 -c /tmp/i3config &
#export XDG_SESSION_TYPE=x11
* Mon Sep 05 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.12-1
- Update to 1.16.12
- Stop using locale.getdefaultlocale() because it is deprecated in Python
3.11 and will be removed in Python 3.13
Resolves: https://github.com/mike-fabian/ibus-table/issues/120
- Add 128x128, 256x256, and svg (remote) icons to ibus-table.appdata.xml
make check && rc=0 || rc=1
cat tests/*.log
if [ $rc != 0 ] ; then
exit $rc
fi
* Sat Aug 06 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.11-1
- Update to 1.16.11
- Remove hashbang from chinese_variants.py and tabcreatedb.py
(Resolves: https://github.com/mike-fabian/ibus-table/issues/118)
%clean
%__rm -rf $RPM_BUILD_ROOT
* Tue Aug 02 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.10-1
- Update to 1.16.10
- Add png versions of the ibus-table.svg icon
- Add (remote) icon to ibus-table.appdata.xml
- Add screenshot to ibus-table.appdata.xml
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc AUTHORS COPYING README
%{_datadir}/%{name}
%{_datadir}/metainfo/*.appdata.xml
%{_datadir}/ibus/component/table.xml
%{_datadir}/applications/ibus-setup-table.desktop
%{_bindir}/%{name}-createdb
%{_libexecdir}/ibus-engine-table
%{_libexecdir}/ibus-setup-table
%{_mandir}/man1/*
* Mon Jun 13 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.9-1
- Update to 1.16.9
- Require Python >= 3.6 to build
- Use a less exact type hint to make building tables from
sources work with Python 3.6 as well
- Update home page URLs (code.google.com is not used anymore)
%files devel
%defattr(-, root, root, -)
%{_datadir}/pkgconfig/%{name}.pc
* Thu Apr 28 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.8-1
- Update to 1.16.8
- Update Unihan_Variants.txt from “2021-12-01 Unicode 15.0.0
draft” to “2022-04-26 Unicode 15.0.0 draft” and regenerate
chinese_variants.py. All our fixes to Unihan_Variants.txt
are included upstream.
- Update translations from Weblate (fa, fr updated)
%files tests
%dir %{_libexecdir}/installed-tests
%{_libexecdir}/installed-tests/%{name}
%dir %{_datadir}/installed-tests
%{_datadir}/installed-tests/%{name}
* Fri Jan 28 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.7-1
- Update to 1.16.7
- Ignore MOD3_MASK (Scroll Lock) when matching key bindings
(Resolves: https://github.com/mike-fabian/ibus-table/issues/102)
- When a Modifier key release matches a hotkey command, return False not True.
(Resolves: https://github.com/mike-fabian/ibus-table/issues/98)
(Resolves: rhbz#2038973 https://bugzilla.redhat.com/show_bug.cgi?id=2038973)
%changelog
* Tue Oct 10 2023 Mike FABIAN <mfabian@redhat.com> - 1.9.18-8
- Fix unit tests, bump release number for new build
Resolves: RHEL-2236
* Mon Jan 24 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.4-1
- Update to 1.16.4
- Fix more errors in Unihan_Variants.txt by checking against
a Traditional Chinese dictionary
(Resolves: https://github.com/mike-fabian/ibus-table/issues/100)
- Fix some errors in Unihan_Variants.txt
- Update translations from Weblate (es updated to 100%)
* Thu Sep 21 2023 Mike FABIAN <mfabian@redhat.com> - 1.9.18-7
- Fix requirements of Python 3
Resolves: RHEL-2236
* Fri Jan 21 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.3-1
- Update to 1.16.3
- Fix a few errors in Unihan_Variants.txt
(Resolves: https://github.com/mike-fabian/ibus-table/issues/96)
- 栗 U+6817 is used in Traditional Chinese as well.
(Resolves: https://github.com/mike-fabian/ibus-table/issues/95)
- Update Unihan_Variants.txt from “2021-08-06 Unicode 14.0.0
final” to “2021-12-01 Unicode 1 5.0.0 draft” and regenerate
engine/chinese_variants.py
* Tue Feb 16 2021 Mike FABIAN <mfabian@redhat.com> - 1.9.18-6
- Fix a covscan error
- Related: rhbz#1929102
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Feb 16 2021 Mike FABIAN <mfabian@redhat.com> - 1.9.18-5
- Bump release number to add the new subpackage ibus-table-tests
- Resolves: rhbz#1929102
* Tue Jan 18 2022 Mike FABIAN <mfabian@redhat.com> - 1.16.0-1
- Update to 1.16.0
- Make true the default for “rememberinputmode”
- Save “inputmode” to gsettings
and add a “rememberinputmode” gsettings. This makes it
possible to change the current input mode from the command
line. And with “rememberinputmode” one can choose whether
the last used input mode should be remembered and be used
again when a new session starts or whether a new session
should always start in table mode.
(Resolves: https://github.com/mike-fabian/ibus-table/issues/85)
- Skip cangjie5 and erbi-qs test cases if the tables are too old
- Replace deprecated module “optparse” with “argparse”
* Sat Jul 25 2020 Mike FABIAN <mfabian@redhat.com> - 1.9.18-4
- Add gating tests to ibus-table
- Resolves: rhbz#1682163
* Tue Jan 11 2022 Mike FABIAN <mfabian@redhat.com> - 1.15.0-1
- Update to 1.15.0
- Fix problems with goucima for erbi-qs table
(Resolves: https://github.com/kaio/ibus-table/issues/77)
- Update Unihan_Variants.txt to “2021-08-06 Unicode 14.0.0 final”
and regenerate engine/chinese_variants.py
- Fix typo in translatable message, by Rafael Fontenelle
(https://github.com/mike-fabian/ibus-table/pull/82)
* Thu Sep 20 2018 Tomas Orsava <torsava@redhat.com> - 1.9.18-3
* Wed Aug 25 2021 Mike FABIAN <mfabian@redhat.com> - 1.14.1-1
- If an exception happens when trying to play a sound, catch it.
I have no idea how to reproduce that bug. But catching the
exception should fix it, it should make ibus-table continue
working normally if any such serious problem with playing
sounds occurs. Without sound of course but it should not
stop working.
(Resolves: rhbz#1995955 https://bugzilla.redhat.com/show_bug.cgi?id=1995955)
- When changing the error sound file with the setup tool, play
it. To make the user hear immediately what kind of sound
was selected.
- Update translations from Weblate
- Remove colons after “Auto select:”, “Auto wildcard:”, and “Use dark theme:”
(Resolves: https://github.com/mike-fabian/ibus-table/issues/70#issuecomment-884664898)
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jul 21 2021 Mike FABIAN <mfabian@redhat.com> - 1.14.0-1
- Update to 1.14.0
- Add option to set dynamic adjust at runtime
- Resolves: https://github.com/mike-fabian/ibus-table/issues/70
- Also add a button to forget all the data learned by typing and selecting candidates.
- Add options to play sound file on error
- Resolves: https://github.com/kaio/ibus-table/issues/75
- Use checkbuttons instead of [Yes/No] comboboxes
- Hide options which make no sense for certain tables instead of just graying them out
- Add “Recommends: python3-simpleaudio” (Without that the new sound option is ignored)
* Fri Jun 18 2021 Takao Fujiwara <tfujiwar@redhat.com> - 1.13.3-2
- Delete ibus write-cache in scriptlet
* Wed Jun 09 2021 Mike FABIAN <mfabian@redhat.com> - 1.13.3-1
- Update to 1.13.3
- Fix a few more bugs in Unihan_Variants.txt, the characters
着枱云裡復采吓尸揾 are used both in simplified and traditional
Chinese (some of them in traditional Chinese in Hong Kong only).
(Resolves: https://github.com/ibus/ibus/issues/2323)
* Tue Jun 08 2021 Mike FABIAN <mfabian@redhat.com> - 1.13.2-1
- Update to 1.13.2
- Fix bug in Unihan_Variants.txt, 只 U+53EA is both simplified
and traditional Chinese
(Resolves: https://github.com/kaio/ibus-table/issues/74)
- Update Chinese variant detection by Unihan_Variants.txt to
the version “2021-05-18 Unicode 14.0.0” (draft version of Unicode 14)
- Update translations from Weblate (updates for es (100%), pt_BR (100%))
* Sun May 16 2021 Mike FABIAN <mfabian@redhat.com> - 1.13.1-1
- Update to 1.13.1
- Fix reading the source file for the suggestions phrase.txt.bz2
- Update translations from Weblate (updates for ca, fr)
* Tue May 04 2021 Mike FABIAN <mfabian@redhat.com> - 1.13.0-1
- Update to 1.13.0
- Make switch to pinyin mode also happen immediately even
when the preedit is not empty (for consistency)
- Make rolling the mouse wheel in the candidate area of the lookup table work
- Commit English input and then switch into direct mode
(Resolves: https://github.com/kaio/ibus-table/issues/68)
- Apply a couple modes immediately when changed
- Add a dark theme option
(Resolves: https://github.com/kaio/ibus-table/issues/67)
- Show all the tabkeys when using wildcards
- Remove Python2 compatibility stuff
- Start adding some type hints
- Update translations from Weblate (update for de, ja, tr, uk, zh_CN)
* Mon May 03 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.6-1
- Update to 1.12.6
- In main.py “import factory” only when the --xml option is not used
- Resolves: rhbz#1955283
- Make the keybindings treeview sortable by clicking the column headers
- Update translations from Weblate (update for pt_BR, now 100%)
* Wed Apr 21 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.5-3
- Resolves: rhbz#1948197 Change post to posttrans
* Mon Apr 19 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.5-2
- Remove post and postun (Related: rhbz#1948197)
* Fri Mar 05 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.5-1
- Update to 1.12.5
- Return False in _execute_command_commit_candidate_number(self, number)
if number out of range
- Resolves: https://github.com/moebiuscurve/ibus-table-others/issues/21
- remove Use-from-unittest-import-mock-instead-of-just-import.patch
(included upstream)
- Update translations from Weblate (New translation for Sinhala (si) started)
* Wed Feb 17 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.4-5
- Use “BuildRequires: appstream” only on Fedora
* Tue Feb 16 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.4-4
- Remove i3 from BuildRequires
* Tue Feb 02 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.4-3
- Use standard library mock
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sun Jan 24 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.4-1
- Update to 1.12.4
- Update translations from Weblate (updated es, cs, fa, pt_BR, zh_CN).
zh_CN is 100% complete now.
* Wed Jan 06 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.3-1
- Update to 1.12.3
- Pass the key for the command 'cancel' (default Esc) through
if the preedit is empty
- Resolves: https://github.com/kaio/ibus-table/issues/64
* Mon Jan 04 2021 Mike FABIAN <mfabian@redhat.com> - 1.12.2-1
- Update to 1.12.2
- Update translations from Weblate
(updated ca, cs, es, fa, ja, pt_BR, pt_PT, tr, zh_CN, zh_HK, zh_TW)
* Fri Sep 04 2020 Mike FABIAN <mfabian@redhat.com> - 1.12.1-1
- Update to 1.12.1
- Enable compose support.
- Add buttons to move key bindings for a command up or down.
- Make translations of 'Edit key bindings for command “%s”' work
- Added it_util.py to POTFILES, it had translatable strings for
the “About” dialog and the key settings dialog.
- Update translations from Weblate (updated ca, de, fr, tr, uk)
* Wed Aug 26 2020 Mike FABIAN <mfabian@redhat.com> - 1.12.0-1
- Update to 1.12.0
- New setup tool, now keybindings can be configured with a GUI.
- Resolves: https://github.com/kaio/ibus-table/issues/57
- Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1133127
- Put exact (except tone) pinyin matches next after exact
matches in the candidate list.
- Resolves: https://github.com/kaio/ibus-table/issues/63
- Allow lookup table orientation “System Default” in the setup
- Remove “spacekeybehavior” option, it became useless as all
keybindings are configurable now.
- Added a “debuglevel” option.
- Update translations from Weblate (updated ca, cs, de, es, fa,
fr, ja, pt_BR, pt_PT, uk, zh_TW, zh_HK, zh_CN)
* Sun Aug 16 2020 Mike FABIAN <mfabian@redhat.com> - 1.11.0-1
- Update to 1.11.0
- Make key bindings configurable.
Only via the command line for the moment, not yet easy to do
for normal users. I have to rewrite the setup tool eventually
to make that possible.
- Resolves: https://github.com/ibus/ibus/issues/2241
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.10.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 15 2020 Mike FABIAN <mfabian@redhat.com> - 1.10.1-1
- Update to 1.10.1
- Add GUI test
- Make output of ibus-table-createdb deterministic
- Update translations from Weblate (updated fr, tr, zh_CN)
* Wed Jul 01 2020 Mike FABIAN <mfabian@redhat.com> - 1.10.0-1
- Update to 1.10.0
- Add suggestion mode feature
- Resolves: https://github.com/mike-fabian/ibus-table/pull/9
- Resolves: rhbz#835376
- Add test cases for suggestion mode feature
- Fix problems with the behaviour of the property menus
- Use python logging module with log file rotation instead
of writing to stdout/stderr
- Update translations from Weblate (updated de, es, fr, pt_BR, pt_PT, tr, uk)
* Mon Jun 22 2020 Mike FABIAN <mfabian@redhat.com> - 1.9.25-3
- Byte compile python files namually,
see: https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3
* Thu Jun 04 2020 Miro Hrončok <mhroncok@redhat.com> - 1.9.25-2
- Don't explicitly require python(abi) >= 3.3
* Wed Feb 12 2020 Mike FABIAN <mfabian@redhat.com> - 1.9.25-1
- update to 1.9.25
- Fix crash when changing some options using the menu or the floating panel
- Resolves: rhbz#1803028
- Translation updates (pt_PT)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.24-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jan 22 2020 Mike FABIAN <mfabian@redhat.com> - 1.9.24-1
- update to 1.9.24
- Fixed two typos in message ids (Thanks to Rafael Fontenelle)
- Translation updates (tr, fr, fa, pt, uk)
- New test cases for ibus-table-others
* Tue Jan 07 2020 Mike FABIAN <mfabian@redhat.com> - 1.9.23-1
- update to 1.9.23
- Add exist_ok=True in os.makedirs(path, exist_ok=True) to
avoid failure due to race condition.
- Resolves:rhbz#1786652
- Move MockEngine classes into a separate file and make
test_itb.py runnable standalone
- Translation updates for several languages (French at 100%
now, Brazilian Portuguese at 100% now, Portuguese
(Portugal) new and now at 31.5%)
* Tue Dec 17 2019 Mike FABIAN <mfabian@redhat.com> - 1.9.22-1
- update to 1.9.22
- Add Turkish translation from Weblate, 100% translated
- Minor translation fixes in some other languages (Punctuation fixes)
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.21-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Feb 12 2019 Mike FABIAN <mfabian@redhat.com> - 1.9.21-4
- Fix FTBFS in Fedora rawhide/f30: Add gcc and dbus-x11 to BuildRequires
(Resolves: rhbz#1676299)
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.21-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Oct 09 2018 Mike FABIAN <mfabian@redhat.com> - 1.9.21-2
- Require the Python interpreter directly instead of using the package name
- Related: rhbz#1619153
* Wed Aug 29 2018 Mike FABIAN <mfabian@redhat.com> - 1.9.21-1
- update to 1.9.21
- Migrate IBusConfig to GSettings.
Resolves: https://github.com/mike-fabian/ibus-table/issues/4
- Add a test suite
- Add missing tags to ibus-table-createdb.sgml.
Resolves: https://github.com/mike-fabian/ibus-table/issues/3
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.20-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 1.9.20-2
- Rebuilt for Python 3.7
* Thu May 03 2018 Mike FABIAN <mfabian@redhat.com> - 1.9.20-1
- update to 1.9.20
- Draw InputMode text instead of icon into panel on non-Gnome desktops.
Resolves: https://github.com/mike-fabian/ibus-table/issues/6
(Thanks to Takao Fujiwara)
- Make it work with Python2 again
* Mon Apr 30 2018 Mike FABIAN <mfabian@redhat.com> - 1.9.19-1
- update to 1.9.19
- Sync phrases cache from/to external storage (thanks to heiher).
- Update translations from zanata (cs new)
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.18-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

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}

132
ibus-table.spec Normal file
View File

@ -0,0 +1,132 @@
Name: ibus-table
Version: 1.17.6
Release: %autorelease
Summary: The Table engine for IBus platform
License: LGPL-2.1-or-later
URL: https://github.com/mike-fabian/ibus-table
Source0: https://github.com/mike-fabian/ibus-table/releases/download/%{version}/%{name}-%{version}.tar.gz
Requires: ibus > 1.3.0
%{?__python3:Requires: %{__python3}}
# To play a sound on error:
Recommends: python3-simpleaudio
BuildRequires: gcc
BuildRequires: ibus-devel > 1.3.0
BuildRequires: python3-devel >= 3.6.0
# for the unit tests
%if 0%{?fedora}
BuildRequires: appstream
%endif
BuildRequires: docbook-utils
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: python3-gobject
BuildRequires: python3-gobject-base
BuildRequires: dbus-x11
BuildRequires: ibus-table-chinese-wubi-jidian
BuildRequires: ibus-table-chinese-cangjie
BuildRequires: ibus-table-chinese-stroke5
BuildRequires: ibus-table-code
BuildRequires: ibus-table-latin
BuildRequires: ibus-table-translit
BuildRequires: ibus-table-tv
BuildRequires: make
Obsoletes: ibus-table-additional < 1.2.0.20100111-5
BuildArch: noarch
%description
The Table engine for IBus platform.
%package -n %{name}-devel
Summary: Development files for %{name}
Requires: %{name} = %{version}-%{release}, pkgconfig
%description -n %{name}-devel
Development files for %{name}.
%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.
%prep
%setup -q
%build
export PYTHON=%{__python3}
%configure --disable-static --disable-additional --enable-installed-tests
%make_build
%install
%__rm -rf $RPM_BUILD_ROOT
export PYTHON=%{__python3}
%make_install NO_INDEX=true pkgconfigdir=%{_datadir}/pkgconfig
%py_byte_compile %{python3} %{buildroot}/usr/share/ibus-table/engine
%py_byte_compile %{python3} %{buildroot}/usr/share/ibus-table/setup
%find_lang %{name}
%check
%if 0%{?fedora}
appstreamcli validate --pedantic --explain --no-net %{buildroot}/%{_datadir}/metainfo/*.appdata.xml
%endif
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdata.xml
desktop-file-validate \
$RPM_BUILD_ROOT%{_datadir}/applications/ibus-setup-table.desktop
pushd engine
# run doctests
python3 table.py -v
python3 it_util.py -v
popd
mkdir -p /tmp/glib-2.0/schemas/
cp org.freedesktop.ibus.engine.table.gschema.xml \
/tmp/glib-2.0/schemas/org.freedesktop.ibus.engine.table.gschema.xml
glib-compile-schemas /tmp/glib-2.0/schemas #&>/dev/null || :
export XDG_DATA_DIRS=/tmp
eval $(dbus-launch --sh-syntax)
dconf dump /
dconf write /org/freedesktop/ibus/engine/table/wubi-jidian/chinesemode 1
dconf write /org/freedesktop/ibus/engine/table/wubi-jidian/spacekeybehavior false
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
%{_datadir}/%{name}
%{_datadir}/metainfo/*.appdata.xml
%{_datadir}/ibus/component/table.xml
%{_datadir}/icons/hicolor/16x16/apps/ibus-table.png
%{_datadir}/icons/hicolor/22x22/apps/ibus-table.png
%{_datadir}/icons/hicolor/32x32/apps/ibus-table.png
%{_datadir}/icons/hicolor/48x48/apps/ibus-table.png
%{_datadir}/icons/hicolor/64x64/apps/ibus-table.png
%{_datadir}/icons/hicolor/128x128/apps/ibus-table.png
%{_datadir}/icons/hicolor/256x256/apps/ibus-table.png
%{_datadir}/icons/hicolor/scalable/apps/ibus-table.svg
%{_datadir}/applications/ibus-setup-table.desktop
%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.engine.table.gschema.xml
%{_bindir}/%{name}-createdb
%{_libexecdir}/ibus-engine-table
%{_libexecdir}/ibus-setup-table
%{_mandir}/man1/*
%files devel
%{_datadir}/pkgconfig/%{name}.pc
%files tests
%dir %{_libexecdir}/installed-tests
%{_libexecdir}/installed-tests/%{name}
%dir %{_datadir}/installed-tests
%{_datadir}/installed-tests/%{name}
%changelog
%autochangelog

5
plans/basic.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (ibus-table-1.17.6.tar.gz) = 0c3f23595bf1ecc2c3e34962fca3e2317771ba0837c1a04fbcbaae089196994764307184dd482f0a9efcae2106e013ca51cf9530bd1c7cfb29070f54b16a276e

45
tests/main.fmf Normal file
View File

@ -0,0 +1,45 @@
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
- ibus
- ibus-devel
- ibus-desktop-testing
- gnome-desktop-testing
- ibus-table
- ibus-table-tests
- rsync
- xorg-x11-server-Xwayland
- xwayland-run
- appstream
- libappstream-glib
- desktop-file-utils
- python3-gobject
- python3-gobject-base
- glib2
- gtk3
- dconf
- dbus-x11
- python3-devel
- python3-pyxdg
- ibus-table-chinese-wubi-jidian
- ibus-table-chinese-cangjie
- ibus-table-chinese-stroke5
- ibus-table-code
- ibus-table-latin
- ibus-table-translit

80
tests/runtest.sh Executable file
View File

@ -0,0 +1,80 @@
#!/bin/bash
. /usr/share/beakerlib/beakerlib.sh || exit 1
NAME=ibus-table
XFWB_SCRIPT=$(pwd)/xwfb-script.sh
rlJournalStart
rlPhaseStartSetup
rlAssertRpm ${NAME}
# 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 "ibus-desktop-testing-runner \
# --no-graphics \
# --runner=gnome \
# --timeout=1500 \
# --tests=${NAME} \
# --output=${NAME}.log \
# --result=test.log \
# " 0 "Running ${NAME} 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 ${NAME}.log
# rlFileSubmit test.log
# rlPhaseEnd
rlPhaseStartTest
rlRun -t -l "pushd /usr/libexec/installed-tests/ibus-table" \
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-table/engine
/usr/libexec/installed-tests/ibus-table/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