diff --git a/ibus-1385349-segv-bus-proxy.patch b/ibus-1385349-segv-bus-proxy.patch index cf7c716..5f86a7b 100644 --- a/ibus-1385349-segv-bus-proxy.patch +++ b/ibus-1385349-segv-bus-proxy.patch @@ -1,6 +1,6 @@ -From ffe82832ac5bc6aaa3d5a93004aae97a8b44a60c Mon Sep 17 00:00:00 2001 +From f5790e1244fc6c83615ca4bc29494c7f16c73b6f Mon Sep 17 00:00:00 2001 From: fujiwarat -Date: Fri, 26 May 2023 06:35:13 +0900 +Date: Sun, 11 Jun 2023 20:20:06 +0900 Subject: [PATCH] Fix SEGV in bus_panel_proxy_focus_in() rhbz#1350291 SEGV in BUS_IS_CONNECTION(skip_connection) in @@ -11,9 +11,12 @@ 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: Added a GError to get the error message to check why the SEGV happened. +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. @@ -51,12 +54,13 @@ BUG=rhbz#2195895 --- bus/dbusimpl.c | 47 ++++++++++++++++++++++++--- bus/engineproxy.c | 44 +++++++++++++++++++------ + bus/panelproxy.c | 9 +++++- client/x11/main.c | 56 ++++++++++++++++++++++++++++---- portal/portal.c | 11 +++++++ src/ibusbus.c | 6 ++++ ui/gtk3/extension.vala | 4 +++ ui/gtk3/switcher.vala | 73 +++++++++++++++++++++++++----------------- - 7 files changed, 191 insertions(+), 50 deletions(-) + 8 files changed, 199 insertions(+), 51 deletions(-) diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c index 59787a80..af2fbde2 100644 @@ -246,6 +250,40 @@ index b3e16066..ba479b59 100644 /* FIXME: set destroy callback ? */ g_task_return_pointer (data->task, engine, NULL); +diff --git a/bus/panelproxy.c b/bus/panelproxy.c +index e6001ebf..00828fbc 100644 +--- a/bus/panelproxy.c ++++ b/bus/panelproxy.c +@@ -122,6 +122,8 @@ bus_panel_proxy_new (BusConnection *connection, + const gchar *path = NULL; + GObject *obj; + BusPanelProxy *panel; ++ GError *error = NULL; ++ const gchar *message; + + g_assert (BUS_IS_CONNECTION (connection)); + +@@ -138,7 +140,7 @@ bus_panel_proxy_new (BusConnection *connection, + + obj = g_initable_new (BUS_TYPE_PANEL_PROXY, + NULL, +- NULL, ++ &error, + "g-object-path", path, + "g-interface-name", IBUS_INTERFACE_PANEL, + "g-connection", bus_connection_get_dbus_connection (connection), +@@ -146,6 +148,11 @@ bus_panel_proxy_new (BusConnection *connection, + "g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START | G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, + NULL); + ++ if (error) { ++ /* TODO: rhbz#2213445 Why does this issue happen? */ ++ message = error->message; ++ g_critical ("Failed to generate BusPanelProxy: %s", message); ++ } + panel = BUS_PANEL_PROXY (obj); + panel->panel_type = panel_type; + return panel; diff --git a/client/x11/main.c b/client/x11/main.c index 83d95cb7..804e40ed 100644 --- a/client/x11/main.c diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch index b0a769c..a1ca3f2 100644 --- a/ibus-HEAD.patch +++ b/ibus-HEAD.patch @@ -917,3 +917,579 @@ index 69fb8abe..c9cf4469 100644 -- 2.40.0 +From 1a25975d9f55f18eab609e4d147dd32689e367f3 Mon Sep 17 00:00:00 2001 +From: Emil Velikov +Date: Sun, 11 Jun 2023 16:16:35 +0900 +Subject: [PATCH 1/2] makefile: don't gzip the man pages + +Drop the gzip step from the manpages - distributions already do that as +needed. In addition this resolves the final reproducibility issue with +ibus. + +BUG=https://github.com/ibus/ibus/pull/2514 +--- + bus/Makefile.am | 6 +----- + data/dconf/Makefile.am | 6 +----- + setup/Makefile.am | 6 +----- + tools/Makefile.am | 6 +----- + ui/gtk3/Makefile.am | 6 +----- + 5 files changed, 5 insertions(+), 25 deletions(-) + +diff --git a/bus/Makefile.am b/bus/Makefile.am +index e173ee25..d0445d02 100644 +--- a/bus/Makefile.am ++++ b/bus/Makefile.am +@@ -169,7 +169,6 @@ EXTRA_DIST = \ + + CLEANFILES = \ + $(man_one_DATA) \ +- $(man_one_files) \ + $(NULL) + + $(libibus): +@@ -181,14 +180,11 @@ test: ibus-daemon + $(builddir)/ibus-daemon -v + + man_one_in_files = ibus-daemon.1.in +-man_one_files = $(man_one_in_files:.1.in=.1) +-man_one_DATA =$(man_one_files:.1=.1.gz) ++man_one_DATA = $(man_one_in_files:.1.in=.1) + man_onedir = $(mandir)/man1 + %.1: %.1.in + $(AM_V_GEN) sed \ + -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ + mv $@.tmp $@ +-%.1.gz: %.1 +- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@ + + -include $(top_srcdir)/git.mk +diff --git a/data/dconf/Makefile.am b/data/dconf/Makefile.am +index 5360f033..2352f770 100644 +--- a/data/dconf/Makefile.am ++++ b/data/dconf/Makefile.am +@@ -38,15 +38,12 @@ dconfdb_DATA = 00-upstream-settings + { rc=$$?; $(RM) -rf $@; exit $$rc; } + + man_5_in_files = 00-upstream-settings.5.in ibus.5.in +-man_5_files = $(man_5_in_files:.5.in=.5) +-man_5_DATA =$(man_5_files:.5=.5.gz) ++man_5_DATA = $(man_5_in_files:.5.in=.5) + man_5dir = $(mandir)/man5 + %.5: %.5.in + $(AM_V_GEN) sed \ + -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ + mv $@.tmp $@ +-%.5.gz: %.5 +- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@ + + install-data-hook: + if test -z "$(DESTDIR)"; then \ +@@ -63,7 +60,6 @@ EXTRA_DIST = \ + + CLEANFILES = \ + $(man_5_DATA) \ +- $(man_5_files) \ + $(NULL) + + MAINTAINERCLEANFILES = \ +diff --git a/setup/Makefile.am b/setup/Makefile.am +index 34c8f136..b34aa8fc 100644 +--- a/setup/Makefile.am ++++ b/setup/Makefile.am +@@ -56,20 +56,16 @@ org.freedesktop.IBus.Setup.desktop: ibus-setup.desktop + $(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ + + man_one_in_files = ibus-setup.1.in +-man_one_files = $(man_one_in_files:.1.in=.1) +-man_one_DATA =$(man_one_files:.1=.1.gz) ++man_one_DATA = $(man_one_in_files:.1.in=.1) + man_onedir = $(mandir)/man1 + %.1: %.1.in + $(AM_V_GEN) sed \ + -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ + mv $@.tmp $@ +-%.1.gz: %.1 +- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@ + + CLEANFILES = \ + $(desktop_DATA) \ + $(man_one_DATA) \ +- $(man_one_files) \ + *.pyc \ + ibus-setup \ + $(NULL) +diff --git a/tools/Makefile.am b/tools/Makefile.am +index e300f9f3..0d00abed 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -113,15 +113,12 @@ libibusimmodule_la_LDFLAGS = \ + $(NULL) + + man_one_in_files = ibus.1.in +-man_one_files = $(man_one_in_files:.1.in=.1) +-man_one_DATA =$(man_one_files:.1=.1.gz) ++man_one_DATA = $(man_one_in_files:.1.in=.1) + man_onedir = $(mandir)/man1 + %.1: %.1.in + $(AM_V_GEN) sed \ + -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ + mv $@.tmp $@ +-%.1.gz: %.1 +- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@ + + EXTRA_DIST = \ + $(ibus_immodule_vapi) \ +@@ -133,7 +130,6 @@ EXTRA_DIST = \ + + CLEANFILES = \ + $(man_one_DATA) \ +- $(man_one_files) \ + $(NULL) + + if ENABLE_EMOJI_DICT +diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am +index 2a9cabde..5e1a8510 100644 +--- a/ui/gtk3/Makefile.am ++++ b/ui/gtk3/Makefile.am +@@ -257,15 +257,12 @@ panelbinding.o: $(srcdir)/panelbinding.c + + MAINTAINERCLEANFILES += extension.c panelbinding.c + +-man_seven_files = $(man_seven_in_files:.7.in=.7) +-man_seven_DATA =$(man_seven_files:.7=.7.gz) ++man_seven_DATA = $(man_seven_in_files:.7.in=.7) + man_sevendir = $(mandir)/man7 + %.7: %.7.in + $(AM_V_GEN) sed \ + -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ + mv $@.tmp $@ +-%.7.gz: %.7 +- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@ + + desktop_in_files = \ + ibus-ui-emojier.desktop.in \ +@@ -293,7 +290,6 @@ CLEANFILES += \ + $(desktop_DATA) \ + $(desktop_notrans_files) \ + $(man_seven_DATA) \ +- $(man_seven_files) \ + $(NULL) + + endif +-- +2.40.0 + +From 03a486c1ec98647e7f8c7dbb70e6e4d3898c9322 Mon Sep 17 00:00:00 2001 +From: Emil Velikov +Date: Sun, 11 Jun 2023 16:16:40 +0900 +Subject: [PATCH 2/2] makefile: manage the manpages via AC_CONFIG_FILES() + +The AC_CONFIG_FILES macro already known how to handle @VERSION@ +substitution, while also ensuring the input files are in the tarball +(EXTRA_DIST) and substituted files are removed on make distclean +(CONFIG_CLEAN_FILES). + +BUG=https://github.com/ibus/ibus/pull/2514 +--- + bus/Makefile.am | 12 +----------- + configure.ac | 6 ++++++ + data/dconf/Makefile.am | 12 +----------- + setup/Makefile.am | 9 +-------- + tools/Makefile.am | 12 +----------- + ui/gtk3/Makefile.am | 10 +--------- + 6 files changed, 11 insertions(+), 50 deletions(-) + +diff --git a/bus/Makefile.am b/bus/Makefile.am +index d0445d02..99715a15 100644 +--- a/bus/Makefile.am ++++ b/bus/Makefile.am +@@ -163,14 +163,9 @@ test_stress_LDADD = \ + $(NULL) + + EXTRA_DIST = \ +- $(man_one_in_files) \ + marshalers.list \ + $(NULL) + +-CLEANFILES = \ +- $(man_one_DATA) \ +- $(NULL) +- + $(libibus): + $(MAKE) -C $(top_builddir)/src + +@@ -179,12 +174,7 @@ test: ibus-daemon + G_DEBUG=fatal_warnings \ + $(builddir)/ibus-daemon -v + +-man_one_in_files = ibus-daemon.1.in +-man_one_DATA = $(man_one_in_files:.1.in=.1) ++man_one_DATA = ibus-daemon.1 + man_onedir = $(mandir)/man1 +-%.1: %.1.in +- $(AM_V_GEN) sed \ +- -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ +- mv $@.tmp $@ + + -include $(top_srcdir)/git.mk +diff --git a/configure.ac b/configure.ac +index b3eacbcb..73583bab 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -831,6 +831,7 @@ bindings/Makefile + bindings/pygobject/Makefile + bindings/vala/Makefile + bus/Makefile ++bus/ibus-daemon.1 + bus/services/Makefile + client/Makefile + client/gtk2/Makefile +@@ -847,6 +848,8 @@ data/icons/Makefile + data/its/Makefile + data/keymaps/Makefile + data/dconf/Makefile ++data/dconf/00-upstream-settings.5 ++data/dconf/ibus.5 + docs/Makefile + docs/reference/Makefile + docs/reference/ibus/ibus-docs.sgml +@@ -858,13 +861,16 @@ ibus/interface/Makefile + m4/Makefile + portal/Makefile + setup/Makefile ++setup/ibus-setup.1 + src/Makefile + src/compose/Makefile + src/ibusversion.h + src/tests/Makefile + tools/Makefile ++tools/ibus.1 + ui/Makefile + ui/gtk3/Makefile ++ui/gtk3/ibus-emoji.7 + util/Makefile + util/IMdkit/Makefile + Makefile +diff --git a/data/dconf/Makefile.am b/data/dconf/Makefile.am +index 2352f770..b0601aa8 100644 +--- a/data/dconf/Makefile.am ++++ b/data/dconf/Makefile.am +@@ -37,13 +37,8 @@ dconfdb_DATA = 00-upstream-settings + $(AM_V_GEN) $(srcdir)/make-dconf-override-db.sh > $@ || \ + { rc=$$?; $(RM) -rf $@; exit $$rc; } + +-man_5_in_files = 00-upstream-settings.5.in ibus.5.in +-man_5_DATA = $(man_5_in_files:.5.in=.5) ++man_5_DATA = 00-upstream-settings.5 ibus.5 + man_5dir = $(mandir)/man5 +-%.5: %.5.in +- $(AM_V_GEN) sed \ +- -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ +- mv $@.tmp $@ + + install-data-hook: + if test -z "$(DESTDIR)"; then \ +@@ -52,16 +47,11 @@ install-data-hook: + + EXTRA_DIST = \ + $(gsettings_SCHEMAS) \ +- $(man_5_in_files) \ + make-dconf-override-db.sh \ + profile/ibus \ + 00-upstream-settings \ + $(NULL) + +-CLEANFILES = \ +- $(man_5_DATA) \ +- $(NULL) +- + MAINTAINERCLEANFILES = \ + 00-upstream-settings \ + $(NULL) +diff --git a/setup/Makefile.am b/setup/Makefile.am +index b34aa8fc..831f883c 100644 +--- a/setup/Makefile.am ++++ b/setup/Makefile.am +@@ -55,24 +55,17 @@ desktopdir = $(datadir)/applications + org.freedesktop.IBus.Setup.desktop: ibus-setup.desktop + $(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ + +-man_one_in_files = ibus-setup.1.in +-man_one_DATA = $(man_one_in_files:.1.in=.1) ++man_one_DATA = ibus-setup.1 + man_onedir = $(mandir)/man1 +-%.1: %.1.in +- $(AM_V_GEN) sed \ +- -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ +- mv $@.tmp $@ + + CLEANFILES = \ + $(desktop_DATA) \ +- $(man_one_DATA) \ + *.pyc \ + ibus-setup \ + $(NULL) + + EXTRA_DIST = \ + $(desktop_notrans_files) \ +- $(man_one_in_files) \ + ibus-setup.in \ + setup.ui \ + $(NULL) +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 0d00abed..daf18f28 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -112,26 +112,16 @@ libibusimmodule_la_LDFLAGS = \ + -export-symbols-regex "ibus_.*" \ + $(NULL) + +-man_one_in_files = ibus.1.in +-man_one_DATA = $(man_one_in_files:.1.in=.1) ++man_one_DATA = ibus.1 + man_onedir = $(mandir)/man1 +-%.1: %.1.in +- $(AM_V_GEN) sed \ +- -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ +- mv $@.tmp $@ + + EXTRA_DIST = \ + $(ibus_immodule_vapi) \ + $(ibusimmodule_gir) \ +- $(man_one_in_files) \ + ibus.bash \ + IBusIMModule-1.0.metadata \ + $(NULL) + +-CLEANFILES = \ +- $(man_one_DATA) \ +- $(NULL) +- + if ENABLE_EMOJI_DICT + if ENABLE_UI + AM_VALAFLAGS += \ +diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am +index 5e1a8510..4a6506fe 100644 +--- a/ui/gtk3/Makefile.am ++++ b/ui/gtk3/Makefile.am +@@ -147,8 +147,6 @@ emoji_headers = \ + ibusemojidialog.h \ + $(NULL) + +-man_seven_in_files = ibus-emoji.7.in +- + # References: + # libappindicator/src/notification-item.xml + # libappindicator/src/notification-watcher.xml +@@ -156,7 +154,6 @@ man_seven_in_files = ibus-emoji.7.in + # kdelibs/kdeui/knotifications/src/org.kde.StatusNotifierWatcher.xml + EXTRA_DIST = \ + $(emoji_headers) \ +- $(man_seven_in_files) \ + emojierapp.vala \ + extension.vala \ + gtkextension.xml.in \ +@@ -257,12 +254,8 @@ panelbinding.o: $(srcdir)/panelbinding.c + + MAINTAINERCLEANFILES += extension.c panelbinding.c + +-man_seven_DATA = $(man_seven_in_files:.7.in=.7) ++man_seven_DATA = ibus-emoji.7 + man_sevendir = $(mandir)/man7 +-%.7: %.7.in +- $(AM_V_GEN) sed \ +- -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ +- mv $@.tmp $@ + + desktop_in_files = \ + ibus-ui-emojier.desktop.in \ +@@ -289,7 +282,6 @@ org.freedesktop.IBus.Panel.Extension.Gtk3.desktop: ibus-extension-gtk3.desktop + CLEANFILES += \ + $(desktop_DATA) \ + $(desktop_notrans_files) \ +- $(man_seven_DATA) \ + $(NULL) + + endif +-- +2.40.0 + +From 4831ed595b346f1ab9224b44e571532785ca86c7 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Sun, 11 Jun 2023 16:25:56 +0900 +Subject: [PATCH] setup: Unselect Add button in Select Input Method dialog + +After click "More" ListBoxRow cell in the "Select an input method" +dialog, "Add" button is sensitive but clicking "Add" button causes +a SEGV in enginedialog.py:get_selected_engine() because the more cell +has no engine memmber. + +BUG=rhbz#2213145 +--- + setup/enginedialog.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/setup/enginedialog.py b/setup/enginedialog.py +index 470f801c..ba6a4819 100644 +--- a/setup/enginedialog.py ++++ b/setup/enginedialog.py +@@ -4,7 +4,7 @@ + # ibus - The Input Bus + # + # Copyright (c) 2015 Peng Huang +-# Copyright (c) 2015-2021 Takao Fujiwara ++# Copyright (c) 2015-2023 Takao Fujiwara + # Copyright (c) 2013-2015 Red Hat, Inc. + # + # This program is free software; you can redistribute it and/or +@@ -145,6 +145,8 @@ class EngineDialog(Gtk.Dialog): + + def __row_activated(self, box, row): + if row == self.__more_row: ++ # Undo sensitive Gtk.ResponseType.APPLY button ++ self.__list.unselect_row(row) + self.__show_more() + return + if row.back: +-- +2.40.0 + +From 76f2f4a3aa25b399d65c947d76d61d5ae4723bc7 Mon Sep 17 00:00:00 2001 +From: Matt Turner +Date: Sun, 11 Jun 2023 19:59:17 +0900 +Subject: [PATCH 1/2] configure: Run autoupdate + +Avoids these warnings when running autogen.sh: + +configure.ac:67: warning: The macro `AC_GNU_SOURCE' is obsolete. +configure.ac:67: You should run autoupdate. +./lib/autoconf/specific.m4:311: AC_GNU_SOURCE is expanded from... +configure.ac:67: the top level +configure.ac:129: warning: The macro `AC_PROG_CC_STDC' is obsolete. +configure.ac:129: You should run autoupdate. +./lib/autoconf/c.m4:1671: AC_PROG_CC_STDC is expanded from... +configure.ac:129: the top level +configure.ac:139: warning: The macro `AM_DISABLE_STATIC' is obsolete. +configure.ac:139: You should run autoupdate. +m4/ltoptions.m4:260: AM_DISABLE_STATIC is expanded from... +configure.ac:139: the top level +configure.ac:140: warning: The macro `AC_ISC_POSIX' is obsolete. +configure.ac:140: You should run autoupdate. +./lib/autoconf/specific.m4:549: AC_ISC_POSIX is expanded from... +configure.ac:140: the top level +configure.ac:141: warning: The macro `AC_HEADER_STDC' is obsolete. +configure.ac:141: You should run autoupdate. +./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from... +configure.ac:141: the top level + +BUG=https://github.com/ibus/ibus/pull/2519 +--- + configure.ac | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 73583bab..cbdfbd05 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -64,7 +64,7 @@ AC_SUBST(VALA_TARGET_GLIB_VERSION) + # Init automake. + AM_INIT_AUTOMAKE([1.11.1 parallel-tests]) + AM_MAINTAINER_MODE([enable]) +-AC_GNU_SOURCE ++AC_USE_SYSTEM_EXTENSIONS + + # Support silent build rules. Disable + # by either passing --disable-silent-rules to configure or passing V=1 +@@ -126,7 +126,6 @@ AC_SUBST(DATE_DISPLAY) + # Check for programs. + AC_PROG_CC + AM_PROG_CC_C_O +-AC_PROG_CC_STDC + AM_PROG_VALAC([0.20]) + AC_PROG_INSTALL + AC_PROG_MAKE_SET +@@ -136,9 +135,9 @@ AM_GNU_GETTEXT_VERSION([0.19.8]) + AM_GNU_GETTEXT([external]) + + # Define PACKAGE_VERSION_* variables. +-AM_DISABLE_STATIC +-AC_ISC_POSIX +-AC_HEADER_STDC ++AC_DISABLE_STATIC([]) ++AC_SEARCH_LIBS([strerror],[cposix]) ++ + LT_INIT + + # Check header filess. +-- +2.40.0 + +From b97e6669ea8127dd50ce49d061edd4ce579bbb42 Mon Sep 17 00:00:00 2001 +From: Matt Turner +Date: Sun, 11 Jun 2023 19:59:18 +0900 +Subject: [PATCH 2/2] src/ibuscomposetable: Fix unaligned accesses + +Fixes: https://github.com/ibus/ibus/commit/19ca1065 + +BUG=https://github.com/ibus/ibus/issues/2518 +--- + src/ibuscomposetable.c | 23 +++++++++++++---------- + 1 file changed, 13 insertions(+), 10 deletions(-) + +diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c +index fc486692..c807c751 100644 +--- a/src/ibuscomposetable.c ++++ b/src/ibuscomposetable.c +@@ -732,8 +732,8 @@ compose_data_to_variant (gconstpointer compose_data, + gboolean reverse_endianness, + GError **error) + { +- guint16 *compose_data16 = NULL; +- guint32 *compose_data32 = NULL; ++ guint16 data16; ++ guint32 data32; + guint16 *target_data16 = NULL; + guint32 *target_data32 = NULL; + gsize i, length; +@@ -759,18 +759,20 @@ compose_data_to_variant (gconstpointer compose_data, + "Failed to malloc"); + return NULL; + } +- compose_data32 = (guint32*)compose_data; +- for (i = 0; i < length; i++) +- target_data32[i] = GUINT32_SWAP_LE_BE (compose_data32[i]); ++ for (i = 0; i < length; i++) { ++ memcpy(&data32, (char *)compose_data + i * sizeof (data32), sizeof (data32)); ++ target_data32[i] = GUINT32_SWAP_LE_BE (data32); ++ } + } else { + if (!(target_data16 = g_new0 (guint16, length))) { + g_set_error (error, IBUS_ERROR, IBUS_ERROR_FAILED, + "Failed to malloc"); + return NULL; + } +- compose_data16 = (guint16*)compose_data; +- for (i = 0; i < length; i++) +- target_data16[i] = GUINT16_SWAP_LE_BE (compose_data16[i]); ++ for (i = 0; i < length; i++) { ++ memcpy(&data16, (char *)compose_data + i * sizeof (data16), sizeof (data16)); ++ target_data16[i] = GUINT16_SWAP_LE_BE (data16); ++ } + } + } else { + if (is_32bit) +@@ -1365,8 +1367,9 @@ ibus_compose_table_new_with_list (GList *compose_list, + if (is_32bit) { + for (j = 0; compose_data->values[j]; j++) { + g_assert (v_index_32bit + j < v_size_32bit); +- ibus_compose_seqs_32bit_second[v_index_32bit + j] = +- compose_data->values[j]; ++ memcpy(&ibus_compose_seqs_32bit_second[v_index_32bit + j], ++ &compose_data->values[j], ++ sizeof *ibus_compose_seqs_32bit_second); + } + g_assert (m + 1 < (s_size_total - s_size_16bit) * n_index_stride); + ibus_compose_seqs_32bit_first[m++] = j; +-- +2.40.0 + diff --git a/ibus.spec b/ibus.spec index 1aeb7f3..100212e 100644 --- a/ibus.spec +++ b/ibus.spec @@ -50,7 +50,7 @@ Name: ibus Version: 1.5.28 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Intelligent Input Bus for Linux OS License: LGPL-2.0-or-later URL: https://github.com/ibus/%name/wiki @@ -559,6 +559,11 @@ dconf update || : %{_datadir}/installed-tests/ibus %changelog +* Sun Jun 11 2023 Takao Fujiwara - 1.5.28-7 +- Delete GZipped man files +- Resolves #2213145 Unselect Add button in Select Input Method dialog in setup +- Fix unaligned accesses in ibuscomposetable + * Fri May 26 2023 Takao Fujiwara - 1.5.28-6 - Resolves: #2195895 ibus_input_context_set_cursor_location(): ibus-x11 SIGSEGV