Merge branch 'rawhide' into c10s

This commit is contained in:
Takao Fujiwara 2024-07-30 17:08:24 +09:00
commit 1535efb153
27 changed files with 4144 additions and 739 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

1
.gitignore vendored
View File

@ -72,3 +72,4 @@ ibus-1.3.6.tar.gz
/ibus-1.5.30-rc2.tar.gz
/ibus-1.5.30-rc3.tar.gz
/ibus-1.5.30.tar.gz
/ibus-1.5.31-beta1.tar.gz

View File

@ -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

View File

@ -0,0 +1,4 @@
cksum 3313147683 4137125 ibus-1.5.31-beta1.tar.gz
sha1sum ca2f53757e6bbdaaa758441dfa53c5afb07e93a4 ibus-1.5.31-beta1.tar.gz
sha256sum f8c6560cd6ee4487ec568c85347091208759965660ced238c0fb2fcc049fe829 ibus-1.5.31-beta1.tar.gz
sha512sum 4aa27ce1df56afd0a75019fd0398bc892d1697dfe2fed20b3cc5fe5596d14c3531a430e83a513b79b7811abea01241091f5c0f51a38bddb4a24309cc58a76122 ibus-1.5.31-beta1.tar.gz

View File

@ -1,6 +1,6 @@
From 68996e1430e3478bda1201d8e31a82679b2659a4 Mon Sep 17 00:00:00 2001
From 1286ce92a5ccf68b5dcf1b4a7c0884ce29d5c51b Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Sat, 30 Sep 2023 11:50:14 +0900
Date: Fri, 12 Jul 2024 23:30:25 +0900
Subject: [PATCH] Fix SEGV in bus_panel_proxy_focus_in()
rhbz#1350291 SEGV in BUS_IS_CONNECTION(skip_connection) in
@ -68,10 +68,10 @@ BUG=rhbz#2239633
8 files changed, 208 insertions(+), 56 deletions(-)
diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
index 59787a80..af2fbde2 100644
index 110d864a..391d576a 100644
--- a/bus/dbusimpl.c
+++ b/bus/dbusimpl.c
@@ -610,6 +610,7 @@ static void
@@ -621,6 +621,7 @@ static void
bus_dbus_impl_destroy (BusDBusImpl *dbus)
{
GList *p;
@ -79,7 +79,7 @@ index 59787a80..af2fbde2 100644
for (p = dbus->objects; p != NULL; p = p->next) {
IBusService *object = (IBusService *) p->data;
@@ -633,6 +634,10 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus)
@@ -644,6 +645,10 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus)
for (p = dbus->connections; p != NULL; p = p->next) {
BusConnection *connection = BUS_CONNECTION (p->data);
@ -90,7 +90,7 @@ index 59787a80..af2fbde2 100644
g_signal_handlers_disconnect_by_func (connection,
bus_dbus_impl_connection_destroy_cb, dbus);
ibus_object_destroy (IBUS_OBJECT (connection));
@@ -647,12 +652,39 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus)
@@ -658,12 +663,39 @@ bus_dbus_impl_destroy (BusDBusImpl *dbus)
dbus->unique_names = NULL;
dbus->names = NULL;
@ -131,8 +131,8 @@ index 59787a80..af2fbde2 100644
+#undef BUS_DBUS_MUTEX_SAFE_CLEAR
/* FIXME destruct _lock and _queue members. */
IBUS_OBJECT_CLASS(bus_dbus_impl_parent_class)->destroy ((IBusObject *) dbus);
@@ -1483,13 +1515,20 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
IBUS_OBJECT_CLASS(bus_dbus_impl_parent_class)->destroy ((IBusObject *)dbus);
@@ -1539,13 +1571,20 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
gboolean incoming,
gpointer user_data)
{
@ -439,10 +439,10 @@ index b7eb5961..3075d5d0 100644
static void
diff --git a/portal/portal.c b/portal/portal.c
index c2e4fc7f..76ef4f0a 100644
index 5cd38779..5110baad 100644
--- a/portal/portal.c
+++ b/portal/portal.c
@@ -90,6 +90,11 @@ static void portal_context_g_signal (GDBusProxy *proxy,
@@ -92,6 +92,11 @@ static void portal_context_g_signal (GDBusProxy *proxy,
GVariant *parameters,
IBusPortalContext *portal_context);
@ -454,7 +454,7 @@ index c2e4fc7f..76ef4f0a 100644
G_DEFINE_TYPE_WITH_CODE (IBusPortalContext,
ibus_portal_context,
IBUS_DBUS_TYPE_INPUT_CONTEXT_SKELETON,
@@ -449,11 +454,6 @@ ibus_portal_context_new (IBusInputContext *context,
@@ -492,11 +497,6 @@ ibus_portal_context_new (IBusInputContext *context,
g_strdup_printf (IBUS_PATH_INPUT_CONTEXT, portal_context->id);
portal_context->service = ibus_dbus_service_skeleton_new ();
@ -466,7 +466,7 @@ index c2e4fc7f..76ef4f0a 100644
if (!g_dbus_interface_skeleton_export (
G_DBUS_INTERFACE_SKELETON (portal_context->service),
connection, portal_context->object_path,
@@ -466,8 +466,17 @@ ibus_portal_context_new (IBusInputContext *context,
@@ -509,8 +509,17 @@ ibus_portal_context_new (IBusInputContext *context,
return NULL;
}
@ -484,7 +484,7 @@ index c2e4fc7f..76ef4f0a 100644
return portal_context;
}
@@ -624,6 +633,12 @@ name_owner_changed (GDBusConnection *connection,
@@ -667,6 +676,12 @@ name_owner_changed (GDBusConnection *connection,
IBusPortalContext *portal_context = l->data;
next = l->next;
@ -530,7 +530,7 @@ index a6f2e8e6..b7a04081 100644
m_panel.load_settings();
}
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
index e3fab8d9..a827094f 100644
index 26bded99..21ede7be 100644
--- a/ui/gtk3/switcher.vala
+++ b/ui/gtk3/switcher.vala
@@ -176,8 +176,8 @@ class Switcher : Gtk.Window {
@ -634,5 +634,5 @@ index e3fab8d9..a827094f 100644
#if VALA_0_34
seat.ungrab();
--
2.41.0
2.45.0

View File

@ -1,225 +0,0 @@
From b6376d3a680f7f43583de7731629666b8dd85f01 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Fri, 22 Mar 2024 09:47:28 +0900
Subject: [PATCH] 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
---
ui/gtk3/panel.vala | 2 +-
ui/gtk3/xkblayout.vala | 123 ++++++++++++++++++++++++++++++-----------
2 files changed, 91 insertions(+), 34 deletions(-)
diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
index c7176619..3576972d 100644
--- a/ui/gtk3/panel.vala
+++ b/ui/gtk3/panel.vala
@@ -509,7 +509,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.43.0

File diff suppressed because it is too large Load Diff

View File

@ -1,37 +0,0 @@
From d63da885f8f4e3764b8b572347b70a0cefadc335 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Fri, 11 Feb 2022 11:43:57 +0900
Subject: [PATCH] src/tests: Change window manager to mutter for RHEL
---
src/tests/ibus-desktop-testing-runner.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
index 54b7e0d7..211e0da5 100755
--- a/src/tests/ibus-desktop-testing-runner.in
+++ b/src/tests/ibus-desktop-testing-runner.in
@@ -45,7 +45,7 @@ TEST_LOG_STDOUT=0
SCREEN_LOG=""
HAVE_GRAPHICS=1
VERBOSE=0
-DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session"
+DESKTOP_COMMAND="dbus-launch --exit-with-session mutter"
PID_XORG=0
PID_GNOME_SESSION=0
TESTING_RUNNER="default"
@@ -81,9 +81,9 @@ usage()
"-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" \
+"-d, --desktop=DESKTOP Run DESTKTOP. The default is mutter.\n" \
" Suffix '-with-dbus' can run DESKTOP with dbus session." \
-" E.g. --desktop=mutter-with-dbus" \
+" E.g. --desktop=gnome-session-with-dbus" \
"-t, --tests=\"TESTS...\" Run TESTS programs which is separated by space\n" \
"-r, --runner=RUNNER Run TESTS programs with a test RUNNER.\n" \
" RUNNDER = gnome or default.\n" \
--
2.28.0

View File

@ -1,20 +0,0 @@
diff --git a/src/tests/ibus-keypress.c b/src/tests/ibus-keypress.c
index bab05398..41f16b98 100644
--- a/src/tests/ibus-keypress.c
+++ b/src/tests/ibus-keypress.c
@@ -272,12 +272,15 @@ create_window ()
static void
test_keypress (void)
{
+#if 0
int status = 0;
GError *error = NULL;
+ /* setxkbmap is not available in RHEL10 */
g_spawn_command_line_sync ("setxkbmap -layout us",
NULL, NULL,
&status, &error);
+#endif
g_assert (register_ibus_engine ());
create_window ();

View File

@ -60,9 +60,9 @@
%global dbus_python_version 0.83.0
Name: ibus
Version: 1.5.30
Version: 1.5.31~beta1
# https://github.com/fedora-infra/rpmautospec/issues/101
Release: 10%{?dist}
Release: 11%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPL-2.1-or-later
URL: https://github.com/ibus/%name/wiki
@ -72,16 +72,8 @@ Source2: %{name}-xinput
Source3: %{name}.conf.5
# Patch0: %%{name}-HEAD.patch
Patch0: %{name}-HEAD.patch
# #2267615
Patch1: %{name}-2267615-wayland-init-keymap.patch
# Under testing #1349148 #1385349 #1350291 #1406699 #1432252 #1601577
Patch2: %{name}-1385349-segv-bus-proxy.patch
%if 0%{?rhel} > 8
# Use mutter window manager in RHEL CI
Patch100: %{name}-xx-desktop-testing-mutter.patch
# Disable to run setxkbmap
Patch101: %{name}-xx-disable-setxkbmap.patch
%endif
Patch1: %{name}-1385349-segv-bus-proxy.patch
# autoreconf requires autopoint but not po.m4
BuildRequires: gettext-devel
@ -119,14 +111,6 @@ BuildRequires: cldr-emoji-annotation
BuildRequires: unicode-emoji
BuildRequires: unicode-ucd
BuildRequires: systemd
# for ibus-keypress
BuildRequires: libXtst-devel
# Require xorg-x11-server-Xvfb by IBus CI and it does not resolve with
# xwfb-run or wlheadless-run
# Need to migrate IBus CI into gnome-headless-session
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: libX11
BuildRequires: mutter
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%if %{with gtk2}
@ -621,6 +605,7 @@ dconf update || :
%{_bindir}/ibus-desktop-testing-runner
%{_datadir}/ibus/tests
%{_libexecdir}/ibus-desktop-testing-autostart
%{_libexecdir}/ibus-desktop-testing-module
%files tests
%dir %{_libexecdir}/installed-tests
@ -629,39 +614,47 @@ dconf update || :
%{_datadir}/installed-tests/ibus
%changelog
* Mon Jul 29 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-10
- Disable ibus-panel rich condition in RHEL10
* Mon Jul 29 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.31~beta1-11
- Disable ibus-panel rich condition in RHEL
- Delete ibus-xx-desktop-testing-mutter.patch
- Delete libXtst-devel dependency
* Thu Jul 18 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-9
- Fix OpenScanHub issues
- Resolves #2297735 Move ibus.conf to ibus-xinit sub package
* Sat Jul 27 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.31~beta1-10
- Replace GNOME Xorg with GNOME Wayland in CI
- Replace STI with TMT in CI
* Sat Jul 27 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.31~beta1-9
- Update CI for RHEL packages
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.31~beta1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jul 18 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.31~beta1-7
- Resolves #2297147 Add directory datadir/GConf/gsettings
- Resolves #2297735 Move ibus.conf to ibus-xinit sub package
- Fix memory leaks in error handlings
* Fri Jul 12 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.31~beta1-6
- Bump to 1.5.31-beta1
* Mon Jun 10 2024 Python Maint <python-maint@redhat.com> - 1.5.30-6
- Rebuilt for Python 3.13
* Sat Jun 08 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-5
- Resolves #2290842 Fix Super-space in Wayland
- Fix compose sequences beyond U10000
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 1.5.30-4
- Rebuilt for Python 3.13
* 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
* Sat Jul 13 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-8
- adobe-source-code-pro-fonts is no longer available in CI
- dnf and git do not work in CI after systemd-oomd-defaults is installed
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.5.30-7
- Bump release for June 2024 mass rebuild
* Thu May 16 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-6
- Declare xorg-x11-server-Xvfb BuildRequired for CI
* Thu May 16 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-5
- Disable ibus-panel in ibus-desktop-testing-runner
- Fix annocheck in engine_proxy_new_internal()
* Tue May 14 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-4
- Disable ibus-xinit dependency of ibus-panel
* Tue May 14 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-3
- Install git in CI
* Tue May 14 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-2
- git checkout gnome-desktop-testing until the package is available
- disable setxkbmap
* 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
* Thu May 02 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-1
- Bump to 1.5.30

5
plans/test.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

View File

@ -1 +1 @@
SHA512 (ibus-1.5.30.tar.gz) = cbed37bf62e8d8593c838f8ef7fe0b22bf8f4a661b887fc7be2f2768dda912075abdf3070c22b9699def90e7002aaaf7394f5fc590e12ef6ebb2bb5161cc29a0
SHA512 (ibus-1.5.31-beta1.tar.gz) = 4aa27ce1df56afd0a75019fd0398bc892d1697dfe2fed20b3cc5fe5596d14c3531a430e83a513b79b7811abea01241091f5c0f51a38bddb4a24309cc58a76122

View File

@ -0,0 +1,76 @@
summary: Install common GNOME desktop components
description:
The listed packages are installed commonly between Fedora and
RHEL GNOME desktop components.
require:
# IBus CI sets
- xorg-x11-server-Xvfb
- ibus
- ibus-desktop-testing
- dbus-x11
# https://pagure.io/fedora-comps/blob/main/f/comps-f38.xml.in
# dnf group info GNOME
# mandatory
- dconf
- gdm
- gnome-connections
- gnome-control-center
- gnome-initial-setup
- gnome-session-wayland-session
- gnome-session-xsession
- gnome-settings-daemon
- gnome-shell
- gnome-software
- gnome-terminal
- gnome-text-editor
- nautilus
- polkit
# default
- at-spi2-atk
- at-spi2-core
- avahi
- baobab
# Sometimes version mismatch with gnome-shell in rawhide
#- chrome-gnome-shell
- evince
- fprintd-pam
- glib-networking
- gnome-bluetooth
- gnome-calculator
- gnome-characters
- gnome-classic-session
- gnome-clocks
- gnome-color-manager
- gnome-disk-utility
- gnome-font-viewer
- gnome-logs
- gnome-remote-desktop
- gnome-system-monitor
- gnome-terminal-nautilus
- gnome-user-docs
- gvfs-fuse
- gvfs-goa
- gvfs-gphoto2
- gvfs-mtp
- gvfs-smb
- libcanberra-gtk3
- libproxy-duktape
- librsvg2
- libsane-hpaio
- mesa-dri-drivers
- mesa-libEGL
- ModemManager
- NetworkManager-adsl
- NetworkManager-ppp
- NetworkManager-wwan
- orca
- PackageKit-command-not-found
- PackageKit-gtk3-module
- sane-backends-drivers-scanners
# Move systemd-oomd-defaults to Post-Installing section
- tracker
- tracker-miners
- xdg-desktop-portal
- xdg-desktop-portal-gnome
- xdg-desktop-portal-gtk
- xdg-user-dirs-gtk

View File

@ -0,0 +1,32 @@
summary: Install Fedora specific GNOME desktop components
description:
The listed packages are available in Fedora only.
adjust:
when: distro == fedora
require:
- adobe-source-code-pro-fonts
- gnome-screenshot
- gnome-boxes
- yelp
- cheese
- eog
- evince-djvu
- gnome-backgrounds
- gnome-contacts
- gnome-maps
- gnome-photos
- gnome-themes-extra
- gnome-user-share
- gnome-weather
- gvfs-afc
- gvfs-afp
- gvfs-archive
- NetworkManager-openconnect-gnome
- NetworkManager-openvpn-gnome
- NetworkManager-pptp-gnome
- NetworkManager-ssh-gnome
- NetworkManager-vpnc-gnome
- rygel
- simple-scan
- sushi
- totem

View File

@ -0,0 +1,14 @@
summary: Install build environment
description:
gnome-desktop-testing package is not available in RHEL 10 yet and
the listed packages are installed for the build environment of
gnome-desktop-testing.
adjust:
when: distro != fedora
require:
- autoconf
- automake
- make
- gcc
- git
- libtool

View File

@ -0,0 +1,8 @@
summary: Install GNOME installed-tests testing harness
description:
gnome-desktop-testing package is required by IBus CI(ibus-desktop-testing)
and it's available in Fedora only at present.
adjust:
when: distro == fedora
require:
- gnome-desktop-testing

View File

@ -0,0 +1,6 @@
summary: Install TMT packages
description:
The test script is calling the beakerlib script.
require:
- beakerlib
- tmt

View File

@ -0,0 +1,10 @@
summary: Install ibus specific packages
description:
The listed packages are required by CI of ibus core.
require:
- ibus-tests
# ibus-compose test needs locales
- glibc-langpack-el
- glibc-langpack-fi
- glibc-langpack-ja
- glibc-langpack-pt

View File

@ -0,0 +1,3 @@
summary: gnome-desktop-testing tests
# common test for sub tests
test: env

View File

@ -0,0 +1,4 @@
summary: Run tests
description:
Run CI with ibus-desktop-testing-runner in GNOME Wayland.
test: ./test.sh

View File

@ -0,0 +1,15 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartTest
rlRun -t "/usr/bin/ibus-desktop-testing-runner --runner gnome --no-graphics --lang ja_JP.UTF-8"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "echo test-suite.log"
rlRun "cat test-suite.log"
rlRun "echo /export/home/itestuser/test-autostart.log"
rlRun "cat /export/home/itestuser/test-autostart.log"
rlPhaseEnd
rlJournalEnd

1
tests/main.fmt Normal file
View File

@ -0,0 +1 @@
contact: Takao Fujiwara <fujiwara@redhat.com>

View File

@ -1,3 +0,0 @@
role_pkgs_req:
- rsync
- xorg-x11-server-Xvfb

View File

@ -1,69 +0,0 @@
#!/bin/bash
TEST_LOG="test.log"
TEST_RUN_IN_RAWHIDE=1
declare -i TEST_RUN_IN_RAWHIDE
if [ $# -gt 0 ] ; then
TEST_LOG="$1"
TEST_RUN_IN_RAWHIDE=$2
fi
gen_results()
{
TEST_RUNTIME="$1"
TEST_STATUS="$2"
TEST_STATUS_UPPER="$(echo "$TEST_STATUS" | tr '[:lower:]' '[:upper:]')"
cat > results.xml << _EOF
results:
- test: results
result: $TEST_STATUS
runtime: $TEST_RUNTIME
logs:
- ${TEST_STATUS_UPPER}-str_results.log
_EOF
DIR=$(dirname "$TEST_LOG")
if [ x"$TEST_LOG" != x ] ; then
cp "$TEST_LOG" "$DIR/${TEST_STATUS_UPPER}-str_results.log"
else
touch "$DIR/${TEST_STATUS_UPPER}-str_results.log"
fi
if [ x"$DIR" != x. ] ; then
mv results.xml "$DIR"
fi
}
if [ $TEST_RUN_IN_RAWHIDE -eq 0 ] ; then
IS_RAWHIDE="$(grep -i rawhide /etc/fedora-release)"
if [ x"$IS_RAWHIDE" != x ] ; then
gen_results "0" "pass"
echo -n PASS
exit 0
fi
fi
if [ ! -f $TEST_LOG ] ; then
gen_results "0" "fail"
echo -n ERROR
else
FAIL="$(grep "^FAIL: " $TEST_LOG | grep -v 'FAIL: 0$')"
RUNTIME_FAIL="$(grep -v 'frame' $TEST_LOG | grep "^FAIL: " | sed -e "s/FAIL: //")"
RUNTIME_PASS="$(grep -v 'frame' $TEST_LOG | grep "^PASS: " | sed -e "s/PASS: //")"
if [ x"$RUNTIME_FAIL" = x ] ; then
RUNTIME_FAIL="0"
fi
if [ x"$RUNTIME_PASS" = x ] ; then
RUNTIME_PASS="0"
fi
RUNTIME="$(expr $RUNTIME_FAIL + $RUNTIME_PASS)"
if [ x"$FAIL" != x ] ; then
gen_results "$RUNTIME" "fail"
echo -n ERROR
else
gen_results "$RUNTIME" "pass"
echo -n PASS
fi
fi

View File

@ -1,4 +0,0 @@
---
dependencies:
- role: str-common-init

View File

@ -1,221 +0,0 @@
---
- name: Check if Fedora desktop
register: fedora_desktop
stat:
path: "/etc/fedora-release"
- name: Build and install GNOME installed-tests testing harness
block:
- name: Installing common GNOME desktop components
package:
name:
# IBus CI sets
- xorg-x11-server-Xvfb
- ibus
- ibus-desktop-testing
- dbus-x11
# https://pagure.io/fedora-comps/blob/main/f/comps-f38.xml.in
# dnf group info GNOME
# mandatory
- dconf
- gdm
- gnome-connections
- gnome-control-center
- gnome-initial-setup
- gnome-session-wayland-session
- gnome-session-xsession
- gnome-settings-daemon
- gnome-shell
- gnome-software
- gnome-terminal
- gnome-text-editor
- nautilus
- polkit
# default
- at-spi2-atk
- at-spi2-core
- avahi
- baobab
# Sometimes version mismatch with gnome-shell in rawhide
#- chrome-gnome-shell
- evince
- fprintd-pam
- glib-networking
- gnome-bluetooth
- gnome-calculator
- gnome-characters
- gnome-classic-session
- gnome-clocks
- gnome-color-manager
- gnome-disk-utility
- gnome-font-viewer
- gnome-logs
- gnome-remote-desktop
- gnome-system-monitor
- gnome-terminal-nautilus
- gnome-user-docs
- gvfs-fuse
- gvfs-goa
- gvfs-gphoto2
- gvfs-mtp
- gvfs-smb
- libcanberra-gtk3
- libproxy-duktape
- librsvg2
- libsane-hpaio
- mesa-dri-drivers
- mesa-libEGL
- ModemManager
- NetworkManager-adsl
- NetworkManager-ppp
- NetworkManager-wwan
- orca
- PackageKit-command-not-found
- PackageKit-gtk3-module
- sane-backends-drivers-scanners
# Move systemd-oomd-defaults to Post-Installing section
- tracker
- tracker-miners
- xdg-desktop-portal
- xdg-desktop-portal-gnome
- xdg-desktop-portal-gtk
- xdg-user-dirs-gtk
- name: Installing Fedora specific GNOME desktop components
when: fedora_desktop.stat.exists == true
package:
name:
- adobe-source-code-pro-fonts
- gnome-screenshot
- gnome-boxes
- yelp
- cheese
- eog
- evince-djvu
- gnome-backgrounds
- gnome-contacts
- gnome-maps
- gnome-photos
- gnome-themes-extra
- gnome-user-share
- gnome-weather
- gvfs-afc
- gvfs-afp
- gvfs-archive
- NetworkManager-openconnect-gnome
- NetworkManager-openvpn-gnome
- NetworkManager-pptp-gnome
- NetworkManager-ssh-gnome
- NetworkManager-vpnc-gnome
- rygel
- simple-scan
- sushi
- totem
- name: Installing GNOME installed-tests testing harness
when: fedora_desktop.stat.exists == true
package:
name:
- gnome-desktop-testing
- name: Installing build environment
when: fedora_desktop.stat.exists == false
package:
name:
- autoconf
- automake
- make
- gcc
- git
- libtool
- name: Fetching GNOME installed-tests testing harness source from remote repository
when: fedora_desktop.stat.exists == false
git:
repo: 'https://gitlab.gnome.org/GNOME/gnome-desktop-testing.git'
dest: gnome-desktop-testing
force: yes
- name: Checkout v2021.1 tag in GNOME installed-tests testing harness
when: fedora_desktop.stat.exists == false
command: git checkout -b v2021.1 refs/tags/v2021.1
args:
chdir: gnome-desktop-testing
- name: Post-Installing common GNOME desktop components
package:
name:
# TODO: DNS no longer works after install packages in this section
# so dnf and git should be done before this section
- systemd-oomd-defaults
- name: Configure GNOME installed-tests testing harness build
when: fedora_desktop.stat.exists == false
command: ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var
args:
chdir: gnome-desktop-testing
- name: Build GNOME installed-tests testing harness
when: fedora_desktop.stat.exists == false
command: make
args:
chdir: gnome-desktop-testing
- name: Install GNOME installed-tests testing harness
when: fedora_desktop.stat.exists == false
command: make install
args:
chdir: gnome-desktop-testing
- name: Start IBus installed-tests testing harness
environment:
ANSIBLE: 1
TMPDIR: '{{ remote_artifacts }}'
G_MESSAGES_DEBUG: 'all'
LANG: 'C.UTF-8'
block:
- name: Execute IBus tests
shell: |
set -e
# Delete LC_CTYPE=C.UTF-8
export -n LC_CTYPE
status="FAIL: frame"
ibus-desktop-testing-runner \
--no-graphics \
--runner=gnome \
--tests='{{ installed_test_name }}' \
--output='{{ remote_artifacts }}/{{ installed_test_name }}.log' \
--result='{{ remote_artifacts }}/test.log' \
null
if [ $? -eq 0 ]; then
status="PASS: frame"
fi
if [ -f /var/tmp/ibus-ci-autostart.log ] ; then
echo "#### /var/tmp/ibus-ci-autostart.log"
cat /var/tmp/ibus-ci-autostart.log
rm /var/tmp/ibus-ci-autostart.log
echo "#"
fi
echo "${status}" >> {{ remote_artifacts }}/test.log
echo "#### {{ remote_artifacts }}/{{ installed_test_name }}.log"
if [ -f {{ remote_artifacts }}/{{ installed_test_name }}.log ] ; then
cat {{ remote_artifacts }}/{{ installed_test_name }}.log
fi
echo "#"
echo "#### {{ remote_artifacts }}/test.log"
if [ -f {{ remote_artifacts }}/test.log ] ; then
cat {{ remote_artifacts }}/test.log
fi
echo "#"
- name: Check the results
script: check-results.sh "{{ remote_artifacts }}/test.log" "0"
register: test_fails
failed_when: '"ERROR" in test_fails.stdout'
- name: Set role result
set_fact:
role_result: "{{ test_fails.stdout }}"
role_result_failed: "{{ (test_fails.stdout|d|length > 0) or (test_fails.stderr|d|length > 0) }}"
role_result_msg: "{{ test_fails.stdout|d('tests failed.') }}"
- include_role:
name: str-common-final

View File

@ -1,14 +0,0 @@
- hosts: localhost
roles:
- role: ibus-desktop-testing-role
installed_test_name: ibus
tags:
- classic
- gating
required_packages:
- ibus-tests
# ibus-compose test needs locales
- glibc-langpack-el
- glibc-langpack-fi
- glibc-langpack-pt