diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea06539 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/ibus-anthy-1.5.13.tar.gz +/kasumi-2.5.tar.gz +/pycotap-1.1.0.tar.gz diff --git a/ibus-anthy-1938129-default-hiragana.patch b/ibus-anthy-1938129-default-hiragana.patch new file mode 100644 index 0000000..79f769a --- /dev/null +++ b/ibus-anthy-1938129-default-hiragana.patch @@ -0,0 +1,28 @@ +From e4ef13166118fe991f7590b093671f9361e9c1cc Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Tue, 16 Mar 2021 22:13:01 +0900 +Subject: [PATCH] data: Change default input mode to Hiragana (rhbz#1938129) + +GNOME desktop sets unnecessary JP keymap by default and a few newcomers +wish to use Hiragana mode directly. +This internal patch will be deleted if the default desktop would be changed. +--- + data/org.freedesktop.ibus.engine.anthy.gschema.xml.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/org.freedesktop.ibus.engine.anthy.gschema.xml.in b/data/org.freedesktop.ibus.engine.anthy.gschema.xml.in +index 773be09..cd5a13b 100644 +--- a/data/org.freedesktop.ibus.engine.anthy.gschema.xml.in ++++ b/data/org.freedesktop.ibus.engine.anthy.gschema.xml.in +@@ -3,7 +3,7 @@ + + +- 3 ++ 0 + Input Mode + + +-- +2.28.0 + diff --git a/ibus-anthy-HEAD.patch b/ibus-anthy-HEAD.patch new file mode 100644 index 0000000..0f8ab60 --- /dev/null +++ b/ibus-anthy-HEAD.patch @@ -0,0 +1,151 @@ +From 50706f8e5fcf88f1a607ea1f977c4a8f2ebbf623 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Fri, 22 Oct 2021 00:22:09 +0900 +Subject: [PATCH] data: Update era.t with 2021 + +--- + data/Makefile.am | 9 +++++++++ + data/era.t | 15 ++++++++++++++- + 2 files changed, 23 insertions(+), 1 deletion(-) + +diff --git a/data/Makefile.am b/data/Makefile.am +index 5e45c39..d76f17a 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -79,6 +79,15 @@ zipcode.t: $(ANTHY_ZIPCODE_FILE) + CLEANFILES += zipcode.t + endif + ++check: ++ S_YEAR=`date '+%Y'`; \ ++ M_YEAR=`echo $$S_YEAR | sed 'y/0123456789/0123456789/'`; \ ++ grep -q $$M_YEAR $(srcdir)/era.t; \ ++ if test $$? -ne 0 ; then \ ++ echo "This year $$M_YEAR is not included in era.y"; \ ++ exit 1; \ ++ fi; ++ + install-data-hook: + if test -z "$(DESTDIR)"; then \ + glib-compile-schemas $(schemasdir); \ +diff --git a/data/era.t b/data/era.t +index 8d8cd32..a6d297e 100644 +--- a/data/era.t ++++ b/data/era.t +@@ -2,7 +2,7 @@ + # + # ibus-anthy - The Anthy engine for IBus + # +-# Copyright (c) 2010-2013 Takao Fujiwara ++# Copyright (c) 2010-2021 Takao Fujiwara + # Copyright (c) 2010-2013 Red Hat, Inc. + # + # This program is free software; you can redistribute it and/or modify +@@ -226,6 +226,10 @@ + へいせい29 #T35*500 2017 + へいせい3 #T35*500 平成3 + へいせい3 #T35*500 1991 ++へいせい30 #T35*500 平成30 ++へいせい30 #T35*500 2018 ++へいせい31 #T35*500 平成31 ++へいせい31 #T35*500 2019 + へいせい4 #T35*500 平成4 + へいせい4 #T35*500 1992 + へいせい5 #T35*500 平成5 +@@ -328,6 +332,12 @@ + めいじ8 #T35*500 1875 + めいじ9 #T35*500 明治9 + めいじ9 #T35*500 1876 ++れいわ1 #T35*500 令和1 ++れいわ1 #T35*500 2019 ++れいわ2 #T35*500 令和2 ++れいわ2 #T35*500 2020 ++れいわ3 #T35*500 令和3 ++れいわ3 #T35*500 2021 + 1868 #T35*500 明治1 + 1869 #T35*500 明治2 + 1870 #T35*500 明治3 +@@ -482,4 +492,7 @@ + 2016 #T35*500 平成28 + 2017 #T35*500 平成29 + 2018 #T35*500 平成30 ++2019 #T35*500 令和1 + 2019 #T35*500 平成31 ++2020 #T35*500 令和2 ++2021 #T35*500 令和3 +-- +2.28.0 + +From 28aa550f728b3848b06a67579aca5f563e64d447 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Fri, 22 Oct 2021 00:22:41 +0900 +Subject: [PATCH] tests: Check python3-pycotap.rpm in Fedora instead of pip + +--- + tests/Makefile.am | 7 +------ + tests/test-build.sh | 17 ++++++++++++++++- + 2 files changed, 17 insertions(+), 7 deletions(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index d891ff2..a7a7108 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -2,7 +2,7 @@ + # + # ibus-anthy - The Anthy engine for IBus + # +-# Copyright (c) 2017-2019 Takao Fujiwara ++# Copyright (c) 2017-2021 Takao Fujiwara + # Copyright (c) 2017-2019 Red Hat, Inc. + # + # This program is free software; you can redistribute it and/or modify +@@ -23,11 +23,6 @@ + CLEANFILES = + + check: +- @TAP_DIR=`python -m site --user-site`/tap; \ +- if test x"$$TAP_DIR" != x -a ! -d "$$TAP_DIR" ; then \ +- echo "pip install tap.py --user"; \ +- pip install tap.py --user; \ +- fi; \ + bash -x $(srcdir)/test-build.sh --builddir=$(builddir) --srcdir=$(srcdir) + + if ENABLE_INSTALLED_TESTS +diff --git a/tests/test-build.sh b/tests/test-build.sh +index 4c85af7..e83b78f 100755 +--- a/tests/test-build.sh ++++ b/tests/test-build.sh +@@ -3,7 +3,7 @@ + # + # ibus-anthy - The Anthy engine for IBus + # +-# Copyright (c) 2018 Takao Fujiwara ++# Copyright (c) 2018-2021 Takao Fujiwara + # Copyright (c) 2018 Red Hat, Inc. + # + # This program is free software; you can redistribute it and/or modify +@@ -68,6 +68,21 @@ init_environment() + if test x$FORCE_TEST != x ; then + RUN_ARGS="$RUN_ARGS --force"; + fi; ++ HAS_TAP=0; ++ if test -f /etc/redhat-release ; then ++ rpm -q --quiet python3-pycotap ++ if test $? -ne 0 ; then ++ echo "Not found python3-pycotap"; ++ exit -1; ++ fi; ++ HAS_TAP=1; ++ fi; ++ TAP_DIR=`python -m site --user-site`/pycotap; ++ if test $HAS_TAP -ne 1 && \ ++ test x"$TAP_DIR" != x && test ! -d "$TAP_DIR" ; then ++ echo "pip install pycotap --user"; ++ pip install pycotap --user; ++ fi; + if test ! -f $BUILDDIR/../data/$ANTHY_SCHEMA_FILE ; then + echo "Not found $BUILDDIR/../data/$ANTHY_SCHEMA_FILE"; + exit -1; +-- +2.28.0 + diff --git a/ibus-anthy-xx-revert-ctrl-period.patch b/ibus-anthy-xx-revert-ctrl-period.patch new file mode 100644 index 0000000..d3fe03a --- /dev/null +++ b/ibus-anthy-xx-revert-ctrl-period.patch @@ -0,0 +1,32 @@ +From 39773ff8c30b4793a841c44b02ff92b52d2bdaeb Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 12 Aug 2021 18:44:51 +0900 +Subject: [PATCH] data/gschema: Revert Ctrl+period in circle_kana_mode + +Ctrl-period key is not available in RHEL8 IBus core yet. +--- + data/org.freedesktop.ibus.engine.anthy.gschema.xml.in | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/data/org.freedesktop.ibus.engine.anthy.gschema.xml.in b/data/org.freedesktop.ibus.engine.anthy.gschema.xml.in +index 773be09..75e42b3 100644 +--- a/data/org.freedesktop.ibus.engine.anthy.gschema.xml.in ++++ b/data/org.freedesktop.ibus.engine.anthy.gschema.xml.in +@@ -908,13 +908,8 @@ + 'circle_input_mode': <['Ctrl+comma', 'Ctrl+less']>, + +- 'circle_kana_mode': <['Ctrl+greater']>, ++ 'circle_kana_mode': <['Ctrl+period', 'Ctrl+greater']>, + + 'circle_typing_method': <['Alt+Romaji', 'Ctrl+slash']>, + 'circle_dict_method': <['Alt+Henkan']>, +-- +2.28.0 + diff --git a/ibus-anthy.png b/ibus-anthy.png new file mode 100644 index 0000000..de1c85f Binary files /dev/null and b/ibus-anthy.png differ diff --git a/ibus-anthy.spec b/ibus-anthy.spec new file mode 100644 index 0000000..9489464 --- /dev/null +++ b/ibus-anthy.spec @@ -0,0 +1,680 @@ +# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3 +%global sub_version 1.0 +%global require_ibus_version 1.5.3 +%global have_default_layout 1 +%global have_bridge_hotkey 1 +%global with_python3 1 + +%if (0%{?fedora} > 33 || 0%{?rhel} >= 8) +%bcond_without kasumi_unicode +%else +%bcond_with kasumi_unicode +%endif + +%global pypi_name pycotap +%if (0%{?fedora} > 33 || 0%{?rhel} >= 8) +%bcond_without pycotap +%else +%bcond_with pycotap +%endif + +%if %with_python3 +# for bytecompile in %%{_datadir}/ibus-anthy +%global __python %{__python3} +%endif + +Name: ibus-anthy +Version: 1.5.13 +Release: 3%{?dist} +Summary: The Anthy engine for IBus input platform +License: GPLv2+ +URL: https://github.com/ibus/ibus/wiki +Source0: https://github.com/ibus/ibus-anthy/releases/download/%{version}/%{name}-%{version}.tar.gz +%if %{with kasumi_unicode} +Source1: http://jaist.dl.sourceforge.jp/kasumi/41436/kasumi-2.5.tar.gz +Source2: kasumi-853099-manpage.patch +Source3: kasumi-1928410-gtk3.patch +Source4: kasumi-check-anthy-pkg.patch +%endif +%if %{with pycotap} +Source5: pycotap-1.1.0.tar.gz +%endif + +# Upstreamed patches. +# Patch0: %%{name}-HEAD.patch +Patch0: %{name}-HEAD.patch +Patch1: %{name}-1938129-default-hiragana.patch +Patch2: %{name}-xx-revert-ctrl-period.patch + +BuildRequires: anthy-unicode-devel +BuildRequires: desktop-file-utils +BuildRequires: gettext-devel +BuildRequires: git +BuildRequires: glib2-devel +BuildRequires: gobject-introspection-devel +BuildRequires: ibus +BuildRequires: libtool +BuildRequires: pkgconfig +BuildRequires: python3-devel +BuildRequires: python3-gobject +# for kasumi +BuildRequires: gcc-c++ +BuildRequires: gtk3-devel + +Requires: ibus >= %{require_ibus_version} +%if %{with kasumi_unicode} +Requires: ibus-anthy-kasumi-unicode = %{version}-%{release} +%else +Requires: kasumi +%endif +Requires: anthy-unicode +Requires: %{name}-python = %{version}-%{release} + +%description +The Anthy engine for IBus platform. It provides Japanese input method from +a library of the Anthy. + +%package python +Summary: Anthy Python files for IBus +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: gtk3 +Requires: python3-cairo +Requires: python3-gobject + +%description python +This package contains the Anthy Python files for IBus + +%package devel +Summary: Development tools for IBus +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: glib2-devel +Requires: anthy-unicode-devel + +%description devel +The ibus-anthy-devel package contains .so file and .gir files +for developers. + +%package tests +Summary: Tests for the %{name} package +%if %{without pycotap} +BuildRequires: python3-pycotap +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} +%if %{with pycotap} +Requires: ibus-anthy-python3-pycotap = %{version}-%{release} +%else +Requires: python3-pycotap +%endif + + +%description tests +The %{name}-tests package contains tests that can be used to verify +the functionality of the installed %{name} package. + +%if %{with kasumi_unicode} +%package kasumi-unicode +Summary: An anthy-unicode dictionary management tool + +%description kasumi-unicode +Kasumi-unicode is a dictionary management tool for Anthy-unicode. +%endif + +%if %{with pycotap} +%package python3-%{pypi_name} +Summary: A tiny test runner that outputs TAP results to standard output +%{?python_provide:%python_provide python3-%{pypi_name}} +License: MIT +BuildArch: noarch +BuildRequires: python3-devel +BuildRequires: python3dist(setuptools) + +%description python3-%{pypi_name} +pycotap is a simple Python test runner for unit tests that outputs Test Anything +Protocol results directly to standard output.Contrary to other TAP runners +for Python, pycotap prints TAP (and *only* TAP) to standard output +instead of to a separate file, allowing you to pipe it directly to TAP pretty +printers and processors. +%endif + + +%prep +%autosetup -S git +%if %{with kasumi_unicode} +zcat %SOURCE1 | tar xfv - +cd kasumi-2.5 +patch -p1 -b -z .man < %SOURCE2 +patch -p1 -b -z .gtk3 < %SOURCE3 +patch -p1 -b -z .anthy < %SOURCE4 +sed -i -e '/AM_PATH_GTK_2_0(/i\ +PKG_CHECK_MODULES([GTK], [gtk+-3.0])\ +CFLAGS="$CFLAGS $GTK_CFLAGS"\ +CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"\ +LIBS="$LIBS $GTK_LIBS"' \ + -e '/AM_PATH_GTK_2_0(/d' \ + configure.in +sed -e 's/AC_CHECK_LIB(anthydic,/AC_CHECK_LIB(anthydic-unicode,/' \ + -e 's/AC_CHECK_LIB(anthy,/AC_CHECK_LIB(anthy-unicode,/' \ + -e 's/PKG_CHECK_MODULES(ANTHY, anthy/PKG_CHECK_MODULES(ANTHY, anthy-unicode/' \ + -i.orig configure.in +cd .. +%endif + +%if %{with pycotap} +zcat %SOURCE5 | tar xfv - +cd pycotap-1.1.0 +rm -rf %{pypi_name}.egg-info +cd .. +%endif + +%build +%if %{with kasumi_unicode} +echo "# Building kasumi-unicode" +cd kasumi-2.5 +autoreconf -f -i -v +export CXXFLAGS="-std=c++14 $RPM_OPT_FLAGS" +%configure +make %{?_smp_mflags} +cd .. +%endif + +%if %{with pycotap} +echo "# Building python-pycotap" +cd pycotap-1.1.0 +%py3_build +cd .. +%endif + +echo "# Building ibus-anthy" +#autoreconf -f -i -v +autoreconf -f -i -v +%configure \ +%if %have_default_layout + --with-layout='default' \ +%endif +%if %have_bridge_hotkey + --with-hotkeys \ +%endif +%if %{with kasumi_unicode} + --with-kasumi-exec=/usr/bin/kasumi-unicode \ +%endif + --with-on-off-keys="'Zenkaku_Hankaku', 'Ctrl+space', 'Ctrl+J'" \ + --with-python=python3 \ + --enable-installed-tests \ + --disable-static +# make -C po update-gmo +make %{?_smp_mflags} + +%install +%if %{with kasumi_unicode} +cd kasumi-2.5 +make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" +mv $RPM_BUILD_ROOT%{_bindir}/kasumi $RPM_BUILD_ROOT%{_bindir}/kasumi-unicode +# remove .desktop file so that kasumi is accessible from scim panel/ibus panel and it's not necessary for other users. +rm -rf $RPM_BUILD_ROOT%{_datadir}/applications/*.desktop +cd .. +%endif +%if %{with pycotap} +cd pycotap-1.1.0 +%py3_install +find %{buildroot}/%{python3_sitelib} -name '*.py' | xargs sed -i '/^#!/d' +cd .. +%endif +make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p' +rm -f $RPM_BUILD_ROOT%{_libdir}/libanthygobject-%{sub_version}.la + + +%find_lang %{name} +%if %{with kasumi_unicode} +%find_lang kasumi +%endif + +%check +desktop-file-validate \ + $RPM_BUILD_ROOT%{_datadir}/applications/ibus-setup-anthy.desktop +export LANG=C.UTF-8 +locale +make -C data check + +%ldconfig_scriptlets libs + + +%files -f %{name}.lang +%doc AUTHORS COPYING README +# dir {python2_sitearch}/ibus +%{_libdir}/libanthygobject-%{sub_version}.so.* +%{_libdir}/girepository-1.0/Anthy*.typelib +%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.engine.anthy.gschema.xml +%dir %{_datadir}/ibus-anthy +%{_datadir}/applications/ibus-setup-anthy.desktop +%{_datadir}/ibus-anthy/dicts +%{_datadir}/icons/hicolor/scalable/apps/ibus-anthy.svg + +%files python +%{_libexecdir}/ibus-*-anthy +%{_datadir}/metainfo/*.metainfo.xml +%{_datadir}/ibus-anthy/engine +%{_datadir}/ibus-anthy/setup +%{_datadir}/ibus/component/* + +%files devel +%{_datadir}/gir-1.0/Anthy*.gir +%{_includedir}/ibus-anthy-%{sub_version} +%{_libdir}/libanthygobject-%{sub_version}.so + +%files tests +%dir %{_libexecdir}/installed-tests +%{_libexecdir}/installed-tests/%{name} +%dir %{_datadir}/installed-tests +%{_datadir}/installed-tests/%{name} + +%if %{with kasumi_unicode} +%files kasumi-unicode -f kasumi.lang +%{_bindir}/kasumi-unicode +%{_mandir}/man1/kasumi.1* +%{_datadir}/pixmaps/kasumi.png +%doc kasumi-2.5/AUTHORS kasumi-2.5/ChangeLog kasumi-2.5/NEWS kasumi-2.5/README +%license kasumi-2.5/COPYING +%endif + +%if %{with pycotap} +%files python3-%{pypi_name} +%{python3_sitelib}/%{pypi_name} +%{python3_sitelib}/%{pypi_name}-1.1.0-py%{python3_version}.egg-info +%endif + +%changelog +* Fri Oct 22 2021 Takao Fujiwara - 1.5.13-3 +- export C.UTF-8 for make check + +* Fri Oct 22 2021 Takao Fujiwara - 1.5.13-2 +- Update era.t with 2021 +- Check python3-pycotap.rpm in Fedora instead of pip + +* Fri Aug 20 2021 Takao Fujiwara - 1.5.13-1 +- Bump to 1.5.13 +- Add kasumi-unicode +- Add python3-pycotap + +* Thu Aug 12 2021 Takao Fujiwara - 1.5.12-10 +- Remove Ctrl+period in circle_kana_mode + +* Thu Jul 22 2021 Fedora Release Engineering - 1.5.12-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 17 2021 Takao Fujiwara - 1.5.12-8 +- Delete postscript for ibus write-cache + +* Tue Apr 27 2021 Takao Fujiwara - 1.5.12-7 +- Move .desktop file from ibus-anthy-python to ibus-anthy +- Fix covscan + +* Wed Apr 21 2021 Takao Fujiwara - 1.5.12-6 +- Resolves: #1948197 Move post to posttrans + +* Tue Apr 20 2021 Takao Fujiwara - 1.5.12-5 +- Delete postscripts + +* Sun Mar 21 2021 Takao Fujiwara - 1.5.12-4 +- Output info to stderr instead of StringIO + +* Tue Mar 16 2021 Takao Fujiwara - 1.5.12-2 +- Change default input mode to Hiragana + +* Mon Feb 22 2021 Takao Fujiwara - 1.5.12-1 +- Bump to 1.5.12 + +* Wed Feb 10 2021 Takao Fujiwara - 1.5.11-10 +- Replace kasumi with kausmi-unicode +- Delete to require intltool +- Delete to call gettext.bind_textdomain_codeset() + +* Tue Jan 26 2021 Fedora Release Engineering - 1.5.11-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 1.5.11-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 09 2020 Takao Fujiwara - 1.5.11-7 +- Use pycotap instead of tappy in CI +- Revise CI from ibus-typing-booster +- Delete _python_bytecompile_extra + +* Wed Jan 29 2020 Fedora Release Engineering - 1.5.11-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Dec 04 2019 Takao Fujiwara - 1.5.11-5 +- Bug 1779129- Fix to install zipcode dict with anthy-unicode + +* Thu Oct 17 2019 Takao Fujiwara - 1.5.11-4 +- Add CI + +* Wed Oct 16 2019 Takao Fujiwara - 1.5.11-3 +- Replace anthy with anthy-unicode +- Install ibus-anthy-tests sub package + +* Thu Jul 25 2019 Fedora Release Engineering - 1.5.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue May 14 2019 Takao Fujiwara - 1.5.11-1 +- Bump to 1.5.11 + +* Fri Feb 01 2019 Fedora Release Engineering - 1.5.10-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 1.5.10-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 1.5.10-4 +- Rebuilt for Python 3.7 + +* Mon Mar 19 2018 Takao Fujiwara - 1.5.10-3 +- Reverted scriptlets for f27 + +* Mon Mar 19 2018 Takao Fujiwara - 1.5.10-2 +- Reverted ldconfig for f27 + +* Mon Mar 19 2018 Takao Fujiwara - 1.5.10-1 +- Bumped to 1.5.10 + +* Tue Feb 20 2018 Iryna Shcherbina - 1.5.9-7 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Wed Feb 07 2018 Fedora Release Engineering - 1.5.9-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 1.5.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.5.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.5.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Dec 19 2016 Miro Hrončok - 1.5.9-2 +- Rebuild for Python 3.6 + +* Thu Oct 20 2016 Takao Fujiwara - 1.5.9-1 +- Bumped to 1.5.9 + +* Thu Feb 04 2016 Fedora Release Engineering - 1.5.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jan 20 2016 Takao Fujiwara - 1.5.8-1 +- Bumped to 1.5.8 + +* Tue Nov 10 2015 Fedora Release Engineering - 1.5.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Thu Sep 03 2015 Takao Fujiwara - 1.5.7-2 +- Fix URL in anthy.appdata.xml + +* Thu Jul 16 2015 Takao Fujiwara - 1.5.7-1 +- Bumped to 1.5.7 + +* Wed Jun 17 2015 Fedora Release Engineering - 1.5.6-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Apr 22 2015 Takao Fujiwara - 1.5.6-6 +- Resolved #1214092 Updated ibus-anthy-HEAD.patch +- Added with_appdata macro and removed with_python_pkg macro + +* Wed Mar 25 2015 Richard Hughes - 1.5.6-5 +- Add the AppData file to the right built RPM, in this case we have to install + ibus-anthy-python rather than the main package in gnome-software. +- It turns out adding the AppData file to spec files is a great way to fix these + kinds of bugs. :) + +* Wed Mar 25 2015 Richard Hughes - 1.5.6-4 +- Use an AppStream file compatible with F22 also. + +* Wed Mar 25 2015 Richard Hughes - 1.5.6-3 +- Register as an AppStream component. + +* Thu Nov 13 2014 Takao Fujiwara - 1.5.6-2 +- Updated ibus-anthy-HEAD.patch to fix Enter key on setup dialog. +- Use python2 for epel7. + +* Tue Sep 16 2014 Takao Fujiwara - 1.5.6-1 +- Bumped to 1.5.6 +- Added ibus-anthy-xx-input-mode.patch from ibus-anthy-HEAD.patch. + +* Sat Aug 16 2014 Fedora Release Engineering - 1.5.5-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 22 2014 Kalev Lember - 1.5.5-8 +- Rebuilt for gobject-introspection 1.41.4 + +* Mon Jul 14 2014 Takao Fujiwara - 1.5.5-7 +- Updated ibus-anthy-HEAD.patch + Fixed deprecated warnings with python3-gobject 3.13.3. + +* Mon Jul 14 2014 Takao Fujiwara - 1.5.5-6 +- Updated ibus-anthy-HEAD.patch + Fixed deprecated warnings with python3-gobject 3.13.3. + Set max-width-chars in ibus-anthy-setup wrapped GtkLabel. + Set 'IBUS_SETUP_XID' environment variable in setup. + +* Sat Jun 07 2014 Fedora Release Engineering - 1.5.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 19 2014 Takao Fujiwara - 1.5.5-4 +- Updated ibus-anthy-HEAD.patch to fix clear() in input mode. + +* Mon Apr 21 2014 Takao Fujiwara - 1.5.5-3 +- Updated ibus-anthy-HEAD.patch to unref pixbuf on destroy. + +* Thu Feb 27 2014 Takao Fujiwara - 1.5.5-2 +- Updated ibus-anthy-HEAD.patch to enable property icon. + +* Wed Feb 05 2014 Takao Fujiwara - 1.5.5-1 +- Bumped to 1.5.5 +- Enabled python3. + +* Tue Dec 24 2013 Takao Fujiwara - 1.5.4-2 +- Required ibus-anthy by ibus-anthy-python + +* Mon Sep 09 2013 Takao Fujiwara - 1.5.4-1 +- Bumped to 1.5.4 +- Added ibus-anthy-python subpackage for noarch. +- Deleted ibus-anthy-xx-disable-prop-symbol.patch + +* Sat Aug 03 2013 Fedora Release Engineering - 1.5.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon May 13 2013 Takao Fujiwara - 1.5.3-1 +- Bumped to 1.5.3 + +* Mon May 13 2013 Takao Fujiwara - 1.5.2-1 +- Bumped to 1.5.2 + +* Sat May 11 2013 Takao Fujiwara - 1.5.1-1 +- Bumped to 1.5.1 + +* Thu Feb 14 2013 Fedora Release Engineering - 1.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jan 16 2013 Takao Fujiwara - 1.5.0-1 +- Bumped to 1.5.0 + +* Wed Dec 12 2012 Takao Fujiwara - 1.4.99.20121006-3 +- Resolved #884031. Deleted arch depended files. + +* Thu Nov 22 2012 Takao Fujiwara - 1.4.99.20121006-2 +- Updated to save the spec update. + +* Sat Oct 06 2012 Takao Fujiwara - 1.4.99.20121006-1 +- Bumped to 1.4.99.20121006 +- Added ibus-anthy-xx-disable-prop-symbol.patch for Fedora 17 + +* Thu Jul 19 2012 Fedora Release Engineering - 1.4.99.20120327-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Mar 27 2012 Takao Fujiwara - 1.4.99.20120327-1 +- Bumped to 1.4.99.20120327 + +* Sun Mar 04 2012 Takao Fujiwara - 1.3.99.20120304-1 +- Bumped to 1.3.99.20120304 + +* Mon Feb 06 2012 Takao Fujiwara - 1.2.6-5 +- Added ibus-anthy-xx-layout.patch to set 'default' layout in f17. + +* Fri Jan 13 2012 Fedora Release Engineering - 1.2.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Jul 29 2011 Takao Fujiwara - 1.2.6-3 +- Added ibus-anthy-xx-icon-symbol.patch to enable the engine symbol & hotkeys. + +* Mon May 16 2011 Takao Fujiwara - 1.2.6-1 +- Bumped to 1.2.6 + Fixed Bug 661943 - the latest page_size for ibus.LookupTable. + +* Wed Feb 09 2011 Fedora Release Engineering - 1.2.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Dec 01 2010 Takao Fujiwara - 1.2.5-1 +- Updated to 1.2.5 + Fixed Bug 652881 - SEGV when key tables are customized in new gconf. + Fixed Bug 654322 - new custom keys are not loaded. + +* Tue Oct 26 2010 Takao Fujiwara - 1.2.4-1 +- Updated to 1.2.4 +- Resolves #644771 ibus-anthy [F7] key cannot work with SEGV + +* Sat Oct 16 2010 Takao Fujiwara - 1.2.3-1 +- Updated to 1.2.3 +- Updated translations. + +* Fri Oct 15 2010 Takao Fujiwara - 1.2.2.20101015-1 +- Updated to 1.2.2.20101015 +- Fixed Bug 643291 - ibus-anthy commit_first_segment + +* Wed Jul 21 2010 David Malcolm - 1.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Fri Apr 23 2010 Takao Fujiwara - 1.2.1-1 +- Update to 1.2.1 + +* Mon Apr 05 2010 Takao Fujiwara - 1.2.0.20100313-3 +- Update icon + +* Fri Mar 12 2010 Takao Fujiwara - 1.2.0.20100313-1 +- Update to 1.2.0.20100313 +- Update fr.po + +* Fri Mar 12 2010 Takao Fujiwara - 1.2.0.20100312.1-1 +- Update to 1.2.0.20100312.1 +- Minor fix for a translation + +* Fri Mar 12 2010 Takao Fujiwara - 1.2.0.20100312-1 +- Update to 1.2.0.20100312 +- Fix bug 571728 - ibus-anthy support to switch dicts +- Fix bug 572412 - ibus-anthy: Segment convertion mode + +* Fri Mar 05 2010 Takao Fujiwara - 1.2.0.20100115-2 +- Fix bug 564268 - Crash with enabled global input method +- Fix bug 570680 - Support NICOLA-F and NICOLA-A +- Fix romaji_typing_rule. #777 +- Fix Shift + char with CapsLock ON in romaji mode. +- Fix chattering bug. + +* Fri Jan 15 2010 Takao Fujiwara - 1.2.0.20100115-1 +- Update to 1.2.0.20100115 +- Fix bug 550001 - kasumi should be accessible from ibus-anthy + +* Fri Nov 27 2009 Takao Fujiwara - 1.2.0.20091127-1 +- Update to 1.2.0.20091127 +- Fix bug 520989 - ibus-anthy icon enhancement +- Fix bug 531696 - ibus-anthy KeyError is still reported by abrt +- Fix bug 536716 - ibus-anthy: Symbol type change support in ibus-anthy + +* Fri Oct 23 2009 Takao Fujiwara - 1.2.0.20090917-2 +- Fix bug 526881 - ibus-anthy backtrace is reported by the latest abrt + +* Thu Sep 17 2009 Takao Fujiwara - 1.2.0.20090917-1 +- Update to 1.2.0.20090917 +- Fix bug 523642 - ibus-anthy convert_to_char_type_{for,back}ward() + +* Mon Sep 07 2009 Takao Fujiwara - 1.2.0.20090907-2 +- Fix a build issue + +* Mon Sep 07 2009 Takao Fujiwara - 1.2.0.20090907-1 +- Update to 1.2.0.20090907 +- Fix bug 510978 - "Typing Method" configuration doesn't work +- Fix bug 518373 - ibus setup tools need to set gettext textdomain dir. + +* Thu Aug 13 2009 Takao Fujiwara - 1.2.0.20090813-1 +- Update to 1.2.0.20090813 +- Fix bug 509483 - reconversion feature doesn't work +- Fix bug 509485 - commit_first_segment feature doesn't work + +* Tue Aug 04 2009 Peng Huang - 1.2.0.20090804-1 +- Update to 1.2.0.20090804 +- Fix bug 508358 - ANTHY_HISTORY_FILE record only a single word + +* Fri Jul 24 2009 Fedora Release Engineering - 1.2.0.20090617-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Jun 22 2009 Peng Huang - 1.2.0.20090617-1 +- Update to 1.2.0.20090617 + +* Wed Jun 17 2009 Jens Petersen - 1.1.0.20090603-2 +- require kasumi to pull in dictionary tool + +* Wed Jun 03 2009 Peng Huang - 1.1.0.20090603-1 +- Update to 1.1.0.20090603 +- Implement setup ui. + +* Thu Apr 30 2009 Peng Huang - 1.1.0.20090402-2 +- Update to upstream HEAD version +- Fix bug 498250 - Cannot type zenkaku-space + +* Thu Apr 02 2009 Peng Huang - 1.1.0.20090402-1 +- Update to 1.1.0.20090402. +- Fix bug 490747 - Muhenkan (no-conversion) key does not undo conversion +- Fix bug 490750 - Henkan key for candidate conversion doesn't do anything +- Fix bug 490748 - Kana key doesn't do anything + +* Tue Feb 24 2009 Fedora Release Engineering - 1.1.0.20090211-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Feb 11 2009 Peng Huang - 1.1.0.20090211-1 +- Update to 1.1.0.20090211. + +* Thu Feb 05 2009 Peng Huang - 1.1.0.20090205-1 +- Update to 1.1.0.20090205. + +* Tue Feb 03 2009 Peng Huang - 0.1.1.20090203-1 +- Update to 0.1.1.20090203. + +* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 0.1.1.20080912-2 +- Rebuild for Python 2.6 + +* Fri Sep 12 2008 Peng Huang - 0.1.1.20080912-1 +- Update to 0.1.1.20080912. + +* Mon Sep 01 2008 Peng Huang - 0.1.1.20080901-1 +- Update to 0.1.1.20080901. + +* Thu Aug 28 2008 Peng Huang - 0.1.1.20080828-1 +- Update to 0.1.1.20080828. + +* Wed Aug 27 2008 Peng Huang - 0.1.1.20080827-1 +- Update to 0.1.1.20080827. + +* Tue Aug 26 2008 Peng Huang - 0.1.1.20080826-1 +- Update to 0.1.1.20080826. + +* Sat Aug 23 2008 Peng Huang - 0.1.1.20080823-1 +- Update to 0.1.1.20080823. + +* Fri Aug 15 2008 Peng Huang - 0.1.1.20080815-1 +- Update to 0.1.1.20080815. + +* Tue Aug 12 2008 Peng Huang - 0.1.1.20080812-1 +- Update to 0.1.1.20080812. + +* Fri Aug 08 2008 Peng Huang - 0.1.0.20080810-1 +- The first version. diff --git a/kasumi-1928410-gtk3.patch b/kasumi-1928410-gtk3.patch new file mode 100644 index 0000000..ad31368 --- /dev/null +++ b/kasumi-1928410-gtk3.patch @@ -0,0 +1,369 @@ +From 9de5eb6d221bf3438c75a756c9acffa01e2c51fb Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Tue, 16 Feb 2021 07:45:51 +0900 +Subject: [PATCH] Migrate kasumi GUI to GTK3 + +--- + KasumiAddWindow.cxx | 41 ++++++++++------------ + KasumiAddWindow.hxx | 1 - + KasumiMainWindow.cxx | 82 ++++++++++++++++++++++---------------------- + cellrendererspin.c | 16 +++++---- + cellrendererspin.h | 2 +- + main.cxx | 15 ++++---- + 6 files changed, 79 insertions(+), 78 deletions(-) + +diff --git a/KasumiAddWindow.cxx b/KasumiAddWindow.cxx +index 9b42c12..49c6a05 100644 +--- a/KasumiAddWindow.cxx ++++ b/KasumiAddWindow.cxx +@@ -59,9 +59,6 @@ KasumiAddWindow::KasumiAddWindow(KasumiDic *aDictionary, + g_signal_connect(G_OBJECT(window), "delete_event", + G_CALLBACK(_call_back_add_window_delete_event), this); + +- // tooltips for every widget +- Tooltips = gtk_tooltips_new(); +- + // creating vbox for text entries, spin button and so on. + GtkWidget *vbox = gtk_vbox_new(FALSE,0); + gtk_container_set_border_width(GTK_CONTAINER(vbox), 6); +@@ -111,12 +108,12 @@ KasumiAddWindow::KasumiAddWindow(KasumiDic *aDictionary, + const int FREQ_DEFAULT = conf->getPropertyValueByInt("DefaultFrequency"); + const int FREQ_LBOUND = conf->getPropertyValueByInt("MinFrequency"); + const int FREQ_UBOUND = conf->getPropertyValueByInt("MaxFrequency"); +- GtkObject *adjustment = gtk_adjustment_new(FREQ_DEFAULT, +- FREQ_LBOUND, +- FREQ_UBOUND, +- 1, +- FREQ_UBOUND / 100 +- ,0); ++ GtkAdjustment *adjustment = GTK_ADJUSTMENT (gtk_adjustment_new(FREQ_DEFAULT, ++ FREQ_LBOUND, ++ FREQ_UBOUND, ++ 1, ++ FREQ_UBOUND / 100 ++ ,0)); + FrequencySpin = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment),1.0,0); + alignment = gtk_alignment_new(0, 0.5, 1.0, 1.0); + gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 6, 6, 6); +@@ -205,16 +202,14 @@ KasumiAddWindow::KasumiAddWindow(KasumiDic *aDictionary, + gtk_box_pack_start(GTK_BOX(hbutton_box),GTK_WIDGET(button),TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(_call_back_add_window_add),this); +- gtk_tooltips_set_tip(Tooltips, button, +- _("Add entered word and quit registration."), ++ gtk_widget_set_tooltip_text(button, + _("If all the necessary items are filled in, add entered word and quit registration.")); + + button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); + gtk_box_pack_start(GTK_BOX(hbutton_box),GTK_WIDGET(button),TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(_call_back_add_window_quit),this); +- gtk_tooltips_set_tip(Tooltips, button, +- _("Cancel registration and quit."), ++ gtk_widget_set_tooltip_text(button, + _("Cancel registration and quit.")); + + gtk_window_set_keep_above(GTK_WINDOW(window), TRUE); +@@ -227,24 +222,21 @@ KasumiAddWindow::KasumiAddWindow(KasumiDic *aDictionary, + gtk_box_pack_start(GTK_BOX(hbutton_box),GTK_WIDGET(button),TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(_call_back_add_window_add),this); +- gtk_tooltips_set_tip(Tooltips, button, +- _("Add entered word"), ++ gtk_widget_set_tooltip_text(button, + _("If all the necessary items are filled in, add entered word.")); + + button = gtk_button_new_from_stock(GTK_STOCK_EDIT); + gtk_box_pack_start(GTK_BOX(hbutton_box),GTK_WIDGET(button),TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(_call_back_manage_mode),this); +- gtk_tooltips_set_tip(Tooltips, button, +- _("Manage mode"), ++ gtk_widget_set_tooltip_text(button, + _("Make the shift to manage mode to modify and remove registered words.")); + + button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); + gtk_box_pack_start(GTK_BOX(hbutton_box),GTK_WIDGET(button),TRUE,TRUE,0); + g_signal_connect(G_OBJECT(button),"clicked", + G_CALLBACK(_call_back_add_window_quit),this); +- gtk_tooltips_set_tip(Tooltips, button, +- _("Quit this application"), ++ gtk_widget_set_tooltip_text(button, + _("Save dictionary and quit this application.")); + + // get selection at the time of launching +@@ -443,16 +435,19 @@ void _call_back_manage_mode(GtkWidget *widget, + void _call_back_selection_data_received(GtkWidget *widget, + GtkSelectionData *selection_data, + gpointer data){ +- if(selection_data->length < 0){ ++ int emit_length = gtk_selection_data_get_length(selection_data); ++ GdkAtom emit_type = gtk_selection_data_get_data_type(selection_data); ++ const guchar *emit_data = gtk_selection_data_get_data(selection_data); ++ if(emit_length < 0){ + // failed retrieving selection + // do nothing + return; + } + +- string atom_name = string(gdk_atom_name(selection_data->type)); ++ string atom_name = string(gdk_atom_name(emit_type)); + +- gchar *str; +- str = reinterpret_cast(selection_data->data); ++ const gchar *str; ++ str = reinterpret_cast(emit_data); + + if(atom_name == "UTF8_STRING"){ + gtk_entry_set_text(GTK_ENTRY(widget), str); +diff --git a/KasumiAddWindow.hxx b/KasumiAddWindow.hxx +index 5101314..352326a 100644 +--- a/KasumiAddWindow.hxx ++++ b/KasumiAddWindow.hxx +@@ -77,7 +77,6 @@ private: + GtkWidget *FrequencySpin; + GtkWidget *WordTypeCategoryCombo; + GtkWidget *WordTypeCombo; +- GtkTooltips *Tooltips; + + GtkTreeIter defaultWordTypeCategoryIter; + +diff --git a/KasumiMainWindow.cxx b/KasumiMainWindow.cxx +index 4e86c7a..e8a8d56 100644 +--- a/KasumiMainWindow.cxx ++++ b/KasumiMainWindow.cxx +@@ -150,22 +150,22 @@ void KasumiMainWindow::createWindow() + mSaveButton = gtk_button_new_from_stock ("gtk-save"); + gtk_widget_show (mSaveButton); + gtk_box_pack_start (GTK_BOX (hbuttonbox1), mSaveButton, FALSE, TRUE, 0); +- GTK_WIDGET_SET_FLAGS (mSaveButton, GTK_CAN_DEFAULT); ++ gtk_widget_set_can_default (mSaveButton, TRUE); + + mAddButton = gtk_button_new_from_stock ("gtk-add"); + gtk_widget_show (mAddButton); + gtk_box_pack_start (GTK_BOX (hbuttonbox1), mAddButton, FALSE, TRUE, 0); +- GTK_WIDGET_SET_FLAGS (mAddButton, GTK_CAN_DEFAULT); ++ gtk_widget_set_can_default (mAddButton, TRUE); + + mRemoveButton = gtk_button_new_from_stock ("gtk-delete"); + gtk_widget_show (mRemoveButton); + gtk_box_pack_start (GTK_BOX (hbuttonbox1), mRemoveButton, FALSE, TRUE, 0); +- GTK_WIDGET_SET_FLAGS (mRemoveButton, GTK_CAN_DEFAULT); ++ gtk_widget_set_can_default (mRemoveButton, TRUE); + + mQuitButton = gtk_button_new_from_stock ("gtk-close"); + gtk_widget_show (mQuitButton); + gtk_box_pack_end (GTK_BOX (hbuttonbox1), mQuitButton, FALSE, TRUE, 0); +- GTK_WIDGET_SET_FLAGS (mQuitButton, GTK_CAN_DEFAULT); ++ gtk_widget_set_can_default (mQuitButton, TRUE); + } + + void KasumiMainWindow::createWordList() +@@ -474,7 +474,7 @@ void KasumiMainWindow::editedTextColumn(GtkCellRendererText *renderer, + + // set cursor right or left + GtkTreeViewColumn *postCol = NULL; +- if(lastKeyVal == GDK_Tab) ++ if(lastKeyVal == GDK_KEY_Tab) + { + if(lastKeyState & GDK_CONTROL_MASK) + { // set cursor left +@@ -887,42 +887,42 @@ guint getAccelKey(const string &key){ + + string shortkey = key.substr(i+1); + +- if(shortkey == "A") return GDK_A; +- else if(shortkey == "B") return GDK_B; +- else if(shortkey == "C") return GDK_C; +- else if(shortkey == "D") return GDK_D; +- else if(shortkey == "E") return GDK_E; +- else if(shortkey == "F") return GDK_F; +- else if(shortkey == "G") return GDK_G; +- else if(shortkey == "H") return GDK_H; +- else if(shortkey == "I") return GDK_I; +- else if(shortkey == "J") return GDK_J; +- else if(shortkey == "K") return GDK_K; +- else if(shortkey == "L") return GDK_L; +- else if(shortkey == "M") return GDK_M; +- else if(shortkey == "N") return GDK_N; +- else if(shortkey == "O") return GDK_O; +- else if(shortkey == "P") return GDK_P; +- else if(shortkey == "Q") return GDK_Q; +- else if(shortkey == "R") return GDK_R; +- else if(shortkey == "S") return GDK_S; +- else if(shortkey == "T") return GDK_T; +- else if(shortkey == "U") return GDK_U; +- else if(shortkey == "V") return GDK_V; +- else if(shortkey == "W") return GDK_W; +- else if(shortkey == "X") return GDK_X; +- else if(shortkey == "Y") return GDK_Y; +- else if(shortkey == "Z") return GDK_Z; +- else if(shortkey == "0") return GDK_0; +- else if(shortkey == "1") return GDK_1; +- else if(shortkey == "2") return GDK_2; +- else if(shortkey == "3") return GDK_3; +- else if(shortkey == "4") return GDK_4; +- else if(shortkey == "5") return GDK_5; +- else if(shortkey == "6") return GDK_5; +- else if(shortkey == "7") return GDK_7; +- else if(shortkey == "8") return GDK_8; +- else if(shortkey == "9") return GDK_9; ++ if(shortkey == "A") return GDK_KEY_A; ++ else if(shortkey == "B") return GDK_KEY_B; ++ else if(shortkey == "C") return GDK_KEY_C; ++ else if(shortkey == "D") return GDK_KEY_D; ++ else if(shortkey == "E") return GDK_KEY_E; ++ else if(shortkey == "F") return GDK_KEY_F; ++ else if(shortkey == "G") return GDK_KEY_G; ++ else if(shortkey == "H") return GDK_KEY_H; ++ else if(shortkey == "I") return GDK_KEY_I; ++ else if(shortkey == "J") return GDK_KEY_J; ++ else if(shortkey == "K") return GDK_KEY_K; ++ else if(shortkey == "L") return GDK_KEY_L; ++ else if(shortkey == "M") return GDK_KEY_M; ++ else if(shortkey == "N") return GDK_KEY_N; ++ else if(shortkey == "O") return GDK_KEY_O; ++ else if(shortkey == "P") return GDK_KEY_P; ++ else if(shortkey == "Q") return GDK_KEY_Q; ++ else if(shortkey == "R") return GDK_KEY_R; ++ else if(shortkey == "S") return GDK_KEY_S; ++ else if(shortkey == "T") return GDK_KEY_T; ++ else if(shortkey == "U") return GDK_KEY_U; ++ else if(shortkey == "V") return GDK_KEY_V; ++ else if(shortkey == "W") return GDK_KEY_W; ++ else if(shortkey == "X") return GDK_KEY_X; ++ else if(shortkey == "Y") return GDK_KEY_Y; ++ else if(shortkey == "Z") return GDK_KEY_Z; ++ else if(shortkey == "0") return GDK_KEY_0; ++ else if(shortkey == "1") return GDK_KEY_1; ++ else if(shortkey == "2") return GDK_KEY_2; ++ else if(shortkey == "3") return GDK_KEY_3; ++ else if(shortkey == "4") return GDK_KEY_4; ++ else if(shortkey == "5") return GDK_KEY_5; ++ else if(shortkey == "6") return GDK_KEY_5; ++ else if(shortkey == "7") return GDK_KEY_7; ++ else if(shortkey == "8") return GDK_KEY_8; ++ else if(shortkey == "9") return GDK_KEY_9; + + cerr << "Invalid shortcut key option: " << key << endl; + exit(1); +diff --git a/cellrendererspin.c b/cellrendererspin.c +index 885d462..85d3bda 100644 +--- a/cellrendererspin.c ++++ b/cellrendererspin.c +@@ -52,8 +52,6 @@ + */ + + #include "cellrendererspin.h" +-#include +-#include + #include + + #define GUI_CELL_RENDERER_SPIN_PATH "gui-cell-renderer-spin-path" +@@ -239,6 +237,7 @@ gui_cell_renderer_spin_editing_done (GtkCellEditable *spinbutton, + const gchar *path; + const gchar *new_text; + GCRSpinInfo *info; ++ gboolean canceled = FALSE; + + info = g_object_get_data (G_OBJECT (data), GUI_CELL_RENDERER_SPIN_INFO); + +@@ -248,7 +247,8 @@ gui_cell_renderer_spin_editing_done (GtkCellEditable *spinbutton, + info->focus_out_id = 0; + } + +- if (GTK_ENTRY(spinbutton)->editing_canceled) ++ g_object_get (spinbutton, "editing-canceled", &canceled, NULL); ++ if (canceled) + return; + + path = g_object_get_data (G_OBJECT (spinbutton), GUI_CELL_RENDERER_SPIN_PATH); +@@ -317,19 +317,23 @@ gui_cell_renderer_spin_start_editing (GtkCellRenderer *cell, + GtkWidget *spinbutton; + GCRSpinInfo *info; + gdouble curval = 0.0; ++ gboolean editable = FALSE; ++ gchar* str = NULL; + + celltext = GTK_CELL_RENDERER_TEXT(cell); + spincell = GUI_CELL_RENDERER_SPIN(cell); + + /* If the cell isn't editable we return NULL. */ +- if (celltext->editable == FALSE) ++ editable = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (celltext), "editable")); ++ if (editable == FALSE) + return NULL; + + spinbutton = g_object_new (GTK_TYPE_SPIN_BUTTON, "has_frame", FALSE, "numeric", TRUE, NULL); + + /* dirty */ +- if (celltext->text) +- curval = atof(celltext->text); ++ str = (gchar *)g_object_get_data (G_OBJECT (celltext), "text"); ++ if (str) ++ curval = atof(str); + + adj = GTK_ADJUSTMENT(gtk_adjustment_new(curval, + spincell->lower, +diff --git a/cellrendererspin.h b/cellrendererspin.h +index c6b33d2..36a2740 100644 +--- a/cellrendererspin.h ++++ b/cellrendererspin.h +@@ -27,7 +27,7 @@ + #ifndef _cellrendererspin_h_included_ + #define _cellrendererspin_h_included_ + +-#include ++#include + + G_BEGIN_DECLS + +diff --git a/main.cxx b/main.cxx +index c5c459e..8ed5edf 100644 +--- a/main.cxx ++++ b/main.cxx +@@ -101,14 +101,15 @@ static void cb_selection_get(GtkWidget *widget, + { + gchar *text = NULL; + gint length = 0; ++ GdkAtom emit_selection = gtk_selection_data_get_selection(data); + +- if (data->selection == atom0) { ++ if (emit_selection == atom0) { + text = "Kasumi Selection"; + length = strlen(text); + gtk_selection_convert(window, atom1, + GDK_SELECTION_TYPE_STRING, + GDK_CURRENT_TIME); +- } else if (data->selection == atom1 && arg_text != NULL) { ++ } else if (emit_selection == atom1 && arg_text != NULL) { + text = arg_text; + arg_text = NULL; + length = strlen(text); +@@ -116,7 +117,7 @@ static void cb_selection_get(GtkWidget *widget, + + if (text != NULL) { + gtk_selection_data_set_text(data, text, length); +- if (data->selection == atom1) ++ if (emit_selection == atom1) + g_free(text); + } + } +@@ -126,9 +127,11 @@ static void cb_selection_received(GtkWidget *widget, + guint time, + gpointer user_data) + { +- if (data->selection == atom0) { +- instance = MAX(data->length, 0); +- } else if (data->selection == atom1 && data->length > 0) { ++ GdkAtom emit_selection = gtk_selection_data_get_selection(data); ++ int emit_length = gtk_selection_data_get_length(data); ++ if (emit_selection == atom0) { ++ instance = MAX(emit_length, 0); ++ } else if (emit_selection == atom1 && emit_length > 0) { + } + } + +-- +2.28.0 + diff --git a/kasumi-853099-manpage.patch b/kasumi-853099-manpage.patch new file mode 100644 index 0000000..1ce24f9 --- /dev/null +++ b/kasumi-853099-manpage.patch @@ -0,0 +1,25 @@ +diff -pruN kasumi-2.5.orig/kasumi.1 kasumi-2.5/kasumi.1 +--- kasumi-2.5.orig/kasumi.1 2009-06-25 17:46:31.000000000 +0900 ++++ kasumi-2.5/kasumi.1 2012-08-31 11:14:19.000000000 +0900 +@@ -52,6 +52,10 @@ Run Kasumi in Manage mode\&. You may abb + Run Kasumi in Add mode\&. + + .TP ++\fB\-e\fR \fB\-\-exclusive\fR ++Run Kasumi in Exclusive mode\&. ++ ++.TP + \fB\-\-sound val\fR + Set default sound entry (only in Add mode) + +@@ -71,6 +75,10 @@ Import selected text as a spelling + \fB\-I\fR \fB\-\-ignore\fR + Ignore selected text + ++.TP ++\fB\-E\fR \fB\-\-eucjp\fR ++Use EUC-JP encoding for dictionary ++ + .SH "AUTHOR" + + .PP diff --git a/kasumi-check-anthy-pkg.patch b/kasumi-check-anthy-pkg.patch new file mode 100644 index 0000000..0a38db0 --- /dev/null +++ b/kasumi-check-anthy-pkg.patch @@ -0,0 +1,16 @@ +diff -pruN kasumi-2.5.orig/configure.in kasumi-2.5/configure.in +--- kasumi-2.5.orig/configure.in 2009-07-13 12:41:26.000000000 +0900 ++++ kasumi-2.5/configure.in 2021-03-31 16:59:21.255070350 +0900 +@@ -32,8 +32,10 @@ AC_CHECK_LIB(iconv, iconv) + AC_CHECK_LIB(anthydic, anthy_dic_util_init) + AC_CHECK_LIB(anthy, anthy_get_version_string) + +-CFLAGS="$CFLAGS -Wall" +-CXXFLAGS="$CXXFLAGS -Wall" ++PKG_CHECK_MODULES(ANTHY, anthy) ++ ++CFLAGS="$CFLAGS -Wall $ANTHY_CFLAGS" ++CXXFLAGS="$CXXFLAGS -Wall $ANTHY_CFLAGS" + + dnl Checks for header files. + diff --git a/sources b/sources index e69de29..12e56d1 100644 --- a/sources +++ b/sources @@ -0,0 +1,3 @@ +SHA512 (ibus-anthy-1.5.13.tar.gz) = 02d63f578d0d5c099bc63dfa050b9091809b8af53a4b4372f1896f647b54f735b56ebead51b34fb9302c94afecaf439473b1df311fca640105e71ac9b80f94dd +SHA512 (kasumi-2.5.tar.gz) = 066dda59d84b456c514a896b376bfc6df8ac64404f06fbfa8c369381acb6d260b1f22874885be2eab844f8f3776b944a5c700a966464ebef74d82c28bc97f970 +SHA512 (pycotap-1.1.0.tar.gz) = dbe8d76c3e4b934dd4ff9ec0d48caafef3ae5583046a7316607b3c8cebf8cb920c68dc46487243aac81823994805c76f2be8ff0cbda593c70b70f268661fa289 diff --git a/tests/roles/ibus-desktop-testing-role/defaults/main.yml b/tests/roles/ibus-desktop-testing-role/defaults/main.yml new file mode 100644 index 0000000..8ff7991 --- /dev/null +++ b/tests/roles/ibus-desktop-testing-role/defaults/main.yml @@ -0,0 +1,3 @@ +role_pkgs_req: + - rsync + - xorg-x11-server-Xvfb diff --git a/tests/roles/ibus-desktop-testing-role/meta/main.yml b/tests/roles/ibus-desktop-testing-role/meta/main.yml new file mode 100644 index 0000000..6626402 --- /dev/null +++ b/tests/roles/ibus-desktop-testing-role/meta/main.yml @@ -0,0 +1,4 @@ +--- + +dependencies: + - role: str-common-init diff --git a/tests/roles/ibus-desktop-testing-role/tasks/main.yml b/tests/roles/ibus-desktop-testing-role/tasks/main.yml new file mode 100644 index 0000000..44c70e2 --- /dev/null +++ b/tests/roles/ibus-desktop-testing-role/tasks/main.yml @@ -0,0 +1,118 @@ +--- +- name: Check if GNOME installed-tests testing harness is installed + register: gnome_desktop_testing_runner + find: + paths: "{{ ansible_env.PATH.split(':') }}" + pattern: gnome-desktop-testing-runner + +- name: Build and install GNOME installed-tests testing harness + when: gnome_desktop_testing_runner.matched == 0 + block: + - name: Installing build dependencies for IBus and GNOME installed-tests testing harness + package: + name: + - git + - make + - gcc + - diffutils + - autoconf + - automake + - libtool + - glib2-devel + - systemd-devel + - gnome-session + - gnome-shell + - dbus-x11 + - xorg-x11-server-Xvfb + - ibus + - ibus-desktop-testing + - ibus-anthy-tests + # ibus-compose test needs locales + - glibc-langpack-el + - glibc-langpack-fi + - glibc-langpack-pt + + - name: Fetching GNOME installed-tests testing harness source from remote repository + git: + repo: 'https://gitlab.gnome.org/GNOME/gnome-desktop-testing.git' + dest: gnome-desktop-testing + force: yes + + - name: Configure GNOME installed-tests testing harness build + command: ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var + args: + chdir: gnome-desktop-testing + + - name: Build GNOME installed-tests testing harness + command: make + args: + chdir: gnome-desktop-testing + + - name: Install GNOME installed-tests testing harness + command: make install + args: + chdir: gnome-desktop-testing + +- name: Start IBus installed-tests testing harness + environment: + ANSIBLE: 1 + TMPDIR: '{{ remote_artifacts }}' + G_MESSAGES_DEBUG: 'all' + block: + - name: Execute IBus tests + shell: | + set -e + status="FAIL: frame" + if [ -f $HOME/.config/anthy/last-record2_default.utf8 ] ; then \ + rm $HOME/.config/anthy/last-record2_default.utf8 + fi + if [ -f $HOME/.anthy/last-record2_default.utf8 ] ; then \ + rm $HOME/.anthy/last-record2_default.utf8 + fi + ibus-desktop-testing-runner \ + --no-graphics \ + --runner=gnome \ + --timeout=1200 \ + --tests='{{ installed_test_name }}' \ + --output='{{ remote_artifacts }}/{{ installed_test_name }}.log' \ + --result='{{ remote_artifacts }}/test.log' \ + null + if [ $? -eq 0 ]; then + status="PASS: frame" + fi + echo "${status}" >> {{ remote_artifacts }}/test.log + echo "#### {{ remote_artifacts }}/{{ installed_test_name }}.log" + if [ -f {{ remote_artifacts }}/{{ installed_test_name }}.log ] ; then + cat {{ remote_artifacts }}/{{ installed_test_name }}.log + fi + echo "#" + echo "#### {{ remote_artifacts }}/test.log" + if [ -f {{ remote_artifacts }}/test.log ] ; then + cat {{ remote_artifacts }}/test.log + fi + echo "#" + + - name: Check the results + #shell: grep "^FAIL" {{ remote_artifacts }}/test.log + shell: | + log="{{ remote_artifacts }}/test.log" + if [ ! -f $log ] ; then + echo ERROR + else + FAIL=`grep "^FAIL: " {{ remote_artifacts }}/test.log | grep -v 'FAIL: 0$'` + if [ x"$FAIL" != x ] ; then + echo ERROR + fi + fi + register: test_fails + failed_when: False + + - name: Set role result + set_fact: + role_result: "{{ test_fails.stdout }}" + role_result_failed: "{{ (test_fails.stdout|d|length > 0) or (test_fails.stderr|d|length > 0) }}" + role_result_msg: "{{ test_fails.stdout|d('tests failed.') }}" + + - include_role: + name: str-common-final + diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..b175564 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,8 @@ +- hosts: localhost + roles: + - role: ibus-desktop-testing-role + installed_test_name: ibus-anthy + tags: + - classic + - gating +