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: Resolve #2284094 Fix preedit in Flatpak with new DBus unique name
Date: Sun, 31 May 2026 02:08:31 GMT	[thread overview]
Message-ID: <178019331181.1.1626165398643339953.rpms-ibus-1df9affaed12@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/ibus
            Branch : autotool
            Commit : 1df9affaed12fd1ddb9fb43694acf5391f548062
            Author : Takao Fujiwara <tfujiwar@redhat.com>
            Date   : 2024-06-01T23:04:02+09:00
            Stats  : +252/-2 in 2 file(s)
            URL    : https://src.fedoraproject.org/rpms/ibus/c/1df9affaed12fd1ddb9fb43694acf5391f548062?branch=autotool

            Log:
            Resolve #2284094 Fix preedit in Flatpak with new DBus unique name

- Add directory %%{_prefix}/lib/systemd/user/gnome-session.target.wants
- Add directory %%{_libdir}/gtk-4.0/%{gtk4_binary_version}/immodules

---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 8356b67..72ebe09 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -806,7 +806,7 @@ index ac478855..e2f96a37 100644
 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] bus: Change IBus unique name to :1.0 from IBUS_SERVICE_IBUS
+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
@@ -1053,3 +1053,246 @@ index 1dd304cd..37b6347b 100644
 -- 
 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
+

diff --git a/ibus.spec b/ibus.spec
index 273d97a..eff42f0 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -61,7 +61,7 @@
 Name:           ibus
 Version:        1.5.30
 # https://github.com/fedora-infra/rpmautospec/issues/101
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Intelligent Input Bus for Linux OS
 License:        LGPL-2.1-or-later
 URL:            https://github.com/ibus/%name/wiki
@@ -519,6 +519,7 @@ dconf update || :
 %{_sysconfdir}/dconf/profile/ibus
 %dir %{_sysconfdir}/xdg/Xwayland-session.d
 %{_sysconfdir}/xdg/Xwayland-session.d/10-ibus-x11
+%dir %{_prefix}/lib/systemd/user/gnome-session.target.wants
 %{_prefix}/lib/systemd/user/gnome-session.target.wants/*.service
 %{_prefix}/lib/systemd/user/org.freedesktop.IBus.session.*.service
 %python3_sitearch/gi/overrides/__pycache__/*.py*
@@ -550,6 +551,7 @@ dconf update || :
 
 %if %{with gtk4}
 %files gtk4
+%dir %{_libdir}/gtk-4.0/%{gtk4_binary_version}/immodules
 %{_libdir}/gtk-4.0/%{gtk4_binary_version}/immodules/libim-ibus.so
 %endif
 
@@ -623,6 +625,11 @@ dconf update || :
 %{_datadir}/installed-tests/ibus
 
 %changelog
+* Sat Jun 01 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-3
+- Resolve #2284094 Fix preedit in Flatpak with new DBus unique name
+- Add directory %%{_prefix}/lib/systemd/user/gnome-session.target.wants
+- Add directory %%{_libdir}/gtk-4.0/%{gtk4_binary_version}/immodules
+
 * Fri May 24 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-2
 - Resolve #2252227 Fix display buffer overflow
 - Change IBus unique name to :1.0 from IBUS_SERVICE_IBUS

                 reply	other threads:[~2026-05-31  2:08 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178019331181.1.1626165398643339953.rpms-ibus-1df9affaed12@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