diff --git a/ibus-1.5.30.tar.gz b/ibus-1.5.31.tar.gz similarity index 36% rename from ibus-1.5.30.tar.gz rename to ibus-1.5.31.tar.gz index 722b02fff81f9264e36013145a64eb4c51b9f82f..5c738db96b8b3ed2ead558093ff6e9b748007011 100644 Binary files a/ibus-1.5.30.tar.gz and b/ibus-1.5.31.tar.gz differ diff --git a/ibus-1385349-segv-bus-proxy.patch b/ibus-1385349-segv-bus-proxy.patch index a82d795535906716f857e323c60a3a7e28573802..eaf76cbc7bdd6604dd599faf57621e5e38f63d1b 100644 --- a/ibus-1385349-segv-bus-proxy.patch +++ b/ibus-1385349-segv-bus-proxy.patch @@ -1,50 +1,50 @@ -From 68996e1430e3478bda1201d8e31a82679b2659a4 Mon Sep 17 00:00:00 2001 +From 1286ce92a5ccf68b5dcf1b4a7c0884ce29d5c51b Mon Sep 17 00:00:00 2001 From: fujiwarat -Date: Sat, 30 Sep 2023 11:50:14 +0900 +Date: Fri, 12 Jul 2024 23:30:25 +0900 Subject: [PATCH] Fix SEGV in bus_panel_proxy_focus_in() - + rhbz#1350291 SEGV in BUS_IS_CONNECTION(skip_connection) in bus_dbus_impl_dispatch_message_by_rule() check if dbus_connection is closed in bus_dbus_impl_connection_filter_cb(). - + rhbz#1767976 SEGV in assert(connection != NULL) in bus_dbus_impl_connection_filter_cb() 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. - + rhbz#1767691 SEGV in client/x11/main.c:_sighandler(). Do not call atexit functions in _sighandler(). - + rhbz#2195895 SEGV in client/x11/main.c:_xim_set_cursor_location() check if IBusInputContext was disconnected. - + rhbz#1795499 rhbz#1936777 SEGV in ibus_bus_get_bus_address() because of no _bus->priv. _changed_cb() should not be called after ibus_bus_destroy() is called. - + rhbz#1771238 SEGV in assert(m_loop == null) in switcher.vala. Grabbing keyboard could be failed and switcher received the keyboard events and m_loop was not released. - + rhbz#1797120 SEGV in assert(bus.is_connected()) in panel_binding_construct() Check m_ibus in extension.vala:bus_name_acquired_cb() - + rhbz#2151344 SEGV with portal_context->owner in name_owner_changed() Maybe g_object_unref() is called but not finalized yet. - + rhbz#2239633 SEGV with g_object_unref() in ibus_portal_context_handle_destroy() Connect "handle-destroy" signal after g_list_prepend(). - + BUG=rhbz#1350291 BUG=rhbz#1601577 BUG=rhbz#1663528 @@ -66,12 +66,12 @@ BUG=rhbz#2239633 ui/gtk3/extension.vala | 4 +++ ui/gtk3/switcher.vala | 73 +++++++++++++++++++++++++----------------- 8 files changed, 208 insertions(+), 56 deletions(-) - + diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c -index 59787a80..af2fbde2 100644 +index 110d864a..391d576a 100644 --- a/bus/dbusimpl.c +++ b/bus/dbusimpl.c -@@ -610,6 +610,7 @@ static void +@@ -621,6 +621,7 @@ static void bus_dbus_impl_destroy (BusDBusImpl *dbus) { GList *p; @@ -79,7 +79,7 @@ index 59787a80..af2fbde2 100644 for (p = dbus->objects; p != NULL; p = p->next) { IBusService *object = (IBusService *) p->data; -@@ -633,6 +634,10 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus) +@@ -644,6 +645,10 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus) for (p = dbus->connections; p != NULL; p = p->next) { BusConnection *connection = BUS_CONNECTION (p->data); @@ -90,7 +90,7 @@ index 59787a80..af2fbde2 100644 g_signal_handlers_disconnect_by_func (connection, bus_dbus_impl_connection_destroy_cb, dbus); ibus_object_destroy (IBUS_OBJECT (connection)); -@@ -647,12 +652,39 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus) +@@ -658,12 +663,39 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus) dbus->unique_names = NULL; dbus->names = NULL; @@ -131,8 +131,8 @@ index 59787a80..af2fbde2 100644 +#undef BUS_DBUS_MUTEX_SAFE_CLEAR /* FIXME destruct _lock and _queue members. */ - IBUS_OBJECT_CLASS(bus_dbus_impl_parent_class)->destroy ((IBusObject *) dbus); -@@ -1483,13 +1515,20 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection, + IBUS_OBJECT_CLASS(bus_dbus_impl_parent_class)->destroy ((IBusObject *)dbus); +@@ -1539,13 +1571,20 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection, gboolean incoming, gpointer user_data) { @@ -451,10 +451,10 @@ index b7eb5961..3075d5d0 100644 static void diff --git a/portal/portal.c b/portal/portal.c -index c2e4fc7f..76ef4f0a 100644 +index 5cd38779..5110baad 100644 --- a/portal/portal.c +++ b/portal/portal.c -@@ -90,6 +90,11 @@ static void portal_context_g_signal (GDBusProxy *proxy, +@@ -92,6 +92,11 @@ static void portal_context_g_signal (GDBusProxy *proxy, GVariant *parameters, IBusPortalContext *portal_context); @@ -466,7 +466,7 @@ index c2e4fc7f..76ef4f0a 100644 G_DEFINE_TYPE_WITH_CODE (IBusPortalContext, ibus_portal_context, IBUS_DBUS_TYPE_INPUT_CONTEXT_SKELETON, -@@ -449,11 +454,6 @@ ibus_portal_context_new (IBusInputContext *context, +@@ -492,11 +497,6 @@ ibus_portal_context_new (IBusInputContext *context, g_strdup_printf (IBUS_PATH_INPUT_CONTEXT, portal_context->id); portal_context->service = ibus_dbus_service_skeleton_new (); @@ -478,7 +478,7 @@ index c2e4fc7f..76ef4f0a 100644 if (!g_dbus_interface_skeleton_export ( G_DBUS_INTERFACE_SKELETON (portal_context->service), connection, portal_context->object_path, -@@ -466,8 +466,17 @@ ibus_portal_context_new (IBusInputContext *context, +@@ -509,8 +509,17 @@ ibus_portal_context_new (IBusInputContext *context, return NULL; } @@ -496,7 +496,7 @@ index c2e4fc7f..76ef4f0a 100644 return portal_context; } -@@ -624,6 +633,12 @@ name_owner_changed (GDBusConnection *connection, +@@ -667,6 +676,12 @@ name_owner_changed (GDBusConnection *connection, IBusPortalContext *portal_context = l->data; next = l->next; @@ -542,7 +542,7 @@ index a6f2e8e6..b7a04081 100644 m_panel.load_settings(); } diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala -index e3fab8d9..a827094f 100644 +index 26bded99..21ede7be 100644 --- a/ui/gtk3/switcher.vala +++ b/ui/gtk3/switcher.vala @@ -176,8 +176,8 @@ class Switcher : Gtk.Window { @@ -646,5 +646,5 @@ index e3fab8d9..a827094f 100644 #if VALA_0_34 seat.ungrab(); -- -2.41.0 - \ No newline at end of file +2.45.0 + diff --git a/ibus.spec b/ibus.spec index 50ddf5b7a3e12dec5338557086fbdd06094fd07a..b4b7d150372f4470da7df335447137f2972aa6bb 100644 --- a/ibus.spec +++ b/ibus.spec @@ -5,8 +5,8 @@ %global dbus_python_version 0.83.0 Name: ibus -Version: 1.5.30 -Release: 2 +Version: 1.5.31 +Release: 1 Summary: Intelligent Input Bus for Linux OS License: LGPL-2.1-or-later URL: https://github.com/ibus/%name/wiki @@ -37,11 +37,13 @@ Requires(posttrans): dconf Requires: %{_sbindir}/alternatives Requires(post): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives +Requires: (%{name}-gtk2 if gtk2) +Requires: (%{name}-gtk4 if gtk4) Provides: ibus-gtk = %{version}-%{release} Obsoletes: ibus-gtk < %{version}-%{release} -Provides: ibus-gtk2 = %{version}-%{release} ibus-gtk3 = %{version}-%{release} ibus-setup = %{version}-%{release} ibus-wayland = %{version}-%{release} -Obsoletes: ibus-gtk2 < %{version}-%{release} ibus-gtk3 < %{version}-%{release} ibus-setup < %{version}-%{release} ibus-wayland < %{version}-%{release} +Provides: ibus-gtk3 = %{version}-%{release} ibus-setup = %{version}-%{release} ibus-wayland = %{version}-%{release} +Obsoletes: ibus-gtk3 < %{version}-%{release} ibus-setup < %{version}-%{release} ibus-wayland < %{version}-%{release} %global _xinputconf %{_sysconfdir}/X11/xinit/xinput.d/ibus.conf @@ -56,6 +58,24 @@ Requires: glib2 gobject-introspection %description libs This package contains the libraries for IBus +%package gtk2 +Summary: IBus IM module for GTK2 +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Conflicts: ibus < 1.5.31 +Supplements: (ibus and gtk2) + +%description gtk2 +This package contains IBus IM module for GTK2 + +%package gtk4 +Summary: IBus IM module for GTK4 +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Conflicts: ibus < 1.5.31 +Supplements: (ibus and gtk4) + +%description gtk4 +This package contains IBus IM module for GTK4 + %package devel Summary: Development tools for ibus Requires: %{name} = %{version}-%{release} @@ -63,12 +83,12 @@ Requires: dbus-devel glib2-devel gobject-introspection-devel vala Provides: ibus-devel-docs = %{version}-%{release} Obsoletes: ibus-devel-docs < %{version}-%{release} -%package_help - %description devel The ibus-devel package contains the header files and developer docs for ibus. +%package_help + %prep %autosetup -n %{name}-%{version} -p1 cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c || : @@ -154,8 +174,12 @@ dconf update || : %python3_sitearch/gi/overrides/IBus.py %dir %{_sysconfdir}/X11/xinit/xinput.d %config %{_xinputconf} -%{_libdir}/gtk-2.0/* %{_libdir}/gtk-3.0/* + +%files gtk2 +%{_libdir}/gtk-2.0/* + +%files gtk4 %{_libdir}/gtk-4.0/* %files libs @@ -178,6 +202,10 @@ dconf update || : %{_datadir}/gtk-doc/html/* %changelog +* Thu Dec 19 2024 Funda Wang - 1.5.31-1 +- update to 1.5.31 +- split out gtk2 and gtk4 immodule for tighten dependencies + * Tue Dec 17 2024 Funda Wang - 1.5.30-2 - add rpm file attr so that ibus dependency could be pulled in automatically