public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ibus] f45: Bump to 1.5.35-rc1
@ 2026-09-22 11:48 Takao Fujiwara
  0 siblings, 0 replies; only message in thread
From: Takao Fujiwara @ 2026-09-22 11:48 UTC (permalink / raw)
  To: git-commits

            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

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-22 11:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-22 11:48 [rpms/ibus] f45: Bump to 1.5.35-rc1 Takao Fujiwara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox