public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ibus] autotool: Update ibus-desktop-testing-runner for su command
@ 2026-05-31  2:07 Takao Fujiwara
  0 siblings, 0 replies; only message in thread
From: Takao Fujiwara @ 2026-05-31  2:07 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/ibus
Branch : autotool
Commit : 5be3a0c89f3f832874bca8669a95f502ee6ad95e
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date   : 2020-04-22T20:53:28+09:00
Stats  : +317/-67 in 3 file(s)
URL    : https://src.fedoraproject.org/rpms/ibus/c/5be3a0c89f3f832874bca8669a95f502ee6ad95e?branch=autotool

Log:
Update ibus-desktop-testing-runner for su command

---
diff --git a/2195.patch b/2195.patch
deleted file mode 100644
index 25d2a6f..0000000
--- a/2195.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 0c77da82ea59bdeb0c50683ba6f7f2b92b15901c Mon Sep 17 00:00:00 2001
-From: Carlos Garnacho <carlosg@gnome.org>
-Date: Wed, 11 Mar 2020 17:08:37 +0100
-Subject: [PATCH] src: Use WAYLAND_DISPLAY on Wayland sessions to make up IBus
- socket name
-
-In Wayland sessions, GNOME Shell 3.36 is leveraging 2 X11 Display
-connections so one is used to set up all services for a "X11 session"
-before user applications connected to the other display might require it.
-This allows seamlessly starting Xwayland on demand to X11 user applications.
-
-IBus here belongs to the first described connection, it is started
-explicitly on that display by GNOME Shell as it is necessary to set up
-ibus-x11 before any other X11 client might want to use it.
-
-However the use of this "secondary" display results in IBus daemon left
-unable to talk to applications, as the socket name is dependent on the
-DISPLAY envvar and ibus/applications don't agree on its content.
-
-For wayland sessions, make it look for WAYLAND_DISPLAY, as that'll have
-the similar "per session bus" behavior that this seems to look after.
-
-Related: https://gitlab.gnome.org/GNOME/gnome-shell/issues/2341
----
- src/ibusshare.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/src/ibusshare.c b/src/ibusshare.c
-index 0d50d3f5c..e0ef2ce08 100644
---- a/src/ibusshare.c
-+++ b/src/ibusshare.c
-@@ -100,6 +100,7 @@ ibus_get_socket_path (void)
-         gchar *display;
-         gchar *displaynumber = "0";
-         /* gchar *screennumber = "0"; */
-+        gboolean is_wayland = FALSE;
-         gchar *p;
- 
-         path = g_strdup (g_getenv ("IBUS_ADDRESS_FILE"));
-@@ -108,13 +109,19 @@ ibus_get_socket_path (void)
-         }
- 
-         if (_display == NULL) {
--            display = g_strdup (g_getenv ("DISPLAY"));
-+            display = g_strdup (g_getenv ("WAYLAND_DISPLAY"));
-+            if (display)
-+                is_wayland = TRUE;
-+            else
-+                display = g_strdup (g_getenv ("DISPLAY"));
-         }
-         else {
-             display = g_strdup (_display);
-         }
- 
--        if (display) {
-+        if (is_wayland) {
-+            displaynumber = display;
-+        } else if (display) {
-             p = display;
-             hostname = display;
-             for (; *p != ':' && *p != '\0'; p++);

diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index e69de29..3760bbc 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -0,0 +1,311 @@
+From 7b0d091839a4f1315ba216175fb2787e86f7fa31 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Tue, 3 Mar 2020 17:08:30 +0900
+Subject: [PATCH] src/tests: Delete graves in substitution in
+ ibus-desktop-testing-runner
+
+Delete the single quotations to enclose grave chracters because
+DASH saves the single quoted '`id -u`' as the raw string in the command
+substitution not to be extracted.
+
+BUG=https://github.com/ibus/ibus/issues/2189
+---
+ src/tests/ibus-desktop-testing-runner.in | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
+index 0d9a847c..f9238e69 100755
+--- a/src/tests/ibus-desktop-testing-runner.in
++++ b/src/tests/ibus-desktop-testing-runner.in
+@@ -4,7 +4,7 @@
+ #
+ # ibus - The Input Bus
+ #
+-# Copyright (c) 2018-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
++# Copyright (c) 2018-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ # Copyright (c) 2018 Red Hat, Inc.
+ #
+ # This program is free software; you can redistribute it and/or modify
+@@ -31,7 +31,8 @@
+ # POSIX sh has no 'echo -e'
+ : ${ECHO:='/usr/bin/echo'}
+ # POSIX sh has $UID
+-: ${UID:='`id -u`'}
++# DASH saves the graves in '``' as characters not to be extracted
++: ${UID:=`id -u`}
+ 
+ 
+ PROGNAME=`basename $0`
+@@ -170,7 +171,7 @@ _EOF
+ run_dbus_daemon()
+ {
+     # Use dbus-launch --exit-with-session later instead of --sh-syntax
+-    export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus
++    export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"
+ }
+ 
+ run_desktop()
+-- 
+2.24.1
+
+From 8ce25208c3f4adfd290a032c6aa739d2b7580eb1 Mon Sep 17 00:00:00 2001
+From: Carlos Garnacho <carlosg@gnome.org>
+Date: Thu, 12 Mar 2020 16:02:16 +0900
+Subject: [PATCH] src: Use WAYLAND_DISPLAY on Wayland sessions to make up
+ IBus socket name
+
+In Wayland sessions, GNOME Shell 3.36 is leveraging 2 X11 Display
+connections so one is used to set up all services for a "X11 session"
+before user applications connected to the other display might require it.
+This allows seamlessly starting Xwayland on demand to X11 user applications.
+
+IBus here belongs to the first described connection, it is started
+explicitly on that display by GNOME Shell as it is necessary to set up
+ibus-x11 before any other X11 client might want to use it.
+
+However the use of this "secondary" display results in IBus daemon left
+unable to talk to applications, as the socket name is dependent on the
+DISPLAY envvar and ibus/applications don't agree on its content.
+
+For wayland sessions, make it look for WAYLAND_DISPLAY, as that'll have
+the similar "per session bus" behavior that this seems to look after.
+
+BUG=https://gitlab.gnome.org/GNOME/gnome-shell/issues/2341
+---
+ src/ibusshare.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/src/ibusshare.c b/src/ibusshare.c
+index 0d50d3f5..e0ef2ce0 100644
+--- a/src/ibusshare.c
++++ b/src/ibusshare.c
+@@ -100,6 +100,7 @@ ibus_get_socket_path (void)
+         gchar *display;
+         gchar *displaynumber = "0";
+         /* gchar *screennumber = "0"; */
++        gboolean is_wayland = FALSE;
+         gchar *p;
+ 
+         path = g_strdup (g_getenv ("IBUS_ADDRESS_FILE"));
+@@ -108,13 +109,19 @@ ibus_get_socket_path (void)
+         }
+ 
+         if (_display == NULL) {
+-            display = g_strdup (g_getenv ("DISPLAY"));
++            display = g_strdup (g_getenv ("WAYLAND_DISPLAY"));
++            if (display)
++                is_wayland = TRUE;
++            else
++                display = g_strdup (g_getenv ("DISPLAY"));
+         }
+         else {
+             display = g_strdup (_display);
+         }
+ 
+-        if (display) {
++        if (is_wayland) {
++            displaynumber = display;
++        } else if (display) {
+             p = display;
+             hostname = display;
+             for (; *p != ':' && *p != '\0'; p++);
+-- 
+2.24.1
+
+From 5765bfd69fb2ab1174378fbb0d8cac7f2bd2610f Mon Sep 17 00:00:00 2001
+From: Changwoo Ryu <cwryu@debian.org>
+Date: Wed, 15 Apr 2020 17:43:14 +0900
+Subject: [PATCH] client/gtk2: Remove glib_check_version() in gtk immodule
+
+In the gtk2/gtk3 immodule, glib_check_version() is being used to make sure
+that the installed glib version is not older than the glib version which ibus
+is built with.
+
+But there is no reason why glib version is checked in runtime. Library
+compatibility is already being checked more precisely by packaging systems and
+linkers.
+
+This version check can break the ibus gtk immodule when used with an older but
+compatible version of glib, such as glib 2.62.x which is compatible with
+2.64.x.
+
+BUG=https://github.com/ibus/ibus/issues/2200
+---
+ client/gtk2/ibusim.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/client/gtk2/ibusim.c b/client/gtk2/ibusim.c
+index bfacd0f0..d70800d3 100644
+--- a/client/gtk2/ibusim.c
++++ b/client/gtk2/ibusim.c
+@@ -41,9 +41,7 @@ static const GtkIMContextInfo *info_list[] = {
+ G_MODULE_EXPORT const gchar*
+ g_module_check_init (GModule *module)
+ {
+-    return glib_check_version (GLIB_MAJOR_VERSION,
+-                               GLIB_MINOR_VERSION,
+-                               0);
++    return null;
+ }
+ 
+ G_MODULE_EXPORT void
+-- 
+2.24.1
+
+From 8da016764cee9616cca4658d1fb311d6b3bfc0df Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 15 Apr 2020 17:55:03 +0900
+Subject: [PATCH] src/tests: Fix to get focus events with su in
+ ibus-desktop-testing-runner
+
+GtkWindow haven't received focus events in any test cases since Fedora 31
+whenever Ansible runs ibus-desktop-testing-runner after `su root`.
+Seems su command does not run systemd automatically and now systemd
+requires XDG_RUNTIME_DIR and Ansible requires root access with ssh.
+This fix requires to restart sshd with modified /etc/ssh/sshd_config
+with "PermitRootLogin yes" in order to run with su command.
+
+Ansible with ibus-desktop-testin-runner has worked fine if root console
+login is used without this patch because PAM runs systemd by login.
+---
+ src/tests/ibus-desktop-testing-runner.in | 36 ++++++++++++++++++++++--
+ 1 file changed, 33 insertions(+), 3 deletions(-)
+
+diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
+index f9238e69..f760fd5b 100755
+--- a/src/tests/ibus-desktop-testing-runner.in
++++ b/src/tests/ibus-desktop-testing-runner.in
+@@ -49,6 +49,7 @@ PID_XORG=0
+ PID_GNOME_SESSION=0
+ TESTING_RUNNER="default"
+ TESTS=""
++TIMEOUT=300
+ GREEN='\033[0;32m'
+ RED='\033[0;31m'
+ NC='\033[0m'
+@@ -84,6 +85,7 @@ usage()
+ "-r, --runner=RUNNER              Run TESTS programs with a test RUNNER.\n"    \
+ "                                 RUNNDER = gnome or default.\n"               \
+ "                                 default is an embedded runner.\n"            \
++"-T, --timeout=TIMEOUT            Set timeout (default TIMEOUT is 300 sec).\n" \
+ "-o, --output=OUTPUT_FILE         OUtput the log to OUTPUT_FILE\n"             \
+ "-O, --result=RESULT_FILE         OUtput the result to RESULT_FILE\n"          \
+ ""
+@@ -92,8 +94,8 @@ usage()
+ parse_args()
+ {
+     # This is GNU getopt. "sudo port getopt" in BSD?
+-    ARGS=`getopt -o hvb:s:cd:t:r:o:O: --long \
+-          help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,output:,result:\
++    ARGS=`getopt -o hvb:s:cd:t:r:T:o:O: --long \
++          help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,timeout:,output:,result:\
+         -- "$@"`;
+     eval set -- "$ARGS"
+     while [ 1 ] ; do
+@@ -106,6 +108,7 @@ parse_args()
+         -d | --desktop )     DESKTOP_COMMAND="$2"; shift 2;;
+         -t | --tests )       TESTS="$2"; shift 2;;
+         -r | --runner )      TESTING_RUNNER="$2"; shift 2;;
++        -T | --timeout )     TIMEOUT="$2"; shift 2;;
+         -o | --output )      TEST_LOG="$2"; shift 2;;
+         -O | --result )      RESULT_LOG="$2"; shift 2;;
+         -- )                 shift; break;;
+@@ -166,11 +169,37 @@ _EOF
+     fi
+     # `su` command does not run loginctl
+     export XDG_SESSION_TYPE='x11'
++    export XDG_SESSION_CLASS=user
++    # `su` command does not get focus in events without this variable.
++    # Need to restart sshd after set "PermitRootLogin yes" in sshd_config
++    if [ "x$XDG_RUNTIME_DIR" = x ] ; then
++        export XDG_RUNTIME_DIR=/run/user/$UID
++        is_root_login=`grep "^PermitRootLogin" /etc/ssh/sshd_config | grep yes`
++        if [ "x$ANSIBLE" != x ] && [ "x$is_root_login" = x ] ; then
++            print_log -e "${RED}FAIL${NC}: No permission to get focus-in events in GtkWindow with ansible"
++            echo "su command does not configure necessary login info "         \
++                 "with systemd and GtkWindow cannot receive focus-events "     \
++                 "when ibus-desktop-testing-runner is executed by "            \
++                 "ansible-playbook." >> $TEST_LOG
++            echo "Enabling root login via sshd, restarting sshd, set "         \
++                 "XDG_RUNTIME_DIR can resolve the problem under "              \
++                 "ansible-playbook." >> $TEST_LOG
++            exit 255
++        fi
++    fi
++    #  Do we need XDG_SESSION_ID and XDG_SEAT?
++    #export XDG_CONFIG_DIRS=/etc/xdg
++    #export XDG_SESSION_ID=10
++    #export XDG_SESSION_DESKTOP=gnome
++    #export XDG_SEAT=seat0
+ }
+ 
+ run_dbus_daemon()
+ {
+     # Use dbus-launch --exit-with-session later instead of --sh-syntax
++    # GNOME uses a unix:abstract address and it effects gsettings set values
++    # in each test case.
++    # TODO: Should we comment out this line?
+     export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"
+ }
+ 
+@@ -288,7 +317,8 @@ run_gnome_desktop_testing_runner()
+             fail=1
+             continue
+         fi
+-        gnome-desktop-testing-runner $tst 2>>$TEST_LOG 1>>$TEST_LOG
++        gnome-desktop-testing-runner --timeout=$TIMEOUT $tst \
++                2>>$TEST_LOG 1>>$TEST_LOG
+         retval=$?
+         read pass fail << EOF
+         `count_case_result $retval $pass $fail`
+-- 
+2.24.1
+
+From 0b9d9365988a96a2bc31c48624f9c2b8081601b6 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 22 Apr 2020 20:17:12 +0900
+Subject: [PATCH] client/gtk2: Fix typo
+
+---
+ client/gtk2/ibusim.c                     | 4 ++--
+ src/tests/ibus-desktop-testing-runner.in | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/client/gtk2/ibusim.c b/client/gtk2/ibusim.c
+index d70800d3..55609ce7 100644
+--- a/client/gtk2/ibusim.c
++++ b/client/gtk2/ibusim.c
+@@ -2,7 +2,7 @@
+ /* vim:set et ts=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) 2008-2020 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
+@@ -41,7 +41,7 @@ static const GtkIMContextInfo *info_list[] = {
+ G_MODULE_EXPORT const gchar*
+ g_module_check_init (GModule *module)
+ {
+-    return null;
++    return NULL;
+ }
+ 
+ G_MODULE_EXPORT void
+diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
+index f760fd5b..4232c549 100755
+--- a/src/tests/ibus-desktop-testing-runner.in
++++ b/src/tests/ibus-desktop-testing-runner.in
+@@ -173,7 +173,7 @@ _EOF
+     # `su` command does not get focus in events without this variable.
+     # Need to restart sshd after set "PermitRootLogin yes" in sshd_config
+     if [ "x$XDG_RUNTIME_DIR" = x ] ; then
+-        export XDG_RUNTIME_DIR=/run/user/$UID
++        export XDG_RUNTIME_DIR="/run/user/$UID"
+         is_root_login=`grep "^PermitRootLogin" /etc/ssh/sshd_config | grep yes`
+         if [ "x$ANSIBLE" != x ] && [ "x$is_root_login" = x ] ; then
+             print_log -e "${RED}FAIL${NC}: No permission to get focus-in events in GtkWindow with ansible"
+-- 
+2.24.1
+

diff --git a/ibus.spec b/ibus.spec
index 75399da..390504a 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -35,7 +35,7 @@
 
 Name:           ibus
 Version:        1.5.22
-Release:        4%{?dist}
+Release:        5%{?dist}
 Summary:        Intelligent Input Bus for Linux OS
 License:        LGPLv2+
 URL:            https://github.com/ibus/%name/wiki
@@ -43,12 +43,9 @@ Source0:        https://github.com/ibus/%name/releases/download/%{version}/%{nam
 Source1:        %{name}-xinput
 Source2:        %{name}.conf.5
 # Patch0:         %%{name}-HEAD.patch
+Patch0:         %{name}-HEAD.patch
 # Under testing #1349148 #1385349 #1350291 #1406699 #1432252 #1601577
 Patch1:         %{name}-1385349-segv-bus-proxy.patch
-# Fix display selection on GNOME 3.36.0
-# https://gitlab.gnome.org/GNOME/gnome-shell/issues/2341
-# https://github.com/ibus/ibus/pull/2195
-Patch2:         2195.patch
 
 BuildRequires:  gettext-devel
 BuildRequires:  libtool
@@ -293,7 +290,7 @@ fi
     --enable-install-tests \
     %{nil}
 
-make %{?_smp_mflags}
+%make_build
 
 %install
 make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'
@@ -464,6 +461,9 @@ dconf update || :
 %{_datadir}/installed-tests/ibus
 
 %changelog
+* Wed Apr 22 2020 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.22-5
+- Update ibus-desktop-testing-runner for su command
+
 * Wed Mar 11 2020 Adam Williamson <awilliam@redhat.com> - 1.5.22-4
 - Update #2195 patch backport (it was revised upstream)
 

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

only message in thread, other threads:[~2026-05-31  2:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-31  2:07 [rpms/ibus] autotool: Update ibus-desktop-testing-runner for su command Takao Fujiwara

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