2025-06-10 06:56:06 +00:00
committed by Git OBS Bridge
8 changed files with 50 additions and 345 deletions

BIN
ibus-1.5.31.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
ibus-1.5.32.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -3,13 +3,25 @@
test x"$INPUT_METHOD" = x"ibus" || exit 0
# GNOME starts ibus by itself
case "$WINDOWMANAGER" in
*gnome*)
exit 0;;
case "$XDG_CURRENT_DESKTOP" in
*GNOME*)
exit 0;;
esac
# sleep for a little while to avoid duplicate startup
# sleep 2
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
case "$XDG_CURRENT_DESKTOP" in
*KDE*)
ibus start --type=kde-wayland
exit 0;;
*)
ibus start --type=wayland
exit 0;;
esac
else
# sleep for a little while to avoid duplicate startup
# sleep 2
ibus start --service-file org.freedesktop.IBus.session.generic.service
exit 0
# `ibus start` does not exit, so we use ibus-daemon
ibus-daemon --xim --daemonize
exit 0
fi

View File

@@ -1,50 +0,0 @@
github.com/ibus/ibus/commit/aac5446
From aac5446e8c98db934912b9b15a1ef92c3b7e4c8c Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Fri, 24 Jan 2025 09:40:31 +0900
Subject: [PATCH] src: Fix declaration errors with GCC 15
BUG=rhbz#2340629
---
src/ibuscomposetable.c | 2 +-
src/ibusenginesimple.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c
index abf51244c..cf865c371 100644
--- a/src/ibuscomposetable.c
+++ b/src/ibuscomposetable.c
@@ -1362,7 +1362,7 @@ ibus_compose_table_new_with_list (GList *compose_list,
gsize s_size_total, s_size_16bit, v_size_32bit, v_index_32bit;
guint n = 0, m = 0;
int i, j;
- gpointer rawdata;
+ gpointer rawdata = NULL;
guint16 *ibus_compose_seqs = NULL;
guint16 *ibus_compose_seqs_32bit_first = NULL;
guint32 *ibus_compose_seqs_32bit_second = NULL;
diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
index a2715ab60..ec4a70ac6 100644
--- a/src/ibusenginesimple.c
+++ b/src/ibusenginesimple.c
@@ -501,7 +501,7 @@ check_hex (IBusEngineSimple *simple,
}
static IBusEngineDict *
-load_emoji_dict ()
+load_emoji_dict (void)
{
IBusEngineDict *emoji_dict;
GList *keys;
@@ -544,7 +544,7 @@ check_emoji_table (IBusEngineSimple *simple,
g_object_ref_sink (priv->lookup_table);
}
if (emoji_dict == NULL)
- emoji_dict = priv->emoji_dict = load_emoji_dict (simple);
+ emoji_dict = priv->emoji_dict = load_emoji_dict ();
if (emoji_dict == NULL || emoji_dict->dict == NULL)
return FALSE;

View File

@@ -1,109 +0,0 @@
github.com/ibus/ibus/commit/d039b95
From d039b95b1af14fd34167a4ca038938cef2ea41ca Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Fri, 24 Jan 2025 10:01:11 +0900
Subject: [PATCH] util/IMdkit: Fix incompatible-pointer-types in
TransportSW.checkAddr
BUG=rhbz#2340629
---
util/IMdkit/Xi18n.h | 18 ++++++++++--------
util/IMdkit/i18nMethod.c | 3 ++-
util/IMdkit/i18nOffsetCache.c | 10 ++++++----
3 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/util/IMdkit/Xi18n.h b/util/IMdkit/Xi18n.h
index 79dd9619a..09097bb61 100644
--- a/util/IMdkit/Xi18n.h
+++ b/util/IMdkit/Xi18n.h
@@ -3,7 +3,7 @@
Copyright (C) 1994-1995 Sun Microsystems, Inc.
Copyright (C) 1993-1994 Hewlett-Packard Company
Copyright (C) 2014 Peng Huang <shawn.p.huang@gmail.com>
- Copyright (C) 2014 Red Hat, Inc.
+ Copyright (C) 2014-2025 Red Hat, Inc.
Permission to use, copy, modify, distribute, and sell this software
and its documentation for any purpose is hereby granted without fee,
@@ -71,13 +71,6 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define I18N_SET 1
#define I18N_GET 2
-typedef struct
-{
- char *transportname;
- int namelen;
- Bool (*checkAddr) ();
-} TransportSW;
-
typedef struct _XIMPending
{
unsigned char *p;
@@ -172,6 +165,15 @@ typedef struct _Xi18nClient
typedef struct _Xi18nCore *Xi18n;
+typedef struct _TransportSW TransportSW;
+
+struct _TransportSW
+{
+ char *transportname;
+ int namelen;
+ Bool (*checkAddr) (Xi18n, TransportSW *, char *);
+};
+
/*
* Callback Struct for XIM Protocol
*/
diff --git a/util/IMdkit/i18nMethod.c b/util/IMdkit/i18nMethod.c
index 9c44e7feb..7f343d875 100644
--- a/util/IMdkit/i18nMethod.c
+++ b/util/IMdkit/i18nMethod.c
@@ -2,6 +2,7 @@
Copyright 1994, 1995 by Sun Microsystems, Inc.
Copyright 1993, 1994 by Hewlett-Packard Company
+ Copyright (C) 2014-2025 Red Hat, Inc.
Permission to use, copy, modify, distribute, and sell this software
and its documentation for any purpose is hereby granted without fee,
@@ -89,7 +90,7 @@ TransportSW _TransR[] =
#ifdef DNETCONN
{"decnet", 6, _Xi18nCheckTransAddress},
#endif
- {(char *) NULL, 0, (Bool (*) ()) NULL}
+ {(char *) NULL, 0, (Bool (*) (Xi18n, TransportSW *, char *))NULL}
};
static Bool GetInputStyles (Xi18n i18n_core, XIMStyles **p_style)
diff --git a/util/IMdkit/i18nOffsetCache.c b/util/IMdkit/i18nOffsetCache.c
index e2fe8c6b3..cab974c74 100644
--- a/util/IMdkit/i18nOffsetCache.c
+++ b/util/IMdkit/i18nOffsetCache.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2014 Peng Huang <shawn.p.huang@gmail.com>
- * Copyright (C) 2014 Red Hat, Inc.
+ * Copyright (C) 2014-2025 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this
* software and its documentation for any purpose is hereby granted
@@ -83,10 +83,12 @@ void _Xi18nSetPropertyOffset (Xi18nOffsetCache *offset_cache, Atom key,
}
if (++offset_cache->size > offset_cache->capacity) {
- offset_cache->capacity *= OFFSET_CACHE_GROWTH_FACTOR;
- offset_cache->data = (Xi18nAtomOffsetPair *) realloc (data,
+ Xi18nAtomOffsetPair *pair = (Xi18nAtomOffsetPair *) realloc (data,
offset_cache->capacity * sizeof (Xi18nAtomOffsetPair));
- if (offset_cache->data == NULL) {
+ offset_cache->capacity *= OFFSET_CACHE_GROWTH_FACTOR;
+ if (pair) {
+ offset_cache->data = pair;
+ } else {
offset_cache->data = data;
--offset_cache->size;
}

View File

@@ -1,156 +0,0 @@
--- ibus-1.5.30/ui/gtk3/panel.vala.orig 2024-05-02 12:24:21.000000000 +0900
+++ ibus-1.5.30/ui/gtk3/panel.vala 2024-06-20 00:40:40.904145726 +0900
@@ -1506,7 +1506,7 @@
if (m_is_kde && !BindingCommon.default_is_xdisplay())
run_ibus_command("restart");
else
- m_bus.exit(true);
+ restart_daemon();
});
m_sys_menu.insert(item, -1);
@@ -1527,6 +1527,144 @@
return m_sys_menu;
}
+ private const string systemd_service_file = "org.freedesktop.IBus.session.generic.service";
+
+ GLib.DBusConnection? get_session_bus() {
+ try {
+ return GLib.Bus.get_sync (GLib.BusType.SESSION, null);
+ } catch (GLib.IOError e) {
+ debug("%s\n", e.message);
+ }
+ return null;
+ }
+
+ string?
+ get_ibus_systemd_object_path(GLib.DBusConnection connection) {
+ string object_path = null;
+ assert(systemd_service_file != null);
+ try {
+ var variant = connection.call_sync (
+ "org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1",
+ "org.freedesktop.systemd1.Manager",
+ "GetUnit",
+ new GLib.Variant("(s)", systemd_service_file),
+ new GLib.VariantType("(o)"),
+ GLib.DBusCallFlags.NONE,
+ -1,
+ null);
+ variant.get("(o)", ref object_path);
+ debug("Succeed to get an object path \"%s\" for IBus " +
+ "systemd service file \"%s\".\n",
+ object_path, systemd_service_file);
+ return object_path;
+ } catch (GLib.Error e) {
+ debug("IBus systemd service file \"%s\" is not installed " +
+ "in your system: %s\n",
+ systemd_service_file, e.message);
+ }
+ return null;
+ }
+
+ bool
+ is_running_daemon_via_systemd(GLib.DBusConnection connection,
+ string object_path) {
+ string? state = null;
+ try {
+ while (true) {
+ var variant = connection.call_sync (
+ "org.freedesktop.systemd1",
+ object_path,
+ "org.freedesktop.DBus.Properties",
+ "Get",
+ new GLib.Variant("(ss)",
+ "org.freedesktop.systemd1.Unit",
+ "ActiveState"),
+ new GLib.VariantType("(v)"),
+ GLib.DBusCallFlags.NONE,
+ -1,
+ null);
+ GLib.Variant child = null;
+ variant.get("(v)", ref child);
+ state = child.dup_string();
+ debug("systemd state is \"%s\" for an object " +
+ "path \"%s\".\n", state, object_path);
+ if (state != "activating")
+ break;
+ Posix.sleep(1);
+ }
+ } catch (GLib.Error e) {
+ debug("%s\n", e.message);
+ return false;
+ }
+ if (state == "active")
+ return true;
+ return false;
+ }
+
+ bool
+ start_daemon_via_systemd(GLib.DBusConnection connection,
+ bool restart) {
+ string object_path = null;
+ string method = "StartUnit";
+ assert(systemd_service_file != null);
+ if (restart)
+ method = "RestartUnit";
+ try {
+ var variant = connection.call_sync (
+ "org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1",
+ "org.freedesktop.systemd1.Manager",
+ method,
+ new GLib.Variant("(ss)", systemd_service_file, "fail"),
+ new GLib.VariantType("(o)"),
+ GLib.DBusCallFlags.NONE,
+ -1,
+ null);
+ variant.get("(o)", ref object_path);
+ debug("Succeed to restart IBus daemon via IBus systemd " +
+ "service file \"%s\": \"%s\"\n",
+ systemd_service_file, object_path);
+ return true;
+ } catch (GLib.Error e) {
+ debug("Failed to %s IBus daemon via IBus systemd " +
+ "service file \"%s\": %s\n",
+ restart ? "restart" : "start",
+ systemd_service_file, e.message);
+ }
+ return false;
+ }
+
+ private void restart_daemon() {
+ do {
+ GLib.DBusConnection? connection = get_session_bus();
+ if (connection == null)
+ break;
+ var object_path = get_ibus_systemd_object_path(connection);
+ if (object_path == null)
+ break;
+ if (is_running_daemon_via_systemd(connection,
+ object_path)) {
+ var result = start_daemon_via_systemd(connection, true);
+ if (!result) {
+ var dialog = new Gtk.MessageDialog(
+ null,
+ Gtk.DialogFlags.DESTROY_WITH_PARENT,
+ Gtk.MessageType.ERROR,
+ Gtk.ButtonsType.CLOSE,
+ "Failed to restart IBus daemon via IBus systemd");
+ dialog.response.connect((id) => {
+ dialog.destroy();
+ });
+ dialog.show_all();
+ }
+ }
+ return;
+ } while (false);
+ // ibus-daemon is not launched via systemd
+ m_bus.exit(true);
+ }
+
private Gtk.Menu create_activate_menu(bool use_x11 = false) {
Gdk.Display display_backup = null;
if (use_x11 && !BindingCommon.default_is_xdisplay()) {

View File

@@ -1,3 +1,23 @@
-------------------------------------------------------------------
Sat May 31 13:37:22 UTC 2025 - Fuminobu Takeyama <ftake@geeko.jp> - 1.5.32
- Upstream update to 1.5.32
* Send FocusIn signal again after delayed FocusId property
* Fix time lag of CandidatePanel in X11
* Update Unicode table with keysym
* Wayland input-method protocol version 1 and 2
* https://github.com/ibus/ibus/wiki/WaylandDesktop
* Additional Wayland input-method; XIM and GTK2, Key repeating, Compose
* ibus start --type wayland new option
* Compose feature updates
* Bug fixes of Wayland features
* Update simple.xml with xkeyboard-config 2.44
- Revert not to use systemd to launch ibus
* Remove ibus-ui-gtk3-restart-via-systemd.patch
- Remove patches merged by the upstream
* ibus-gcc15-1.patch
* ibus-gcc15-2.patch
-------------------------------------------------------------------
Sat Apr 12 14:22:05 UTC 2025 - Friedrich Haubensak <hsk17@mail.de>

View File

@@ -1,7 +1,7 @@
#
# spec file for package ibus
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,6 @@
%define flavor @BUILD_FLAVOR@%nil
%define with_gtk4 0
%define with_wayland 1
%define with_emoji 1
%if "%{flavor}" == "gtk4"
@@ -35,7 +34,7 @@
%define _name ibus
Name: %{_name}%{?nsuffix}
Version: 1.5.31
Version: 1.5.32
Release: 0
Summary: The "Intelligent Input Bus" input method
License: LGPL-2.1-or-later
@@ -73,19 +72,15 @@ Patch12: ibus-disable-engines-preload-in-GNOME.patch
# Qt5 does not be update to the new version and patch for ibus on Leap 15,
# it still needs this patch on leap 15. (boo#1187202)
Patch15: ibus-socket-name-compatibility.patch
# PATCH-FIX-UPSTREAM ibus-ui-gtk3-restart-via-systemd.patch
# Allow ibus-ui-gtk3 to restart ibus-daemon when it is launched by systemd
Patch16: ibus-ui-gtk3-restart-via-systemd.patch
# PATCH-FIX-UPSTREAM ibus-gcc15.patch
Patch17: ibus-gcc15-1.patch
# PATCH-FIX-UPSTREAM ibus-gcc15-2.patch
Patch18: ibus-gcc15-2.patch
BuildRequires: pkgconfig(dbusmenu-glib-0.4)
BuildRequires: pkgconfig(dbusmenu-gtk3-0.4)
BuildRequires: pkgconfig(glib-2.0) >= 2.84.0
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(iso-codes)
BuildRequires: pkgconfig(libnotify)
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(wayland-client) >= 1.2.0
BuildRequires: pkgconfig(wayland-protocols)
%if ! 0%{?with_gtk4}
BuildRequires: fdupes
BuildRequires: gettext-devel
@@ -99,7 +94,6 @@ BuildRequires: unicode-ucd
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(dconf) >= 0.7.5
BuildRequires: pkgconfig(glib-2.0) >= 2.34.0
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(libnotify) >= 0.7
BuildRequires: pkgconfig(python3)
@@ -124,9 +118,6 @@ Requires: python3-gobject-Gdk
# versions to 3.0 only.
Requires: typelib-1_0-Gtk-3_0
Provides: locale(ja;ko;zh)
%if %{with_wayland}
BuildRequires: pkgconfig(wayland-client) >= 1.2.0
%endif
%if %{with_emoji}
BuildRequires: unicode-emoji
BuildRequires: pkgconfig(cldr-emoji-annotation)
@@ -240,16 +231,11 @@ cp -r %{SOURCE11} .
%if 0%{?suse_version} <= 1500
%patch -P 15 -p1
%endif
%patch -P 16 -p1
%patch -P 17 -p1
%patch -P 18 -p1
%build
%configure --disable-static \
--libexecdir=%{_libexecdir}/ibus \
%if %{with_wayland}
--enable-wayland \
%endif
%if %{with_emoji}
--enable-emoji-dict \
%else
@@ -273,7 +259,9 @@ cp -r %{SOURCE11} .
--disable-xim \
--disable-gtk2 \
--disable-gtk3 \
--enable-gtk4 \
--disable-tests \
--enable-gtk4
# test code fails to build without xim
%endif
# non-parallel to have reproducible results in spite of non-deterministic build scripts https://github.com/ibus/ibus/issues/2272