diff --git a/0001-Properly-import-gi-modules-to-avoid-PyGIWarning.patch b/0001-Properly-import-gi-modules-to-avoid-PyGIWarning.patch new file mode 100644 index 0000000..05b1149 --- /dev/null +++ b/0001-Properly-import-gi-modules-to-avoid-PyGIWarning.patch @@ -0,0 +1,128 @@ +From 6b46d4c6ef043a631b03b359ee4882b05d7d08a8 Mon Sep 17 00:00:00 2001 +From: wnereiz +Date: Mon, 15 Oct 2018 09:31:45 +0800 +Subject: [PATCH] Properly import gi modules to avoid PyGIWarning + +Fix #86 +--- + scripts/ibus-engine-cangjie.in | 3 +++ + scripts/ibus-setup-cangjie.in | 4 ++++ + src/__init__.py | 3 +++ + src/engine.py | 3 +++ + src/setup.py | 6 ++++++ + tests/test_cangjie.py | 3 +++ + tests/test_prefs.py | 3 +++ + 7 files changed, 25 insertions(+) + +diff --git a/scripts/ibus-engine-cangjie.in b/scripts/ibus-engine-cangjie.in +index 2113b66..08d959c 100644 +--- a/scripts/ibus-engine-cangjie.in ++++ b/scripts/ibus-engine-cangjie.in +@@ -20,6 +20,9 @@ + import argparse + import locale + ++import gi ++gi.require_version('IBus','1.0') ++ + from gi.repository import IBus + + from ibus_cangjie import IMApp +diff --git a/scripts/ibus-setup-cangjie.in b/scripts/ibus-setup-cangjie.in +index 99fa5da..7146b2e 100644 +--- a/scripts/ibus-setup-cangjie.in ++++ b/scripts/ibus-setup-cangjie.in +@@ -32,6 +32,10 @@ GLib.set_prgname('ibus-setup-%s' % args.engine) + + import locale + ++import gi ++gi.require_version('Gtk','3.0') ++gi.require_version('IBus','1.0') ++ + from gi.repository import Gtk + from gi.repository import IBus + +diff --git a/src/__init__.py b/src/__init__.py +index a4db2bb..a4aa551 100644 +--- a/src/__init__.py ++++ b/src/__init__.py +@@ -16,6 +16,9 @@ + # along with ibus-cangjie. If not, see . + + ++import gi ++gi.require_version('IBus','1.0') ++ + from gi.repository import GLib + from gi.repository import GObject + from gi.repository import IBus +diff --git a/src/engine.py b/src/engine.py +index df05d25..a26c0c5 100644 +--- a/src/engine.py ++++ b/src/engine.py +@@ -22,6 +22,9 @@ __all__ = ["EngineCangjie", "EngineQuick"] + import gettext + from operator import attrgetter + ++import gi ++gi.require_version('IBus','1.0') ++ + from gi.repository import Gio + from gi.repository import IBus + +diff --git a/src/setup.py b/src/setup.py +index b3125e3..04b087b 100644 +--- a/src/setup.py ++++ b/src/setup.py +@@ -18,6 +18,12 @@ + + from gettext import dgettext + ++import gi ++gi.require_version('Gdk','3.0') ++gi.require_version('Gio','3.0') ++gi.require_version('GLib','3.0') ++gi.require_version('Gtk','3.0') ++ + from gi.repository import Gdk + from gi.repository import Gio + from gi.repository import GLib +diff --git a/tests/test_cangjie.py b/tests/test_cangjie.py +index d20c5b2..81be381 100644 +--- a/tests/test_cangjie.py ++++ b/tests/test_cangjie.py +@@ -19,6 +19,9 @@ + import os + import unittest + ++import gi ++gi.require_version('IBus','1.0') ++ + from gi.repository import IBus + + from ibus_cangjie.engine import * +diff --git a/tests/test_prefs.py b/tests/test_prefs.py +index 733ab54..5dbc0b6 100644 +--- a/tests/test_prefs.py ++++ b/tests/test_prefs.py +@@ -33,6 +33,8 @@ def has_graphical(): + automatically skip the tests which can't run without. + """ + try: ++ import gi ++ gi.require_version('Gtk', '3.0') + from gi.repository import Gtk + + except RuntimeError as e: +@@ -43,6 +45,7 @@ def has_graphical(): + # But other platforms (e.g Fedora 21) can import Gtk just fine even + # without a display... + ++ gi.require_version('Gdk', '3.0') + from gi.repository import Gdk + + if Gdk.Display.get_default() is None: +-- +2.31.1 + diff --git a/0001-src-setup.py-Require-correct-Gio-and-GLib-version.patch b/0001-src-setup.py-Require-correct-Gio-and-GLib-version.patch new file mode 100644 index 0000000..b30a304 --- /dev/null +++ b/0001-src-setup.py-Require-correct-Gio-and-GLib-version.patch @@ -0,0 +1,28 @@ +From 2787bbd9213f58ffe0f5b56bc91d9f1dc8f7a0d9 Mon Sep 17 00:00:00 2001 +From: Boyuan Yang +Date: Wed, 18 Dec 2019 10:58:08 -0500 +Subject: [PATCH] src/setup.py: Require correct Gio and GLib version + +This would closes: #94. +--- + src/setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/setup.py b/src/setup.py +index 04b087b..9265b00 100644 +--- a/src/setup.py ++++ b/src/setup.py +@@ -20,8 +20,8 @@ from gettext import dgettext + + import gi + gi.require_version('Gdk','3.0') +-gi.require_version('Gio','3.0') +-gi.require_version('GLib','3.0') ++gi.require_version('Gio','2.0') ++gi.require_version('GLib','2.0') + gi.require_version('Gtk','3.0') + + from gi.repository import Gdk +-- +2.31.1 + diff --git a/fix-crash-in-setup-tool.patch b/fix-crash-in-setup-tool.patch new file mode 100644 index 0000000..1391d4a --- /dev/null +++ b/fix-crash-in-setup-tool.patch @@ -0,0 +1,25 @@ +From d3188ec6aa287e825b7e4303d735256a4ba3aa56 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Thu, 2 Sep 2021 23:38:19 +0200 +Subject: [PATCH] Fix crash in setup tool for newer Gtk versions (Resolves: + rhbz#1936963) + +--- + data/setup.ui | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/data/setup.ui b/data/setup.ui +index 0478fae..f61ec1c 100644 +--- a/data/setup.ui ++++ b/data/setup.ui +@@ -40,7 +40,6 @@ + + + False +- 10 + False + dialog + +-- +2.31.1 + diff --git a/ibus-cangjie.spec b/ibus-cangjie.spec index f8f8622..f55f101 100644 --- a/ibus-cangjie.spec +++ b/ibus-cangjie.spec @@ -3,10 +3,18 @@ Name: ibus-cangjie Summary: IBus engine to input Cangjie and Quick Version: 2.4 -Release: 22%{?dist} +Release: 23%{?dist} License: GPLv3+ URL: http://cangjians.github.io/projects/%{name} Source0: https://github.com/Cangjians/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz +# Patches from upstream to require specific versions of imports +Patch0: 0001-Properly-import-gi-modules-to-avoid-PyGIWarning.patch +Patch1: 0001-src-setup.py-Require-correct-Gio-and-GLib-version.patch +# Extra patch not yet in upstream to fix a crash in the setup tool, +# this patch needs the two patches from upstream as well to fix the crash, +# it will not work on its own. +# Upstream pull request for this patch: https://github.com/Cangjians/ibus-cangjie/pull/100 +Patch2: fix-crash-in-setup-tool.patch BuildArch: noarch @@ -62,6 +70,9 @@ However, it should work for others as well (e.g to input Simplified Chinese). %prep %setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 %build @@ -110,6 +121,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/ibus-setup-quick.des %changelog +* Thu Sep 02 2021 Mike FABIAN - 2.4-23 +- Resolves: rhbz#1951884 Fix crash in setup tool + * Tue Jan 26 2021 Fedora Release Engineering - 2.4-22 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild