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] f44: Fix CI in GNOME 50
Date: Thu, 16 Jul 2026 06:41:25 GMT [thread overview]
Message-ID: <178418408508.1.3298676189828102077.rpms-ibus-438dfde2274f@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ibus
Branch : f44
Commit : 438dfde2274f39ce5131acd0336f9c222be35161
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2026-07-16T14:21:25+09:00
Stats : +642/-1 in 3 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/438dfde2274f39ce5131acd0336f9c222be35161?branch=f44
Log:
Fix CI in GNOME 50
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 05d93de..afbb152 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -1547,3 +1547,640 @@ index 37fe4bad..367b07c5 100644
--
2.54.0
+From 44e22e5e7602bc79040df42cbfa836ba32da01ef Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Thu, 16 Jul 2026 12:37:28 +0900
+Subject: [PATCH] src/tests: Fix CI issues in GNOME 50
+
+- 100-ibus-ci.rules: Disable authentication dialogs in gnome-shell
+- ibus-compose:
+ o Add taking screenshots with IBUS_TEST_SCREENSHOT
+ o Define ibus_break_if_fail() from g_return_if_fail()
+- ibus-desktop-testing-autostart: Call dump_screen_of_test_cases()
+- ibus-desktop-testing-module:
+ o Update the latest gnome-shell service file for GNOME 50.
+ o Replace init with systemctl in ibus-desktop-testing-module
+ o Set locale for gnome-shell while the user systemd runs in C locale
+ o Implement dump_screen_of_test_cases() to dump screenshots of test cases
+ o export IBUS_TEST_SCREENSHOT to each test case to take screenshots
+ o Install polkit rule file
+ o forward --screendump option to autostart script
+- runtest: Set tstdir for Python test cases
+
+- src/tests/Makefile: Install 100-ibus-ci.rules
+
+Closes #2921
+---
+ src/tests/100-ibus-ci.rules | 8 ++
+ src/tests/Makefile.am | 12 +-
+ src/tests/ibus-compose.c | 76 ++++++++++++
+ src/tests/ibus-desktop-testing-autostart.in | 1 +
+ src/tests/ibus-desktop-testing-module | 122 ++++++++++++++++----
+ src/tests/runtest | 81 ++++++-------
+ 6 files changed, 266 insertions(+), 80 deletions(-)
+ create mode 100644 src/tests/100-ibus-ci.rules
+
+diff --git a/src/tests/100-ibus-ci.rules b/src/tests/100-ibus-ci.rules
+new file mode 100644
+index 00000000..d6d2f7c0
+--- /dev/null
++++ b/src/tests/100-ibus-ci.rules
+@@ -0,0 +1,8 @@
++polkit.addRule(function(action, subject) {
++ if ((action.id == "org.freedesktop.Flatpak.metadata-update" ||
++ action.id == "org.freedesktop.Flatpak.modify-repo" ||
++ action.id == "org.freedesktop.fwupd.refresh-remote" ) &&
++ subject.isInGroup("itestuser")) {
++ return polkit.Result.YES;
++ }
++});
+diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
+index 75caab57..47cd3db1 100644
+--- a/src/tests/Makefile.am
++++ b/src/tests/Makefile.am
+@@ -131,11 +131,14 @@ CLEANFILES += ibus-compose-locales
+ endif
+ test_execsdir = $(libexecdir)/installed-tests/ibus
+ libexec_SCRIPTS = \
+- ibus-desktop-testing-autostart \
+- ibus-desktop-testing-module \
+- $(NULL)
++ ibus-desktop-testing-autostart \
++ ibus-desktop-testing-module \
++ $(NULL)
+
+-test_frame_DATA = org.freedesktop.IBus.Desktop.Testing.desktop
++test_frame_DATA = \
++ 100-ibus-ci.rules \
++ org.freedesktop.IBus.Desktop.Testing.desktop \
++ $(NULL)
+ test_framedir = $(pkgdatadir)/tests
+ org.freedesktop.IBus.Desktop.Testing.desktop: ibus-desktop-testing.desktop.in
+ $(AM_V_GEN) sed -e "s|\@libexecdir\@|$(libexecdir)|g" \
+@@ -194,6 +197,7 @@ ibus-desktop-testing-runner: ibus-desktop-testing-runner.in
+ EXTRA_DIST = \
+ $(test_metas_in) \
+ $(TESTS_SCRIPT) \
++ 100-ibus-ci.rules \
+ runtest \
+ ibus-compose.basic \
+ ibus-compose.basic2 \
+diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c
+index 69f844b2..c36b4c81 100644
+--- a/src/tests/ibus-compose.c
++++ b/src/tests/ibus-compose.c
+@@ -7,6 +7,17 @@
+ #define RED "\033[0;31m"
+ #define NC "\033[0m"
+
++#define ibus_break_if_fail(expr) \
++ G_STMT_START { \
++ if (G_LIKELY (expr)) { \
++ } else { \
++ g_return_if_fail_warning (G_LOG_DOMAIN, \
++ G_STRFUNC, \
++ #expr); \
++ break; \
++ } \
++ } G_STMT_END
++
+ static gchar *m_test_locale;
+ static gchar *m_test_name;
+ static gchar *m_session_name;
+@@ -113,6 +124,67 @@ get_compose_path ()
+ }
+
+
++static void
++take_screenshot (void)
++{
++ gint64 t;
++ GDateTime *dt;
++ gchar *prgname = NULL;
++ gchar *casename = NULL;
++ gchar *filename = NULL;
++ gchar *path = NULL;
++ gchar *args[4] = { "gnome-screenshot", "--file", 0, 0 };
++ GSpawnFlags flags = G_SPAWN_SEARCH_PATH;
++ gchar *std_output = NULL;
++ gchar *std_error = NULL;
++ GError *error = NULL;
++
++ t = g_get_real_time ();
++ t = t / G_USEC_PER_SEC;
++ dt = g_date_time_new_from_unix_utc (t);
++ g_return_if_fail (dt);
++
++ while (FALSE) {
++ prgname = g_path_get_basename (g_get_prgname ());
++ casename = g_path_get_basename (g_test_get_path ());
++ ibus_break_if_fail (prgname);
++ ibus_break_if_fail (casename);
++ filename = g_strdup_printf ("%s%s-%02d%02d%02d.png",
++ prgname, casename,
++ g_date_time_get_hour (dt),
++ g_date_time_get_minute (dt),
++ g_date_time_get_second (dt));
++ ibus_break_if_fail (filename);
++ /* The ibus-compose-locales runs in a temp dir. */
++ path = g_build_filename (g_get_home_dir (), filename, NULL);
++ ibus_break_if_fail (path);
++ args[2] = path;
++ if (!g_spawn_sync (NULL, args, NULL, flags, NULL, NULL,
++ &std_output, &std_error,
++ NULL,
++ &error)) {
++ g_warning ("Failed to take a screenshot: %s: %s: %s",
++ error->message,
++ std_output ? std_output : "",
++ std_error ? std_error : "");
++ g_error_free (error);
++ } else if (std_error && *std_error) {
++ g_warning ("Failed to take a screenshot: %s: %s",
++ std_output ? std_output : "",
++ std_error);
++ }
++ }
++
++ g_free (prgname);
++ g_free (casename);
++ g_date_time_unref (dt);
++ g_free (filename);
++ g_free (path);
++ g_free (std_output);
++ g_free (std_error);
++}
++
++
+ gboolean
+ idle_cb (gpointer user_data)
+ {
+@@ -436,9 +508,13 @@ set_engine_cb (GObject *object,
+ return;
+ }
+
++ if (g_getenv ("IBUS_TEST_SCREENSHOT"))
++ take_screenshot ();
+ send_key_event (m_compose_table);
+ if (m_no_load_compose_table)
+ send_key_event (m_no_load_compose_table);
++ if (g_getenv ("IBUS_TEST_SCREENSHOT"))
++ take_screenshot ();
+
+ #if GTK_CHECK_VERSION (4, 0, 0)
+ g_signal_handlers_disconnect_by_func (
+diff --git a/src/tests/ibus-desktop-testing-autostart.in b/src/tests/ibus-desktop-testing-autostart.in
+index 9ecc8c27..a9a57bed 100755
+--- a/src/tests/ibus-desktop-testing-autostart.in
++++ b/src/tests/ibus-desktop-testing-autostart.in
+@@ -76,6 +76,7 @@ main()
+ #run_monitor
+ save_screen
+ run_test_suite
++ dump_screen_of_test_cases
+ finit
+ }
+
+diff --git a/src/tests/ibus-desktop-testing-module b/src/tests/ibus-desktop-testing-module
+index 55eb248e..b71d73a9 100755
+--- a/src/tests/ibus-desktop-testing-module
++++ b/src/tests/ibus-desktop-testing-module
+@@ -51,16 +51,19 @@ TEST_USER=itestuser
+ TEST_USER_HOME=/export/home/$TEST_USER
+ GDM_CONF=/run/gdm/custom.conf
+ AUTOSTART_DESKTOP_FILE="org.freedesktop.IBus.Desktop.Testing.desktop"
++POLKIT_CUSTOM_RULE_FILE="100-ibus-ci.rules"
+ TESTS=""
+ TIMEOUT=300
+ GREEN='\033[0;32m'
+ RED='\033[0;31m'
+ NC='\033[0m'
++DQ='"'
+ ENV_CHECK=0
+ ENV_COMMANDS='
+ id
+ pwd
+ pstree -asp $$
++tr "\\0" "\\n" < /proc/$$/environ
+ gsettings list-recursively org.gnome.shell
+ rpm -q gnome-shell-extension-no-overview gnome-shell gnome-session
+ ps -ef | grep ibus | grep -v TMT | grep -v grep
+@@ -132,7 +135,7 @@ delete-tests\
+ check_tty()
+ {
+ TTY=`tty`
+- if echo $PROGNAME | grep -q runner ; then
++ if echo "$PROGNAME" | grep -q runner ; then
+ if [ $ENABLED_SYSTEMD -eq 1 ] && [ $SESSION_IS_GNOME -eq 1 ] ; then
+ # "not a tty" is correct with TMT tool
+ if echo "$TTY" | grep -E 'tty|console' | grep -v "not a tty" ; then
+@@ -217,6 +220,20 @@ save_screen()
+ }
+
+
++dump_screen_of_test_cases()
++{
++ if test x"$SCREEN_LOG" != xSTDOUT ; then
++ return
++ fi
++ for png in "$TEST_USER_HOME"/*.png ; do
++ test -f "$png" || continue
++ echo "## Dump start $png" 2>>$TEST_LOG 1>>$TEST_LOG
++ base64 "$png" 2>>$TEST_LOG 1>>$TEST_LOG
++ echo "## Dump end $png" 2>>$TEST_LOG 1>>$TEST_LOG
++ done
++}
++
++
+ create_test_user()
+ {
+ if grep -q $TEST_USER /etc/passwd; then
+@@ -230,10 +247,11 @@ create_test_user()
+
+ create_autologin_gdm()
+ {
+- if test -f $GDM_CONF && grep -q $TEST_USER $GDM_CONF; then
++ mkdir -p `dirname "$GDM_CONF"`
++ if test -f "$GDM_CONF" && grep -q "$TEST_USER" "$GDM_CONF"; then
+ return;
+ fi
+- cat > $GDM_CONF << _EOF_GDM_CONF
++ cat > "$GDM_CONF" << _EOF_GDM_CONF
+ [daemon]
+ AutomaticLoginEnable=true
+ AutomaticLogin=$TEST_USER
+@@ -256,7 +274,12 @@ create_xdg_autostart()
+ exit 1
+ fi
+ mkdir -p "$TEST_USER_HOME/.config/autostart"
+- sed -e "s/\(^Exec=.*\)tests ibus\(.*\)/\1tests $TESTS\2/" "$desktop_file" \
++ ARGS_PLUS=""
++ if test x"$SCREEN_LOG" != x ; then
++ ARGS_PLUS="$ARGS_PLUS --screendump $SCREEN_LOG"
++ fi
++ sed -e "s/\(^Exec=.*\)tests ibus\(.*\)/\1tests $TESTS $ARGS_PLUS\2/" \
++ "$desktop_file" \
+ > "$TEST_USER_HOME/.config/autostart/$AUTOSTART_DESKTOP_FILE"
+ LINE="AutostartCondition=if-exists $TEST_USER_HOME/.config/autostart/$AUTOSTART_DESKTOP_FILE"
+ echo "$LINE" >> "$TEST_USER_HOME/.config/autostart/$AUTOSTART_DESKTOP_FILE"
+@@ -334,6 +357,21 @@ init_session()
+ TESTS='ibus'
+ fi
+ check_tty
++ IS_SYSTEM_ACCOUNT=false
++ if [ "$LOGIN_USER" = "root" ] ; then
++ IS_SYSTEM_ACCOUNT=true
++ fi
++ if test x"$SESSION_LANG" = x ; then
++ SESSION_LANG=$LANG
++ fi
++ if test x"$SCREEN_LOG" != x ; then
++ export IBUS_TEST_SCREENSHOT=1
++ fi
++
++ if ! echo "$PROGNAME" | grep -q runner ; then
++ return
++ fi
++
+ if [ $ENABLED_SYSTEMD -eq 1 ] && [ $SESSION_IS_GNOME -eq 1 ] ; then
+ SESSION_FILE1="/usr/lib/systemd/system/gnome-headless-session@.service"
+ SESSION_FILE2="/usr/lib/systemd/system/graphical.target"
+@@ -365,13 +403,6 @@ init_session()
+ touch $LOGIN_HOME/.config/gnome-initial-setup-done
+ chown -R $LOGIN_USER $LOGIN_HOME/.config
+ fi
+- IS_SYSTEM_ACCOUNT=false
+- if [ "$LOGIN_USER" = "root" ] ; then
+- IS_SYSTEM_ACCOUNT=true
+- fi
+- if test x"$SESSION_LANG" = x ; then
+- SESSION_LANG=$LANG
+- fi
+ if test -f /var/lib/AccountsService/users/$LOGIN_USER; then
+ sed -i -e "s/\(Language=\).*/\1$SESSION_LANG/" \
+ /var/lib/AccountsService/users/$LOGIN_USER
+@@ -384,6 +415,35 @@ XSession=gnome
+ SystemAccount=$IS_SYSTEM_ACCOUNT
+ _EOF_AS_CONF
+ fi
++ # for ibus-keypress
++ ls -l /dev/uinput 2>>$TEST_LOG 1>>$TEST_LOG
++ chgrp itestuser /dev/uinput
++ chmod g+rw /dev/uinput
++ ls -l /dev/uinput 2>>$TEST_LOG 1>>$TEST_LOG
++
++ # aciton.id 'org.freedesktop.fwupd.refresh-remote' and
++ # aciton.message "Authentication is required to update the metadata for a "
++ # "configured remote used for firmware updates" is defined in
++ # /usr/share/polkit-1/actions/org.freedesktop.fwupd.policy file
++ # and that message is shown in "Authentication Required" dialog in
++ # gnome-shell headless session in GNOME 50.
++ # action.id 'org.freedesktop.Flatpak.metadata-update' and
++ # action.id 'org.freedesktop.Flatpak.modify-repo' are also shown.
++ rule_file="$AUTOSTART_DESKTOP_DIR/$POLKIT_CUSTOM_RULE_FILE"
++ if test ! -f "$rule_file" ; then
++ print_log -e "${RED}FAIL${NC}: ${RED}ERROR${NC}: No $rule_file"
++ exit 1
++ fi
++ POLKIT_CUSTOM_RULE_DIR="/etc/polkit-1/rules.d"
++ if test ! -d "$POLKIT_CUSTOM_RULE_DIR" ; then
++ mkdir -p "$POLKIT_CUSTOM_RULE_DIR"
++ chmod 755 "$POLKIT_CUSTOM_RULE_DIR"
++ fi
++ if test ! -f "$POLKIT_CUSTOM_RULE_DIR/$POLKIT_CUSTOM_RULE_FILE" ; then
++ cp "$rule_file" "$POLKIT_CUSTOM_RULE_DIR/$POLKIT_CUSTOM_RULE_FILE"
++ chmod 644 "$POLKIT_CUSTOM_RULE_DIR/$POLKIT_CUSTOM_RULE_FILE"
++ systemctl restart polkit
++ fi
+
+ # Prevent from launching a XDG dialog
+ XDG_LOCALE_FILE="$LOGIN_HOME/.config/user-dirs.locale"
+@@ -503,19 +563,39 @@ init_gnome()
+ ## gnome-headless-session does not pull LANG from AccountsService.
+ ##
+ if [ $LOGIN_USER != $USER ] ; then
+- SHELL_SERVICE_FILE="org.gnome.Shell@wayland.service"
++ SHELL_SERVICE_FILE="org.gnome.Shell@.service"
++ SHELL_SERVICE_DEST_FILE="org.gnome.Shell@user.service"
+ SYSTEMD_USER_DIR="$TEST_USER_HOME/.config/systemd/user"
+ ENV_USER_DIR="$TEST_USER_HOME/.config/environment.d"
+ LOCALE_CONF="$ENV_USER_DIR/ibus.conf"
++ # If GNOME version < 50
++ if test ! -f "$SYSTEMD_SYSTEM_DIR/$SHELL_SERVICE_FILE" ; then
++ SHELL_SERVICE_FILE="org.gnome.Shell@wayland.service"
++ SHELL_SERVICE_DEST_FILE="$SHELL_SERVICE_FILE"
++ else
++ GNOME_SHELL_WAYLAND_COMMAND="$GNOME_SHELL_WAYLAND_COMMAND --mode=%i"
++ fi
++ if test x"$SCREEN_LOG" != x ; then
++ GNOME_SHELL_WAYLAND_COMMAND="$GNOME_SHELL_WAYLAND_COMMAND --unsafe-mode"
++ fi
+ if test $HAVE_GRAPHICS -ne 1 ; then
+ if test ! -f "$SYSTEMD_USER_DIR/$SHELL_SERVICE_FILE" ; then
++ PREV_DIR="$PWD"
+ mkdir -p "$SYSTEMD_USER_DIR"
+- pushd "$SYSTEMD_USER_DIR"
++ cd "$SYSTEMD_USER_DIR"
++ # The user systemd and $GNOME_SHELL_WAYLAND_COMMAND no longer
++ # loads $LOCALE_CONF file
++ # So sets Environment in the service file.
+ sed -e "s|^ExecStart=.*|ExecStart=$GNOME_SHELL_WAYLAND_COMMAND|" \
+- $SYSTEMD_SYSTEM_DIR/$SHELL_SERVICE_FILE \
+- > $SHELL_SERVICE_FILE
+- diff $SYSTEMD_SYSTEM_DIR/$SHELL_SERVICE_FILE $SHELL_SERVICE_FILE
+- popd
++ $SYSTEMD_SYSTEM_DIR/$SHELL_SERVICE_FILE | \
++ sed -e "/^ExecStart=/i\\
++Environment=LANG=$DQ$SESSION_LANG$DQ" \
++ > "$SHELL_SERVICE_DEST_FILE"
++ echo "# diff $SYSTEMD_SYSTEM_DIR/$SHELL_SERVICE_FILE" \
++ "$SHELL_SERVICE_DEST_FILE" 2>>$TEST_LOG 1>>$TEST_LOG
++ diff "$SYSTEMD_SYSTEM_DIR/$SHELL_SERVICE_FILE" \
++ "$SHELL_SERVICE_DEST_FILE" 2>>$TEST_LOG 1>>$TEST_LOG
++ cd "$PREV_DIR"
+ fi
+ mkdir -p "$ENV_USER_DIR"
+ cat > "$LOCALE_CONF" << _EOF_LOCALE_CONF
+@@ -590,7 +670,7 @@ operate_desktop_with_systemd()
+ "start") systemctl isolate graphical.target
+ echo ""
+ ;;
+- "stop") init 3;;
++ "stop") systemctl isolate multi-user.target;;
+ "") print_log -e "${RED}FAIL${NC}: ${RED}ERROR${NC}: Wrong command $COMMAND"
+ exit 1;;
+ esac
+@@ -808,6 +888,8 @@ run_gnome_desktop_testing_runner()
+ fail=0
+ if echo $PROGNAME | grep -q autostart ; then
+ export IBUS_DAEMON_WITH_SYSTEMD=1
++ #export GSK_RENDERER=cairo
++ export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.`uname -m`.json
+ fi
+ for tst in $TESTS; do
+ tst_dir="$TEST_CASE_DIR/$tst"
+@@ -840,7 +922,7 @@ EOF
+ run_test_suite()
+ {
+ print_log -e "Start test suite `date '+%F %H:%M:%S:%N'`"
+- if echo $PROGNAME | grep -q runner ; then
++ if echo "$PROGNAME" | grep -q runner ; then
+ if [ $ENABLED_SYSTEMD -eq 1 ] && [ $SESSION_IS_GNOME -eq 1 ] ; then
+ wait_for_systemd_autostart
+ return
+@@ -903,7 +985,7 @@ finit()
+ echo "$LEFT_CALENDAR" | awk '{print $2}' | xargs kill
+ fi
+ fi
+- if echo $PROGNAME | grep -q runner ; then
++ if echo "$PROGNAME" | grep -q runner ; then
+ if [ $ENABLED_SYSTEMD -eq 1 ] && [ $SESSION_IS_GNOME -eq 1 ] ; then
+ operate_desktop_with_systemd "stop"
+ fi
+diff --git a/src/tests/runtest b/src/tests/runtest
+index 4e54420f..dee675cb 100755
+--- a/src/tests/runtest
++++ b/src/tests/runtest
+@@ -94,12 +94,12 @@ func_dirname () {
+
+ # Kill ibus-daemon process and remove temporary files.
+ func_cleanup () {
+- tstdir=$1
+- if test -f $tstdir/ibus-daemon.pid; then
+- . $tstdir/ibus-daemon.pid
++ tstdir="$1"
++ if test -f "$tstdir/ibus-daemon.pid"; then
++ . "$tstdir/ibus-daemon.pid"
+ kill $IBUS_DAEMON_PID > /dev/null 2>&1
+ fi
+- rm -fr $tstdir
++ rm -fr "$tstdir"
+ }
+
+ # Prepare component files necessary for testing, under components/.
+@@ -115,13 +115,18 @@ func_copy_component () {
+ fi
+ }
+
+-trap 'func_cleanup $tstdir' 1 2 3 15
++trap 'func_cleanup "$tstdir"' 1 2 3 15
+
+-tst=$1; shift
+-tstdir=tmp-`func_basename $tst`
++tst="$1"; shift
++real_tst="$tst"
++if echo "$tst" | grep -q 'python' ; then
++ real_tst="$1"
++fi
++real_tst_name=`func_basename "$real_tst"`
++tstdir="tmp-$real_tst_name"
+
+ for t in $DISABLE_GUI_TESTS; do
+- if test $t = `func_basename $tst`; then
++ if test "$t" = "$real_tst_name"; then
+ exit 77
+ fi
+ done
+@@ -134,24 +139,22 @@ fi
+
+ run_test_case()
+ {
+- test -d $tstdir || mkdir $tstdir
+- backup_dir=$PWD
+- cd $tstdir
+-
+ if echo "$tst" | grep -q 'python' ; then
+ # Convert the relative path to the absolute path.
+ if echo "$tst" | grep -q "\./" ; then
+- tst=`realpath $tst`
++ tst=`realpath "$tst"`
+ elif ! echo "$tst" | grep -q "/" ; then
+- tst=`command -v $tst`
++ tst=`command -v "$tst"`
+ fi
+- name=`func_basename "$1"`
+- else
+- name=`func_basename "$tst"`
+ fi
++
++ test -d "$tstdir" || mkdir "$tstdir"
++ backup_dir="$PWD"
++ cd "$tstdir"
++
+ need_bus=no
+ for t in $BUS_REQUIRED_TESTS; do
+- if test "$t" = "$name"; then
++ if test "$t" = "$real_tst_name"; then
+ need_bus=yes
+ fi
+ done
+@@ -165,10 +168,10 @@ run_test_case()
+ func_copy_component "$test_top_srcdir/engine/simple.xml"
+ func_copy_component "$test_top_srcdir/conf/memconf/memconf.xml"
+
+- IBUS_COMPONENT_PATH=$PWD/components
++ IBUS_COMPONENT_PATH="$PWD/components"
+ export IBUS_COMPONENT_PATH
+
+- IBUS_ADDRESS_FILE=$PWD/ibus-daemon.pid
++ IBUS_ADDRESS_FILE="$PWD/ibus-daemon.pid"
+ export IBUS_ADDRESS_FILE
+
+ test $TEST_GTK -eq 1 && case $TEST_GTK_VERSION in
+@@ -194,9 +197,9 @@ run_test_case()
+ echo "NOT FOUND $top_builddir/client/gtk3/im-ibus.so"
+ exit 1
+ fi
+- GTK_IM_MODULE_FILE=$PWD/imcache
++ GTK_IM_MODULE_FILE="$PWD/imcache"
+ export GTK_IM_MODULE_FILE
+- $GTK_QUERY_MODULE "$IM_IBUS_SO" > $GTK_IM_MODULE_FILE
++ $GTK_QUERY_MODULE "$IM_IBUS_SO" > "$GTK_IM_MODULE_FILE"
+ ;;
+ *)
+ echo "NOT SUPPORT GTK_VERSION $TEST_GTK_VERSION"
+@@ -204,19 +207,19 @@ run_test_case()
+ ;;
+ esac || :
+
+- cp "$test_top_srcdir/data/dconf/$IBUS_SCHEMA_FILE" $PWD
+- glib-compile-schemas $PWD 2>/dev/null
++ cp "$test_top_srcdir/data/dconf/$IBUS_SCHEMA_FILE" "$PWD"
++ glib-compile-schemas "$PWD" 2>/dev/null
+ if test $? -ne 0 ; then
+ echo "FAILED glib-compile-schemas"
+ retval=1
+ return
+ fi
+- if test ! -f $PWD/gschemas.compiled ; then
++ if test ! -f "$PWD/gschemas.compiled" ; then
+ echo "NOT FOUND $PWD/gschemas.compiled"
+ retval=1
+ return
+ fi
+- export GSETTINGS_SCHEMA_DIR=$PWD
++ export GSETTINGS_SCHEMA_DIR="$PWD"
+
+ # Start ibus-daemon.
+ DAEMON_ARGS='
+@@ -227,10 +230,10 @@ run_test_case()
+ --verbose
+ '
+ if test x"$DISABLE_DAEMONIZE_IN_TESTS" = x ; then
+- $test_top_builddir/bus/ibus-daemon \
++ "$test_top_builddir/bus/ibus-daemon" \
+ $DAEMON_ARGS --daemonize;
+ else
+- $test_top_builddir/bus/ibus-daemon \
++ "$test_top_builddir/bus/ibus-daemon" \
+ $DAEMON_ARGS &
+ fi
+
+@@ -250,8 +253,8 @@ run_test_case()
+
+ if echo "$tst" | grep -q '^/' ; then
+ if echo "$tst" | grep -q 'python' ; then
+- interpreter=$tst
+- tst=$1
++ interpreter="$tst"
++ tst="$1"
+ shift
+ if echo "$tst" | grep -q '^/' ; then
+ # absolute path for Meson
+@@ -262,28 +265,28 @@ run_test_case()
+ fi
+ else
+ # absolute path for Meson
+- "$tst" $test_top_srcdir/src/tests ${1+"$@"}
++ "$tst" "$test_top_srcdir/src/tests" ${1+"$@"}
+ fi
+ else
+ # relative path for each execution
+- "../$tst" $test_top_srcdir/src/tests ${1+"$@"}
++ "../$tst" "$test_top_srcdir/src/tests" ${1+"$@"}
+ fi
+
+ retval=`expr $retval \| $?`
+
+- cd $backup_dir
++ cd "$backup_dir"
+
+- func_cleanup $tstdir
++ func_cleanup "$tstdir"
+ }
+
+-envfile=$srcdir/`func_basename $tst`.env
+-if test -f $envfile ; then
++envfile="$srcdir/$real_tst_name".env
++if test -f "$envfile" ; then
+ ENVS="`cat $envfile`"
+ fi;
+ if test x"$ENVS" = x ; then
+ run_test_case $@
+ else
+- LANG_backup=$LANG
++ LANG_backup="$LANG"
+ i=1
+ # mesonbuild/mtest.py:TAPParser.parse_line() says:
+ # 'version number must be on the first line'
+@@ -307,7 +310,7 @@ else
+ unset COMPOSE_FILE
+ export $e
+ # TAP info should start with "# ".
+- echo "# Run `func_basename $tst` on $e"
++ echo "# Run $real_tst_name on $e"
+ echo "# ======================="
+ run_test_case $@
+ name="/"`basename "$1"`":$LANG:$COMPOSE_FILE:$NO_LOAD_COMPOSE_FILE"
+@@ -325,7 +328,7 @@ else
+ `echo "$ENVS"`
+ EOF_ENVS
+ unset G_TEST_ROOT_PROCESS
+- export LANG=$LANG_backup
++ export LANG="$LANG_backup"
+ fi
+
+ exit $retval
+--
+2.54.0
+
diff --git a/ibus.spec b/ibus.spec
index 7c44ad6..c026063 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -58,7 +58,7 @@
Name: ibus
Version: 1.5.34
# 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
@@ -584,6 +584,9 @@ dconf update || :
%{_datadir}/installed-tests/ibus
%changelog
+* Thu Jul 16 2026 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.34-2
+- Fix CI in GNOME 50
+
* Wed Jun 03 2026 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.34-2
- Backport upstream patches
- Make an IBusText own an updated IBusAttrList reference
diff --git a/tests/ibus-desktop-testing/install1-common/main.fmf b/tests/ibus-desktop-testing/install1-common/main.fmf
index 75569e1..86db1fc 100644
--- a/tests/ibus-desktop-testing/install1-common/main.fmf
+++ b/tests/ibus-desktop-testing/install1-common/main.fmf
@@ -4,6 +4,7 @@ description:
RHEL GNOME desktop components.
require:
# IBus CI sets
+ - gnome-screenshot
- ibus
- ibus-desktop-testing
- dbus-x11
reply other threads:[~2026-07-16 6:41 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=178418408508.1.3298676189828102077.rpms-ibus-438dfde2274f@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