public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Takao Fujiwara <tfujiwar@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/ibus] f45: Bump to 1.5.35-rc1
Date: Tue, 22 Sep 2026 11:48:19 GMT [thread overview]
Message-ID: <179007769993.1.17313261747743556702.rpms-ibus-1830e70bf5fa@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ibus
Branch : f45
Commit : 1830e70bf5faaebacfd83065a81f328abbe070ac
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2026-09-22T20:46:40+09:00
Stats : +60/-139 in 7 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/1830e70bf5faaebacfd83065a81f328abbe070ac?branch=f45
Log:
Bump to 1.5.35-rc1
- Fix `ibus start` in KDE
- Fix dead_diaeresis in both user and sys fr(ergol) keymap
- Resolves #2531962 Missing ibus-panel in XFCE spins
- Resolves #2537307 g_task_return_error(): ibus-daemon killed by SIGSEGV
---
diff --git a/.gitignore b/.gitignore
index eaf5db1..b734e7f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -94,3 +94,4 @@ ibus-1.3.6.tar.gz
/ibus-1.5.35-alpha2.tar.xz
/ibus-1.5.35-beta1.tar.xz
/ibus-1.5.35-beta2.tar.xz
+/ibus-1.5.35-rc1.tar.xz
diff --git a/ibus-1385349-segv-bus-proxy.patch b/ibus-1385349-segv-bus-proxy.patch
index e7c7b30..32f1f65 100644
--- a/ibus-1385349-segv-bus-proxy.patch
+++ b/ibus-1385349-segv-bus-proxy.patch
@@ -1,6 +1,6 @@
-From 656390df46ba963afe51420ecb9399b6dde9a2bd Mon Sep 17 00:00:00 2001
+From 990b86ee8dc4c1e76dfa2459116ca282621082c3 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Thu, 30 Apr 2026 09:00:00 +0900
+Date: Tue, 22 Sep 2026 19:48:59 +0900
Subject: [PATCH] Fix SEGV in bus_panel_proxy_focus_in()
rhbz#1350291 SEGV in BUS_IS_CONNECTION(skip_connection) in
@@ -14,10 +14,6 @@ call bus_connection_set_filter() in bus_dbus_impl_destroy().
rhbz#2213445 SEGV in bus_panel_proxy_new()
WIP: Add a GError.
-rhbz#1601577 rhbz#1797726 SEGV in ibus_engine_desc_get_layout() in
-bus_engine_proxy_new_internal()
-WIP: Add a GError to get the error message to check why the SEGV happened.
-
rhbz#1663528 SEGV in g_mutex_clear() in bus_dbus_impl_destroy()
If the mutex is not unlocked, g_mutex_clear() causes assert.
@@ -46,7 +42,6 @@ is should be cleared and the "hide-preedit-text" signal is also
disconnected.
Closes: rhbz#1350291
-Closes: rhbz#1601577
Closes: rhbz#1663528
Closes: rhbz#1795499
Closes: rhbz#1771238
@@ -56,17 +51,17 @@ Closes: rhbz#2195895
Closes: rhbz#2239633
Closes: rhbz#2480408
---
- bus/engineproxy.c | 44 +++++++++++++++++++++++-------
+ bus/dbusimpl.c | 47 +++++++++++++++++++++++++++++---
bus/panelproxy.c | 9 ++++++-
client/wayland/ibuswaylandim.c | 20 +++++++++++++-
client/x11/main.c | 49 ++++++++++++++++++++++++++++++----
portal/portal.c | 25 +++++++++++++----
src/ibusbus.c | 6 +++++
ui/gtk3/switcher.vala | 48 ++++++++++++++++++++-------------
- 8 files changed, 203 insertions(+), 45 deletions(-)
+ 7 files changed, 169 insertions(+), 35 deletions(-)
diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
-index 70792be..9c535bf 100644
+index 143cdcd5..aff18a74 100644
--- a/bus/dbusimpl.c
+++ b/bus/dbusimpl.c
@@ -634,6 +634,7 @@ static void
@@ -130,7 +125,7 @@ index 70792be..9c535bf 100644
/* FIXME destruct _lock and _queue members. */
IBUS_OBJECT_CLASS(bus_dbus_impl_parent_class)->destroy ((IBusObject *)dbus);
-@@ -1556,13 +1588,20 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
+@@ -1559,13 +1591,20 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
gboolean incoming,
gpointer user_data)
{
@@ -153,108 +148,8 @@ index 70792be..9c535bf 100644
if (incoming) {
/* is incoming message */
-diff --git a/bus/engineproxy.c b/bus/engineproxy.c
-index 37736b6..7f34604 100644
---- a/bus/engineproxy.c
-+++ b/bus/engineproxy.c
-@@ -775,10 +775,12 @@ bus_engine_proxy_g_signal (GDBusProxy *proxy,
- g_return_if_reached ();
- }
-
-+#pragma GCC optimize ("O0")
- static BusEngineProxy *
- bus_engine_proxy_new_internal (const gchar *path,
- IBusEngineDesc *desc,
-- GDBusConnection *connection)
-+ GDBusConnection *connection,
-+ GError **error)
- {
- GDBusProxyFlags flags;
- BusEngineProxy *engine;
-@@ -788,12 +790,20 @@ bus_engine_proxy_new_internal (const gchar *path,
- g_assert (path);
- g_assert (IBUS_IS_ENGINE_DESC (desc));
- g_assert (G_IS_DBUS_CONNECTION (connection));
-+ g_assert (error && *error == NULL);
-
-+ /* rhbz#1601577 engine == NULL if connection is closed. */
-+ if (g_dbus_connection_is_closed (connection)) {
-+ *error = g_error_new (G_DBUS_ERROR,
-+ G_DBUS_ERROR_FAILED,
-+ "Connection is closed.");
-+ return NULL;
-+ }
- flags = G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START;
- engine = (BusEngineProxy *) g_initable_new (
- BUS_TYPE_ENGINE_PROXY,
- NULL,
-- NULL,
-+ error,
- "desc", desc,
- "g-connection", connection,
- "g-interface-name", IBUS_INTERFACE_ENGINE,
-@@ -801,6 +811,12 @@ bus_engine_proxy_new_internal (const gchar *path,
- "g-default-timeout", g_gdbus_timeout,
- "g-flags", flags,
- NULL);
-+ /* FIXME: rhbz#1601577 */
-+ if (!engine) {
-+ /* show abrt local variable */
-+ gchar *message = g_strdup ((*error)->message);
-+ g_error ("%s", message);
-+ }
- const gchar *layout = ibus_engine_desc_get_layout (desc);
- if (layout != NULL && layout[0] != '\0') {
- engine->keymap = ibus_keymap_get (layout);
-@@ -838,6 +854,7 @@ bus_engine_proxy_new_internal (const gchar *path,
-
- return engine;
- }
-+#pragma GCC reset_options
-
- typedef struct {
- GTask *task;
-@@ -900,23 +917,30 @@ create_engine_ready_cb (BusFactoryProxy *factory,
- GAsyncResult *res,
- EngineProxyNewData *data)
- {
-+ GError *error = NULL;
-+ gchar *path;
-+ BusEngineProxy *engine;
-+
- g_return_if_fail (data->task != NULL);
-
-- GError *error = NULL;
-- gchar *path = bus_factory_proxy_create_engine_finish (factory,
-- res,
-- &error);
-+ path = bus_factory_proxy_create_engine_finish (factory, res, &error);
- if (path == NULL) {
- g_task_return_error (data->task, error);
- engine_proxy_new_data_free (data);
- return;
- }
-
-- BusEngineProxy *engine =
-- bus_engine_proxy_new_internal (path,
-- data->desc,
-- g_dbus_proxy_get_connection ((GDBusProxy *)data->factory));
-+ engine = bus_engine_proxy_new_internal (
-+ path,
-+ data->desc,
-+ g_dbus_proxy_get_connection ((GDBusProxy *)data->factory),
-+ &error);
- g_free (path);
-+ if (!engine) {
-+ g_task_return_error (data->task, error);
-+ engine_proxy_new_data_free (data);
-+ return;
-+ }
-
- /* FIXME: set destroy callback ? */
- g_task_return_pointer (data->task, engine, NULL);
diff --git a/bus/panelproxy.c b/bus/panelproxy.c
-index 4c2c888..a7bec19 100644
+index 4c2c8885..a7bec193 100644
--- a/bus/panelproxy.c
+++ b/bus/panelproxy.c
@@ -124,6 +124,8 @@ bus_panel_proxy_new (BusConnection *connection,
@@ -288,10 +183,10 @@ index 4c2c888..a7bec19 100644
panel->panel_type = panel_type;
return panel;
diff --git a/client/wayland/ibuswaylandim.c b/client/wayland/ibuswaylandim.c
-index 5762f10..f1e3b9e 100644
+index 95575951..d807bccf 100644
--- a/client/wayland/ibuswaylandim.c
+++ b/client/wayland/ibuswaylandim.c
-@@ -387,7 +387,7 @@ ibus_wayland_im_commit_text (IBusWaylandIM *wlim,
+@@ -547,7 +547,7 @@ ibus_wayland_im_commit_text (IBusWaylandIM *wlim,
const char *str)
{
IBusWaylandIMPrivate *priv;
@@ -300,7 +195,7 @@ index 5762f10..f1e3b9e 100644
priv = ibus_wayland_im_get_instance_private (wlim);
switch (priv->version) {
case INPUT_METHOD_V1:
-@@ -822,6 +822,14 @@ _context_commit_text_cb (IBusInputContext *context,
+@@ -1137,6 +1137,14 @@ _context_commit_text_cb (IBusInputContext *context,
IBusText *text,
IBusWaylandIM *wlim)
{
@@ -315,7 +210,7 @@ index 5762f10..f1e3b9e 100644
ibus_wayland_im_commit_text (wlim, text->text);
}
-@@ -838,6 +846,8 @@ _context_forward_key_event_cb (IBusInputContext *context,
+@@ -1153,6 +1161,8 @@ _context_forward_key_event_cb (IBusInputContext *context,
g_return_if_fail (IBUS_IS_WAYLAND_IM (wlim));
priv = ibus_wayland_im_get_instance_private (wlim);
@@ -324,7 +219,7 @@ index 5762f10..f1e3b9e 100644
if (modifiers & IBUS_RELEASE_MASK)
state = WL_KEYBOARD_KEY_STATE_RELEASED;
else
-@@ -1055,6 +1065,8 @@ _context_show_preedit_text_cb (IBusInputContext *context,
+@@ -1371,6 +1381,8 @@ _context_show_preedit_text_cb (IBusInputContext *context,
const char *commit = "";
g_return_if_fail (IBUS_IS_WAYLAND_IM (wlim));
priv = ibus_wayland_im_get_instance_private (wlim);
@@ -333,7 +228,7 @@ index 5762f10..f1e3b9e 100644
/* CURSOR is byte offset. */
cursor =
g_utf8_offset_to_pointer (priv->preedit_text->text,
-@@ -1098,6 +1110,8 @@ _context_hide_preedit_text_cb (IBusInputContext *context,
+@@ -1414,6 +1426,8 @@ _context_hide_preedit_text_cb (IBusInputContext *context,
IBusWaylandIMPrivate *priv;
g_return_if_fail (IBUS_IS_WAYLAND_IM (wlim));
priv = ibus_wayland_im_get_instance_private (wlim);
@@ -342,7 +237,7 @@ index 5762f10..f1e3b9e 100644
switch (priv->version) {
case INPUT_METHOD_V1:
zwp_input_method_context_v1_preedit_string (priv->context,
-@@ -1137,6 +1151,8 @@ _context_update_preedit_text_cb (IBusInputContext *context,
+@@ -1453,6 +1467,8 @@ _context_update_preedit_text_cb (IBusInputContext *context,
priv->preedit_cursor_pos = cursor_pos;
priv->preedit_mode = mode;
@@ -351,7 +246,7 @@ index 5762f10..f1e3b9e 100644
if (visible)
_context_show_preedit_text_cb (context, wlim);
else
-@@ -1161,6 +1177,8 @@ _context_delete_surrounding_text_cb (IBusInputContext *context,
+@@ -1477,6 +1493,8 @@ _context_delete_surrounding_text_cb (IBusInputContext *context,
g_return_if_fail (IBUS_IS_WAYLAND_IM (wlim));
priv = ibus_wayland_im_get_instance_private (wlim);
@@ -361,7 +256,7 @@ index 5762f10..f1e3b9e 100644
return;
diff --git a/client/x11/main.c b/client/x11/main.c
-index accebde..cac4cd6 100644
+index accebde5..cac4cd61 100644
--- a/client/x11/main.c
+++ b/client/x11/main.c
@@ -45,6 +45,7 @@
@@ -508,7 +403,7 @@ index accebde..cac4cd6 100644
ibus_input_context_reset (x11ic->context);
diff --git a/portal/portal.c b/portal/portal.c
-index 5cd3877..5110baa 100644
+index 5cd38779..5110baad 100644
--- a/portal/portal.c
+++ b/portal/portal.c
@@ -92,6 +92,11 @@ static void portal_context_g_signal (GDBusProxy *proxy,
@@ -567,7 +462,7 @@ index 5cd3877..5110baa 100644
g_object_unref (portal_context);
}
diff --git a/src/ibusbus.c b/src/ibusbus.c
-index 540d1da..defdb73 100644
+index 540d1da3..defdb73b 100644
--- a/src/ibusbus.c
+++ b/src/ibusbus.c
@@ -750,6 +750,12 @@ ibus_bus_destroy (IBusObject *object)
@@ -584,7 +479,7 @@ index 540d1da..defdb73 100644
bus->priv->monitor = NULL;
}
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
-index d4a5fa1..788eea0 100644
+index d4a5fa11..788eea06 100644
--- a/ui/gtk3/switcher.vala
+++ b/ui/gtk3/switcher.vala
@@ -251,27 +251,37 @@ class Switcher : Gtk.Window {
@@ -645,5 +540,5 @@ index d4a5fa1..788eea0 100644
seat.ungrab();
--
-2.53.0
+2.55.0
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ibus-HEAD.patch
diff --git a/ibus-xinput b/ibus-xinput
index 660b62b..b8f73b1 100644
--- a/ibus-xinput
+++ b/ibus-xinput
@@ -10,7 +10,10 @@ NOT_RUN=gnome3
# IMSETTINGS_IGNORE_SESSION concatenate the current session name and type x11 or
# wayland. The current session name is calculated by get_destop()
# in /usr/libexec/imsettings-functions and the value is case-sensitive.
-IMSETTINGS_IGNORE_SESSION=KDE-wayland
+#IMSETTINGS_IGNORE_SESSION=KDE-wayland
+RUN_WAYLAND_PROGRAM=1
+WAYLAND_CACHEFILE="${XDG_CONFIG_HOME:-$HOME/.cache}/imsettings/wayland.log"
+VERBOSE=1
if test -f /usr/lib64/qt6/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so || \
test -f /usr/lib/qt6/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so || \
@@ -24,10 +27,25 @@ else
QT_IM_MODULE=xim
fi
-# imsettings does not support QT_IM_MODULES environment yet.
-if test "x$WAYLAND_DISPLAY" != "x" ; then
+# This file is called by some scripts several times and XDG_SESSION_TYPE is
+# sometimes reset so use `ibus` comamnd to check if Wayland is available.
+if which ibus >/dev/null 2>/dev/null && ibus display --type wayland >/dev/null 2>/dev/null ; then
+ # imsettings does not support QT_IM_MODULES environment yet.
if test "x$QT_IM_MODULE" = "xibus" ; then
- QT_IM_MODULE=
+ unset QT_IM_MODULE
fi
GTK_IM_MODULE='wayland:ibus'
+ unset XIM_PROGRAM
+ if test "x$RUN_WAYLAND_PROGRAM" = "x1" ; then
+ IBUS_ADDRESS=$(ibus address)
+ if test "x$IBUS_ADDRESS" = "x(null)" || test "x$IBUS_ADDRESS" = "x" ; then
+ mkdir -p -m 0700 $(dirname "$WAYLAND_CACHEFILE")
+ ibus start $([ "x$VERBOSE" = "x1" ] && echo "--verbose") >"$WAYLAND_CACHEFILE" 2>"$WAYLAND_CACHEFILE"
+ fi
+ fi
+fi
+
+if which gsettings >/dev/null 2>/dev/null && \
+ [ -f '/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.xml' ] ; then
+ gsettings reset org.gnome.desktop.interface gtk-im-module
fi
diff --git a/ibus.spec b/ibus.spec
index 78f5f73..d611123 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -14,18 +14,19 @@
%bcond_without xinit
%endif
-%global ibus_xinit_condition (%pcd1 or %pcd2 or %pcd3)
+%global ibus_xinit_condition (%icd1 or %icd2 or %icd3)
# FIXME: How to write a condition with multiple lines
-%global ibus_panel_condition (%pcd1 or %pcd2 or %pcd3 or %wcd1 or %wcd2)
-%global pcd1 cinnamon or deepin-desktop or i3
+%global ibus_panel_condition (%icd1 or %icd2 or %icd3 or %wcd1 or %wcd2 or %xcd1)
+%global icd1 cinnamon or deepin-desktop or i3
# Currently imsettings invokes ibus-dameon directly and that way no longer work
# in Wayland.
# Comment out lxqt-x11-session until it's installed by default in LXQt Spin
# Comment out xfce4-session until it's installed by default in XFCE Spin
-%global pcd2 lxsession or mate-panel or phosh or awesome
-%global pcd3 sugar
+%global icd2 lxsession or mate-panel or phosh or awesome
+%global icd3 sugar
%global wcd1 cosmic-panel or hyprland or sway or waybar or lxqt-wayland-session
%global wcd2 budgie-desktop or plasma-workspace or xfce4-session-wayland-session
+%global xcd1 xfce4-session
%if %with_pkg_config
%if %{with gtk2}
@@ -46,9 +47,9 @@
%global dbus_python_version 0.83.0
Name: ibus
-Version: 1.5.35~beta2
+Version: 1.5.35~rc1
# https://github.com/fedora-infra/rpmautospec/issues/101
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPL-2.1-or-later
URL: https://github.com/ibus/%name/wiki
@@ -57,7 +58,6 @@ Source1: https://github.com/ibus/%name/releases/download/%{source_version
Source2: %{name}-xinput
Source3: %{name}.conf.5
# Patch: %%{name}-HEAD.patch
-Patch: %{name}-HEAD.patch
# Under testing #1349148 #1385349 #1350291 #1406699 #1432252 #1601577
Patch: %{name}-1385349-segv-bus-proxy.patch
@@ -549,6 +549,13 @@ dconf update || :
%{_datadir}/installed-tests/ibus
%changelog
+* Tue Sep 22 2026 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.35~rc1-1
+- Bump to 1.5.35-rc1
+- Fix `ibus start` in KDE
+- Fix dead_diaeresis in both user and sys fr(ergol) keymap
+- Resolves #2531962 Missing ibus-panel in XFCE spins
+- Resolves #2537307 g_task_return_error(): ibus-daemon killed by SIGSEGV
+
* Sun Aug 30 2026 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.35~beta2-2
- Fix IBusAttrList leak when converting text
diff --git a/ibus.tar.xz.sha256sum b/ibus.tar.xz.sha256sum
index debdd63..653067d 100644
--- a/ibus.tar.xz.sha256sum
+++ b/ibus.tar.xz.sha256sum
@@ -1 +1 @@
-eea41dbf15e545996a35019a677eb31fe2e44500698649e7a8401fceaa47a287 *ibus-1.5.35-beta2.tar.xz
+3963bfe45bfb73ff967cf3ae2542a4f479e6dd9506304a57b9d844d1ae2f49cb *ibus-1.5.35-rc1.tar.xz
diff --git a/sources b/sources
index fa19879..45f84bc 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (ibus-1.5.35-beta2.tar.xz) = 78306c911b1db9bfbf3b4afa37ac31e377291492ed3b0df62edd46f6a4f92e8e990012c437fe24438bc0ce925fb2f2d61ddd157a885d6811956a8ad64749b3de
+SHA512 (ibus-1.5.35-rc1.tar.xz) = c1146695f0227079a3be84c1f293d699bd147627fa0077da10b17bea63f822dbc8c5ee46f1f7f781946f009a71143b60531af49e1973c45659c9609459d312cf
reply other threads:[~2026-09-22 11:48 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=179007769993.1.17313261747743556702.rpms-ibus-1830e70bf5fa@fedoraproject.org \
--to=tfujiwar@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox