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] autotool: Delete upstreamed patches
Date: Sun, 31 May 2026 02:08:33 GMT [thread overview]
Message-ID: <178019331366.1.2971321519310882893.rpms-ibus-a9da27f5f0f7@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : a9da27f5f0f7ad429e337ac81b0f79a3d4c1b050
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2024-07-12T23:06:27+09:00
Stats : +0/-1590 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/a9da27f5f0f7ad429e337ac81b0f79a3d4c1b050?branch=autotool
Log:
Delete upstreamed patches
---
diff --git a/ibus-1.5.30.tar.gz.sum b/ibus-1.5.30.tar.gz.sum
deleted file mode 100644
index 7aa32da..0000000
--- a/ibus-1.5.30.tar.gz.sum
+++ /dev/null
@@ -1,4 +0,0 @@
-cksum 4283112382 4124084 ibus-1.5.30.tar.gz
-sha1sum cda03c8622d5817e1a968b38bd05240e2102928d ibus-1.5.30.tar.gz
-sha256sum 05b84d4a45139face161596e5ade8e6c5da55cfaf6f194861da66516190f5b96 ibus-1.5.30.tar.gz
-sha512sum cbed37bf62e8d8593c838f8ef7fe0b22bf8f4a661b887fc7be2f2768dda912075abdf3070c22b9699def90e7002aaaf7394f5fc590e12ef6ebb2bb5161cc29a0 ibus-1.5.30.tar.gz
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
deleted file mode 100644
index 12f7e19..0000000
--- a/ibus-HEAD.patch
+++ /dev/null
@@ -1,1586 +0,0 @@
-From 4059b9f43f4505c855677abde1b59fc13241ca58 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Tue, 2 Apr 2024 23:34:07 +0900
-Subject: [PATCH 1/6] Makefile: Add check sum file
-
----
- Makefile.am | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index 16548d25..88fdbd48 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -138,6 +138,14 @@ srpm: dist @PACKAGE_NAME@.spec
- --define "_specdir `pwd`/rpm" \
- @PACKAGE_NAME@.spec
-
-+@PACKAGE_NAME@-@PACKAGE_VERSION@.%.sum: @PACKAGE_NAME@-@PACKAGE_VERSION@.%
-+ f=`basename $@ .sum`; \
-+ printf "cksum %s %s %s\n" `cksum $$f` > $@; \
-+ printf "sha1sum %s %s\n" `sha1sum $$f` >> $@; \
-+ printf "sha256sum %s %s\n" `sha256sum $$f` >> $@; \
-+ printf "sha512sum %s %s\n" `sha512sum $$f` >> $@; \
-+ $(NULL)
-+
- clean-rpm:
- -$(RM) -r "`uname -i`"
-
---
-2.45.0
-
-From e39345af20c1dd9b18cdb6ccb5039b03e4135f73 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 13:18:42 +0900
-Subject: [PATCH 2/6] src/tests: Fix ibus-daemon in ibus-desktop-testing-runner
-
-Some distributions do not need the IBus panel and gnome-shell also
-does not need it.
-Add --verbose option to get ibus-daemon error messages.
-
-Add vala check in autogen.sh since valac changes the source codes.
----
- autogen.sh | 2 +-
- src/tests/ibus-desktop-testing-runner.in | 17 ++++++++++++++---
- 2 files changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/autogen.sh b/autogen.sh
-index d6f8f983..90e126ec 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -14,7 +14,7 @@ GCC_VERSION=$(gcc --version | head -1 | awk '{print $3}')
- GCC_MAJOR_VERSION=$(echo "$GCC_VERSION" | awk -F. '{print $1}')
- FEDORA_PKG1='autoconf automake libtool gettext-devel'
- FEDORA_PKG2='glib2-devel gtk2-devel gtk3-devel
-- wayland-devel'
-+ wayland-devel vala'
- FEDORA_PKG3='cldr-emoji-annotation iso-codes-devel unicode-emoji unicode-ucd
- xkeyboard-config-devel'
-
-diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
-index 6b208345..1ac2dfc8 100755
---- a/src/tests/ibus-desktop-testing-runner.in
-+++ b/src/tests/ibus-desktop-testing-runner.in
-@@ -45,6 +45,7 @@ TEST_LOG_STDOUT=0
- RESULT_LOG=""
- SCREEN_LOG=""
- HAVE_GRAPHICS=1
-+VERBOSE=0
- DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session"
- PID_XORG=0
- PID_GNOME_SESSION=0
-@@ -83,6 +84,7 @@ usage()
- "-b, --builddir=BUILDDIR Set the BUILDDIR\n" \
- "-s, --srcdir=SOURCEDIR Set the SOURCEDIR\n" \
- "-c, --no-graphics Use Xvfb instead of Xorg\n" \
-+"-V, --verbose Verbose log for ibus-daemon\n" \
- "-d, --desktop=DESKTOP Run DESTKTOP. The default is gnome-session.\n" \
- " Suffix '-with-dbus' can run DESKTOP with dbus session." \
- " E.g. --desktop=mutter-with-dbus" \
-@@ -101,8 +103,8 @@ usage()
- parse_args()
- {
- # This is GNU getopt. "sudo port getopt" in BSD?
-- ARGS=`getopt -o hvb:s:cd:t:r:T:o:O:S: --long \
-- help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,timeout:,output:,result:,screendump:\
-+ ARGS=`getopt -o hvb:s:cVd:t:r:T:o:O:S: --long \
-+ help,version,builddir:,srcdir:,no-graphics,verbose,desktop:,tests:,runner:,timeout:,output:,result:,screendump:\
- -- "$@"`;
- eval set -- "$ARGS"
- while [ 1 ] ; do
-@@ -112,6 +114,7 @@ parse_args()
- -b | --builddir ) BUILDDIR="$2"; shift 2;;
- -s | --srcdir ) SRCDIR="$2"; shift 2;;
- -c | --no-graphics ) HAVE_GRAPHICS=0; shift;;
-+ -V | --verbose ) VERBOSE=1; shift;;
- -d | --desktop ) DESKTOP_COMMAND="$2"; shift 2;;
- -t | --tests ) TESTS="$2"; shift 2;;
- -r | --runner ) TESTING_RUNNER="$2"; shift 2;;
-@@ -286,6 +289,7 @@ run_desktop()
- PID_GNOME_SESSION=$!
- sleep 30
-
-+ IBUS_ARGS="--verbose --panel disable"
- # gnome-shell 42 checks if org.freedesktop.IBus.session.GNOME.service
- # systemd file is available with org.freedesktop.systemd1.Manager.GetUnit
- # D-Bus method, which is provided by IBus 1.5.26, and if the file
-@@ -302,8 +306,15 @@ run_desktop()
- # with gnome-session.target systemd file.
- # But `systemctl start gdm` terminates the parent script forcibly
- # and the script cannot get the CI result.
-- ibus-daemon --daemonize --verbose
-+ if test $VERBOSE -eq 1 ; then
-+ ibus-daemon $IBUS_ARGS &
-+ else
-+ ibus-daemon $IBUS_ARGS --daemonize
-+ fi
- sleep 3
-+ if test $VERBOSE -eq 1 ; then
-+ ps -ef | grep ibus
-+ fi
- }
-
-
---
-2.45.0
-
-From f190da19b53c267ca1c9730e18f1b53c089c0247 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 15:37:00 +0900
-Subject: [PATCH 3/6] ui/gtk3: Configure initial keymaps with localectl in
- Wayland
-
-`setxkbmap -query` returns US layout with Xwayland and it does not
-correspond to the session keymaps so ibus-panel now uses
-`localectl status` in Wayland but it does not provide the session
-XKB options against `setxkbmap` command in Xorg.
-Need to think how to load or set the XKB options in Wayland later.
-
-BUG=rhbz#2267615
-BUG=https://github.com/ibus/ibus/pull/2624
----
- src/tests/ibus-keypress.c | 40 +++++++++----
- ui/gtk3/panel.vala | 2 +-
- ui/gtk3/xkblayout.vala | 123 ++++++++++++++++++++++++++++----------
- 3 files changed, 119 insertions(+), 46 deletions(-)
-
-diff --git a/src/tests/ibus-keypress.c b/src/tests/ibus-keypress.c
-index bab05398..d44f39b2 100644
---- a/src/tests/ibus-keypress.c
-+++ b/src/tests/ibus-keypress.c
-@@ -5,6 +5,14 @@
- #include <X11/Xlib.h>
- #include <X11/extensions/XTest.h>
-
-+#ifdef GDK_WINDOWING_WAYLAND
-+#if GTK_CHECK_VERSION (3, 98, 4)
-+#include <gdk/wayland/gdkwayland.h>
-+#else
-+#include <gdk/gdkwayland.h>
-+#endif
-+#endif
-+
- #define GREEN "\033[0;32m"
- #define RED "\033[0;31m"
- #define NC "\033[0m"
-@@ -186,15 +194,8 @@ set_engine_cb (GObject *object,
- }
-
- display = gtk_widget_get_display (entry);
-- if (GDK_IS_X11_DISPLAY (display)) {
-- xdisplay = gdk_x11_display_get_xdisplay (display);
-- } else {
--#if 0
-- xdisplay = XOpenDisplay (NULL);
--#else
-- g_critical ("No idea to simulate key events in Wayland\n");
--#endif
-- }
-+ g_assert (GDK_IS_X11_DISPLAY (display));
-+ xdisplay = gdk_x11_display_get_xdisplay (display);
- g_return_if_fail (xdisplay);
-
- for (i = 0; test_cases[i][0].keyval; i++) {
-@@ -272,12 +273,18 @@ create_window ()
- static void
- test_keypress (void)
- {
-+ gchar *path;
- int status = 0;
- GError *error = NULL;
-
-- g_spawn_command_line_sync ("setxkbmap -layout us",
-- NULL, NULL,
-- &status, &error);
-+ /* localectl does not change the session keymap. */
-+ path = g_find_program_in_path ("setxkbmap");
-+ if (path) {
-+ g_spawn_command_line_sync ("setxkbmap -layout us",
-+ NULL, NULL,
-+ &status, &error);
-+ }
-+ g_free (path);
- g_assert (register_ibus_engine ());
-
- create_window ();
-@@ -295,6 +302,15 @@ main (int argc, char *argv[])
- g_message ("Failed setenv NO_AT_BRIDGE\n");
- g_test_init (&argc, &argv, NULL);
- gtk_init (&argc, &argv);
-+#ifdef GDK_WINDOWING_WAYLAND
-+ {
-+ GdkDisplay *display = gdk_display_get_default ();
-+ if (GDK_IS_WAYLAND_DISPLAY (display)) {
-+ g_print ("setxkbmap and XTEST do not work in Wayland.\n");
-+ return 0;
-+ }
-+ }
-+#endif
-
- g_test_add_func ("/ibus/keyrepss", test_keypress);
-
-diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
-index 678b51f0..d907458e 100644
---- a/ui/gtk3/panel.vala
-+++ b/ui/gtk3/panel.vala
-@@ -510,7 +510,7 @@ class Panel : IBus.PanelService {
- string layouts;
- string variants;
- string option;
-- XKBLayout.get_layout(out layouts, out variants, out option);
-+ m_xkblayout.get_layout(out layouts, out variants, out option);
-
- GLib.List<IBus.EngineDesc> xkb_engines =
- new GLib.List<IBus.EngineDesc>();
-diff --git a/ui/gtk3/xkblayout.vala b/ui/gtk3/xkblayout.vala
-index 729b48ce..7812c4bb 100644
---- a/ui/gtk3/xkblayout.vala
-+++ b/ui/gtk3/xkblayout.vala
-@@ -4,7 +4,7 @@
- *
- * Copyright(c) 2014 Red Hat, Inc.
- * Copyright(c) 2014 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright(c) 2014 Takao Fujiwara <tfujiwar@redhat.com>
-+ * Copyright(c) 2014-2024 Takao Fujiwara <tfujiwar@redhat.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
-@@ -25,11 +25,11 @@
- class XKBLayout
- {
- private const string XKB_COMMAND = "setxkbmap";
-- private const string XKB_QUERY_ARG = "-query";
- private const string XKB_LAYOUT_ARG = "-layout";
- private const string XMODMAP_COMMAND = "xmodmap";
- private const string[] XMODMAP_KNOWN_FILES = {".xmodmap", ".xmodmaprc",
- ".Xmodmap", ".Xmodmaprc"};
-+ private string[] m_get_layout_args = {};
- private string[] m_xkb_latin_layouts = {};
- private string m_default_layout = "";
- private string m_default_variant = "";
-@@ -39,16 +39,23 @@ class XKBLayout
- public XKBLayout() {
- }
-
-+
- public void set_latin_layouts(string[] xkb_latin_layouts) {
- m_xkb_latin_layouts = xkb_latin_layouts;
- }
-
-- public static void get_layout(out string layout,
-- out string variant,
-- out string option) {
-+
-+ public void get_layout(out string layout,
-+ out string variant,
-+ out string option) {
-+ search_get_layout_program();
-+ if (m_get_layout_args[0] == null) {
-+ warning("Not found localectl or setxkbmap command in PATH");
-+ return;
-+ }
- string[] exec_command = {};
-- exec_command += XKB_COMMAND;
-- exec_command += XKB_QUERY_ARG;
-+ foreach (unowned string arg in m_get_layout_args)
-+ exec_command += arg;
- string standard_output = null;
- string standard_error = null;
- int exit_status = 0;
-@@ -69,46 +76,94 @@ class XKBLayout
- } catch (GLib.SpawnError err) {
- stderr.printf("IBUS_ERROR: %s\n", err.message);
- }
-- if (exit_status != 0) {
-+ if (exit_status != 0)
- stderr.printf("IBUS_ERROR: %s\n", standard_error ?? "");
-- }
-- if (standard_output == null) {
-+ if (standard_output == null)
- return;
-+
-+ if (exec_command[0] == "localectl") {
-+ parse_localectl_status_str(standard_output,
-+ out layout,
-+ out variant,
-+ out option);
-+ } else if (exec_command[0] == XKB_COMMAND) {
-+ parse_xkbmap_query_str(standard_output,
-+ out layout,
-+ out variant,
-+ out option);
- }
-+ }
-+
-
-+ private void search_get_layout_program() {
-+ if (m_get_layout_args[0] != null)
-+ return;
-+ string get_layout_command = null;
-+ // setxkbmap can get the session XKB options in Xorg.
-+ if (BindingCommon.default_is_xdisplay())
-+ get_layout_command = "setxkbmap -query";
-+ else if (GLib.Environment.find_program_in_path("localectl") != null)
-+ get_layout_command = "localectl status";
-+ else if (GLib.Environment.find_program_in_path("setxkbmap") != null)
-+ get_layout_command = "setxkbmap -query";
-+ if (get_layout_command != null)
-+ m_get_layout_args = get_layout_command.split(" ");
-+ }
-+
-+
-+ private void parse_localectl_status_str(string standard_output,
-+ out string layout,
-+ out string variant,
-+ out string option) {
-+ layout = "";
-+ variant = "";
-+ option = "";
- foreach (string line in standard_output.split("\n")) {
-- string element = "layout:";
-- string retval = "";
-- if (line.has_prefix(element)) {
-- retval = line[element.length:line.length];
-- if (retval != null) {
-- retval = retval.strip();
-+ const string[] elements = { "X11 Layout:", "X11 Variant:" };
-+ foreach (unowned string element in elements) {
-+ string retval = "";
-+ int index = line.index_of(element);
-+ if (index >= 0) {
-+ retval = line[index + element.length:line.length];
-+ if (retval != null)
-+ retval = retval.strip();
-+ if (element == elements[0])
-+ layout = retval;
-+ else if (element == elements[1])
-+ variant = retval;
- }
-- layout = retval;
- }
-+ }
-+ }
-
-- element = "variant:";
-- retval = "";
-- if (line.has_prefix(element)) {
-- retval = line[element.length:line.length];
-- if (retval != null) {
-- retval = retval.strip();
-- }
-- variant = retval;
-- }
-
-- element = "options:";
-- retval = "";
-- if (line.has_prefix(element)) {
-- retval = line[element.length:line.length];
-- if (retval != null) {
-- retval = retval.strip();
-+ private void parse_xkbmap_query_str(string standard_output,
-+ out string layout,
-+ out string variant,
-+ out string option) {
-+ layout = "";
-+ variant = "";
-+ option = "";
-+ foreach (string line in standard_output.split("\n")) {
-+ const string[] elements = { "layout:", "variant:", "options:" };
-+ foreach (unowned string element in elements) {
-+ string retval = "";
-+ if (line.has_prefix(element)) {
-+ retval = line[element.length:line.length];
-+ if (retval != null)
-+ retval = retval.strip();
-+ if (element == elements[0])
-+ layout = retval;
-+ else if (element == elements[1])
-+ variant = retval;
-+ else if (element == elements[2])
-+ option = retval;
- }
-- option = retval;
- }
- }
- }
-
-+
- public void set_layout(IBus.EngineDesc engine) {
- string layout = engine.get_layout();
- string variant = engine.get_layout_variant();
-@@ -206,6 +261,7 @@ class XKBLayout
- run_xmodmap();
- }
-
-+
- public void run_xmodmap() {
- if (!m_use_xmodmap) {
- return;
-@@ -246,6 +302,7 @@ class XKBLayout
- }
- }
-
-+
- public void set_use_xmodmap(bool use_xmodmap) {
- m_use_xmodmap = use_xmodmap;
- }
---
-2.45.0
-
-From 48c4a9c900421b9e77be399a4792974f25a80be6 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 16:17:58 +0900
-Subject: [PATCH 4/6] src/ibusenginesimple: Ignore Super modifier for compose
- keys
-
-Now IBus receives key events prior to the window manager and needs
-to ignore Super modifier since Super key has been already ignored
-for compose keys.
-
-BUG=https://gitlab.gnome.org/GNOME/mutter/-/issues/3128
----
- src/ibusenginesimple.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
-index 4bee8cb3..76dd9eb5 100644
---- a/src/ibusenginesimple.c
-+++ b/src/ibusenginesimple.c
-@@ -2,7 +2,7 @@
- /* vim:set et sts=4: */
- /* ibus - The Input Bus
- * Copyright (C) 2014 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2015-2023 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2015-2024 Takao Fujiwara <takao.fujiwara1@gmail.com>
- * Copyright (C) 2014-2017 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
-@@ -1017,7 +1017,9 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
- !is_hex_start && !is_hex_end && !is_escape && !is_backspace) ||
- (priv->in_emoji_sequence && !printable_keyval &&
- !is_emoji_start && !is_hex_end && !is_escape && !is_backspace)) {
-- if (modifiers & (IBUS_MOD1_MASK | IBUS_CONTROL_MASK) ||
-+ guint no_text_input_mask = IBUS_MOD1_MASK | IBUS_MOD4_MASK \
-+ | IBUS_CONTROL_MASK | IBUS_SUPER_MASK;
-+ if (modifiers & no_text_input_mask ||
- ((priv->in_hex_sequence || priv->in_emoji_sequence) &&
- priv->modifiers_dropped &&
- (keyval == IBUS_KEY_Return ||
---
-2.45.0
-
-From a3a5a20a30f2a8ecee4dc2aaa4fd48c62c91d768 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 16:18:03 +0900
-Subject: [PATCH 5/6] src/ibusenginesimple: Do not update zero length preedit
- text
-
-Several engines can inherit IBusEngieSimple for the compose key support
-likes Anthy, Hangul, M17n and it could have the duplicated preedit text
-between the engine and the parent IBusEngineSimple and it could update
-the preedit text mutually by mistake.
-
-Then the preedit text should not be hidden for zero length at least.
-This update might not be enough but hope to fix the cursor position
-reset with hiding the preedit text against the reported issue with
-`m17n:sa:itrans` engine.
-
-BUG=https://github.com/ibus/ibus/issues/2536
----
- src/ibusenginesimple.c | 41 +++++++++++++++++++++++++++++++++++------
- 1 file changed, 35 insertions(+), 6 deletions(-)
-
-diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
-index 76dd9eb5..ac478855 100644
---- a/src/ibusenginesimple.c
-+++ b/src/ibusenginesimple.c
-@@ -83,11 +83,13 @@ struct _IBusEngineSimplePrivate {
- IBusEngineDict *emoji_dict;
- IBusLookupTable *lookup_table;
- gboolean lookup_table_visible;
-+ IBusText *updated_preedit;
- };
-
- guint COMPOSE_BUFFER_SIZE = 20;
- G_LOCK_DEFINE_STATIC (global_tables);
- static GSList *global_tables;
-+static IBusText *updated_preedit_empty;
-
- /* functions prototype */
- static void ibus_engine_simple_destroy (IBusEngineSimple *simple);
-@@ -135,24 +137,29 @@ ibus_engine_simple_class_init (IBusEngineSimpleClass *class)
- engine_class->page_up = ibus_engine_simple_page_up;
- engine_class->candidate_clicked
- = ibus_engine_simple_candidate_clicked;
-+ updated_preedit_empty = ibus_text_new_from_string ("");
-+ g_object_ref_sink (updated_preedit_empty);
- }
-
- static void
- ibus_engine_simple_init (IBusEngineSimple *simple)
- {
-+ IBusEngineSimplePrivate *priv;
- GBytes *data;
- GError *error = NULL;
- const char *contents;
- gsize length = 0;
- IBusComposeTableEx *en_compose_table;
-
-- simple->priv = IBUS_ENGINE_SIMPLE_GET_PRIVATE (simple);
-- simple->priv->compose_buffer = g_new0 (guint, COMPOSE_BUFFER_SIZE + 1);
-- simple->priv->hex_mode_enabled =
-+ priv = simple->priv = IBUS_ENGINE_SIMPLE_GET_PRIVATE (simple);
-+ priv->compose_buffer = g_new0 (guint, COMPOSE_BUFFER_SIZE + 1);
-+ priv->hex_mode_enabled =
- g_getenv("IBUS_ENABLE_CTRL_SHIFT_U") != NULL ||
- g_getenv("IBUS_ENABLE_CONTROL_SHIFT_U") != NULL;
-- simple->priv->tentative_match = g_string_new ("");
-- simple->priv->tentative_match_len = 0;
-+ priv->tentative_match = g_string_new ("");
-+ priv->tentative_match_len = 0;
-+ priv->updated_preedit =
-+ (IBusText *)g_object_ref_sink (updated_preedit_empty);
- data = g_resources_lookup_data ("/org/freedesktop/ibus/compose/sequences",
- G_RESOURCE_LOOKUP_FLAGS_NONE,
- &error);
-@@ -190,6 +197,7 @@ ibus_engine_simple_destroy (IBusEngineSimple *simple)
- g_string_free (priv->tentative_match, TRUE);
- priv->tentative_match = NULL;
- priv->tentative_match_len = 0;
-+ g_clear_object (&priv->updated_preedit);
-
- IBUS_OBJECT_CLASS(ibus_engine_simple_parent_class)->destroy (
- IBUS_OBJECT (simple));
-@@ -228,6 +236,9 @@ ibus_engine_simple_reset (IBusEngine *engine)
- priv->tentative_match_len = 0;
- }
- ibus_engine_hide_preedit_text ((IBusEngine *)simple);
-+ g_object_unref (priv->updated_preedit);
-+ priv->updated_preedit =
-+ (IBusText *)g_object_ref_sink (updated_preedit_empty);
- }
-
- static void
-@@ -318,7 +329,10 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
- int len = strlen (priv->tentative_emoji);
- ibus_text_append_attribute (text,
- IBUS_ATTR_TYPE_UNDERLINE, IBUS_ATTR_UNDERLINE_SINGLE, 0, len);
-+ g_object_ref_sink (text);
- ibus_engine_update_preedit_text ((IBusEngine *)simple, text, len, TRUE);
-+ g_object_unref (priv->updated_preedit);
-+ priv->updated_preedit = text;
- g_string_free (s, TRUE);
- return;
- } else if (priv->in_compose_sequence) {
-@@ -370,7 +384,19 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
- }
-
- if (s->len == 0) {
-- ibus_engine_hide_preedit_text ((IBusEngine *)simple);
-+ /* #2536 IBusEngine can inherit IBusEngineSimple for comopse keys.
-+ * If the previous preedit is zero, the current preedit does not
-+ * need to be hidden here at least because ibus-daemon could have
-+ * another preedit for the child IBusEnigne likes m17n and caclling
-+ * ibus_engine_hide_preedit_text() here could cause a reset of
-+ * the cursor position in ibus-daemon.
-+ */
-+ if (strlen (priv->updated_preedit->text)) {
-+ ibus_engine_hide_preedit_text ((IBusEngine *)simple);
-+ g_object_unref (priv->updated_preedit);
-+ priv->updated_preedit =
-+ (IBusText *)g_object_ref_sink (updated_preedit_empty);
-+ }
- } else if (s->len >= G_MAXINT) {
- g_warning ("%s is too long compose length: %lu", s->str, s->len);
- } else {
-@@ -378,7 +404,10 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
- IBusText *text = ibus_text_new_from_string (s->str);
- ibus_text_append_attribute (text,
- IBUS_ATTR_TYPE_UNDERLINE, IBUS_ATTR_UNDERLINE_SINGLE, 0, len);
-+ g_object_ref_sink (text);
- ibus_engine_update_preedit_text ((IBusEngine *)simple, text, len, TRUE);
-+ g_object_unref (priv->updated_preedit);
-+ priv->updated_preedit = text;
- }
- g_string_free (s, TRUE);
- }
---
-2.45.0
-
-From 627e7cc37d3bea4c288c932773f69fcee9ac773e Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 16:28:40 +0900
-Subject: [PATCH 6/6] ui/gtk3: Fix to unref GdkDisplay in Wayland
-
-Panel does not need to allocate the X11 display in Wayland but the check
-only. Vala codes need to set the unowned parameter.
-Also fixed a memory leak in the update preedit in daemon.
-
-BUG=rhbz#2252227
-BUG=https://github.com/ibus/ibus/issues/2642
-BUG=https://github.com/ibus/ibus/issues/2644
----
- bus/inputcontext.c | 1 +
- ui/gtk3/application.vala | 2 +
- ui/gtk3/bindingcommon.vala | 6 +-
- ui/gtk3/handle.vala | 2 +
- ui/gtk3/panel.vala | 18 ++++-
- 6 files changed, 96 insertions(+), 78 deletions(-)
-
-diff --git a/bus/inputcontext.c b/bus/inputcontext.c
-index c914fbd2..7666f057 100644
---- a/bus/inputcontext.c
-+++ b/bus/inputcontext.c
-@@ -3306,6 +3306,7 @@ bus_input_context_update_preedit_text (BusInputContext *context,
- pre_data.key = 'm';
- if (bus_input_context_make_post_process_key_event (context,
- &pre_data)) {
-+ g_variant_unref (variant);
- return;
- } else if (context->client_commit_preedit) {
- bus_input_context_emit_signal (
-diff --git a/ui/gtk3/application.vala b/ui/gtk3/application.vala
-index ae67624f..31517c79 100644
---- a/ui/gtk3/application.vala
-+++ b/ui/gtk3/application.vala
-@@ -228,6 +228,8 @@ class Application {
- }
-
- private static void make_wayland_im() {
-+ if (BindingCommon.default_is_xdisplay())
-+ return;
- assert (open_log());
- void *wl_display = null;
- ulong i = 0;
-diff --git a/ui/gtk3/bindingcommon.vala b/ui/gtk3/bindingcommon.vala
-index e32db178..7e6443c5 100644
---- a/ui/gtk3/bindingcommon.vala
-+++ b/ui/gtk3/bindingcommon.vala
-@@ -259,11 +259,11 @@ class BindingCommon {
-
- public static bool default_is_xdisplay() {
- if (m_xdisplay == null)
-- get_xdisplay();
-+ get_xdisplay(true);
- return m_default_is_xdisplay;
- }
-
-- public static Gdk.X11.Display? get_xdisplay() {
-+ public static Gdk.X11.Display? get_xdisplay(bool check_only=false) {
- if (m_xdisplay != null)
- return m_xdisplay;
- var display = Gdk.Display.get_default();
-@@ -277,6 +277,8 @@ class BindingCommon {
- m_xdisplay = (Gdk.X11.Display)display;
- return m_xdisplay;
- }
-+ if (check_only)
-+ return null;
- Gdk.set_allowed_backends("x11");
- // Call _gdk_display_manager_add_display() internally.
- m_xdisplay =
-diff --git a/ui/gtk3/handle.vala b/ui/gtk3/handle.vala
-index 65635439..1d0eefe9 100644
---- a/ui/gtk3/handle.vala
-+++ b/ui/gtk3/handle.vala
-@@ -62,6 +62,8 @@ class Handle : Gtk.EventBox {
- }
-
- public override bool button_press_event(Gdk.EventButton event) {
-+ if (!BindingCommon.default_is_xdisplay())
-+ return false;
- if (event.button != 1)
- return false;
- m_workarea = Gdk.Rectangle(){
-diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
-index d907458e..534a9d37 100644
---- a/ui/gtk3/panel.vala
-+++ b/ui/gtk3/panel.vala
-@@ -166,6 +166,9 @@ class Panel : IBus.PanelService {
- property_activate(k, s);
- });
-
-+ set_version();
-+ check_wayland();
-+
- state_changed();
- }
-
-@@ -443,6 +446,8 @@ class Panel : IBus.PanelService {
- }
-
- private void bind_switch_shortcut() {
-+ if (m_is_wayland_im)
-+ return;
- string[] accelerators = m_settings_hotkey.get_strv("triggers");
-
- var keybinding_manager = KeybindingManager.get_instance();
-@@ -874,6 +879,16 @@ class Panel : IBus.PanelService {
- message = format.printf(Environment.get_prgname());
- }
- }
-+ if (!m_is_wayland && m_is_wayland_im) {
-+ var format =
-+ _("Seems you run %s with '--enable-wayland-im' " +
-+ "option but your display server is Xorg so the Wayland " +
-+ "feature is disabled. You would be better off running " +
-+ "ibus-daemon directly instead or %s without that " +
-+ "option.");
-+ unowned string prgname = Environment.get_prgname();
-+ message = format.printf(prgname, prgname);
-+ }
- if (message == null)
- return;
- #if ENABLE_LIBNOTIFY
-@@ -908,9 +923,6 @@ class Panel : IBus.PanelService {
-
-
- public void load_settings() {
-- set_version();
-- check_wayland();
--
- init_engines_order();
-
- // Update m_use_system_keyboard_layout before update_engines()
---
-2.45.0
-
-From aea035a96261f9c3a36f5cd9c30b84b1d7609103 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 8 Jun 2024 10:23:31 +0900
-Subject: [PATCH] ui/gtk3: Fix Super-space in Wayland
-
-ibus_bus_set_global_shortcut_keys_async() was not called in Plasma
-Wayland after "Fix to unref GdkDisplay in Wayland" patch is applied.
-Now it's called correctly and the event handler is disabled instead.
-
-BUG=rhbz#2290842
-BUG=https://github.com/ibus/ibus/issues/2644
-Fixes: https://github.com/ibus/ibus/commit/627e7cc
----
- ui/gtk3/keybindingmanager.vala | 9 +++++----
- ui/gtk3/panel.vala | 5 ++---
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/ui/gtk3/keybindingmanager.vala b/ui/gtk3/keybindingmanager.vala
-index 71b4acb2..d4c7636a 100644
---- a/ui/gtk3/keybindingmanager.vala
-+++ b/ui/gtk3/keybindingmanager.vala
-@@ -60,8 +60,9 @@ public class KeybindingManager : GLib.Object {
- public delegate void KeybindingHandlerFunc(Gdk.Event event);
-
-
-- private KeybindingManager() {
-- Gdk.Event.handler_set(event_handler);
-+ private KeybindingManager(bool is_wayland_im) {
-+ if (!is_wayland_im)
-+ Gdk.Event.handler_set(event_handler);
- }
-
- /**
-@@ -107,9 +108,9 @@ public class KeybindingManager : GLib.Object {
- m_bindings.remove (binding);
- }
-
-- public static KeybindingManager get_instance () {
-+ public static KeybindingManager get_instance (bool is_wayland_im=false) {
- if (m_instance == null)
-- m_instance = new KeybindingManager ();
-+ m_instance = new KeybindingManager (is_wayland_im);
- return m_instance;
- }
-
-diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
-index 534a9d37..b24c23ac 100644
---- a/ui/gtk3/panel.vala
-+++ b/ui/gtk3/panel.vala
-@@ -446,11 +446,10 @@ class Panel : IBus.PanelService {
- }
-
- private void bind_switch_shortcut() {
-- if (m_is_wayland_im)
-- return;
- string[] accelerators = m_settings_hotkey.get_strv("triggers");
-
-- var keybinding_manager = KeybindingManager.get_instance();
-+ var keybinding_manager =
-+ KeybindingManager.get_instance(m_is_wayland_im);
-
- BindingCommon.KeyEventFuncType ftype =
- BindingCommon.KeyEventFuncType.IME_SWITCHER;
---
-2.45.0
-
-From be94b8ddb4c37fe83646860a08c600b98e67fe84 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 25 May 2024 18:10:36 +0900
-Subject: [PATCH] src/ibusengine: Hide preedit text with PanelExtensionReceived
- signal
-
-IBusEngineSimple no longer calls to hide the preedit with the zero
-length to fix the slurring cursor position but the emoji preedit
-becomes not to be hidden with the preedit commit or escape events
-as a side effect.
-To fix the issue, IBusEngine needs to decide to clear or keep
-the preedit when the emoji mode is finished.
-
-BUG=https://github.com/ibus/ibus/issues/2536
-Fixes: https://github.com/ibus/ibus/commit/a3a5a20a
----
- src/ibusengine.c | 11 +++++++++++
- src/ibusenginesimple.c | 2 +-
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/src/ibusengine.c b/src/ibusengine.c
-index eff4992c..0352fd49 100644
---- a/src/ibusengine.c
-+++ b/src/ibusengine.c
-@@ -1326,6 +1326,17 @@ ibus_engine_service_method_call (IBusService *service,
- return;
- }
- priv->enable_extension = ibus_extension_event_is_enabled (event);
-+ /* IBusEngineSimple no longer calls to hide the preedit with the zero
-+ * lenght and this sends the null preedit here when the emojier
-+ * commits or escapes the emoji preedit text.
-+ * TODO: Do we need a signal for the parent engines to inform this
-+ * information because some engines don't wish to hide their preedit
-+ * with hiding the emoji preedit?
-+ */
-+ if (!priv->enable_extension) {
-+ IBusText *text = ibus_text_new_from_static_string ("");
-+ ibus_engine_update_preedit_text (engine, text, 0, FALSE);
-+ }
- g_dbus_method_invocation_return_value (invocation, NULL);
- return;
- }
-diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
-index ac478855..e2f96a37 100644
---- a/src/ibusenginesimple.c
-+++ b/src/ibusenginesimple.c
-@@ -385,7 +385,7 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
-
- if (s->len == 0) {
- /* #2536 IBusEngine can inherit IBusEngineSimple for comopse keys.
-- * If the previous preedit is zero, the current preedit does not
-+ * If the previous preedit is zero, the current preedit does not
- * need to be hidden here at least because ibus-daemon could have
- * another preedit for the child IBusEnigne likes m17n and caclling
- * ibus_engine_hide_preedit_text() here could cause a reset of
---
-2.45.0
-
-From 759105df1d83ae25d9eea801a7c91e67dca43cb8 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 25 May 2024 19:23:23 +0900
-Subject: [PATCH 1/6] bus: Change IBus unique name to :1.0 from IBUS_SERVICE_IBUS
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-According to the D-Bus specification,
-`org.freedesktop.DBus.GetNameOwner()` must return a unique name (i.e.
-one of the form `:1.23`). The only unique name which is allowed to not
-be in this form is `org.freedesktop.DBus`.
-
-The change in GLib 2.80.1 was to validate that the sender of every
-message is either a unique name (according to `g_dbus_is_unique_name()`),
-or the special name `org.freedesktop.DBus` to meet the specification.
-
-In the long term, it might be more robust to rework the code so that the
-mapping from `org.freedesktop.IBus` → a unique name is stored in
-`dbus->names` (in `dbusimpl.c`) like all the other requested names.
-However, handling for the `org.freedesktop.IBus` well-known name is
-hardcoded throughout `dbusimpl.c`, so porting this single bit of it to
-create a `BusNameService` would probably cause more problems.
-
-BUG=https://github.com/ibus/ibus/issues/2639
-BUG=https://gitlab.gnome.org/GNOME/glib/-/issues/3268
-BUG=https://github.com/advisories/GHSA-f632-c3rh-r2v2
----
- bus/connection.h | 3 +++
- bus/dbusimpl.c | 29 +++++++++++++++--------------
- bus/ibusimpl.c | 13 +++++++------
- bus/inputcontext.c | 2 +-
- bus/matchrule.c | 10 +++++++++-
- bus/matchrule.h | 4 +++-
- 6 files changed, 38 insertions(+), 23 deletions(-)
-
-diff --git a/bus/connection.h b/bus/connection.h
-index 440faf1e..8264980e 100644
---- a/bus/connection.h
-+++ b/bus/connection.h
-@@ -42,6 +42,9 @@
- #define BUS_CONNECTION_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), BUS_TYPE_CONNECTION, BusConnectionClass))
-
-+/* bus_dbus_impl_hello() sets the client unique names ":1.1" or later. */
-+#define IBUS_NAME_OWNER_NAME ":1.0"
-+
- G_BEGIN_DECLS
-
- typedef struct _BusConnection BusConnection;
-diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
-index 59787a80..52092e58 100644
---- a/bus/dbusimpl.c
-+++ b/bus/dbusimpl.c
-@@ -710,7 +710,8 @@ bus_dbus_impl_list_names (BusDBusImpl *dbus,
-
- /* FIXME should add them? */
- g_variant_builder_add (&builder, "s", "org.freedesktop.DBus");
-- g_variant_builder_add (&builder, "s", "org.freedesktop.IBus");
-+ g_variant_builder_add (&builder, "s", IBUS_SERVICE_IBUS);
-+ g_variant_builder_add (&builder, "s", IBUS_NAME_OWNER_NAME);
-
- /* append well-known names */
- GList *names, *name;
-@@ -785,11 +786,11 @@ bus_dbus_impl_get_name_owner (BusDBusImpl *dbus,
- const gchar *name = NULL;
- g_variant_get (parameters, "(&s)", &name);
-
-- if (g_strcmp0 (name, "org.freedesktop.DBus") == 0 ||
-- g_strcmp0 (name, "org.freedesktop.IBus") == 0) {
-+ if (!g_strcmp0 (name, "org.freedesktop.DBus")) {
- name_owner = name;
-- }
-- else {
-+ } else if (!g_strcmp0 (name, IBUS_SERVICE_IBUS)) {
-+ name_owner = IBUS_NAME_OWNER_NAME;
-+ } else {
- BusConnection *owner = bus_dbus_impl_get_connection_by_name (dbus, name);
- if (owner != NULL) {
- name_owner = bus_connection_get_unique_name (owner);
-@@ -800,8 +801,7 @@ bus_dbus_impl_get_name_owner (BusDBusImpl *dbus,
- g_dbus_method_invocation_return_error (invocation,
- G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER,
- "Can not get name owner of '%s': no such name", name);
-- }
-- else {
-+ } else {
- g_dbus_method_invocation_return_value (invocation,
- g_variant_new ("(s)", name_owner));
- }
-@@ -932,6 +932,9 @@ bus_dbus_impl_add_match (BusDBusImpl *dbus,
- "Parse match rule [%s] failed", rule_text);
- return;
- }
-+ /* ibus_bus_watch_ibus_signal() supports IBUS_SERVICE_IBUS sender. */
-+ if (!g_strcmp0 (bus_match_rule_get_sender (rule), IBUS_SERVICE_IBUS))
-+ bus_match_rule_set_sender (rule, IBUS_NAME_OWNER_NAME);
-
- g_dbus_method_invocation_return_value (invocation, NULL);
- GList *p;
-@@ -1510,7 +1513,8 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
- /* connection unique name as sender of the message*/
- g_dbus_message_set_sender (message, bus_connection_get_unique_name (connection));
-
-- if (g_strcmp0 (destination, "org.freedesktop.IBus") == 0) {
-+ if (!g_strcmp0 (destination, IBUS_SERVICE_IBUS) ||
-+ !g_strcmp0 (destination, IBUS_NAME_OWNER_NAME)) {
- /* the message is sent to IBus service. messages from ibusbus and ibuscontext may fall into this category. */
- switch (message_type) {
- case G_DBUS_MESSAGE_TYPE_METHOD_CALL:
-@@ -1528,8 +1532,7 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
- g_object_unref (message);
- g_return_val_if_reached (NULL); /* return NULL since the service does not handle signals. */
- }
-- }
-- else if (g_strcmp0 (destination, "org.freedesktop.DBus") == 0) {
-+ } else if (!g_strcmp0 (destination, "org.freedesktop.DBus")) {
- /* the message is sent to DBus service. messages from ibusbus may fall into this category. */
- switch (message_type) {
- case G_DBUS_MESSAGE_TYPE_METHOD_CALL:
-@@ -1547,8 +1550,7 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
- g_object_unref (message);
- g_return_val_if_reached (NULL); /* return NULL since the service does not handle signals. */
- }
-- }
-- else if (destination == NULL) {
-+ } else if (destination == NULL) {
- /* the message is sent to the current connection. communications between ibus-daemon and panel/engines may fall into this
- * category since the panel/engine proxies created by ibus-daemon does not set bus name. */
- switch (message_type) {
-@@ -1570,8 +1572,7 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
- g_object_unref (message);
- g_return_val_if_reached (NULL); /* return NULL since the service does not handle messages. */
- }
-- }
-- else {
-+ } else {
- /* The message is sent to an other service. Forward it.
- * For example, the config proxy class in src/ibusconfig.c sets its "g-name" property (i.e. destination) to IBUS_SERVICE_CONFIG. */
- bus_dbus_impl_forward_message (dbus, connection, message);
-diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
-index 875cd550..8681c78b 100644
---- a/bus/ibusimpl.c
-+++ b/bus/ibusimpl.c
-@@ -2388,19 +2388,20 @@ bus_ibus_impl_property_changed (BusIBusImpl *service,
- GVariant *value)
- {
- GDBusMessage *message =
-- g_dbus_message_new_signal ("/org/freedesktop/IBus",
-+ g_dbus_message_new_signal (IBUS_PATH_IBUS,
- "org.freedesktop.DBus.Properties",
- "PropertiesChanged");
-
- /* set a non-zero serial to make libdbus happy */
- g_dbus_message_set_serial (message, 1);
-- g_dbus_message_set_sender (message, "org.freedesktop.IBus");
-+ g_dbus_message_set_sender (message, IBUS_NAME_OWNER_NAME);
-+
-
- GVariantBuilder *builder = g_variant_builder_new (G_VARIANT_TYPE_ARRAY);
- g_variant_builder_add (builder, "{sv}", property_name, value);
- g_dbus_message_set_body (message,
- g_variant_new ("(sa{sv}as)",
-- "org.freedesktop.IBus",
-+ IBUS_SERVICE_IBUS,
- builder,
- NULL));
- g_variant_builder_unref (builder);
-@@ -2419,12 +2420,12 @@ bus_ibus_impl_emit_signal (BusIBusImpl *ibus,
- const gchar *signal_name,
- GVariant *parameters)
- {
-- GDBusMessage *message = g_dbus_message_new_signal ("/org/freedesktop/IBus",
-- "org.freedesktop.IBus",
-+ GDBusMessage *message = g_dbus_message_new_signal (IBUS_PATH_IBUS,
-+ IBUS_INTERFACE_IBUS,
- signal_name);
- /* set a non-zero serial to make libdbus happy */
- g_dbus_message_set_serial (message, 1);
-- g_dbus_message_set_sender (message, "org.freedesktop.IBus");
-+ g_dbus_message_set_sender (message, IBUS_NAME_OWNER_NAME);
- if (parameters)
- g_dbus_message_set_body (message, parameters);
- bus_dbus_impl_dispatch_message_by_rule (BUS_DEFAULT_DBUS, message, NULL);
-diff --git a/bus/inputcontext.c b/bus/inputcontext.c
-index 7666f057..e0ad0742 100644
---- a/bus/inputcontext.c
-+++ b/bus/inputcontext.c
-@@ -755,7 +755,7 @@ bus_input_context_send_signal (BusInputContext *context,
- ibus_service_get_object_path ((IBusService *)context),
- interface_name,
- signal_name);
-- g_dbus_message_set_sender (message, "org.freedesktop.IBus");
-+ g_dbus_message_set_sender (message, IBUS_NAME_OWNER_NAME);
- g_dbus_message_set_destination (
- message,
- bus_connection_get_unique_name (context->connection));
-diff --git a/bus/matchrule.c b/bus/matchrule.c
-index 4fb1d902..2381ca9e 100644
---- a/bus/matchrule.c
-+++ b/bus/matchrule.c
-@@ -2,7 +2,8 @@
- /* vim:set et sts=4: */
- /* IBus - The Input Bus
- * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2008-2010 Red Hat, Inc.
-+ * Copyright (C) 2024 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2008-2024 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
-@@ -407,6 +408,13 @@ bus_match_rule_set_message_type (BusMatchRule *rule,
- return TRUE;
- }
-
-+const gchar *
-+bus_match_rule_get_sender (BusMatchRule *rule)
-+{
-+ g_return_val_if_fail (rule != NULL, NULL);
-+ return rule->sender;
-+}
-+
- gboolean
- bus_match_rule_set_sender (BusMatchRule *rule,
- const gchar *sender)
-diff --git a/bus/matchrule.h b/bus/matchrule.h
-index 1dd304cd..37b6347b 100644
---- a/bus/matchrule.h
-+++ b/bus/matchrule.h
-@@ -2,7 +2,8 @@
- /* vim:set et sts=4: */
- /* IBus - The Input Bus
- * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2008-2010 Red Hat, Inc.
-+ * Copyright (C) 2024 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2008-2024 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
-@@ -57,6 +58,7 @@ void bus_match_rule_free (BusMatchRule *rule);
- gboolean bus_match_rule_set_message_type
- (BusMatchRule *rule,
- gint type);
-+const gchar * bus_match_rule_get_sender (BusMatchRule *rule);
- gboolean bus_match_rule_set_sender (BusMatchRule *rule,
- const gchar *sender);
- gboolean bus_match_rule_set_interface
---
-2.45.0
-
-From a4d58cb859cad4a0c12e2c2a34f440f77cd73bae Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 1 Jun 2024 20:20:19 +0900
-Subject: [PATCH 2/6] portal: Let Flatpak application accept new IBus unique name
-
-ibus-portal can accept the connection from IBUS_SERVICE_IBUS only
-but now the IBus unique name is changed to IBUS_NAME_OWNER_NAME
-as the D-Bus name owner and probably I think the name check is
-not needed and just delete it.
-
-BUG=https://github.com/ibus/ibus/issues/2639
-Fixes: https://github.com/ibus/ibus/commit/759105d
----
- portal/portal.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/portal/portal.c b/portal/portal.c
-index c2e4fc7f..34da9679 100644
---- a/portal/portal.c
-+++ b/portal/portal.c
-@@ -400,9 +400,6 @@ portal_context_g_signal (GDBusProxy *proxy,
- GError *error = NULL;
- GDBusConnection *connection;
-
-- if (g_strcmp0 (sender_name, IBUS_SERVICE_IBUS) != 0)
-- return;
--
- connection = g_dbus_interface_skeleton_get_connection (
- G_DBUS_INTERFACE_SKELETON (portal_context));
- if (!g_dbus_connection_emit_signal (connection,
---
-2.45.0
-
-From 02632ccdd430fdc3d1a58025d31c5ec72d9a7989 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 1 Jun 2024 20:32:29 +0900
-Subject: [PATCH 3/6] portal: Support new sync ibus_input_context_process_key_event()
-
-IBus clients have been enhanced with the new synchronous
-"ProcessKeyEvent" to fix the long-standing issues and ibus-portal
-also needs to support it.
-
-Fixes: https://github.com/ibus/ibus/commit/38f09c6
----
- portal/org.freedesktop.IBus.Portal.xml | 7 +++-
- portal/portal.c | 54 ++++++++++++++++++++++++--
- 2 files changed, 56 insertions(+), 5 deletions(-)
-
-diff --git a/portal/org.freedesktop.IBus.Portal.xml b/portal/org.freedesktop.IBus.Portal.xml
-index 376ad424..0b3f6864 100644
---- a/portal/org.freedesktop.IBus.Portal.xml
-+++ b/portal/org.freedesktop.IBus.Portal.xml
-@@ -1,6 +1,6 @@
- <?xml version="1.0"?>
- <!--
-- Copyright (C) 2017-2019 Red Hat, Inc.
-+ Copyright (C) 2017-2024 Red Hat, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
-@@ -128,8 +128,13 @@
- <arg type='v' name='prop' />
- </signal>
-
-+ <property name='PostProcessKeyEvent' type='(a(yv))' access='read'>
-+ </property>
- <property name='ContentType' type='(uu)' access='write' />
- <property name='ClientCommitPreedit' type='(b)' access='write' />
-+ <property name='EffectivePostProcessKeyEvent' type='(b)' access='write'>
-+ </property>
-+
- </interface>
-
- <interface name='org.freedesktop.IBus.Service'>
-diff --git a/portal/portal.c b/portal/portal.c
-index 34da9679..5cd38779 100644
---- a/portal/portal.c
-+++ b/portal/portal.c
-@@ -1,7 +1,7 @@
- /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
- /* vim:set et sts=4: */
- /* ibus - The Input Bus
-- * Copyright (C) 2017-2021 Red Hat, Inc.
-+ * Copyright (C) 2017-2024 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
-@@ -66,8 +66,10 @@ struct _IBusPortalClass
-
- enum
- {
-- PROP_CONTENT_TYPE = 1,
-+ PROP_POST_PROCESS_KEY_EVENT = 1,
-+ PROP_CONTENT_TYPE,
- PROP_CLIENT_COMMIT_PREEDIT,
-+ PROP_EFFECTIVE_POST_PROCESS_KEY_EVENT,
- N_PROPERTIES
- };
-
-@@ -330,6 +332,23 @@ ibus_portal_context_set_property (IBusPortalContext *portal_context,
- NULL /* user_data */
- );
- break;
-+ case PROP_EFFECTIVE_POST_PROCESS_KEY_EVENT:
-+ g_dbus_proxy_call (G_DBUS_PROXY (portal_context->context),
-+ "org.freedesktop.DBus.Properties.Set",
-+ g_variant_new ("(ssv)",
-+ IBUS_INTERFACE_INPUT_CONTEXT,
-+ "EffectivePostProcessKeyEvent",
-+ g_value_get_variant (value)),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, /* cancellable */
-+ NULL, /* callback */
-+ NULL /* user_data */
-+ );
-+ break;
-+ case PROP_POST_PROCESS_KEY_EVENT:
-+ g_warning ("No support for setting content type");
-+ break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (portal_context, prop_id, pspec);
- }
-@@ -341,10 +360,37 @@ ibus_portal_context_get_property (IBusPortalContext *portal_context,
- GValue *value,
- GParamSpec *pspec)
- {
-+ GVariant *result;
-+ GVariant *variant = NULL;
-+ GError *error = NULL;
- switch (prop_id) {
-+ case PROP_POST_PROCESS_KEY_EVENT:
-+ result = g_dbus_proxy_call_sync (G_DBUS_PROXY (portal_context->context),
-+ "org.freedesktop.DBus.Properties.Get",
-+ g_variant_new (
-+ "(ss)",
-+ IBUS_INTERFACE_INPUT_CONTEXT,
-+ "PostProcessKeyEvent"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, /* cancellable */
-+ &error);
-+ if (error) {
-+ g_warning ("Error PostProcessKeyEvent: %s", error->message);
-+ g_error_free (error);
-+ break;
-+ }
-+ g_variant_get (result, "(v)", &variant);
-+ if (!variant) {
-+ g_warning ("No child in PostProcessKeyEvent");
-+ break;
-+ }
-+ g_value_set_variant (value, variant);
-+ break;
- case PROP_CONTENT_TYPE:
- case PROP_CLIENT_COMMIT_PREEDIT:
-- g_warning ("No support for setting content type");
-+ case PROP_EFFECTIVE_POST_PROCESS_KEY_EVENT:
-+ g_warning ("No support for getting content type");
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (portal_context, prop_id, pspec);
-@@ -387,7 +433,7 @@ ibus_portal_context_class_init (IBusPortalContextClass *klass)
- skeleton_class->g_authorize_method = ibus_portal_context_g_authorize_method;
-
- ibus_dbus_input_context_override_properties (gobject_class,
-- PROP_CONTENT_TYPE);
-+ PROP_POST_PROCESS_KEY_EVENT);
- }
-
- static void
---
-2.45.0
-
-From 871c8312aa4bd6b785d7d9c779a1f9f51b709802 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 1 Jun 2024 21:27:38 +0900
-Subject: [PATCH 5/6] Fix Flatpak build for dnf and pyoverridesdir
-
-`dnf` is not available during Flatpak builds with `flatpak-builder` and
-the steps are omitted in autogen.sh to check FLATPAK_ID environment
-variable.
-
-When IBus is built with the Json files in test directory, the build
-tries to install IBus.py file into pyoverridesdir likes
-/usr/lib*/python3.12/site-packages/gi/overrides
-
-But the directory is readonly with `flatpak-builder` and could be
-failed.
-Now `--disable-pygobject` option is added to `configure`.
-
-IBus modules are embedded in Flatpak platforms likes GNOME, Freedesktop
-and this issue might not happen in the platform builds since
-the pyoverridesdir does not exist yet so this might fix the build
-issues with Json files only in test directory.
----
- autogen.sh | 2 +-
- configure.ac | 15 +++++++++++++--
- 4 files changed, 40 insertions(+), 9 deletions(-)
-
-diff --git a/autogen.sh b/autogen.sh
-index 90e126ec..cde8aaef 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -42,7 +42,7 @@ cd "$srcdir"
- touch ChangeLog
- }
-
--(test "x$DISABLE_INSTALL_PKGS" = "x") && {
-+(test "x$DISABLE_INSTALL_PKGS" = "x") && (test "x$FLATPAK_ID" = "x" ) && {
- (test -f /etc/fedora-release ) && {
- rpm -q $FEDORA_PKG1 || exit 1
- rpm -q $FEDORA_PKG2 || exit 1
-diff --git a/configure.ac b/configure.ac
-index a5210004..fd1d15f7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -509,9 +509,20 @@ AM_CONDITIONAL([ENABLE_DAEMON], [true])
-
- PYGOBJECT_REQUIRED=3.0.0
-
--PKG_CHECK_EXISTS([pygobject-3.0 >= $PYGOBJECT_REQUIRED],
-- [enable_pygobject=yes], [enable_pygobject=no])
-+# When IBus is built with the Json files in test directory, the build
-+# tries to install IBus.py file into pyoverridesdir
-+# but the directory is readonly with `flatpak-builder`
-+AC_ARG_ENABLE(pygobject,
-+ AS_HELP_STRING([--disable-pygobject],
-+ [Disable pygobject.]),
-+ [enable_pygobject=$enableval],
-+ [enable_pygobject=yes]
-+)
-
-+if test "x$enable_pygobject" = "xyes"; then
-+ PKG_CHECK_EXISTS([pygobject-3.0 >= $PYGOBJECT_REQUIRED],
-+ [enable_pygobject=yes], [enable_pygobject=no])
-+fi
- if test "x$enable_pygobject" = "xyes"; then
- PKG_CHECK_MODULES(PYTHON, [pygobject-3.0 >= $PYGOBJECT_REQUIRED])
-
---
-2.45.0
-
-From 8d314d749f5ab83eb6de189faba184108fbccd61 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 8 Jun 2024 11:46:57 +0900
-Subject: [PATCH 1/2] src/ibuscomposetable: Fix UFDD5 key for compose seq with fr(bepo_afnor)
-
-AltGr-t with fr(bepo_afnor) keymap has no keysym name but can be
-used in the compose key sequences.
-Most Unicode format (UXXXX) should be supported in the compose sequences
-in case they are not used in XKB options except for 'Pointer_*' XKB option
-names.
-Also refactor compose sequences with each range beyond U10000.
-Also update ibus_keyval_name() can output keysym names beyond U10000.
-
-BUG=https://github.com/ibus/ibus/issues/2646
-Fixes: https://github.com/ibus/ibus/commit/ad883dc
----
- src/ibuscomposetable.c | 35 +++++++++++++++++++++++++++++------
- src/ibusenginesimpleprivate.h | 1 +
- src/ibuskeynames.c | 7 +------
- src/tests/ibus-compose.basic | 10 ++++++++++
- 4 files changed, 41 insertions(+), 12 deletions(-)
-
-diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c
-index 9d4377a9..2c97fd3b 100644
---- a/src/ibuscomposetable.c
-+++ b/src/ibuscomposetable.c
-@@ -1,7 +1,7 @@
- /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
- /* ibus - The Input Bus
- * Copyright (C) 2013-2014 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2013-2023 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2013-2024 Takao Fujiwara <takao.fujiwara1@gmail.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
-@@ -222,6 +222,12 @@ parse_compose_sequence (IBusComposeData *compose_data,
- compose_data->sequence[n] = codepoint;
- }
-
-+ if (codepoint >= 0x10000) {
-+ if (!ibus_compose_key_flag (0xffff & codepoint)) {
-+ g_warning ("The keysym %s > 0xffff is not supported: %s",
-+ match, line);
-+ }
-+ }
- if (codepoint == IBUS_KEY_VoidSymbol) {
- g_warning ("Could not get code point of keysym %s: %s",
- match, line);
-@@ -603,6 +609,7 @@ ibus_compose_list_check_duplicated (GList *compose_list,
-
- /*
- * Actual typed keysyms have a flag against the definition.
-+ * https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/blob/master/include/X11/keysymdef.h?ref_type=heads#L82
- * https://gitlab.freedesktop.org/xorg/lib/libx11/-/blob/master/nls/en_US.UTF-8/Compose.pre#L4559
- */
- guint
-@@ -611,11 +618,27 @@ ibus_compose_key_flag (guint key)
- const char *name;
- if (key <= 0xff)
- return 0;
-+ switch (key) {
-+ /* <Aogonek> is not used in UTF-8 compose sequences but <ohorn> in EN
-+ * compose file and vn keymap is assumed instead.
-+ */
-+ case 0x1a1:
-+ /* <Zabovedot> is not used in UTF-8 compose sequences but <Uhorn> in EN
-+ * compose file and vn keymap s assumed instead.
-+ */
-+ case 0x1af:
-+ /* <caron> is not used in UTF-8 compose sequences but <EZH> in EN compose
-+ * file and fr(nodeadkeys) keymap is assumed instead.
-+ */
-+ case 0x1b7:
-+ return 0x1000000;
-+ default:;
-+ }
- name = ibus_keyval_name (key);
- /* If name is null, the key sequence is expressed as "<Uxxxx>" format in
- * the Compose file and the typed keysym has the flag.
- */
-- if (!name)
-+ if (!name || g_str_has_prefix (name, "0x"))
- return 0x1000000;
- /* "<Pointer_EnableKeys>" is not described in the Compose file but <UFEF9>
- * in the file.
-@@ -648,8 +671,8 @@ ibus_compose_data_compare (gpointer a,
- gunichar code_a = compose_data_a->sequence[i];
- gunichar code_b = compose_data_b->sequence[i];
-
-- code_a += ibus_compose_key_flag (code_a);
-- code_b += ibus_compose_key_flag (code_b);
-+ code_a &= 0xffff;
-+ code_b &= 0xffff;
- if (code_a != code_b)
- return code_a - code_b;
- if (code_a == 0 && code_b == 0)
-@@ -1581,9 +1604,9 @@ compare_seq (const void *key, const void *value)
- guint saved_key = (guint)seq[i];
- guint flag = ibus_compose_key_flag (saved_key);
- if (typed_key < (saved_key + flag))
-- return -1;
-+ return (0xffff & typed_key) - saved_key;
- else if (typed_key > (saved_key + flag))
-- return 1;
-+ return (0xffff & typed_key) - saved_key;
-
- i++;
- }
-diff --git a/src/ibusenginesimpleprivate.h b/src/ibusenginesimpleprivate.h
-index fd600853..ae42342b 100644
---- a/src/ibusenginesimpleprivate.h
-+++ b/src/ibusenginesimpleprivate.h
-@@ -42,6 +42,7 @@ struct _IBusComposeTablePrivate
- };
-
-
-+guint ibus_compose_key_flag (guint key);
- gboolean ibus_check_algorithmically (const guint *compose_buffer,
- int n_compose,
- gunichar *output);
-diff --git a/src/ibuskeynames.c b/src/ibuskeynames.c
-index 544c6ade..2925bdec 100644
---- a/src/ibuskeynames.c
-+++ b/src/ibuskeynames.c
-@@ -47,12 +47,7 @@ ibus_keyval_name (guint keyval)
- static gchar buf[100];
- gdk_key *found;
-
-- /* Check for directly encoded 24-bit UCS characters: */
-- if ((keyval & 0xff000000) == 0x01000000)
-- {
-- g_sprintf (buf, "U+%.04X", (keyval & 0x00ffffff));
-- return buf;
-- }
-+ /* <ohorn> with 0x01000000 is supported in gdk_keys_by_keyval */
-
- found = bsearch (&keyval, gdk_keys_by_keyval,
- IBUS_NUM_KEYS, sizeof (gdk_key),
-diff --git a/src/tests/ibus-compose.basic b/src/tests/ibus-compose.basic
-index 0735d4ea..4e8cb9ab 100644
---- a/src/tests/ibus-compose.basic
-+++ b/src/tests/ibus-compose.basic
-@@ -8,6 +8,13 @@
- <dead_macron> <U0227> : "ǟ" U01DE
- <Multi_key> <macron> <U0227> : "ǟ" U01DE
- <Multi_key> <underscore> <U0227> : "ǟ" U01DE
-+# AltGr-t, Shift-asterisk with fr(bepo_afnor) keymap outputs
-+# <UFDD5> <0>
-+# Support Unicode keysyms in case they are not used in XKB options except
-+# for 'Pointer_*' XKB option names.
-+<UFDD5> <0> : "⁰" U2070
-+#
-+### Multibyte chars tests
- # Khmer digraphs
- # This case swaps U17fe and U17ff in en-US
- <U17fe> : "ាំ"
-@@ -22,3 +29,6 @@
- # This case swaps c_h and C_h in en-US
- <c_h> : "C’h"
- <C_h> : "c’h"
-+# Some <U10000> are supported for musical composer in en-US
-+<Multi_key> <U1D157> <U1D165> : "𝇒" U1D1D2 # MUSICAL SYMBOL SQUARE B
-+
---
-2.45.0
-
-From 909dff4fd50d86492fb7f42a09bbd04625fa60f4 Mon Sep 17 00:00:00 2001
-From: Wismill <dev@wismill.eu>
-Date: Sat, 8 Jun 2024 11:47:01 +0900
-Subject: [PATCH 2/2] src/tests/ibus-compose: Add some Unicode boundary tests
-
-BUG=https://github.com/ibus/ibus/pull/2649
----
- src/tests/ibus-compose.basic | 8 +++++++-
- src/tests/ibus-compose.emoji | 4 ++++
- 2 files changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/src/tests/ibus-compose.basic b/src/tests/ibus-compose.basic
-index 4e8cb9ab..d904dbb4 100644
---- a/src/tests/ibus-compose.basic
-+++ b/src/tests/ibus-compose.basic
-@@ -3,7 +3,9 @@
- <Multi_key> <quotedbl> <Cyrillic_zhe> : "Ӝ" U04DC
- <Multi_key> <quotedbl> <Cyrillic_ZHE> : "ӝ" U04DD
- #
--# Unicode tests of Uxxxx
-+# A Unicode keysym <Uxxxx> has a real value 0x01000000 + xxxx.
-+# https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/blob/master/include/X11/keysymdef.h?ref_type=heads#L82
-+#
- # en-US is "ǡ" U01E1 but this case is "ǟ" U01DE
- <dead_macron> <U0227> : "ǟ" U01DE
- <Multi_key> <macron> <U0227> : "ǟ" U01DE
-@@ -13,6 +15,10 @@
- # Support Unicode keysyms in case they are not used in XKB options except
- # for 'Pointer_*' XKB option names.
- <UFDD5> <0> : "⁰" U2070
-+# ohorn, grave with vn keymap
-+# IBus does not distingish ohorn and Aogonek
-+<ohorn> <grave> : "Ờ" U1EDC
-+<U01A1> <grave> : "Ờ" U1EDC
- #
- ### Multibyte chars tests
- # Khmer digraphs
-diff --git a/src/tests/ibus-compose.emoji b/src/tests/ibus-compose.emoji
-index 7fbf82cf..fdd560f8 100644
---- a/src/tests/ibus-compose.emoji
-+++ b/src/tests/ibus-compose.emoji
-@@ -1,3 +1,4 @@
-+# Emoji tests
- <Multi_key> <Multi_key> <l> <e> <o> : "♌" U264C # LEO
- <Multi_key> <Multi_key> <v> <i> <r> <g> <o> : "♍" U264D # VIRGO
- <Multi_key> <Multi_key> <I> <n> <t> : "∫"
-@@ -9,3 +10,6 @@
- <Multi_key> <Multi_key> <o> <I> <n> <t> : "∮"
- <Multi_key> <Multi_key> <o> <I> <I> <n> <t> : "∯"
- <Multi_key> <Multi_key> <o> <I> <I> <I> <n> <t> : "∰"
-+# Unicode boundary tests
-+<U2800> <0> : "a"
-+<braille_blank> <0> : "a"
---
-2.45.0
-
next reply other threads:[~2026-05-31 2:08 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-31 2:08 Takao Fujiwara [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-05-31 2:09 [rpms/ibus] autotool: Delete upstreamed patches Takao Fujiwara
2026-05-31 2:09 Takao Fujiwara
2026-05-31 2:09 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 [rpms/ibus] autotool: Delete Upstreamed patches Takao Fujiwara
2026-05-31 2:08 [rpms/ibus] autotool: Delete upstreamed patches Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
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=178019331366.1.2971321519310882893.rpms-ibus-a9da27f5f0f7@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