commit 0564ea09b4a2d57ac8744d76f1e634d610849eea Author: Adrian Schröter Date: Mon Oct 14 14:29:31 2024 +0200 Sync from SUSE:ALP:Source:Standard:1.0 ibus revision be89ef0c48e961bc3990b5ce7fb266ce diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/20-defaults-openSUSE.conf b/20-defaults-openSUSE.conf new file mode 100644 index 0000000..7adacb5 --- /dev/null +++ b/20-defaults-openSUSE.conf @@ -0,0 +1,4 @@ +[Service] +# For now, Plasma Wayland does not support /etc/xdg/Xwayland-session.d +# so always enable --xim +Environment="IBUS_DAEMON_ARGS=--xim" diff --git a/README.SUSE b/README.SUSE new file mode 100644 index 0000000..6eeec8b --- /dev/null +++ b/README.SUSE @@ -0,0 +1,72 @@ +ibus README for SuSE +How to start using ibus + +English: + +0:Note: ibus don't support QT3 immodule, +If you use qt3-base applications, modify your /usr/etc/X11/xim.d/ibus to +export QT_IM_MODULE=xim + +1.openSUSE can start ibus automatically when your locale is set to en, zh_TW, zh_CN, zh_HK, zh_SG, ko_KR and ja_JP. +The setup script is a link in /usr/etc/X11/xim.d/YOUR-LOCALE/40-ibus which link to /usr/etc/X11/xim.d/ibus. +The number "40" makes ibus have priority over other input-method (e.g 50-scim or 90-xcin ). +If you prefer not using ibus, mv 40-ibus to 80-ibus (for example). Or see 2. + +2.If for some reason can't start ibus when login Xwindow +There is another input-method who has higher priority then ibus (e.g 10-oxim) +You can edit ~/.xim, see ~/.xim.template for more informations. +Or edit ~/.profile, add +export INPUT_METHOD="ibus" +After installing ibus, there's a template for ibus: /usr/share/doc/packages/ibus/xim.ibus.suse.template +copy this file to ~/.xim, then you can use ibus next login X. + +3.You want to use your own input-method other than system setting +(1)System setting: +Edit /etc/sysconfig/language , set INPUT_METHOD="scim-bridge", or whatever you want,Make sure your start-up script is put in /usr/etc/X11/xim.d/ with same name ypu mention. +(2)For specific language setting: +Link a start-up script in /usr/etc/X11/xim.d/ to your locale with a higher priority (smaller number), eg +ln -s /usr/etc/X11/xim.d/scim-bridge /usr/etc/X11/xim.d/zh_TW/20-scim-bridge +(3)Personal setting: +Edit ~/.profile add +export INPUT_METHOD="scim-bridge" or whatever script in /usr/etc/X11/xim.d/ +or white your own ~/.xim, see ~/.xim.template for more informations. + +4.Bug report or any suggestion to +https://github.com/ibus/ibus/issues + + +Chinese: + +0:注意:ibus 不支援 QT3 immodule, +若您使用 qt3-based 應用程式,請修改 /usr/etc/X11/xim.d/ibus 設定 +export QT_IM_MODULE=xim + +1.當您使用的語系是en 或zh_*時,SuSE 會自動啟動ibus +啟動的script是/usr/etc/X11/xim.d/YOUR-LOCALE/40-ibus,這是一個到上層目錄ibus的連結 +"40"這個數字使他的優先順序高於90-xcin及50-scim +如果您不喜歡這個順序,修改連結的名稱為(例如:80-ibus),或參考2. + +2.重新登入X後,如果不能用ibus...可能是: +有別的輸入法的優先順序高於ibus(例如:10-oxim) +您可以編輯~/.xim,請參考~/.xim.template +安裝ibus後,會有一個範本:/usr/share/doc/packages/ibus/xim.ibus.suse.template +將這個檔案複製到您的~/.xim,當您下次登入X時就可以使用ibus了 +或編輯~/.profile,加入 +export INPUT_METHOD="ibus" + +3.如果您想要自己選擇輸入法而非使用系統設定 +(1)全系統設定: +編輯 /etc/sysconfig/language, 設定 INPUT_METHOD="ibus" 或其他你想用的輸入法, +請注意你的啟動程序必須位於 /usr/etc/X11/xim.d/,並和您指定的名稱相同 +(2)針對特定語言: +將您的啟動程序連結到你的語系中,並前置較高的優先順序(較小數字),例如 +ln -s /usr/etc/X11/xim.d/ibus /usr/etc/X11/xim.d/zh_TW/20-ibus +(3)個人設定: +編輯 ~/.profile 加入 +export INPUT_METHOD="ibus" 或其他在 /usr/etc/X11/xim.d/ 的啟動程序 +或自行編寫啟動程序 ~/.xim,請參考 ~/.xim.template + +5.臭蟲回報或建議請至 +https://github.com/ibus/ibus/issues + + diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..f8f79a4 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + gtk4 + + diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..a3a39dd --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,27 @@ +ibus-gtk + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-2.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-2.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-2.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-2.0 --update-cache" + postun "%endif" + supplements "(ibus and gtk2-)" +ibus-gtk3 + post "%if "%_lib" == "lib64"" + post "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + post "%else" + post "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + post "%endif" + postun "%if "%_lib" == "lib64"" + postun "%{_bindir}/gtk-query-immodules-3.0-64 --update-cache" + postun "%else" + postun "%{_bindir}/gtk-query-immodules-3.0 --update-cache" + postun "%endif" + supplements "(ibus and gtk3-)" +libibus-1_0-5 + obsoletes "libibus2- < " + diff --git a/hide-setup-menu.patch b/hide-setup-menu.patch new file mode 100644 index 0000000..6276c79 --- /dev/null +++ b/hide-setup-menu.patch @@ -0,0 +1,11 @@ +diff -Nura ibus-1.5.21/setup/ibus-setup.desktop ibus-1.5.21_new/setup/ibus-setup.desktop +--- ibus-1.5.21/setup/ibus-setup.desktop 2019-08-23 13:08:34.000000000 +0200 ++++ ibus-1.5.21_new/setup/ibus-setup.desktop 2019-09-20 07:21:33.505022653 +0200 +@@ -4,6 +4,7 @@ + Exec=ibus-setup + Icon=ibus-setup + Terminal=false ++NoDisplay=true + Type=Application + StartupNotify=true + Categories=Settings; diff --git a/ibus-1.5.28.tar.gz b/ibus-1.5.28.tar.gz new file mode 100644 index 0000000..766de84 --- /dev/null +++ b/ibus-1.5.28.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c9ff3a7576c3d61264f386030f47ee467eb7298c8104367002986e008765667 +size 3871246 diff --git a/ibus-autostart b/ibus-autostart new file mode 100644 index 0000000..e1d3925 --- /dev/null +++ b/ibus-autostart @@ -0,0 +1,15 @@ +#!/bin/sh + +test x"$INPUT_METHOD" = x"ibus" || exit 0 + +# GNOME starts ibus by itself +case "$WINDOWMANAGER" in + *gnome*) + exit 0;; +esac + +# sleep for a little while to avoid duplicate startup +# sleep 2 + +ibus start --service-file org.freedesktop.IBus.session.generic.service +exit 0 diff --git a/ibus-autostart.desktop b/ibus-autostart.desktop new file mode 100644 index 0000000..d469263 --- /dev/null +++ b/ibus-autostart.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=IBus +GenericName=IBus Daemon +Comment=Start IBus daemon +Exec=ibus-autostart +Icon=ibus-setup +Terminal=false +Type=Application +StartupNotify=false +NoDisplay=true +X-KDE-autostart-after=panel +X-KDE-StartupNotify=false diff --git a/ibus-disable-engines-preload-in-GNOME.patch b/ibus-disable-engines-preload-in-GNOME.patch new file mode 100644 index 0000000..d9bfeac --- /dev/null +++ b/ibus-disable-engines-preload-in-GNOME.patch @@ -0,0 +1,21 @@ +diff -Nura ibus-1.5.16/xim.d-ibus-121 ibus-1.5.16_new/xim.d-ibus-121 +--- ibus-1.5.16/xim.d-ibus-121 2017-06-05 14:38:10.728021247 +0800 ++++ ibus-1.5.16_new/xim.d-ibus-121 2017-06-05 14:40:44.380353362 +0800 +@@ -13,17 +13,6 @@ + # G-S-D. see bnc#873016. + *gnome*) + SOURCES=$(gsettings get org.freedesktop.ibus.general preload-engines) +- if [ "$SOURCES" == '@as []' ]; then +- echo "initial GNOME startup, ibus default configuration applied" +- ibus-daemon -d +- timer=5 +- while [ "$SOURCES" == '@as []' ] && [ ${timer} -gt 0 ]; do +- sleep 1 +- timer=$[${timer}-1] +- SOURCES=$(gsettings get org.freedesktop.ibus.general preload-engines) +- done +- ibus exit +- fi + # make sure G-S-D keyboard plugin is active + echo "ibus will be managed by GNOME." + gsettings set org.gnome.settings-daemon.plugins.keyboard active true diff --git a/ibus-fix-Signal-does-not-exist.patch b/ibus-fix-Signal-does-not-exist.patch new file mode 100644 index 0000000..c79aa47 --- /dev/null +++ b/ibus-fix-Signal-does-not-exist.patch @@ -0,0 +1,12 @@ +diff -Nur ibus-1.5.22/ui/gtk3/panel.vala ibus-1.5.22-new/ui/gtk3/panel.vala +--- ibus-1.5.22/ui/gtk3/panel.vala 2020-02-21 20:46:17.000000000 +0800 ++++ ibus-1.5.22-new/ui/gtk3/panel.vala 2020-02-24 17:55:17.718453204 +0800 +@@ -1053,7 +1053,7 @@ + + private void show_setup_dialog() { + if (m_setup_pid != 0) { +- if (Posix.kill(m_setup_pid, Posix.Signal.USR1) == 0) ++ if (Posix.kill(m_setup_pid, Posix.SIGUSR1) == 0) + return; + m_setup_pid = 0; + } diff --git a/ibus-fix-key-release.patch b/ibus-fix-key-release.patch new file mode 100644 index 0000000..20448e4 --- /dev/null +++ b/ibus-fix-key-release.patch @@ -0,0 +1,411 @@ +From 7da18d08ce85405e41ba7bf363661292bc97ca39 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Wed, 22 Feb 2023 23:53:35 +0900 +Subject: [PATCH] src: Call IBUS_TYPE_EMOJI_DATA in ibus_init() + +Seems the evaluation of IBUS_EMOJI_DATA() depends on the compiler +optimization. + +BUG=https://github.com/ibus/ibus/issues/2476 +--- + src/ibusshare.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/ibusshare.c b/src/ibusshare.c +index 340168c8..bb59f3cb 100644 +--- a/src/ibusshare.c ++++ b/src/ibusshare.c +@@ -308,12 +308,15 @@ ibus_init (void) + IBUS_TYPE_TEXT; + IBUS_TYPE_ATTRIBUTE; + IBUS_TYPE_ATTR_LIST; +- IBUS_TYPE_LOOKUP_TABLE; + IBUS_TYPE_COMPONENT; ++ IBUS_TYPE_EMOJI_DATA; + IBUS_TYPE_ENGINE_DESC; ++ IBUS_TYPE_LOOKUP_TABLE; + IBUS_TYPE_OBSERVED_PATH; + IBUS_TYPE_REGISTRY; + IBUS_TYPE_X_EVENT; ++ IBUS_TYPE_UNICODE_BLOCK; ++ IBUS_TYPE_UNICODE_DATA; + _ibus_register_resource (); + } + +-- +2.38.1 + +From 9d9dca9e103e88b33e786c4a46f44123a6cf11c6 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Wed, 8 Mar 2023 19:44:16 +0900 +Subject: [PATCH] client/x11: Fix Key typing order + +ibus-x11 now also uses the hybrid process key events with +IBUS_ENABLE_SYNC_MODE=2 and it waits for the async API +with GSource and g_main_context_iteration() in xim_forward_event(). + +But g_main_context_iteration() calls gdk_event_source_dispatch() +and it can call another xim_forward_event() and the callbacks +of ibus_input_context_process_key_event_async() can be nested. +So if the forwarding API is called out of the callbacks of +ibus_input_context_process_key_event_async(), the key events +order is swapped due to the delayed return of +g_main_context_iteration(). + +To resolve this issue, the forwarding API should be called in +the callbacks of ibus_input_context_process_key_event_async(). + +BUG=https://github.com/ibus/ibus/issues/2480 +--- + client/x11/main.c | 160 ++++++++++++++++++++++++---------------------- + 1 file changed, 83 insertions(+), 77 deletions(-) + +diff --git a/client/x11/main.c b/client/x11/main.c +index 905fd251..83d95cb7 100644 +--- a/client/x11/main.c ++++ b/client/x11/main.c +@@ -2,7 +2,7 @@ + /* vim:set et sts=4: */ + /* ibus + * Copyright (C) 2007-2015 Peng Huang +- * Copyright (C) 2015-2022 Takao Fujiwara ++ * Copyright (C) 2015-2023 Takao Fujiwara + * Copyright (C) 2007-2015 Red Hat, Inc. + * + * main.c: +@@ -49,6 +49,8 @@ + #include + + #define ESC_SEQUENCE_ISO10646_1 "\033%G" ++/* Wait for about 120 secs to return a key from async process-key-event. */ ++#define MAX_WAIT_KEY_TIME 120000 + + #define LOG(level, fmt_args...) \ + if (g_debug_level >= (level)) { \ +@@ -461,11 +463,39 @@ xim_unset_ic_focus (XIMS xims, IMChangeFocusStruct *call_data) + + } + ++static void ++_xim_forward_key_event_done (X11IC *x11ic, ++ XEvent *event, ++ gboolean processed) ++{ ++ IMForwardEventStruct fe; ++ if (processed) { ++ if (!x11ic->has_preedit_area) { ++ _xim_set_cursor_location (x11ic); ++ } ++ return; ++ } ++ g_assert (x11ic); ++ g_assert (event); ++ ++ memset (&fe, 0, sizeof (fe)); ++ fe.major_code = XIM_FORWARD_EVENT; ++ fe.icid = x11ic->icid; ++ fe.connect_id = x11ic->connect_id; ++ fe.sync_bit = 0; ++ fe.serial_number = 0L; ++ fe.event = *event; ++ IMForwardEvent (_xims, (XPointer) &fe); ++} ++ ++ + typedef struct { +- IMForwardEventStruct *pfe; + int count; + guint count_cb_id; + gboolean retval; ++ X11IC *x11ic; ++ CARD16 connect_id; ++ XEvent event; + } ProcessKeyEventReplyData; + + static void +@@ -474,7 +504,7 @@ _process_key_event_done (GObject *object, + gpointer user_data) + { + IBusInputContext *context = (IBusInputContext *)object; +- IMForwardEventStruct *pfe = (IMForwardEventStruct*) user_data; ++ ProcessKeyEventReplyData *data = (ProcessKeyEventReplyData *)user_data; + + GError *error = NULL; + gboolean retval = ibus_input_context_process_key_event_async_finish ( +@@ -488,16 +518,15 @@ _process_key_event_done (GObject *object, + } + + if (g_hash_table_lookup (_connections, +- GINT_TO_POINTER ((gint) pfe->connect_id)) ++ GINT_TO_POINTER ((gint)data->connect_id)) + == NULL) { +- g_slice_free (IMForwardEventStruct, pfe); ++ g_slice_free (ProcessKeyEventReplyData, data); + return; + } + +- if (retval == FALSE) { +- IMForwardEvent (_xims, (XPointer) pfe); +- } +- g_slice_free (IMForwardEventStruct, pfe); ++ if (retval == FALSE) ++ _xim_forward_key_event_done (data->x11ic, &data->event, retval); ++ g_slice_free (ProcessKeyEventReplyData, data); + } + + static void +@@ -518,6 +547,21 @@ _process_key_event_reply_done (GObject *object, + } + g_return_if_fail (data); + data->retval = retval; ++ if (g_hash_table_lookup (_connections, ++ GINT_TO_POINTER ((gint)data->connect_id)) ++ == NULL) { ++ return; ++ } ++ /* _xim_forward_key_event_done() should be called in ++ * _process_key_event_reply_done() because g_main_context_iteration() ++ * can call another xim_forward_event() and xim_forward_event() can be ++ * nested and the first _process_key_event_reply_done() is returned ++ * at last with g_main_context_iteration() so ++ * if _xim_forward_key_event_done() is called out of ++ * _process_key_event_reply_done(), the key events order ++ * can be swapped. ++ */ ++ _xim_forward_key_event_done (data->x11ic, &data->event, retval); + data->count = 0; + g_source_remove (data->count_cb_id); + } +@@ -529,9 +573,8 @@ _process_key_event_count_cb (gpointer user_data) + g_return_val_if_fail (data, G_SOURCE_REMOVE); + if (!data->count) + return G_SOURCE_REMOVE; +- /* Wait for about 10 secs. */ +- if (data->count++ == 10000) { +- data->count = 0; ++ if (data->count++ == MAX_WAIT_KEY_TIME) { ++ g_warning ("Key event is not returned for %usecs.", MAX_WAIT_KEY_TIME); + return G_SOURCE_REMOVE; + } + return G_SOURCE_CONTINUE; +@@ -571,32 +614,13 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) + event.keyval, + event.hardware_keycode - 8, + event.state); +- if (retval) { +- if (!x11ic->has_preedit_area) { +- _xim_set_cursor_location (x11ic); +- } +- return 1; +- } +- +- IMForwardEventStruct fe; +- memset (&fe, 0, sizeof (fe)); +- +- fe.major_code = XIM_FORWARD_EVENT; +- fe.icid = x11ic->icid; +- fe.connect_id = x11ic->connect_id; +- fe.sync_bit = 0; +- fe.serial_number = 0L; +- fe.event = call_data->event; +- +- IMForwardEvent (_xims, (XPointer) &fe); +- ++ _xim_forward_key_event_done (x11ic, &call_data->event, retval); + retval = 1; + break; + } + case 2: { + GSource *source = g_timeout_source_new (1); + ProcessKeyEventReplyData *data = NULL; +- IMForwardEventStruct fe; + + if (source) + data = g_slice_new0 (ProcessKeyEventReplyData); +@@ -610,11 +634,13 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) + if (source) + g_source_destroy (source); + } else { +- CARD16 connect_id = x11ic->connect_id; + data->count = 1; + g_source_attach (source, NULL); + g_source_unref (source); + data->count_cb_id = g_source_get_id (source); ++ data->connect_id = call_data->connect_id; ++ data->x11ic = x11ic; ++ data->event = *((XEvent*)xevent); + ibus_input_context_process_key_event_async ( + x11ic->context, + event.keyval, +@@ -626,7 +652,7 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) + data); + g_source_set_callback (source, _process_key_event_count_cb, + data, NULL); +- while (data->count) ++ while (data->count > 0 && data->count < MAX_WAIT_KEY_TIME) + g_main_context_iteration (NULL, TRUE); + if (source->ref_count > 0) { + /* g_source_get_id() could causes a SEGV */ +@@ -634,46 +660,33 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) + "issue in %p.", source); + } + retval = data->retval; +- g_slice_free (ProcessKeyEventReplyData, data); +- +- if (g_hash_table_lookup (_connections, +- GINT_TO_POINTER ((gint)connect_id)) +- == NULL) { ++ if (data->count == 0) { ++ g_slice_free (ProcessKeyEventReplyData, data); + return 1; + } + } + +- if (retval) { +- if (! x11ic->has_preedit_area) { +- _xim_set_cursor_location (x11ic); +- } +- return 1; ++ g_slice_free (ProcessKeyEventReplyData, data); ++ if (g_hash_table_lookup (_connections, ++ GINT_TO_POINTER ((gint)call_data->connect_id)) ++ == NULL) { ++ return 1; + } +- +- memset (&fe, 0, sizeof (fe)); +- +- fe.major_code = XIM_FORWARD_EVENT; +- fe.icid = x11ic->icid; +- fe.connect_id = x11ic->connect_id; +- fe.sync_bit = 0; +- fe.serial_number = 0L; +- fe.event = call_data->event; +- +- IMForwardEvent (_xims, (XPointer) &fe); +- ++ _xim_forward_key_event_done (x11ic, &call_data->event, retval); + retval = 1; + break; + } + default: { +- IMForwardEventStruct *pfe; ++ ProcessKeyEventReplyData *data; + +- pfe = g_slice_new0 (IMForwardEventStruct); +- pfe->major_code = XIM_FORWARD_EVENT; +- pfe->icid = x11ic->icid; +- pfe->connect_id = x11ic->connect_id; +- pfe->sync_bit = 0; +- pfe->serial_number = 0L; +- pfe->event = call_data->event; ++ if (!(data = g_slice_new0 (ProcessKeyEventReplyData))) { ++ g_warning ("Cannot allocate async data"); ++ _xim_forward_key_event_done (x11ic, &call_data->event, 0); ++ return 1; ++ } ++ data->connect_id = call_data->connect_id; ++ data->x11ic = x11ic; ++ data->event = call_data->event; + + ibus_input_context_process_key_event_async ( + x11ic->context, +@@ -683,7 +696,7 @@ xim_forward_event (XIMS xims, IMForwardEventStruct *call_data) + -1, + NULL, + _process_key_event_done, +- pfe); ++ data); + retval = 1; + } + } +@@ -962,11 +975,10 @@ _xim_forward_key_event (X11IC *x11ic, + guint keycode, + guint state) + { +- g_return_if_fail (x11ic != NULL); +- +- IMForwardEventStruct fe = {0}; + XEvent xkp = {0}; + ++ g_return_if_fail (x11ic != NULL); ++ + xkp.xkey.type = (state & IBUS_RELEASE_MASK) ? KeyRelease : KeyPress; + xkp.xkey.serial = 0L; + xkp.xkey.send_event = False; +@@ -975,20 +987,14 @@ _xim_forward_key_event (X11IC *x11ic, + xkp.xkey.window = + x11ic->focus_window ? x11ic->focus_window : x11ic->client_window; + xkp.xkey.subwindow = None; +- xkp.xkey.root = DefaultRootWindow (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); ++ xkp.xkey.root = DefaultRootWindow ( ++ GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); + + xkp.xkey.time = 0; + xkp.xkey.state = state; + xkp.xkey.keycode = (keycode == 0) ? 0 : keycode + 8; + +- fe.major_code = XIM_FORWARD_EVENT; +- fe.icid = x11ic->icid; +- fe.connect_id = x11ic->connect_id; +- fe.sync_bit = 0; +- fe.serial_number = 0L; +- fe.event = xkp; +- +- IMForwardEvent (_xims, (XPointer) & fe); ++ _xim_forward_key_event_done (x11ic, &xkp, FALSE); + } + + static void +-- +2.38.1 + +From 5b5d0795f297e330fdc84b6be6beab1305b0cda9 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Wed, 15 Mar 2023 10:22:05 +0900 +Subject: [PATCH] util/IMdkit: Disable while loop before call + ForwardEventMessageProc() + +Seems ProcessQueue() had a wrong XFree() with async process-key-event. +Fixes: c0fec89ae76f9522319f58107ab234992b249ec6 + +BUG=https://github.com/ibus/ibus/issues/2484 +--- + util/IMdkit/i18nPtHdr.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/util/IMdkit/i18nPtHdr.c b/util/IMdkit/i18nPtHdr.c +index 8dc52714..ec20e322 100644 +--- a/util/IMdkit/i18nPtHdr.c ++++ b/util/IMdkit/i18nPtHdr.c +@@ -1747,11 +1747,13 @@ static void ProcessQueue (XIMS ims, CARD16 connect_id) + XimProtoHdr *hdr = (XimProtoHdr *) client->pending->p; + unsigned char *p1 = (unsigned char *) (hdr + 1); + IMProtocol call_data; ++ XIMPending *old = client->pending; + + call_data.major_code = hdr->major_opcode; + call_data.any.minor_code = hdr->minor_opcode; + call_data.any.connect_id = connect_id; + ++ client->pending = old->next; + switch (hdr->major_opcode) + { + case XIM_FORWARD_EVENT: +@@ -1760,12 +1762,7 @@ static void ProcessQueue (XIMS ims, CARD16 connect_id) + } + /*endswitch*/ + XFree (hdr); +- { +- XIMPending *old = client->pending; +- +- client->pending = old->next; +- XFree (old); +- } ++ XFree (old); + } + /*endwhile*/ + return; +-- +2.39.2 + diff --git a/ibus-socket-name-compatibility.patch b/ibus-socket-name-compatibility.patch new file mode 100644 index 0000000..e0216f3 --- /dev/null +++ b/ibus-socket-name-compatibility.patch @@ -0,0 +1,249 @@ +diff -Naur ibus-1.5.25/src/ibusshare.c ibus-1.5.25.new/src/ibusshare.c +--- ibus-1.5.25/src/ibusshare.c 2021-08-20 02:48:40.000000000 +0200 ++++ ibus-1.5.25.new/src/ibusshare.c 2021-09-08 19:41:27.233077477 +0200 +@@ -90,79 +90,132 @@ + return g_getenv("IBUS_SESSION_ID"); + } + ++static const gchar *ibus_get_socket_path_internal (gboolean compat, gchar *client_display); ++ + const gchar * + ibus_get_socket_path (void) + { + static gchar *path = NULL; + + if (path == NULL) { +- gchar *hostname = "unix"; +- gchar *display; +- gchar *displaynumber = "0"; +- /* gchar *screennumber = "0"; */ +- gboolean is_wayland = FALSE; +- gchar *p; +- +- path = g_strdup (g_getenv ("IBUS_ADDRESS_FILE")); +- if (path != NULL) { +- return path; ++ path = ibus_get_socket_path_internal (FALSE, NULL); ++ } ++ return path; ++} ++ ++static const gchar * ++ibus_get_socket_path_x11_compat (void) ++{ ++ static gchar *path = NULL; ++ if (path == NULL) ++ path = ibus_get_socket_path_internal (TRUE, NULL); ++ return path; ++} ++ ++static const gchar * ++ibus_get_socket_path_gnome_xwayland_compat (void) ++{ ++ static gchar *path = NULL; ++ if (path == NULL) { ++ gint setup_display_number; ++ gchar *client_display; ++ gchar **tokens; ++ ++ tokens = g_strsplit (ibus_get_socket_path_x11_compat (), "-", 3); ++ if (tokens[0] != NULL && tokens[1] != NULL && tokens[2] != NULL) { ++ setup_display_number = g_strtod(tokens[2], NULL); ++ if (setup_display_number > 0) { ++ client_display = g_strdup_printf (":%d", setup_display_number - 1); ++ path = ibus_get_socket_path_internal (TRUE, client_display); ++ } + } + +- if (_display == NULL) { ++ g_strfreev (tokens); ++ } ++ return path; ++} ++ ++static const gchar * ++ibus_get_socket_path_internal (gboolean compat, gchar *client_display) ++{ ++ gchar *path = NULL; ++ ++ gchar *hostname = "unix"; ++ gchar *display; ++ gchar *displaynumber = "0"; ++ /* gchar *screennumber = "0"; */ ++ gboolean is_wayland = FALSE; ++ gchar *p; ++ ++ path = g_strdup (g_getenv ("IBUS_ADDRESS_FILE")); ++ if (path != NULL) { ++ return path; ++ } ++ ++ if (_display == NULL) { ++ if (compat) { ++ if (client_display == NULL) ++ display = g_strdup (g_getenv ("DISPLAY")); ++ else ++ display = client_display; ++ } else { + display = g_strdup (g_getenv ("WAYLAND_DISPLAY")); + if (display) + is_wayland = TRUE; +- else ++ else if (client_display == NULL) + display = g_strdup (g_getenv ("DISPLAY")); ++ else ++ display = client_display; + } +- else { +- display = g_strdup (_display); +- } +- +- if (is_wayland) { +- displaynumber = display; +- } else if (display) { +- p = display; +- hostname = display; +- for (; *p != ':' && *p != '\0'; p++); ++ } ++ else { ++ display = g_strdup (_display); ++ } + +- if (*p == ':') { +- *p = '\0'; +- p++; +- displaynumber = p; +- } ++ if (is_wayland) { ++ displaynumber = display; ++ } else if (display) { ++ p = display; ++ hostname = display; ++ for (; *p != ':' && *p != '\0'; p++); ++ ++ if (*p == ':') { ++ *p = '\0'; ++ p++; ++ displaynumber = p; ++ } + +- for (; *p != '.' && *p != '\0'; p++); ++ for (; *p != '.' && *p != '\0'; p++); + +- if (*p == '.') { +- *p = '\0'; +- p++; +- /* Do not use screennumber +- screennumber = p; */ +- } ++ if (*p == '.') { ++ *p = '\0'; ++ p++; ++ /* Do not use screennumber ++ screennumber = p; */ + } ++ } + +- if (hostname[0] == '\0') +- hostname = "unix"; ++ if (hostname[0] == '\0') ++ hostname = "unix"; ++ ++ p = g_strdup_printf ("%s-%s-%s", ++ ibus_get_local_machine_id (), ++ hostname, ++ displaynumber); ++ /* Qt5 IBus module has a hard-coded path and we cannot change this ++ * for the back compatibility. ++ * XDG_RUNTIME_DIR is not useful because it's generated by ++ * login but not `su` command and ibus-daemon can be run with `su` ++ * and we may change the path to XDG_CACHE_HOME in the future. ++ */ ++ path = g_build_filename (g_get_user_config_dir (), ++ "ibus", ++ "bus", ++ p, ++ NULL); ++ g_free (p); ++ g_free (display); + +- p = g_strdup_printf ("%s-%s-%s", +- ibus_get_local_machine_id (), +- hostname, +- displaynumber); +- /* Qt5 IBus module has a hard-coded path and we cannot change this +- * for the back compatibility. +- * XDG_RUNTIME_DIR is not useful because it's generated by +- * login but not `su` command and ibus-daemon can be run with `su` +- * and we may change the path to XDG_CACHE_HOME in the future. +- */ +- path = g_build_filename (g_get_user_config_dir (), +- "ibus", +- "bus", +- p, +- NULL); +- g_free (p); +- g_free (display); +- } + return path; + } + +@@ -243,14 +296,42 @@ + return address; + } + ++static void ibus_write_address_internal (const gchar *address, const gchar *socket_path); ++ + void + ibus_write_address (const gchar *address) + { ++ ++ ++ const gchar *socket_path; ++ const gchar *socket_path_compat; ++ ++ socket_path = ibus_get_socket_path (); ++ ibus_write_address_internal (address, socket_path); ++ ++ if (g_getenv ("WAYLAND_DISPLAY") != NULL) { ++ socket_path_compat = ibus_get_socket_path_x11_compat (); ++ ibus_write_address_internal (address, socket_path_compat); ++ ++ if (g_getenv ("GNOME_SETUP_DISPLAY") != NULL && ++ strcmp (g_getenv ("GNOME_SETUP_DISPLAY"), g_getenv ("DISPLAY")) == 0) { ++ /* Running from gnome-shell with the setup display; write the socket +++ * address to an additional path for X11 clients */ ++ socket_path_compat = ibus_get_socket_path_gnome_xwayland_compat (); ++ if (socket_path_compat != NULL) ++ ibus_write_address_internal (address, socket_path_compat); ++ } ++ } ++} ++ ++static void ++ibus_write_address_internal (const gchar *address, const gchar *socket_path) ++{ + FILE *pf; + gchar *path; + g_return_if_fail (address != NULL); + +- path = g_path_get_dirname (ibus_get_socket_path ()); ++ path = g_path_get_dirname (socket_path); + errno = 0; + if (g_mkdir_with_parents (path, 0700)) { + g_warning ("Failed to mkdir %s: %s", path, g_strerror (errno)); +@@ -260,11 +341,11 @@ + g_free (path); + + errno = 0; +- if (g_unlink (ibus_get_socket_path ())) { ++ if (g_unlink (socket_path)) { + g_warning ("Failed to unlink %s: %s", +- ibus_get_socket_path (), g_strerror (errno)); ++ socket_path, g_strerror (errno)); + } +- pf = fopen (ibus_get_socket_path (), "w"); ++ pf = fopen (socket_path, "w"); + g_return_if_fail (pf != NULL); + + fprintf (pf, diff --git a/ibus-ui-gtk3-restart-via-systemd.patch b/ibus-ui-gtk3-restart-via-systemd.patch new file mode 100644 index 0000000..b0542a2 --- /dev/null +++ b/ibus-ui-gtk3-restart-via-systemd.patch @@ -0,0 +1,158 @@ +diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala +index 452b14c8..81c246a2 100644 +--- a/ui/gtk3/panel.vala ++++ b/ui/gtk3/panel.vala +@@ -1292,7 +1292,7 @@ class Panel : IBus.PanelService { + m_sys_menu.append(new Gtk.SeparatorMenuItem()); + + item = new Gtk.MenuItem.with_label(_("Restart")); +- item.activate.connect((i) => m_bus.exit(true)); ++ item.activate.connect((i) => restart_daemon()); + m_sys_menu.append(item); + + item = new Gtk.MenuItem.with_label(_("Quit")); +@@ -1305,6 +1305,144 @@ class Panel : IBus.PanelService { + return m_sys_menu; + } + ++ private const string systemd_service_file = "org.freedesktop.IBus.session.generic.service"; ++ ++ GLib.DBusConnection? get_session_bus() { ++ try { ++ return GLib.Bus.get_sync (GLib.BusType.SESSION, null); ++ } catch (GLib.IOError e) { ++ debug("%s\n", e.message); ++ } ++ return null; ++ } ++ ++ string? ++ get_ibus_systemd_object_path(GLib.DBusConnection connection) { ++ string object_path = null; ++ assert(systemd_service_file != null); ++ try { ++ var variant = connection.call_sync ( ++ "org.freedesktop.systemd1", ++ "/org/freedesktop/systemd1", ++ "org.freedesktop.systemd1.Manager", ++ "GetUnit", ++ new GLib.Variant("(s)", systemd_service_file), ++ new GLib.VariantType("(o)"), ++ GLib.DBusCallFlags.NONE, ++ -1, ++ null); ++ variant.get("(o)", ref object_path); ++ debug("Succeed to get an object path \"%s\" for IBus " + ++ "systemd service file \"%s\".\n", ++ object_path, systemd_service_file); ++ return object_path; ++ } catch (GLib.Error e) { ++ debug("IBus systemd service file \"%s\" is not installed " + ++ "in your system: %s\n", ++ systemd_service_file, e.message); ++ } ++ return null; ++ } ++ ++ bool ++ is_running_daemon_via_systemd(GLib.DBusConnection connection, ++ string object_path) { ++ string? state = null; ++ try { ++ while (true) { ++ var variant = connection.call_sync ( ++ "org.freedesktop.systemd1", ++ object_path, ++ "org.freedesktop.DBus.Properties", ++ "Get", ++ new GLib.Variant("(ss)", ++ "org.freedesktop.systemd1.Unit", ++ "ActiveState"), ++ new GLib.VariantType("(v)"), ++ GLib.DBusCallFlags.NONE, ++ -1, ++ null); ++ GLib.Variant child = null; ++ variant.get("(v)", ref child); ++ state = child.dup_string(); ++ debug("systemd state is \"%s\" for an object " + ++ "path \"%s\".\n", state, object_path); ++ if (state != "activating") ++ break; ++ Posix.sleep(1); ++ } ++ } catch (GLib.Error e) { ++ debug("%s\n", e.message); ++ return false; ++ } ++ if (state == "active") ++ return true; ++ return false; ++ } ++ ++ bool ++ start_daemon_via_systemd(GLib.DBusConnection connection, ++ bool restart) { ++ string object_path = null; ++ string method = "StartUnit"; ++ assert(systemd_service_file != null); ++ if (restart) ++ method = "RestartUnit"; ++ try { ++ var variant = connection.call_sync ( ++ "org.freedesktop.systemd1", ++ "/org/freedesktop/systemd1", ++ "org.freedesktop.systemd1.Manager", ++ method, ++ new GLib.Variant("(ss)", systemd_service_file, "fail"), ++ new GLib.VariantType("(o)"), ++ GLib.DBusCallFlags.NONE, ++ -1, ++ null); ++ variant.get("(o)", ref object_path); ++ debug("Succeed to restart IBus daemon via IBus systemd " + ++ "service file \"%s\": \"%s\"\n", ++ systemd_service_file, object_path); ++ return true; ++ } catch (GLib.Error e) { ++ debug("Failed to %s IBus daemon via IBus systemd " + ++ "service file \"%s\": %s\n", ++ restart ? "restart" : "start", ++ systemd_service_file, e.message); ++ } ++ return false; ++ } ++ ++ private void restart_daemon() { ++ do { ++ GLib.DBusConnection? connection = get_session_bus(); ++ if (connection == null) ++ break; ++ var object_path = get_ibus_systemd_object_path(connection); ++ if (object_path == null) ++ break; ++ if (is_running_daemon_via_systemd(connection, ++ object_path)) { ++ var result = start_daemon_via_systemd(connection, true); ++ if (!result) { ++ var dialog = new Gtk.MessageDialog( ++ null, ++ Gtk.DialogFlags.DESTROY_WITH_PARENT, ++ Gtk.MessageType.ERROR, ++ Gtk.ButtonsType.CLOSE, ++ "Failed to restart IBus daemon via IBus systemd"); ++ dialog.response.connect((id) => { ++ dialog.destroy(); ++ }); ++ dialog.show_all(); ++ } ++ } ++ return; ++ } while (false); ++ // ibus-daemon is not launched via systemd ++ m_bus.exit(true); ++ } ++ + private Gtk.Menu create_activate_menu() { + m_ime_menu = new Gtk.Menu(); + diff --git a/ibus-xim-fix-re-focus-after-lock.patch b/ibus-xim-fix-re-focus-after-lock.patch new file mode 100644 index 0000000..550fd37 --- /dev/null +++ b/ibus-xim-fix-re-focus-after-lock.patch @@ -0,0 +1,16 @@ +--- + client/x11/main.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/client/x11/main.c ++++ b/client/x11/main.c +@@ -421,6 +421,9 @@ xim_set_ic_focus (XIMS xims, IMChangeFoc + GINT_TO_POINTER ((gint) call_data->icid)); + g_return_val_if_fail (x11ic != NULL, 0); + ++ /* make sure that focus has been already out */ ++ ibus_input_context_focus_out (x11ic->context); ++ + ibus_input_context_focus_in (x11ic->context); + _xim_set_cursor_location (x11ic); + diff --git a/ibus.changes b/ibus.changes new file mode 100644 index 0000000..2bbe185 --- /dev/null +++ b/ibus.changes @@ -0,0 +1,1402 @@ +------------------------------------------------------------------- +Fri Mar 31 14:15:38 UTC 2023 - Andreas Schneider + +- Fix key typing order + * This prevents that keys get stuck in games with wine/proton (steam) + * Added ibus-fix-key-release.patch + +------------------------------------------------------------------- +Thu Mar 9 07:47:01 UTC 2023 - Avinesh Kumar + +- Update version to 1.5.28 + * Implement new process_key_event for ibus-x11 + * Convert internal EN compose table to GResource + * Enhance surrounding text + * Enhance CI + * Update ibusunicodegen.h with Unicode 15.0.0 + * Update simple.xml with xkeyboard-config 2.38-1 + * Fix SEGVs + +------------------------------------------------------------------- +Fri Nov 18 13:48:57 UTC 2022 - Fuminobu Takeyama + +- Switch to use systemd service file to start ibus daemon + * Fix boo#1201421 + * Add ibus-ui-gtk3-restart-via-systemd.patch + * Enable ibus-autostart for xdg-autostart-generator + +------------------------------------------------------------------- +Mon Aug 29 15:18:08 UTC 2022 - Fuminobu Takeyama + +- Do not run ibus-autostart with xdg-autostart-generator (KDE etc.) + * A workaround for boo#1202841 + * Please use org.freedesktop.IBus.session.generic.service instead + (See boo#1201421) + +------------------------------------------------------------------- +Sat Aug 27 03:24:19 UTC 2022 - Fuminobu Takeyama - 1.5.27 + +- Upstream update to 1.5.27 + * Disable XKB engines in Plasma Wayland + * ibusimcontext keycode - 8 for gtk3 keycode generation + * client/gtk2: Revert CCedilla change for pt-BR + * Add IBUS_CAP_OSK to IBusCapabilite + * Enable ibus restart in GNOME desktop + * Add ibus im-module command + * Implement new process_key_event for GTK4 + * src/ibusengine: Add focus_in_id()/focus_out_id() class methods + * Delete xkb:latam:: in denylist.txt + * Enhance Xutf8TextListToTextProperty + * Revert Emoji shoftcut key to Super-space + * Update simple.xml with xkeyboard-config 2.36 + * Fix refcounting issues + * Drop ibus-fix-refcounting-issues.patch + * Fix bashisms in org.freedesktop.IBus.session.GNOME.service + * Update xkb-latin-layouts in gschema + * Use our own prefix to look up systemd user services dir + * Add functionality to change IBus panel themes with available GTK themes + * Update translation +- Refresh im-engines-precede-xkb.patch +- Add pkgconfig(libnotify) for the GTK4 flavor + +------------------------------------------------------------------- +Mon Aug 22 13:37:53 UTC 2022 - Fuminobu Takeyama + +- Fix ibus-setup to support python3 (boo#1202063) + * Update setup-switch-im.patch +- Remove X-GNOME-* from ibus-autostart.desktop + (boo#1201421, boo#1201728) + * ibus-autostart still does not work with + systemd-xdg-autostart-generator + +------------------------------------------------------------------- +Tue Apr 19 03:36:44 UTC 2022 - Yifan Jiang + +- Add patch ibus-fix-refcounting-issues.patch: + + This addresses the possible GLib warnings, fixes the possible + double unrefs happening on IBusText used in signals, and fixes + the missing unrefs on IBusText objects created from static + strings (gh#ibus/ibus#2387, gh#ibus/ibus#2393). + +------------------------------------------------------------------- +Tue Mar 29 13:47:00 UTC 2022 - Fuminobu Takeyama + +- Add install/uninstall scripts for the user service files +- Drop ibus-missing-include.patch + * fix build error under Leap 15.4 + +------------------------------------------------------------------- +Sun Mar 27 04:28:04 UTC 2022 - Hillwood Yang + +- Update version to 1.5.26 + * Enhance compose keys + * Enhance Emoji features + * Implement clear preedit for GTK4 + * Calculate keycode from keysym in GTK3 forward-key-event + * Fix to send char position at update_preedit_text + * Deprecate gettext.bind_textdomain_codeset() since Python 3.8 + * Fix ibus_key_event_from_string for gobject-introspection + * Fix a key event loop with forwarding keys + * Delete gnome-autogen dependency + * Change XKB layout string color in panel + * Add IBUS_INPUT_HINT_PRIVATE for browser private mode + * mkdir socket dirs instead of socket paths + * Add org.freedesktop.IBus.session.generic.service + * Check XDG_SESSION_DESKTOP for Plasma desktop + * Update simple.xml with xkeyboard-config 2.35.1 + * Update ibusunicodegen.h with unicode-ucd 14.0.0 + * Enhance CI + * Fix typos + * Fix wrong cursor location in gtk3 apps + * Update URLS + * invalidate cache based on symlink mtime too + * Fix unref problems with floating references + * Update man page for Emoji shortcut key + * Add systemd unit file + * Fix forward key keycode for GTK4 +- Drop ibus-fix-wrong-cursor-location.patch, merged by upstream + +------------------------------------------------------------------- +Wed Jan 5 11:56:17 UTC 2022 - Dominique Leuenberger + +- Do not introduce ibus-gtk4-32bit unless there will be demand for + it: drop its definition from baselibs.conf. + +------------------------------------------------------------------- +Tue Dec 21 14:51:48 UTC 2021 - Dominique Leuenberger + +- Fix name of gtk4 flavor generated packages (was ibus-gtk4-gtk4). + +------------------------------------------------------------------- +Thu Dec 16 11:25:07 UTC 2021 - Dominique Leuenberger + +- Split build of gtk4 module into an own flavor, allowing us to + break a build cycle. + +------------------------------------------------------------------- +Sun Oct 3 13:51:18 UTC 2021 - Fuminobu Takeyama + +- Enable GTK 4 IM Module for Leap 15.4 and Tumbleweed +- Remove ibus-python-install-dir.patch + * Not used for build anymore + +------------------------------------------------------------------- +Wed Sep 8 13:04:55 UTC 2021 - Predrag Ivanović + +- Refresh ibus-socket-name-compatibility.patch +- Add ibus-missing-include.patch to fix build on Leap +- Add ibus-fix-wrong-cursor-location.patch + (based on https://github.com/ibus/ibus/commit/936a0e76df79d92a8bdc03e9205330fb84a2083e.patch) + (gh#ibus/ibus#2337) +- Drop ibus-python-install-dir.patch + Two reasons: it's for, disabled in .spec, python2, and patch forces + the re-generation of configure, which requires aclocal-1.16, + unavailable on Leap-15.3, and that breaks the build. + +------------------------------------------------------------------- +Mon Sep 6 13:36:21 UTC 2021 - Hillwood Yang + +- Update version to 1.5.25 + * src/tests: Run gnome-session with no-overview mode + * client/gtk2: Implement ibus_im_context_set_surrounding_with_selection + * src/ibuscomposetable: Do not include the same compose file + * src/ibusenginesimple: Multi_key to 0xB7 + * src/ibusenginesimple: Make Compose preedit less intrusive + * Change default Emoji shortcut key + * setup: Enhance engine search function + * client/gtk2/ibusimcontext: Enable sync process in GTK4 + * engine: Update simple.xml with xkeyboard-config 2.33 + * src/ibuscomposetable: Add support for the include directive (lf-) + * src/ibuscomposetable: Fix a buffer overflow in compose handling (lf-) + * client/x11: Add support for XFixes ClientDisconnectMode (Olivier Fourdan) + * setup: Start ibus-daemon with the --daemonize option (Gunnar Hjalmarsson) + * src: Fix a typo in ibusenginesimple.h (user202729) + * Update translations + +------------------------------------------------------------------- +Tue Jul 20 06:28:57 UTC 2021 - Dominique Leuenberger + +- Own /usr/share/GConf and /usr/share/GConf/gsettings: the time + has come where the migration code is drying out and we can't + expect the deps to just be in the buildroot (but it still works). + +------------------------------------------------------------------- +Wed Jun 30 05:36:01 UTC 2021 - Hillwood Yang + +- Rollback ibus-socket-name-compatibility.patch for Leap 15. Qt5 does + not be updated to the new version or patch for ibus on Leap 15. + It still needs this patch on leap 15 (boo#1187202). + +------------------------------------------------------------------- +Mon Feb 22 01:50:38 UTC 2021 - Fuminobu Takeyama - 1.5.24 + +- Upstream update to 1.5.24 + * Add GTK4 IM module (currently disabled for openSUSE) + * Search engine name directly + * Update IBusInputPurpose and IBusInputHints in ibustypes.h + * Warn deprecated IBus XKB engines /w dialog + - Workaround for boo#1177545 + * Update simple.xml + * Fix arguments in GLib.DBusSignalCallback for Vala 0.50 + * Fix to build emoji-*.dict in CLDR 38 + * Fix build environments + * Hide IBus Preferences from AppStream +- Drop vala-0.50.patch, merged by upstream +- Remove old "Obsoletes" for ibus-gnome-shell and libibus-1_0-0 + +------------------------------------------------------------------- +Mon Feb 8 14:37:27 UTC 2021 - Fuminobu Takeyama + +- Fix the invalid desktop file for auto start (boo#1178447) +- Fix xim.d/ibus so that a Plasma session can use XDG auto start + +------------------------------------------------------------------- +Mon Feb 1 15:25:13 UTC 2021 - Bernhard Wiedemann + +- Do not build in parallel for reproducible build results (boo#1102408) + +------------------------------------------------------------------- +Mon Oct 26 08:18:51 UTC 2020 - Callum Farmer + +- Add vala-0.50.patch: Fix build with vala 0.50 (gh#ibus/ibus#2265) + +------------------------------------------------------------------- +Wed Sep 30 06:02:24 UTC 2020 - Hillwood Yang + +- Update version to 1.5.23 + * Generate simple.xml with denylist 6042974 508527d 37db75b 6879879 59b902a + 568d58d 6ed34f3 5959d6f 5d67a28 394d9a8 ed7bc8d e938846 3aa670e 0d90da4 + e4dd6d1 + * Accept xdigits only for Unicode typing a440942 + * Update emoji-parser with CLDR emoji annotation release-31-0-1 9a9f828 + * Update ibusunicodegen.h with unicode-ucd 13.0.0 e10fc89 + * Delete deprecated ENABLE_APPINDICATOR_ENGINE_ICON check aa3a9f0 + * Fix SEGV 02105c4 f591381 + * Fix some errors in ibus-desktop-testing-runner 7b0d091 8da0167 + * Refactor source files 0b9d936 0ad5e9a + * Fix string formats in translatable strings 7caead1 f8c468a ce865f6 + * Use WAYLAND_DISPLAY on Wayland sessions to make up IBus socket name (Carlos + Garnacho) 8ce2520 + * Skip parsing of compose sequence with invalid keysyms (Neil Shepperd) + 0da3cec + * Tell Pango about the engine language in the candidate panel (Aaron Muir + Hamilton) 3f098dc 79a09f1 + * Fix for several error spotted by static analyzer (ntfs.hard) 00adea6 + * Remove glib_check_version() in gtk immodule (Changwoo Ryu) 5765bfd + * Build the Emoji dictionaries in parallel (Changwoo Ryu) 59d0de4 + * Update translation +- Drop 0001-Replace-the-Qt-check-for-appindicator-engine-icon-wi.patch, + ibus-use-wayland-display-for-socket-name.patch, + ibus-socket-name-compatibility.patch. Merged by upstream + +------------------------------------------------------------------- +Thu Sep 24 07:01:32 UTC 2020 - Cliff Zhao + +- Update ibus.spec: Drop the is_opensuse macro to eliminate the + difference between SLE-15 and openSUSE-Leap (jsc#SLE-11653). + +------------------------------------------------------------------- +Sat Sep 19 17:35:46 UTC 2020 - Callum Farmer + +- Move xim.d files to /usr/etc when available, which is + currently Tumbleweed only (boo#1176431) + +------------------------------------------------------------------- +Tue May 12 07:32:41 UTC 2020 - QK ZHU + +- Add ibus-socket-name-compatibility.patch: Compatibility for + ibus-use-wayland-display-for-socket-name.patch. This fixes Qt + clients breakage in Wayland (bsc#1171442, gh#ibus/ibus#2195). + +------------------------------------------------------------------- +Mon May 11 08:23:08 UTC 2020 - QK ZHU + +- Add ibus-use-wayland-display-for-socket-name.patch: + Use WAYLAND_DISPLAY on Wayland sessions to make up IBus socket name + (bsc#1171442, gh#ibus/ibus#2195). + +------------------------------------------------------------------- +Wed Apr 15 06:18:12 UTC 2020 - Cliff Zhao + +- Update ibus.spec: Drop the is_opensuse macro to eliminate the + difference between SLE-15 and openSUSE-Leap (jsc#SLE-11652). + +------------------------------------------------------------------- +Wed Mar 11 10:56:35 UTC 2020 - Antonio Larrosa + +- Enable wayland and emoji features in SLE 15 SP2 (boo#1165844, + SLE-11652) +- Remove the with_kde option in the spec file and add a patch + to remove an unneeded qt5 dependency + * 0001-Replace-the-Qt-check-for-appindicator-engine-icon-wi.patch + +------------------------------------------------------------------- +Mon Mar 9 11:42:17 UTC 2020 - Andreas Schwab + +- Enable emoji also on ppc + +------------------------------------------------------------------- +Sat Feb 29 13:17:53 UTC 2020 - Hillwood Yang + +- Enable emoji support on armv6l and riscv64, nodejs-emojione is no longer + BuildRequires +- Remove invalid build options +- cleanup spec + +------------------------------------------------------------------- +Mon Feb 24 14:27:11 UTC 2020 - Fuminobu Takeyama + +- Fix dependency between ibus and ibus-dict-emoji + * Keep ibus and ibus-dict-emoji from the same source + * Add Conflict to remove old ibus containing emoji dictionary + files + +------------------------------------------------------------------- +Sat Feb 22 12:30:37 UTC 2020 - Hillwood Yang + +- Update version to 1.5.22 + * GDBusAuthObserver security fix, drop + ibus-CVE-2019-14822-GDBusServer-peer-authorization.patch + * Use XDG_RUNTIME_DIR for Unix socket directory + * Hangul button press handling + * Fix deprecated APIs + * Bug fixes + * Fix boo#1149065 + * Fix restart crash with inotify read() (Robert Hoffmann) + * Make session file header comment more clear (Jason) + * Amend typos (Jason) + * Add NotShowIn and Keywords keys to the desktop entry (Changwoo Ryu) + * Handle small final sigma in ibus_keyval_convert_case (Alex Henrie) + * Update translations. +- Add ibus-fix-Signal-does-not-exist.patch. Fix build on Leap 15.1 and below + +------------------------------------------------------------------- +Wed Feb 19 14:57:10 UTC 2020 - Fuminobu Takeyama + +- Split ibus-dict-emoji so that KDE Plasma can use IBus's emoji + dictionaries without IBus daemon (boo#1161584) + +------------------------------------------------------------------- +Tue Feb 4 22:02:07 UTC 2020 - Bjørn Lie + +- No longer recommend -lang: supplements are in use. + +------------------------------------------------------------------- +Sat Jan 11 05:14:20 UTC 2020 - Fuminobu Takeyama + +- Drop ibus-delete-weak-pointer-for-vala-0.43.4.patch + * which cannot be applied to 1.5.21 + +------------------------------------------------------------------- +Wed Dec 18 07:49:54 UTC 2019 - Cliff Zhao + +- Add ibus-delete-weak-pointer-for-vala-0.43.4.patch: + Backport this fix from upstream, To make ibus-1.5.19 can success + build with vala-0.43.4 and later editions(bnc#1159079). + +------------------------------------------------------------------- +Fri Sep 20 05:31:52 UTC 2019 - Cliff Zhao + +- Update hide-setup-menu.patch: make it can be compile in SLE + (openSUSE-Leap 15). + +------------------------------------------------------------------- +Tue Sep 17 21:51:08 UTC 2019 - Bjørn Lie + +- Add ibus-CVE-2019-14822-GDBusServer-peer-authorization.patch: + bus: Implement GDBusAuthObserver callback, fix CVE-2019-14822. + +------------------------------------------------------------------- +Thu Sep 5 13:17:58 UTC 2019 - Fuminobu Takeyama + +- Apply the change on Jun. 22 again, reverted by the previous + change +- Stop exporting OOO_FORCE_DESKTOP (boo#1042136) + * KDE4 LibreOffice VCL plugin was removed from upstream + * New KDE5/Qt5 VCL plugin supporting Qt IM Module will be + available + * Note only LibreOffice KDE5/Qt5 >= 6.3 supports Qt IM module + - For older version, please export OOO_FORCE_DESKTOP=gnome + in ~/.profile + +------------------------------------------------------------------- +Thu Aug 29 16:22:00 UTC 2019 - Fuminobu Takeyama + +- Upstream update to 1.5.21 + * Enable to run ibus-setup with a different python + * Update ibusunicodegen.h for Unicode UCD 12.0 + * Add ibus.its for IME's component files + * Make ISO 639 language names with title + * Keep preedit cursor_pos and visible in clearing preedit text + * Support long sequences and multiple output characters for + compose table + - fix boo#1138123 + * Exit ibus-daemon with parent's death + * Update Wayland input-method protocol to unstable v1 + * Indistinguishable address of ibus-daemon + * Update LOCALES_STRING + * Fix typos +- Drop ibus-fix-check-abs-icon-path-support.patch + * not necessary anymore since the current Qt is enough new + +------------------------------------------------------------------- +Sat Jun 22 13:13:33 UTC 2019 - Fuminobu Takeyama + +- Stop exporting OOO_FORCE_DESKTOP (boo#1042136) + * KDE4 LibreOffice VCL plugin was removed from upstream + * New KDE5/Qt5 VCL plugin supporting Qt IM Module will be + available + +------------------------------------------------------------------- +Wed May 8 09:40:05 UTC 2019 - Dominique Leuenberger + +- Move RPM macros to %_rpmmacrodir. + +------------------------------------------------------------------- +Mon Mar 4 15:48:52 UTC 2019 - Fuminobu Takeyama + +- Fix boo#1127711 + * Remove nodejs-emojione form BuildRequires + +------------------------------------------------------------------- +Sat Mar 2 07:19:12 UTC 2019 - Fuminobu Takeyama + +- Upstream update to 1.5.20 + * Support Shift-Space to insert a Space on Emojier preedit + * Do not add emojis in compose category to emoji variants + * Implement mouse click with Hangul in ibus side + * Delete Gconf dependencies and migrate intool to gettext + * Do not delete IBUS_CAP_SURROUNDING_TEXT + * Show compose preedit with custom compose file + * Fix Atom and Slack for Flatpak + * Delete Super-space notification + * Use ISO 639-3 to have names for more languages + * introspection: Tell the GI scanner to include the C headers + * Add Uzbek layouts + * Allow using non-abstract UNIX domain sockets + * Fix minor build problems, bugs, and typos + +------------------------------------------------------------------- +Mon Feb 25 15:33:01 UTC 2019 - ftake@geeko.jp + +- Fix boo#1126011: fix unexpected LibreOffice's dependency on IBus + * Remove "Supplements" for libreoffice-gnome + +------------------------------------------------------------------- +Tue Sep 18 09:04:44 UTC 2018 - schwab@suse.de + +- Disable emoji support on armv6l, ppc and riscv64, which have no nodejs + support + +------------------------------------------------------------------- +Tue Sep 4 15:37:13 UTC 2018 - Fuminobu Takeyama + +- Upstream update to 1.5.19 + * IBUS_DISCARD_PASSWORD variable for the workaround of the + password popup problem in Firefox and Chrome under GNOME X11 + * Emoji feature improvements: + Move input focus on Emojier to engines' preedit + Show previous emojis with "history" annotation + Add num pad Enter, Down, Up, Left, Right on Emojier + Fix SEGV in IBusEngine if no emoji shortcut keyis + * Compose key feature: + Enable preedit for compose keys + * Bug fixes and code improvements +- Drop ibus-force-python3.patch + * merged by upstream +- Remove ibus-python3 + * Upstream will not maintain it for Python 3 anymore + * Drop ibus-python3-migration.patch + +------------------------------------------------------------------- +Fri Jul 20 15:40:24 UTC 2018 - tchvatal@suse.com + +- Do not hardcode python in 3.6 version, they change so use wildcards + +------------------------------------------------------------------- +Fri Jun 1 21:47:54 UTC 2018 - bjorn.lie@gmail.com + +- Replace python3-gobject2-devel and python3-gobject2 with + python3-gobject-devel and python3-gobject BuildRequires and + Requires. +- Drop gconf2-devel BuildRequires: No longer needed, nor used. + +------------------------------------------------------------------- +Fri May 18 07:33:49 UTC 2018 - jengelh@inai.de + +- Trim filler wording from descriptions. +- Update Summaries and RPM groups. + +------------------------------------------------------------------- +Thu Apr 19 13:57:45 UTC 2018 - hillwood@opensuse.org + +- Fix filelist for SLE. + +------------------------------------------------------------------- +Tue Mar 6 06:32:14 UTC 2018 - hillwood@opensuse.org + +- Update version to 1.5.18 + * tools: Do not change keymaps with 'use-system-keyboard-layout' + * src: Fix GVariant leaks (Carlos Garnacho) + * src: Added some error handlings from a code review + * src: Add libgobject.so to LDADD for Debian libtool (Danny) + * src: Reintroduce the hex mode keybind with an environment variable (Aaron Muir Hamilton) + * ui/gtk3: Translate input method name in ibus (Peng Wu) + * Added DBus filtering against malware + * Implement Unicode choice on Emojier + * Implement ibus-extension-gtk3 for the global keybinding + * Disable panel extension for 'gdm' and 'liveuser' user + * ui/gtk3: Set title string in gnome-shell + * Add ISSUE_TEMPLATE + * Updated translations + +------------------------------------------------------------------- +Thu Jan 25 06:27:27 UTC 2018 - qzhao@suse.com + +- Change xim.d-ibus-121: Unset LC_CTYPE to make LANG variable + can change system locale successful(boo#1076854). + +------------------------------------------------------------------- +Mon Jan 8 11:43:48 UTC 2018 - tchvatal@suse.com + +- Do not condition sources they all need to be present in src rpm +- Add conditionals for python2 and python3 +- Use full url for github downloads instead of handmade tarball +- Use make_install macro +- Apply py3 enablement patches everywhere, no effect on py2 code +- Drop python3 split spec file as it is not needed and use only + python3 + * As there are no dependent packages on python-ibus directly + people should repoint their scripts to the python3 variant + * Makefiles do not allow building both at once so stick only + with py3 as we are disabling python2 slowly anyway +- Drop 12.2 KDE icons as the codestreams are long out of support +- Drop the kde4 icons too as we are plasma5 based now and enable + appindicator integration for plasma5 conditionaly under KDE + condition + +------------------------------------------------------------------- +Tue Dec 19 14:50:21 UTC 2017 - ftake@geeko.jp + +- Fix boo#1073524: IBus does not work on Qt5 applicatin under + Qt5 only environment + * do not set QT_IM_MODULE=xim for Qt5 applications + * use QT4_IM_MODULE for Qt4 applications + +------------------------------------------------------------------- +Sun Nov 19 13:56:06 UTC 2017 - hillwood@opensuse.org + +- Enable emoji support for openSUSE. +- Use %fdupes in python3-ibus. + +------------------------------------------------------------------- +Sat Nov 4 08:34:08 UTC 2017 - hillwood@opensuse.org + +- Enable python3 build + +------------------------------------------------------------------- +Sat Oct 28 15:05:56 UTC 2017 - ftake@geeko.jp + +- Update to 1.5.17 + * ui/gtk3: Emojier supports Ctrl-c,v,x and Ctrl-Shift-c + * Make all emoji dicts for fully qualified + * ui/gtk3: Fix SEGV of Emojier on de_DE.UTF-8 + * ui/gtk3: Do not activate emoji cells on mouse until mouse moves + * ui/gtk3: Fix SEGV of XKeysymToKeycode() on Wayland + * client/gtk2: include the scaling factor in Wayland + * Add IBus portal service to support Flatpack + * ui/gtk3: Switcher should ignore mouse until it moves + * client/gtk2: Do not send key events to GtkIMContextSimple + * ui/gtk3: Fix PropertyPanel position in workarea + * ui/gtk3: Fix to enable menu button on PropertyPanel + * ui/gtk3: Increase timeout of window filter in PropertyPanel + * ui/gtk3: Unset GDK_CORE_DEVICE_EVENTS + * ui/gtk3: Unref Panel and Indicator when double panels run + * engine: Add Malay and Mongolian keymaps + * Update translations + +------------------------------------------------------------------- +Tue Aug 29 12:38:07 UTC 2017 - alarrosa@suse.com + +- Don't build the branding-openSUSE-KDE package on SLE + +------------------------------------------------------------------- +Sun Jul 23 15:14:29 UTC 2017 - ftake@geeko.jp + +- Fix boo#1047912: ibus-setup crashes on Tumbleweed + * fix missing dependency on python?-gobject-Gdk + +------------------------------------------------------------------- +Sat May 27 12:21:30 UTC 2017 - qzhao@suse.com + +- Update ibus.spec: copy auto-start files to SOURCE directory + to enable modifications before compile. +- Add ibus-disable-engines-preload-in-GNOME.patch: Disable load + preload-engines actions in SLE, which is unnecessary for mono IMF + in SLE and may cause CJK user login failed (bsc#1036729). + +------------------------------------------------------------------- +Wed May 24 14:00:34 UTC 2017 - ftake@geeko.jp + +- Update to 1.5.16 + * Implement shortcut keys on emoji dialog + * Move language settings from IBusEmojier to ibus-setup + * Improve `ibus emoji` command to work on Wayland + * Emoji-related improvements + * Add man page of `ibus emoji` command +- Update to 1.5.15 + * Fix memory leaks + * Fix warnings during resizing panel + * Improve emoji lookup window + * Support scrill event in GTK3 candidate panel + * Avoid emoji typing during Unicode typing + * Fix potential buffer overrun in CreateNestedListi() + * Set emoji preview text on font setting + * Add `ibus emoji` command +- Clean up spec file + +------------------------------------------------------------------- +Sun Mar 12 14:41:40 UTC 2017 - dimstar@opensuse.org + +- Drop ibus-vala-0.36.patch: No longer needed, since vala 0.36 + re-introduced the compatibility layer. + +------------------------------------------------------------------- +Wed Mar 1 14:25:29 UTC 2017 - zaitor@opensuse.org + +- Drop ibus-vala-0.18.patch: No longer needed. + +------------------------------------------------------------------- +Wed Mar 1 13:16:08 UTC 2017 - dimstar@opensuse.org + +- Add ibus-vala-0.36.patch: Fix build with vala 0.36, which is + stricter in its binding usage. Patch only respective vala + versions. + +------------------------------------------------------------------- +Wed Dec 28 15:04:47 UTC 2016 - hillwood@opensuse.org + +- Disable emoji dict build. + +------------------------------------------------------------------- +Thu Aug 25 02:40:50 UTC 2016 - hillwood@opensuse.org + +- Update to 1.5.14 + * Don't warn if DISPLAY is not set. + * Install a DBus service file + * configure: don't hardcode pkg-config + * conf/gconf: Fix SEGV in ibus_config_gconf_get_values + * client/gtk2: Fix SEGV with Wayland display + * ui/gtk3: Fix panel CSS format for GTK 3.20 + * engine: Implement Emoji typing with XKB engines + * engine: Add emoji-list.html + * engine: Use annotations/en.xml from unocode.org but not + emoji-list.html + * Fix typo in configure.ac + * tests/ibus-engine-switch: Don't try to remove non-existing GSource + * Fix make dist + * Fix Croatian language code in simple.xml + * Replace deprecated GSimpleAsyncResult with GTask since GLib 2.46 + +------------------------------------------------------------------- +Mon Apr 18 14:40:35 UTC 2016 - ftake@geeko.jp + +- Upstream update to 1.5.13 + * Add SetCursorLocationRelative D-Bus method +- Upstream update to 1.5.12 + * Fix ibus-daemon does not update user cache + * Fix lookup window on a secondary monitor cannot get its correct + size + * Fix default position of property panel under multi monitor + environments + * Change language code from ISO 939-2 to ISO 639-1 + * Fix minor bugs + +------------------------------------------------------------------- +Mon Apr 18 13:51:12 UTC 2016 - ftake@geeko.jp + +- Drop show-input-mode-icon.patch + * this feature has been reimplemented in another approach + +------------------------------------------------------------------- +Wed Apr 13 16:47:52 UTC 2016 - hrvoje.senjan@gmail.com + +- Own all oxygen icon subdirs, starting with KF 5.21.0, oxygen is + no longer installed to the same location + +------------------------------------------------------------------- +Wed Mar 23 10:29:32 UTC 2016 - fcrozat@suse.com + +- Do not apply SLE patches on openSUSE 13.2. +- Drop ibus-adapt-new-vala.patch, not needed after all with vala + 0.32. + +-------------------------------------------------------------------- +Mon Feb 28 17:59:28 CET 2016 - qzhao@suse.com + +- Add ibus-adapt-new-vala.patch: Fix ibus compile error under + new vala compiler in SLE Desktop 12 SP2. + +-------------------------------------------------------------------- +Mon Feb 28 15:57:01 CET 2016 - qzhao@suse.com + +- Update ibus.spec: Add "Conflicts: fcitx" tag in SLE, + This can help to keep old fcitx input-frame for people + who updated from SLE-12-SP0 to SP1, means to avoid the exception + which was brought by FATE#319095. + +------------------------------------------------------------------- +Mon Feb 28 14:57:01 CET 2016 - sbrabec@suse.com + +- Add support for translation-update-upstream (dummy bsc#933411). + +------------------------------------------------------------------- +Mon Feb 28 12:20:10 CET 2016 - qzhao@suse.com + +- Add setup-switch-im.patch: In SLE, if user launch ibus-setup + without ibus service daemon running, it will warn the user and + switch current input-frame to ibus by setting an environment + variable. Note, the setting will make effect the next time this + user login to desktop (bsc#899259). + +------------------------------------------------------------------- +Mon Feb 28 10:30:20 CET 2016 - qzhao@suse.com + +- Add hide-setup-menu.patch: Remove ibus-setup.desktop entry in + SLE from desktop main menu, So it will only be launched from + desktop indicator field now. + This action is for insure ibus-setup runs with ibus-daemon in + background everytime (bsc#899259). + +------------------------------------------------------------------- +Wed Feb 24 11:01:08 CET 2016 - tiwai@suse.de + +- Fix the invocation of ibus service for KDE, etc (boo#968486): + for DEs known to support autostart (KDE, XFCE and LXCE), ibus is + now started via XDG autostart for avoiding the race. This should + fix the missing ibus service. For other DEs, ibus is still + started in xim script, but with a slight (two seconds) delay for + avoiding the race, too. + + Along with the change, INPUT_METHOD environment variable is set + explicitly in xim script at startup; this is referred in XDG + autostart so that it won't be executed when other IM is chosen. + + Last but not least, the explicit dbus-launch invocation is dropped, + as it's known to conflict with DE's own startup of dbus + +------------------------------------------------------------------- +Mon Aug 10 05:03:43 UTC 2015 - ftake@geeko.jp + +- Update to 1.5.11 + * Add Swedish svdvorak layout support + * Improve UI of ibus-setup + * Show property panel at bottom right under KDE + * Enable absolute path to icon for appindicator + * Support showing language icon and a property for Plasma 5 + * Use GTK 3 for xim + * Load locale compose files dynamically + * Enable sync mode for xim + * Support vertical writing +- Enable appindicator status icon for SLE12 and Leap 42.1 + (boo#939506) +- Remove a bashism from /etc/xim.d/ibus (boo#941052) +- Requires newer vala compiler + * Cannot compile with an incompatible return type error + * 13.1 support should be dropped after the cause is confirmed +- Drop appindicator-absolute-icon-path.patch + * Merged by upstream +- Add ibus-fix-check-abs-icon-path-support.patch + * Allows to force absolute path regardless of Qt version +- Refresh show-input-mode-icon.patch + * Do not scale up icon for the new appindicator status icon + +------------------------------------------------------------------- +Sat Mar 28 09:30:59 UTC 2015 - ftake@geeko.jp + +- Fix boo#924696: settings of ibus engines are not saved + * Remove inappropriate %ghost from the dconf files +- Disable appindicator for 13.1 + * It requires Qt 5.3 to show icons specified by absolute path + +------------------------------------------------------------------- +Thu Mar 12 15:27:11 UTC 2015 - ftake@geeko.jp + +- Update to 1.5.10 + * Fix losing focus in/out on Google Chrome + * Fix SEGV of ibus-ui-gtk3 caused by inappropriate 'preload-engines' + * ibus-setup tries C locale to support environment without + en_US.UTF-8 + * Remove "Release" modifier key from ibus-setup + * Show language rather than layout for xkb panel icon + * Track window property offsets correctly + * Add IBus panel icon for Plasma 5 desktop + * Minor bug fixes +- Update show-input-mode-icon.patch + * Support the new panel icon +- Add appindicator-absolute-icon-path.patch + * Show icons installed out of theme directories + +------------------------------------------------------------------- +Sat Jan 24 14:44:45 UTC 2015 - antoine.belvire@laposte.net + +- modify xim.d-ibus-121: remove obsolete 'PATH=$OLD_PATH' which + causes loss of the PATH variable when sourced + +------------------------------------------------------------------- +Sat Nov 22 18:09:38 UTC 2014 - coolo@suse.com + +- disable parallel build for install - not much gain and makes it + less reliable + +------------------------------------------------------------------- +Tue Oct 14 06:07:18 UTC 2014 - hillwood@linuxfans.org + +- Update to 1.5.9 + * Enable preedit color on external preedit window with x11 applications. + * Do not fail ibus-setup when en_US.UTF-8 is not installed. + * Fix compose keys in French layout bepo variant. + +------------------------------------------------------------------- +Mon Oct 13 09:18:34 UTC 2014 - gber@opensuse.org + +- use desktop file categories Settings;DesktopSettings instead of + System + +------------------------------------------------------------------- +Wed Oct 8 14:01:39 UTC 2014 - ftake@geeko.jp + +- Add im-engines-precede-xkb.patch + * allow users to use an IM engine without any operation +- Update the launch script + * remove the obsolete part for SKIM (bnc#860486) + * do not set OOO_FORCE_DESKTOP=gnome + if libreoffice-gnome is not installed (bnc#899045) + +------------------------------------------------------------------- +Mon Sep 8 16:39:26 UTC 2014 - fcrozat@suse.com + +- Do not suggest to install ibus when installing + libreoffice/libreoffice-gnome on SLE12. + +------------------------------------------------------------------- +Fri Sep 5 18:32:14 UTC 2014 - i@marguerite.su + +- properly disable python3 builds: + * ibus itself isn't python3 ready, its python module is totally + not usable under python3. +- move some Obsoletes to the correct sub-package. + +------------------------------------------------------------------- +Sun Aug 31 13:13:17 UTC 2014 - hillwood@linuxfans.org + +- Fix bnc#893271. Keep python-ibus. + +------------------------------------------------------------------- +Sat Aug 30 17:45:15 UTC 2014 - i@marguerite.su + +- Add patch: ibus-python3-migration.patch + * I didn't do the hard "port", just simple 2to3 tasks. + * it'll remove "blockage" or python3-ibus is totally unusable. + +------------------------------------------------------------------- +Tue Aug 26 08:15:16 UTC 2014 - fcrozat@suse.com + +- Do not only requires typelib-1_0-Gtk-3_0 when building with + python3. + +------------------------------------------------------------------- +Fri Aug 22 12:49:54 UTC 2014 - fcrozat@suse.com + +- Update ibus xim script to properly detect GNOME 3.12+ and to use + ibus default configuration on first startup of GNOME (bnc#862589 + internal), with help from Takashi Iwai. + +------------------------------------------------------------------- +Mon Aug 11 15:03:41 CEST 2014 - fcrozat@suse.com + +- Fix default category for ibus-setup.desktop. + +------------------------------------------------------------------- +Tue Aug 5 08:48:21 UTC 2014 - fcrozat@suse.com + +- Do not build with python3 or wayland on SLE12. +- Fix file list when building with python2. + +------------------------------------------------------------------- +Thu Jul 31 12:07:24 UTC 2014 - ftake@geeko.jp + +- remove patches merged by upstream + * add-libgnomekbd-and-load-preload-engines.patch + * reload-preload-engines-until-users-customize-the-list.patch +- obsoletes python-ibus when packaged for Python 3 + +------------------------------------------------------------------- +Sun Jul 27 15:15:28 UTC 2014 - i@marguerite.su + +- fix hillwood's timestamp in changelog +- add two more macros to macros.ibus + +------------------------------------------------------------------- +Sat Jul 26 18:01:19 UTC 2014 - i@marguerite.su + +- update version 1.5.8 + * Set max-width-chars property in ibus-setup wrapped GtkLabel + * Add German (nodeadkeys) keymap in simple.xml + * Delete Korean keymap + * Let ibus-ui-gtk3 not to show zero-lenght preedit text + * Fix many memory leaks provided by Christophe Fergeau + * Add Polish (qwertz) keymap in simple.xml + * Fix escape key with Ctrl+Shift+U ISO + * Update ibuscomposetable.h for pt-br + * Set up ibus engines when users log into the session for the first time + * Do not sort ibus engines when they are saved by ibus-setup + * Update IBusKeymap jp + * Run xmodmap after run setxkbmap -l layout + * Add ibus reset-config and read-config sub-commands + * Fix ibus-setup SEGV in enginetreeview.py + * Fix deprecated warnings with python3-gobject 3.13.3 + * Export the 'IBUS_SETUP_XID' environment variable for each engine setup + * Fix deprecated gtk3 GtkMisc, GtkAlignment and vala Gdk.X11Display + * Enhance UI to add engines on ibus-setup +- mask add-libgnomekbd-and-load-preload-engines.patch and + reload-preload-engines-until-users-customize-the-list.patch + * upstream may have fixed these issues as these patches are issued + on May 7th. +- use python3 to build ibus, as hillwood switched ibus-table to python3 + * add ibus-force-python3.patch, because ibus will use python3 to build + ibus-setup and bindings only when PYTHON2 variable is empty. And fix + 'print sysconfig.PREFIX' syntax errors in python-config.py. +- add ibus-vala-0.18.patch to fix build for openSUSE 12.3 + +------------------------------------------------------------------- +Sat Jul 26 17:32:07 UTC 2014 - i@marguerite.su + +- clean specfile with service and spec-cleaner + * don't use vague wildcards aggresively in %%files section +- add macros.ibus to ease packaging + +------------------------------------------------------------------- +Thu Jul 26 12:24:17 UTC 2014 - hillwood@linuxfans.org + +- Enable wayland support + +------------------------------------------------------------------- +Thu Jun 5 12:06:53 UTC 2014 - ftake@geeko.jp + +- Update to 1.5.7 + * Add Czech (qwerty) keymap + * Enables to get current input context from panels + * Fix leakage in ibus_get_local_machine_id() + * Do not show Property Panel by default + * Focus-in events do not move Property Panel + if the panel is configured to be always shown + +------------------------------------------------------------------- +Tue May 20 15:28:40 CEST 2014 - tiwai@suse.de + +- Fix the lost XIM input after GNOME screen lock (bnc#874969): + ibus-xim-fix-re-focus-after-lock.patch + +------------------------------------------------------------------- +Wed May 14 08:04:18 UTC 2014 - cxiong@suse.com + +- Let GNOME 3 handles ibus startup&setup. (bnc#873016) + * Changed xim.d-ibus-121. + * Reformatting the latter part of the xim.d-ibus-121. + +------------------------------------------------------------------- +Mon Mar 17 15:37:25 UTC 2014 - ftake@geeko.jp + +- Update to 1.5.6 + * Support python3 (not enabled for this package) + * Fix Property Panel is sometimes not shown when the focus is changed + * Let Property Panel not to follow cursor if it is always shown + * Fix a build error of Gdk.EventKey with vala 0.23.2 + * Use XKB layout strings instead of the ibus-keyboard icon on the panel +- Update reload-preload-engines-until-users-customize-the-list.patch +- Update ibus-python-install-dir.patch + * modify Python 2 path in configure.ac instead of Makefile.am +- Refresh add-libgnomekbd-and-load-preload-engines.patch + +------------------------------------------------------------------- +Mon Mar 17 12:29:40 UTC 2014 - fcrozat@suse.com + +- Clean-up dependencies: add librsvg2 (needed by ibus), dropped + notification-daemon, python-gtk, python-notify (not needed with + switch to pygobject), typelib-1_0-Gtk-2_0, typelib-1_0-Gtk-3_0 + (no need to hardcode, bnc#868657) + +------------------------------------------------------------------- +Fri Feb 14 12:10:13 CET 2014 - tiwai@suse.de + +- Fix *-32bit post and postun calls for gtk-query-immodules-2 on + openSUSE 13.1 and later (bnc#845860) + +------------------------------------------------------------------- +Mon Feb 10 09:48:56 UTC 2014 - fcrozat@suse.com + +- Do not requires gobject-introspection, it is not needed to run + ibus, python-gobject is enough. + +------------------------------------------------------------------- +Mon Jan 27 16:49:27 UTC 2014 - ftake@geeko.jp + +- Update to 1.5.5 + * Add Property Panel showing IME properties + * Add French layout variant “oss” and the Slovak qwerty layout + * Support customizing the look-up-table orientation of ibus-ui-gtk3. + * Update en-us compose table and add locale tables for xkb engines + * Delete the up/down buttons and the message about them on ibus-setup. + * Fix candidate panel placed out of screen + * Remove -Werror in autogen.sh +- Remove Always-save-the-content-type-cache-for-gnome-shell-p.patch + * mergerd by upstream +- Refresh show-input-mode-icon.patch +- Update reload-preload-engines-until-users-customize-the-list.patch + and add-libgnomekbd-and-load-preload-engines.patch + * fix ibus-ui-gtk3 crashes if layout is en_intl (bnc#859354) + +------------------------------------------------------------------- +Mon Nov 25 13:50:12 UTC 2013 - hillwood@linuxfans.org + +- Better way to fix cursor following problem (on_the_spot bug) + under libreoffice-kde4 (bnc#851982). + +------------------------------------------------------------------- +Sat Nov 16 06:57:33 UTC 2013 - jengelh@inai.de + +- Add missing python-gobject dependency (bnc#850792) + +------------------------------------------------------------------- +Thu Oct 31 14:46:37 CET 2013 - tiwai@suse.de + +- Always-save-the-content-type-cache-for-gnome-shell-p.patch: + This is an additional fix patch for ibus to avoid the wrong + IBus.InputPurpose.PASSWORD advertisement, which leads to the + password text appearance on GNOME3 (bnc#847718) + +------------------------------------------------------------------- +Thu Oct 17 07:13:31 UTC 2013 - i@marguerite.su + +- add a branding-openSUSE-KDE subpackage. + * provides kde monochrome icons for 13.1 default KDE theme. +- port fix for bnc#820218 here + * ibus qt tray icon is not in keeping with KDE monochrome icon look. + +------------------------------------------------------------------- +Mon Oct 14 01:22:41 UTC 2013 - hillwood@linuxfans.org + +- Obsoletes libibus-1_0-0 + +------------------------------------------------------------------- +Thu Oct 10 17:50:08 UTC 2013 - ftake@geeko.jp + +- Update show-input-mode-icon.patch + * fix ibus-ui-gtk3 hangs up + * fix icons are cropped on KDE + +------------------------------------------------------------------- +Sun Oct 6 13:43:39 UTC 2013 - ftake@geeko.jp + +- Update to 1.5.4 + * Add "address" command to command line interface + * Support content-type of input context + * Replace ibus-config with gsettings + * Support using a different IM engine state for each window + * Support show-icon-on-systray in ibus-ui-gtk3 + * Fix no output when ibus-daemon is runnin on another display + * Update translations and fix build errors +- Add show-input-mode-icon.patch + * workaround for the current input mode is not shown on DEs + other than GNOME +- Rename and refresh patches + * add-libgnomekbd-and-load-preload-engines.patch + * reload-preload-engines-until-users-customize-the-list.patch +- Fix ibus-lang is not installed +- Fix warning by "touch /etc/dconf/db/ibus" for 12.3 and later + +------------------------------------------------------------------- +Fri Sep 13 13:49:44 UTC 2013 - ftake@geeko.jp + +- Fix dconf schema was not updated for automatic configuration +- Fix 00-upstream-settings was wrongly marked as %config +- Fix /etc/dconf/db/ibus was not owned by package +- Add %if %endif for automatic configuration + +------------------------------------------------------------------- +Thu Sep 12 17:29:24 UTC 2013 - ftake@geeko.jp + +- Add patches to configure ibus automatically according to the + current environment at the first login + * Add reload-preload-engines-until-users-customize-the-list-95fd937e.patch + * Add add-libgnomekbd-and-load-preload-engines-69171c9c.patch +- Enable the surrounding text feature + +------------------------------------------------------------------- +Tue Jul 30 17:19:47 UTC 2013 - ftake@geeko.jp + +- Update to 1.5.3 + * Add embed_preedit_text + * Disable IM on lock screen + * Change defalut triggers key to space + * Add man files + * Delete ibus.desktop + * Add Norwegian keyboard + * Update UI, improve performance, fix build problems + +------------------------------------------------------------------- +Tue Jul 9 14:23:47 UTC 2013 - hillwood@linuxfans.org + +- Fix cursor following problem in KDE4 for libreoffice + +------------------------------------------------------------------- +Thu Jul 4 15:41:12 UTC 2013 - ftake@geeko.jp + +- Merge branches on M17N:Devel and home:dimstar:branches:GNOME:Factory + * Merge changelog and spec written by dimstar@opensuse.org +- Update to 1.5.2 by hillwood@linuxfans.org + * Implement use-system-keyboard-layout + * Fix crash of ibus-setup +- Update to 1.5.1 by hillwood@linuxfans.org + * Add fr(bepo) XKB engine + * Fix crash +- Update to 1.5.0 by douglarek@outlook.com + * Renew IM-switch UI, logic, and shortcut customization + * Integrate XKB keyboard layouts into IME. Now ibus can manage both + IME and XKB layouts seamlessly + * Improve ibus performance by replace some python components with + vala implementations + * Improve gobject-introspection support + * Improve vala language support + * New functions to restrict config signal: ibus_config_watch/unwatch + * Remove gnome-icon-theme-legacy dependency. + * Add version property in IBusEngineDesc. + * Add IBusProperty.symbol for the short label. + * Support dconf 0.13.4 + * Add ibus command line tool + * Improve unit test + * ibus-daemon now monitors .xml files by default + * "make check" does not require "make install" + * Support out-of-tree build + * pygobject override is added to help migrate from the old python binding. + * Many bug fixings. +- Switch to dconf from GConf +- Add python bindings +- Add vala bindings +- Drop obsoleted patches: + * ibus-fix-default-preload-engines.patch + * ibus-fix-docs-build-error.patch + * ibus-fix-tray-icon-on-gnome-3.6.patch + * ibus_indicator-14.patch +- Obsoletes ibus-gnome-shell +- Separate translation files into ibus-lang +- Rename libibus-1_0-0 subpackage to libibus-1_0-5, following + upstreams soname change. +- Clean up spec file + * remove special cases for 11.4 and 12.1 + +------------------------------------------------------------------- +Tue Apr 2 17:49:53 UTC 2013 - ftake@geeko.jp + +- add "Supplements" tag to ibus-gnome-shell + +------------------------------------------------------------------- +Thu Mar 28 18:26:44 UTC 2013 - i@marguerite.su + +- fix a typo in Group +- fix python-bytecode-inconsistent-mtime + +------------------------------------------------------------------- +Thu Mar 28 15:32:19 UTC 2013 - jengelh@inai.de + +- Put gnome-shell integration files into separate package because + these (since openSUSE 12.3) pull in a lot of new unwanted packages + on a GNOME-less system compared to 12.2. (bnc#812298) +- Set versions on BuildRequires according to configure.ac +- Use more robust make install call +- Remove redundant %clean section + +------------------------------------------------------------------- +Sat Feb 16 15:59:12 UTC 2013 - ftake@geeko.jp + +- better solution for bnc#802967 + * add ibus_indicator-14.patch: a shell extension for GNOME 3.6 + * update ibus-fix-tray-icon-on-gnome-3.6.patch + +------------------------------------------------------------------- +Sat Feb 9 03:13:13 UTC 2013 - hillwood@linuxfans.org + +- fix bnc#802967 + * fix ibus's tray icon can't show in gnome-shell 3.6 for openSUSE 12.3, + add ibus-fix-tray-icon-on-gnome-3.6.patch + +------------------------------------------------------------------- +Thu Jan 10 12:50:49 UTC 2013 - ftake@geeko.jp + +- add ibus-fix-docs-build-error.patch: to fix build error + in Factory + +------------------------------------------------------------------- +Wed Oct 17 04:20:14 UTC 2012 - douglarek@outlook.com + +- .spec file optimization + + * remove commented patch lines + * use `make %{?_smp_mflags}` instead of `make %{?jobs:-j%jobs}` + see: http://en.opensuse.org/openSUSE:Specfile_guidelines#Parallel_make + +------------------------------------------------------------------- +Sat Aug 25 12:25:17 UTC 2012 - hillwood@linuxfans.org + +- update to 1.4.2 + Some bug fixings + +------------------------------------------------------------------- +Mon Jun 18 10:59:35 CEST 2012 - tiwai@suse.de + +- Move the strict dependency on libibus-1_0-0 to ibus main package; + otherwise user may get the inconsistent setups + +------------------------------------------------------------------- +Thu May 17 07:11:11 UTC 2012 - swyear@gmail.com + +- remove soft link in RPM_BUILD_ROOT + +------------------------------------------------------------------- +Thu May 17 06:10:46 UTC 2012 - swyear@gmail.com + +- mkdir target directory before link + +------------------------------------------------------------------- +Thu May 17 05:49:31 UTC 2012 - swyear@gmail.com + +- fix build error in Factory: ln should be done in buildroot + +------------------------------------------------------------------- +Wed Mar 7 13:54:43 UTC 2012 - hillwood@linuxfans.org + +- Fix FSF-address warnings in RPMLINT report + +------------------------------------------------------------------- +Wed Mar 07 04:27:57 UTC 2012 - hillwood@linuxfans.org + +- Update to 1.4.1 + * Many bug fixings +- Fix several RPMLINT report warnings + +------------------------------------------------------------------- +Sun Feb 12 17:29:16 UTC 2012 - ftake@geeko.jp + +- Fix problem default preload engines do not work (bnc#746612) +- Fix slow down issue after "source xim.d/ibus" in a SSH session + +------------------------------------------------------------------- +Tue Jan 24 10:12:30 UTC 2012 - vuntz@opensuse.org + +- Split typelib file into typelib-1_0-IBus-1_0 subpackage. +- Add typelib-1_0-IBus-1_0 Requires to devel subpackage. + +------------------------------------------------------------------- +Thu Oct 13 11:42:01 CEST 2011 - tiwai@suse.de + +- Add obsoletes for libibus2-32bit in baselibs.conf + +------------------------------------------------------------------- +Wed Oct 12 12:50:19 UTC 2011 - ftake@geeko.jp + +- update to 1.4.0 + * Status icon for GNOME 3 (bug#723591) + +------------------------------------------------------------------- +Tue Sep 6 17:17:56 UTC 2011 - ftake@geeko.jp + +- Fix xim.d/ibus to launch D-Bus daemon (only for newer D-Bus) + +------------------------------------------------------------------- +Mon Aug 8 16:34:13 CEST 2011 - tiwai@suse.de + +- Fix baselibs.conf to update GTK immodule cache properly for + ibus-gtk-32bit and ibus-gtk3-32bit packages, too +- Clean up spec file + +------------------------------------------------------------------- +Mon Jun 27 14:21:46 CEST 2011 - tiwai@suse.de + +- dropped the dependencies with release number +- simplify for passing gtk3 configure option + +------------------------------------------------------------------- +Sun Jun 19 12:43:54 UTC 2011 - swyear@gmail.com + +- Change files in package, some should move to devel subpackage and libibus package + +------------------------------------------------------------------- +Thu Jun 16 07:37:21 CEST 2011 - tiwai@suse.de + +- Fix xim.d locale directories of ja and ko +- Add xim.d selections for more locales to replace with SCIM + +------------------------------------------------------------------- +Wed Jun 15 11:50:47 CEST 2011 - tiwai@suse.de + +- Add provides tag for supported locales (ja, ko, zh) +- Add proper supplements tags to gtk immodule packages + +------------------------------------------------------------------- +Mon Jun 13 16:15:29 UTC 2011 - swyear@gmail.com + +- Update to ibus 1.3.9 +- Set priority to 40, if we want to use ibus as default input method, + better use a lower priority, so if any other input method framework + installed, system can use other input method instead. +- Update README +- Remove kimpanel script from start up script +- Add gtk3 immodule + +------------------------------------------------------------------- +Wed Mar 9 11:58:08 CET 2011 - tiwai@suse.de + +- Fix post scripts to use new gtk2_immodule_* macros (bnc#678080) + +------------------------------------------------------------------- +Wed Nov 17 08:44:04 UTC 2010 - mxwu@novell.com + +- Upgrade to ibus 1.3.8: + * Fix CPU 100% usage with signal.SIGCHLD + * Destroy existing connection before creating a new + connection, and only create the fake context once. + * Move the candidate window just above the cursor + when the window and a preedit string overlap. + * Enable key snooper by default again + * Always consume the hotkey, even if the hotkey + associated engine already activated. + * Fix race condition in bus_ibus_impl_create_engine() + * Fix a build error of IBus-1.0.gir with gobject-introspection 0.9.6 + * Implement stress tool for ibus. + * Fix a build error with GTK3 gdkkeysyms.h + * Add time info in log message from satorux@chromium.org + * Fix memory leak in ibus_input_context_process_key_event by Fujiwarat + * Fix segv in bus_engine_proxy_process_key_event_reply_cb + * Fix property issue. + * Updated many translations. + +------------------------------------------------------------------- +Tue Jul 13 07:44:40 UTC 2010 - mxwu@novell.com + +- Add ibus-disable-portability-check.patch + * Disable automake's portability check, make OBS happy. + +------------------------------------------------------------------- +Mon Jul 12 08:49:24 UTC 2010 - mxwu@novell.com + +- Upgrade to 1.3.6: + * Support gtk3 + * Support gobject-introspection + * Support vala language + * Fix some bugs + +------------------------------------------------------------------- +Tue May 11 10:00:07 UTC 2010 - mxwu@novell.com + +- Upgrade to 1.3.3: + * Add configure option to disable key snooper in gtk im context + * Fix a crash in ibus-x11 + * Fix a crash in ibus-daemon + * For show language bar option, use {Embedded in menu} to replace {Never}. + * Update some translation files + * Fix crash if ibus loads engine.xml failed + * Fix focus problems + * Does not hard code iso-codes location + * Fix link problem with binutils-gold + * Updated translations + * Optimize database query method for better performance + * Many bug fixing + * use floating IBusObject + * support share one global engine in all applications + * some ui improvements + * many bug fixing + +------------------------------------------------------------------- +Fri Mar 26 17:18:38 CET 2010 - tiwai@suse.de + +- move post scriptlets to install + +------------------------------------------------------------------- +Wed Mar 24 12:35:15 CET 2010 - tiwai@suse.de + +- Split libibus1 subpackage +- Misc clean-ups in spec file, avoid unnecessary workarounds + +------------------------------------------------------------------- +Thu Jan 28 10:36:38 UTC 2010 - mxwu@novell.com + +- Add ibus-python-install-dir.patch + - Fix the installing path on X86_64 + +------------------------------------------------------------------- +Thu Jan 28 07:41:08 UTC 2010 - mxwu@novell.com + +- Initial import + diff --git a/ibus.spec b/ibus.spec new file mode 100644 index 0000000..c1a0fc2 --- /dev/null +++ b/ibus.spec @@ -0,0 +1,483 @@ +# +# spec file +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define flavor @BUILD_FLAVOR@%nil + +%define with_gtk4 0 +%define with_wayland 1 +%define with_emoji 1 + +%if "%{flavor}" == "gtk4" +%define with_gtk4 1 +%define nsuffix _%{flavor} +%endif + +%if ! %{defined _distconfdir} +%define _distconfdir %{_sysconfdir} +%else +%define use_usretc 1 +%endif + +%define _name ibus +Name: %{_name}%{?nsuffix} +Version: 1.5.28 +Release: 0 +Summary: The "Intelligent Input Bus" input method +License: LGPL-2.1-or-later +Group: System/I18n/Chinese +URL: https://github.com/ibus/ +Source: https://github.com/ibus/ibus/releases/download/%{version}/%{_name}-%{version}.tar.gz +Source2: README.SUSE +Source3: xim.ibus.suse.template +Source4: xim.d-ibus-121 +Source7: macros.ibus +Source10: ibus-autostart +Source11: ibus-autostart.desktop +Source12: 20-defaults-openSUSE.conf +Source99: baselibs.conf +# PATFH-FIX-OPENSUSE ibus-xim-fix-re-focus-after-lock.patch bnc#874869 tiwai@suse.de +# Fix lost XIM input after screenlock +Patch4: ibus-xim-fix-re-focus-after-lock.patch +# PATCH-FIX-UPSTREAM ftake@geeko.jp +# Select an IM engine instead of xkb engine at the first login +Patch8: im-engines-precede-xkb.patch +# PATCH-FIX-OPENSUSE ibus-fix-Signal-does-not-exist.patch hillwood@opensuse.org +# panel.vala: The name `Signal' does not exist in the context of `Posix' in Leap 15.1 and below +Patch9: ibus-fix-Signal-does-not-exist.patch +# PATCH-FIX-SLE hide-setup-menu.patch bnc#899259 qzhao@suse.com +# ibus-setup should not launch from main menu. +Patch10: hide-setup-menu.patch +# PATCH-FIX-SLE setup-switch-im.patch bnc#899259 qzhao@suse.com +# switch to ibus when ibus not running. +Patch11: setup-switch-im.patch +# PATCH-FIX-SLE ibus-disable-engines-preload-in-GNOME.patch bnc#1036729 qzhao@suse.com +# Disable ibus engines preload in GNOME for These works are handled by gnome-shell. +Patch12: ibus-disable-engines-preload-in-GNOME.patch +# PATCH-FIX-UPSTREAM ibus-socket-name-compatibility.patch bsc#1171442, gh#ibus/ibus#2195 qkzhu@suse +# Compatibility workaround for ibus-use-wayland-display-for-socket-name.patch +# Qt5 does not be update to the new version and patch for ibus on Leap 15, +# it still needs this patch on leap 15. (boo#1187202) +Patch15: ibus-socket-name-compatibility.patch +# PATCH-FIX-UPSTREAM ibus-ui-gtk3-restart-via-systemd.patch +# Allow ibus-ui-gtk3 to restart ibus-daemon when it is launched by systemd +Patch16: ibus-ui-gtk3-restart-via-systemd.patch +# PATCH-FIX-UPSTREAM ibus-fix-key-release.patch +# Fixes a problem that wine/proton (steam) got a key stuck +Patch17: ibus-fix-key-release.patch +BuildRequires: pkgconfig(iso-codes) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(systemd) +%if ! 0%{?with_gtk4} +BuildRequires: fdupes +BuildRequires: gettext-devel +BuildRequires: gobject-introspection-devel >= 0.9.6 +BuildRequires: gtk-doc >= 1.9 +BuildRequires: libtool +BuildRequires: pkgconfig +BuildRequires: python3-dbus-python-devel +BuildRequires: python3-gobject-devel +BuildRequires: unicode-ucd +BuildRequires: update-desktop-files +BuildRequires: pkgconfig(dbus-glib-1) +BuildRequires: pkgconfig(dconf) >= 0.7.5 +BuildRequires: pkgconfig(glib-2.0) >= 2.34.0 +BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(libnotify) >= 0.7 +BuildRequires: pkgconfig(python3) +# copy_deep method is supported since 0.31.1 +BuildRequires: vala >= 0.31.1 +BuildRequires: systemd-rpm-macros +BuildRequires: x11-tools +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(vapigen) +BuildRequires: pkgconfig(xkbcommon) +%if %{with_emoji} +Requires: %{_name}-dict-emoji = %{version} +%endif +Requires: dconf +Requires: iso-codes +Requires: libibus-1_0-5 = %{version} +Requires: python3-dbus-python +Requires: python3-gobject +Requires: python3-gobject-Gdk +# ibus-setup will require typelib(Gdk) typelib(GdkX11), typelib(Gtk) +# which are provided by two packages in openSUSE, so we limit their +# versions to 3.0 only. +Requires: typelib-1_0-Gtk-3_0 +Provides: locale(ja;ko;zh) +%if %{with_wayland} +BuildRequires: pkgconfig(wayland-client) >= 1.2.0 +%endif +%if %{with_emoji} +BuildRequires: unicode-emoji +BuildRequires: pkgconfig(cldr-emoji-annotation) +%endif +%endif + +%description +IBus, short for Intelligent Input Bus, is an input framework. IBus +plugins then provide the particular logic how to translate keypresses +to input characters and possibly show disambiguation windows around +the text cursor. + +%if ! 0%{?with_gtk4} +%package -n libibus-1_0-5 +Summary: IBus libraries +Group: System/Libraries + +%description -n libibus-1_0-5 +This package contains the libraries for IBus + +%package -n typelib-1_0-IBus-1_0 +Summary: Introspection bindings for IBus +Group: System/Libraries + +%description -n typelib-1_0-IBus-1_0 +This package contains the introspection bindings for the IBus library. + +%if %{with_emoji} +%package dict-emoji +Summary: Emoji dictionary for IBus +Group: System/I18n/Chinese +BuildArch: noarch +# make sure old ibus package containing emoji dict files is updated +Conflicts: ibus < 1.5.22 + +%description dict-emoji +This package contains data of emoji dictionary for IBus and other applications +%endif + +%package gtk +Summary: IBus input method support for gtk2 applications +Group: System/I18n/Chinese +Requires: %{_name} = %{version} +Supplements: (ibus and gtk2) +%{gtk2_immodule_requires} + +%description gtk +This package contains ibus im module for use by gtk2. + +%package gtk3 +Summary: IBus input method support for gtk3 applications +Group: System/I18n/Chinese +BuildRequires: pkgconfig(gtk+-3.0) +Requires: %{_name} = %{version} +Supplements: (ibus and gtk3) +%{gtk3_immodule_requires} + +%description gtk3 +This package contains ibus im module for use by gtk3. + +%package devel +Summary: Development tools for ibus +Group: Development/Libraries/Other +Requires: dbus-1-devel +Requires: glib2-devel +Requires: gtk-doc +Requires: ibus = %{version} +Requires: libibus-1_0-5 = %{version} +Requires: typelib-1_0-IBus-1_0 = %{version} + +%description devel +The ibus-devel package contains the header files and developer +docs for ibus. + +%lang_package + +%else + +%package -n %{_name}-gtk4 +Summary: IBus input method support for gtk4 applications +# on 15.4, both gtk4-devel and gtk4-devel-32bit provide pkgconfig(gtk4) +Group: System/I18n/Chinese +BuildRequires: gtk4-devel +BuildRequires: pkgconfig(dbus-1) +Requires: %{_name} = %{version} +Supplements: (ibus and gtk4) +%{gtk4_immodule_requires} + +%description -n %{_name}-gtk4 +This package contains ibus im module for use by gtk4. +%endif + +%prep +%setup -q -n %{_name}-%{version} +%patch4 -p1 +%patch8 -p1 +%if 0%{?sle_version} < 150200 && 0%{?suse_version} <=1500 +%patch9 -p1 +%endif + +cp -r %{SOURCE2} . +cp -r %{SOURCE3} . +cp -r %{SOURCE4} . +sed -i 1i"SYS_LIB=%{_lib}" xim.d-ibus-121 +cp -r %{SOURCE10} . +cp -r %{SOURCE11} . + +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%if 0%{?suse_version} <= 1500 +%patch15 -p1 +%endif +%patch16 -p1 +%patch17 -p1 + +%build +%configure --disable-static \ + --libexecdir=%{_libdir}/ibus \ +%if %{with_wayland} + --enable-wayland \ +%endif +%if %{with_emoji} + --enable-emoji-dict \ +%else + --disable-emoji-dict \ +%endif + --disable-python2 \ +%if ! 0%{?with_gtk4} + --enable-gtk3 \ + --enable-vala \ + --enable-appindicator \ + --with-python=python3 \ + --enable-python-library \ + --enable-introspection \ + --enable-gtk-doc \ + --enable-surrounding-text \ +%else + --disable-dconf \ + --disable-emoji-dict \ + --disable-unicode-dict \ + --disable-xim \ + --disable-gtk2 \ + --disable-gtk3 \ + --enable-gtk4 \ +%endif + +# non-parallel to have reproducible results in spite of non-deterministic build scripts https://github.com/ibus/ibus/issues/2272 +make + +%install +%make_install + +# Remove libtool archives +find %{buildroot} -type f -name "*.la" -delete -print + +%if ! 0%{?with_gtk4} +# autostart +mkdir -p %{buildroot}%{_distconfdir}/X11/xim.d/ +install -m 644 xim.d-ibus-121 %{buildroot}%{_distconfdir}/X11/xim.d/ibus +mkdir -p %{buildroot}%{_bindir} +install -c -m 0755 ibus-autostart %{buildroot}%{_bindir}/ibus-autostart +mkdir -p %{buildroot}%{_sysconfdir}/xdg/autostart +install -c -m 0644 ibus-autostart.desktop %{buildroot}%{_sysconfdir}/xdg/autostart/ibus-autostart.desktop + +# systemd conf +mkdir -p %{buildroot}%{_userunitdir}/org.freedesktop.IBus.session.generic.service.d +install -c -m 0644 %{SOURCE12} %{buildroot}%{_userunitdir}/org.freedesktop.IBus.session.generic.service.d + +PRIORITY=40 +pushd %{buildroot}%{_distconfdir}/X11/xim.d/ + for lang in am ar as bn el fa gu he hi hr ja ka kk kn ko lo ml my \ + pa ru sk vi zh_TW zh_CN zh_HK zh_SG \ + de fr it es nl cs pl da nn nb fi en sv + do + mkdir $lang + pushd $lang + ln -s ../ibus $PRIORITY-ibus + popd + done +popd + +mkdir -p %{buildroot}%{_datadir}/pixmaps +ln -sf %{_datadir}/icons/hicolor/48x48/apps/ibus-keyboard.png \ + %{buildroot}%{_datadir}/pixmaps/ibus-keyboard.png + +# touch for %%ghost +touch %{buildroot}/%{_sysconfdir}/dconf/db/ibus + +# install macros +mkdir -p %{buildroot}%{_rpmmacrodir} +install -m 644 %{SOURCE7} %{buildroot}%{_rpmmacrodir} + +%suse_update_desktop_file -r org.freedesktop.IBus.Setup Settings DesktopSettings X-SuSE-Core-System + +%fdupes %{buildroot} + +%find_lang ibus10 %{?no_lang_C} + +%pre +%systemd_user_pre org.freedesktop.IBus.session.GNOME.service org.freedesktop.IBus.session.generic.service + +%post +%glib2_gsettings_schema_post +%systemd_user_post org.freedesktop.IBus.session.GNOME.service org.freedesktop.IBus.session.generic.service + +%posttrans +dconf update + +%preun +%systemd_user_preun org.freedesktop.IBus.session.GNOME.service org.freedesktop.IBus.session.generic.service + +%postun +%glib2_gsettings_schema_postun +dconf update +%systemd_user_postun org.freedesktop.IBus.session.GNOME.service org.freedesktop.IBus.session.generic.service + +%post gtk +%{gtk2_immodule_post} + +%postun gtk +%{gtk2_immodule_postun} + +%post -n libibus-1_0-5 -p /sbin/ldconfig +%postun -n libibus-1_0-5 -p /sbin/ldconfig + +%post gtk3 +%{gtk3_immodule_post} + +%postun gtk3 +%{gtk3_immodule_postun} + +%else + +# cleanup stuff that is packaged as part of the main ibus flavor +rm -rf %{buildroot}%{_datadir} +rm -rf %{buildroot}%{_includedir} +rm -rf %{buildroot}%{_bindir} +rm -rf %{buildroot}%{_libdir}/ibus +rm -rf %{buildroot}%{_libdir}/libibus* +rm -rf %{buildroot}%{_libdir}/pkgconfig +rm -rf %{buildroot}%{_prefix}/lib/systemd +rm -rf %{buildroot}%{_sysconfdir}/xdg + +%post -n %{_name}-gtk4 +%{gtk4_immodule_post} + +%postun -n %{_name}-gtk4 +#{gtk4_immodule_postun} there is a syntax error in the macro from gtk4-devel +if [ $1 -eq 0 ]; then + if [[ -x %{_bindir}/gio-querymodules-64 ]]; then + %{_bindir}/gio-querymodules-64 %{_libdir}/gtk-4.0/4.0.0/immodules + else + %{_bindir}/gio-querymodules %{_libdir}/gtk-4.0/4.0.0/immodules + fi +fi +%endif + +%if ! 0%{?with_gtk4} +%files +%doc AUTHORS README README.SUSE xim.ibus.suse.template +%license COPYING +%{_rpmmacrodir}/macros.ibus +%if %{defined use_usretc} +%dir %{_distconfdir}/X11 +%dir %{_distconfdir}/X11/xim.d +%{_distconfdir}/X11/xim.d/* +%else +%config %{_sysconfdir}/X11/xim.d/* +%endif +%dir %{_sysconfdir}/xdg/Xwayland-session.d +%{_sysconfdir}/xdg/Xwayland-session.d/10-ibus-x11 +%{_bindir}/ibus +%{_bindir}/ibus-autostart +%{_bindir}/ibus-daemon +%{_bindir}/ibus-setup +%dir %{_datadir}/ibus +%{_datadir}/ibus/component +%dir %{_datadir}/ibus/dicts +%{_datadir}/ibus/dicts/unicode-*.dict +%{_datadir}/ibus/engine +%{_datadir}/ibus/keymaps +%{_datadir}/ibus/setup +%{_datadir}/applications/org.freedesktop.IBus.Setup.desktop +%dir %{_datadir}/GConf +%dir %{_datadir}/GConf/gsettings +%{_datadir}/GConf/gsettings/ibus.convert +%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml +%{_datadir}/icons/hicolor/*/apps/ibus*.* +%{_datadir}/pixmaps/ibus-keyboard.png +%{_libdir}/ibus +%{_datadir}/bash-completion/completions/ibus.bash +%{_datadir}/dbus-1/services/*.service +# This file is generated by dconf update +%ghost %{_sysconfdir}/dconf/db/ibus +%dir %{_sysconfdir}/dconf/db/ibus.d +# This file is not a config file. Users may not modify it. +%config %{_sysconfdir}/dconf/db/ibus.d/00-upstream-settings +%config %{_sysconfdir}/dconf/profile/ibus +%config %{_sysconfdir}/xdg/autostart/ibus-autostart.desktop +%{_mandir}/man1/ibus.1%{ext_man} +%{_mandir}/man1/ibus-daemon.1%{ext_man} +%{_mandir}/man1/ibus-setup.1%{ext_man} +%{_mandir}/man5/00-upstream-settings.5%{ext_man} +%{_mandir}/man5/ibus.5%{ext_man} +%dir %{_userunitdir}/gnome-session.target.wants +%{_userunitdir}/gnome-session.target.wants/org.freedesktop.IBus.session.GNOME.service +%{_userunitdir}/*.service +%{_userunitdir}/org.freedesktop.IBus.session.generic.service.d + +%if %{with_emoji} +%{_datadir}/applications/org.freedesktop.IBus.Panel.Emojier.desktop +%{_datadir}/applications/org.freedesktop.IBus.Panel.Extension.Gtk3.desktop +%{_mandir}/man7/ibus-emoji.7%{ext_man} +%endif +%{python3_sitearch}/gi/overrides/IBus.py +%{python3_sitearch}/gi/overrides/__pycache__/IBus.cpython-*.opt-1.pyc +%{python3_sitearch}/gi/overrides/__pycache__/IBus.cpython-*.pyc + +%files lang -f ibus10.lang + +%files -n libibus-1_0-5 +%{_libdir}/libibus-1.0.so.* + +%if %{with_emoji} +%files dict-emoji + +%dir %{_datadir}/ibus/dicts +%{_datadir}/ibus/dicts/emoji-*.dict +%endif + +%files -n typelib-1_0-IBus-1_0 +%{_libdir}/girepository-1.0/IBus-1.0.typelib + +%files gtk +%{_libdir}/gtk-2.0/*/immodules/im-ibus.so + +%files gtk3 +%{_libdir}/gtk-3.0/3.0.0/immodules/im-ibus.so + +%files devel +%{_libdir}/libibus-1.0.so +%{_includedir}/ibus-1.0 +%{_datadir}/gtk-doc/html/ibus +%{_libdir}/pkgconfig/ibus-1.0.pc +%{_datadir}/gettext/its/ibus.* +%{_datadir}/gir-1.0/IBus-1.0.gir +%{_datadir}/vala/vapi/ibus-1.0.deps +%{_datadir}/vala/vapi/ibus-1.0.vapi + +%else + +%files -n %{_name}-gtk4 +%dir %{_libdir}/gtk-4.0/4.0.0/immodules +%{_libdir}/gtk-4.0/4.0.0/immodules/libim-ibus.so +%endif + +%changelog diff --git a/im-engines-precede-xkb.patch b/im-engines-precede-xkb.patch new file mode 100644 index 0000000..fddf742 --- /dev/null +++ b/im-engines-precede-xkb.patch @@ -0,0 +1,14 @@ +--- ibus-1.5.27/ui/gtk3/panel.vala.org 2022-08-23 00:32:16.000000000 +0900 ++++ ibus-1.5.27/ui/gtk3/panel.vala 2022-08-27 11:48:21.086332809 +0900 +@@ -589,9 +589,9 @@ + } + + string[] names = {}; +- foreach (unowned IBus.EngineDesc engine in xkb_engines) +- names += engine.get_name(); + foreach (unowned IBus.EngineDesc engine in im_engines) ++ names += engine.get_name(); ++ foreach (unowned IBus.EngineDesc engine in xkb_engines) + names += engine.get_name(); + + m_settings_general.set_strv("preload-engines", names); diff --git a/macros.ibus b/macros.ibus new file mode 100644 index 0000000..ca95e36 --- /dev/null +++ b/macros.ibus @@ -0,0 +1,34 @@ +# RPM macros for ibus +# You should use %%{_ibus_icondir} and %%{_ibus_tabledir} +# in %%files section +# For ibus table packaging, you have to: +# Use %%ibus_table_requires as requires +# Use %%ibus_table_index_post %%DB_NAME in %%post to create +# table indexes for your table package. +%_ibus_includedir %{_includedir}/ibus-1.0 +%_ibus_libdir %{_libdir}/ibus +%_ibus_libexecdir %{_ibus_libdir} +%_ibus_datadir %{_datadir}/ibus +%_ibus_componentdir %{_ibus_datadir}/component +%_ibus_enginedir %{_ibus_datadir}/engine +%_ibus_keymapdir %{_ibus_datadir}/keymaps +%_ibus_setupdir %{_ibus_datadir}/setup +%_ibus_autostartdir %{_sysconfdir}/X11/xim.d +%_ibus_tabledir %{_datadir}/ibus-table/tables +%_ibus_icondir %{_datadir}/ibus-table/icons + +%ibus_requires \ +Requires: ibus + +%ibus_table_requires \ +Requires: ibus-table +Requires(post): ibus-table + +%ibus_table_index_post() \ +%if "x%1" != "x%%1" \ +DB_NAME="%1" \ +%else \ +echo "Missing argument DB_NAME in call to %%ibus_table_create_index." \ +false \ +%endif \ +/usr/bin/ibus-table-createdb -i -n %{_ibus_tabledir}/${DB_NAME}.db || true diff --git a/setup-switch-im.patch b/setup-switch-im.patch new file mode 100644 index 0000000..d1c46ab --- /dev/null +++ b/setup-switch-im.patch @@ -0,0 +1,65 @@ +--- ibus-1.5.26/setup/main.py.org 2022-03-14 14:15:48.000000000 +0900 ++++ ibus-1.5.26/setup/main.py 2022-08-21 23:04:59.698814168 +0900 +@@ -508,11 +508,16 @@ + self.__engine_setup_exec_list[name] = os.spawnl(os.P_NOWAIT, *args) + + def __init_bus(self): ++ method_name="ibus" ++ filename=".i18n" ++ usr_home =os.path.expanduser('~') ++ + self.__bus = IBus.Bus() + if self.__bus.is_connected(): + return + +- message = _("The IBus daemon is not running. Do you wish to start it?") ++ message = _("Could not connect to IBus daemon.\n" ++ "Do you wish to switch to IBus on next login?") + dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.QUESTION, + buttons = Gtk.ButtonsType.YES_NO, + text = message) +@@ -522,39 +527,11 @@ + if id != Gtk.ResponseType.YES: + sys.exit(0) + +- main_loop = GLib.MainLoop() +- +- timeout = 5 +- GLib.timeout_add_seconds(timeout, lambda *args: main_loop.quit()) +- self.__bus.connect("connected", lambda *args: main_loop.quit()) +- +- os.spawnlp(os.P_NOWAIT, "ibus-daemon", "ibus-daemon", "--xim", "--daemonize") +- +- main_loop.run() +- +- if self.__bus.is_connected(): +- message = _("IBus has been started! " +- "If you cannot use IBus, add the following lines to your $HOME/.bashrc; then relog into your desktop.\n" +- " export GTK_IM_MODULE=ibus\n" +- " export XMODIFIERS=@im=ibus\n" +- " export QT_IM_MODULE=ibus" +- ) +- dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.INFO, +- buttons = Gtk.ButtonsType.OK, +- text = message) +- id = dlg.run() +- dlg.destroy() +- self.__flush_gtk_events() +- else: +- # Translators: %d == 5 currently +- message = _("IBus daemon could not be started in %d seconds.") +- dlg = Gtk.MessageDialog(message_type = Gtk.MessageType.INFO, +- buttons = Gtk.ButtonsType.OK, +- text = message % timeout) +- id = dlg.run() +- dlg.destroy() +- self.__flush_gtk_events() +- sys.exit(0) ++ filename = os.path.join(usr_home, filename) ++ with open(filename, "w+") as f: ++ cmd = 'export INPUT_METHOD=\"' + method_name + '\"' ++ f.writelines(cmd) ++ sys.exit(0) + + def __shortcut_button_clicked_cb(self, button, name, section, _name, entry): + buttons = (_("_Cancel"), Gtk.ResponseType.CANCEL, diff --git a/xim.d-ibus-121 b/xim.d-ibus-121 new file mode 100644 index 0000000..d319ad5 --- /dev/null +++ b/xim.d-ibus-121 @@ -0,0 +1,57 @@ +if ! type ibus-daemon > /dev/null 2>&1 ; then + echo "ibus is not available." + return 1 +fi + +# explicitly set below, as referred in xdg autostart +export INPUT_METHOD=ibus + +case "$WINDOWMANAGER" in + # GNOME 3 Settings Daemon keyboard plugin manages all ibus settings itself, + # so don't do manual setup&startup of ibus otherwise it would conflict with + # G-S-D. see bnc#873016. + *gnome*) + SOURCES=$(gsettings get org.freedesktop.ibus.general preload-engines) + if [ "$SOURCES" == '@as []' ]; then + echo "initial GNOME startup, ibus default configuration applied" + ibus-daemon -d + timer=5 + while [ "$SOURCES" == '@as []' ] && [ ${timer} -gt 0 ]; do + sleep 1 + timer=$[${timer}-1] + SOURCES=$(gsettings get org.freedesktop.ibus.general preload-engines) + done + ibus exit + fi + # make sure G-S-D keyboard plugin is active + echo "ibus will be managed by GNOME." + gsettings set org.gnome.settings-daemon.plugins.keyboard active true + return 0 + ;; +esac + + +export XMODIFIERS="@im=ibus" +export GTK_IM_MODULE=ibus +export QT_IM_SWITCHER=imsw-multi +# Qt5 +export QT_IM_MODULE=ibus +# Qt4 +if [ -e /usr/$SYS_LIB/qt4/plugins/inputmethods/libqtim-ibus.so ]; then + export QT4_IM_MODULE=ibus +else + export QT4_IM_MODULE=xim +fi + +case "$WINDOWMANAGER" in + *kde*|*plasma*|*xfce*|*lxde*) + # started via xdg autostart + ;; + *) + # FIXME: a little bit of delay is required to avoid race + (sleep 2; ibus-daemon --xim -d) & + ;; +esac + +# success: +return 0 diff --git a/xim.ibus.suse.template b/xim.ibus.suse.template new file mode 100644 index 0000000..8d30b65 --- /dev/null +++ b/xim.ibus.suse.template @@ -0,0 +1,26 @@ +#~/.xim template for users to set ibus as default input method +#copy this file to ~/.xim +#logout and login again, that's all +#for more infomations, see ~/.xim.template + +#if any program can't input Chinese, try export #LC_CTYPE=zh_TW.UTF-8, e.g + +export LC_CTYPE=$LANG +export XMODIFIERS="@im=ibus" +export GTK_IM_MODULE=ibus +export QT_IM_SWITCHER=imsw-multi +os_type=`uname -i` +if [ $os_type = "x86_64" ]; then + if [ -e /usr/lib64/qt4/plugins/inputmethods/libqtim-ibus.so ]; then + export QT_IM_MODULE=ibus + else + export QT_IM_MODULE=xim + fi +else + if [ -e /usr/lib/qt4/plugins/inputmethods/libqtim-ibus.so ]; then + export QT_IM_MODULE=ibus + else + export QT_IM_MODULE=xim + fi +fi +ibus-daemon --xim &