From 4db54956118732a944ec3f70ed2ee3a71d2cdc1b Mon Sep 17 00:00:00 2001 From: oreo639 Date: Sun, 11 Sep 2022 13:30:19 -0700 Subject: [PATCH] ibus: update to 1.5.27. --- .../patches/src-Fix-refcounting-issues.patch | 267 ------------------ srcpkgs/ibus/template | 25 +- 2 files changed, 13 insertions(+), 279 deletions(-) delete mode 100644 srcpkgs/ibus/patches/src-Fix-refcounting-issues.patch diff --git a/srcpkgs/ibus/patches/src-Fix-refcounting-issues.patch b/srcpkgs/ibus/patches/src-Fix-refcounting-issues.patch deleted file mode 100644 index d1923f71a18e..000000000000 --- a/srcpkgs/ibus/patches/src-Fix-refcounting-issues.patch +++ /dev/null @@ -1,267 +0,0 @@ -From 17648f0522910480b6c5dd4f5356ca1f6c160bf5 Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Tue, 29 Mar 2022 22:48:19 +0200 -Subject: [PATCH] src: Fix refcounting issues - -Commit 5a455b1ead attempted to fix both GLib warnings around -floating references and other presumed refcounting issues. However -it missed 2 kinds of bugs: - -- The places that take an IBusText created from a static string - were made to avoid freeing it afterwards, but the staticness refers - to the string content, not the object itself. -- The places that are documented to emit signals on floating object - references used to do the following after signal emission: - - if (g_object_is_floating (object)) - g_object_unref (object) - - And did possibly trigger GLib warnings were changed to: - - if (g_object_is_floating (object)) - g_object_sink_ref (object); - g_object_unref (object); - - Which fixes the GLib warning for floating references, but do - unintendedly steal one reference away for non floating references. - -This commit is essentially a revert of commit 5a455b1ead, but -addressing both things differently: - -- All label/tooltip/symbol IBusText properties in IBusProperty do - now always sink the reference of the stored object. - -- All places documented as maybe using objects with a floating reference - on signals changed to doing: - - if (g_object_is_floating (object)) { - g_object_ref_sink (object); - g_object_unref (object); - } - - So the floating reference is owned and unreferenced without warnings, - but already owned references are left unchanged. - -This addresses the possible GLib warnings, fixes the possible double -unrefs happening on IBusText used in signals, and fixes the missing -unrefs on IBusText objects created from static strings. - -BUG=https://github.com/ibus/ibus/issues/2393 -BUG=https://github.com/ibus/ibus/issues/2387 ---- - src/ibusinputcontext.c | 35 +++++++++++++++++++++-------------- - src/ibusproperty.c | 32 +++++++++++++++++--------------- - 2 files changed, 38 insertions(+), 29 deletions(-) - -diff --git a/src/ibusinputcontext.c b/src/ibusinputcontext.c -index 4b27551bd..7981de381 100644 ---- a/src/ibusinputcontext.c -+++ b/src/ibusinputcontext.c -@@ -549,9 +549,10 @@ ibus_input_context_g_signal (GDBusProxy *proxy, - g_variant_unref (variant); - g_signal_emit (context, context_signals[COMMIT_TEXT], 0, text); - -- if (g_object_is_floating (text)) -+ if (g_object_is_floating (text)) { - g_object_ref_sink (text); -- g_object_unref (text); -+ g_object_unref (text); -+ } - return; - } - if (g_strcmp0 (signal_name, "UpdatePreeditText") == 0) { -@@ -569,9 +570,10 @@ ibus_input_context_g_signal (GDBusProxy *proxy, - cursor_pos, - visible); - -- if (g_object_is_floating (text)) -+ if (g_object_is_floating (text)) { - g_object_ref_sink (text); -- g_object_unref (text); -+ g_object_unref (text); -+ } - return; - } - if (g_strcmp0 (signal_name, "UpdatePreeditTextWithMode") == 0) { -@@ -592,9 +594,10 @@ ibus_input_context_g_signal (GDBusProxy *proxy, - visible, - mode); - -- if (g_object_is_floating (text)) -+ if (g_object_is_floating (text)) { - g_object_ref_sink (text); -- g_object_unref (text); -+ g_object_unref (text); -+ } - return; - } - -@@ -621,9 +624,10 @@ ibus_input_context_g_signal (GDBusProxy *proxy, - 0, - text, - visible); -- if (g_object_is_floating (text)) -+ if (g_object_is_floating (text)) { - g_object_ref_sink (text); -- g_object_unref (text); -+ g_object_unref (text); -+ } - return; - } - -@@ -640,9 +644,10 @@ ibus_input_context_g_signal (GDBusProxy *proxy, - 0, - table, - visible); -- if (g_object_is_floating (table)) -+ if (g_object_is_floating (table)) { - g_object_ref_sink (table); -- g_object_unref (table); -+ g_object_unref (table); -+ } - return; - - } -@@ -659,9 +664,10 @@ ibus_input_context_g_signal (GDBusProxy *proxy, - 0, - prop_list); - -- if (g_object_is_floating (prop_list)) -+ if (g_object_is_floating (prop_list)) { - g_object_ref_sink (prop_list); -- g_object_unref (prop_list); -+ g_object_unref (prop_list); -+ } - return; - } - -@@ -673,9 +679,10 @@ ibus_input_context_g_signal (GDBusProxy *proxy, - - g_signal_emit (context, context_signals[UPDATE_PROPERTY], 0, prop); - -- if (g_object_is_floating (prop)) -+ if (g_object_is_floating (prop)) { - g_object_ref_sink (prop); -- g_object_unref (prop); -+ g_object_unref (prop); -+ } - return; - } - -diff --git a/src/ibusproperty.c b/src/ibusproperty.c -index 6d4ed088e..cd8a0e2a6 100644 ---- a/src/ibusproperty.c -+++ b/src/ibusproperty.c -@@ -336,20 +336,17 @@ ibus_property_destroy (IBusProperty *prop) - prop->priv->icon = NULL; - - if (prop->priv->label) { -- if (!ibus_text_get_is_static (prop->priv->label)) -- g_object_unref (prop->priv->label); -+ g_object_unref (prop->priv->label); - prop->priv->label = NULL; - } - - if (prop->priv->symbol) { -- if (!ibus_text_get_is_static (prop->priv->symbol)) -- g_object_unref (prop->priv->symbol); -+ g_object_unref (prop->priv->symbol); - prop->priv->symbol = NULL; - } - - if (prop->priv->tooltip) { -- if (!ibus_text_get_is_static (prop->priv->tooltip)) -- g_object_unref (prop->priv->tooltip); -+ g_object_unref (prop->priv->tooltip); - prop->priv->tooltip = NULL; - } - -@@ -404,7 +401,7 @@ ibus_property_deserialize (IBusProperty *prop, - g_variant_get_child (variant, retval++, "u", &prop->priv->type); - - GVariant *subvar = g_variant_get_child_value (variant, retval++); -- if (prop->priv->label && !ibus_text_get_is_static (prop->priv->label)) { -+ if (prop->priv->label) { - g_object_unref (prop->priv->label); - } - prop->priv->label = IBUS_TEXT (ibus_serializable_deserialize (subvar)); -@@ -414,7 +411,7 @@ ibus_property_deserialize (IBusProperty *prop, - ibus_g_variant_get_child_string (variant, retval++, &prop->priv->icon); - - subvar = g_variant_get_child_value (variant, retval++); -- if (prop->priv->tooltip && !ibus_text_get_is_static (prop->priv->tooltip)) { -+ if (prop->priv->tooltip) { - g_object_unref (prop->priv->tooltip); - } - prop->priv->tooltip = IBUS_TEXT (ibus_serializable_deserialize (subvar)); -@@ -435,7 +432,7 @@ ibus_property_deserialize (IBusProperty *prop, - - /* Keep the serialized order for the compatibility when add new members. */ - subvar = g_variant_get_child_value (variant, retval++); -- if (prop->priv->symbol && !ibus_text_get_is_static (prop->priv->symbol)) { -+ if (prop->priv->symbol) { - g_object_unref (prop->priv->symbol); - } - prop->priv->symbol = IBUS_TEXT (ibus_serializable_deserialize (subvar)); -@@ -567,7 +564,7 @@ ibus_property_set_label (IBusProperty *prop, - g_assert (IBUS_IS_PROPERTY (prop)); - g_return_if_fail (label == NULL || IBUS_IS_TEXT (label)); - -- if (prop->priv->label && !ibus_text_get_is_static (prop->priv->label)) { -+ if (prop->priv->label) { - g_object_unref (prop->priv->label); - } - -@@ -575,8 +572,10 @@ ibus_property_set_label (IBusProperty *prop, - prop->priv->label = ibus_text_new_from_static_string (""); - } - else { -- prop->priv->label = g_object_ref_sink (label); -+ prop->priv->label = label; - } -+ -+ g_object_ref_sink (prop->priv->label); - } - - void -@@ -586,7 +585,7 @@ ibus_property_set_symbol (IBusProperty *prop, - g_assert (IBUS_IS_PROPERTY (prop)); - g_return_if_fail (symbol == NULL || IBUS_IS_TEXT (symbol)); - -- if (prop->priv->symbol && !ibus_text_get_is_static (prop->priv->symbol)) { -+ if (prop->priv->symbol) { - g_object_unref (prop->priv->symbol); - } - -@@ -594,8 +593,10 @@ ibus_property_set_symbol (IBusProperty *prop, - prop->priv->symbol = ibus_text_new_from_static_string (""); - } - else { -- prop->priv->symbol = g_object_ref_sink (symbol); -+ prop->priv->symbol = symbol; - } -+ -+ g_object_ref_sink (prop->priv->symbol); - } - - void -@@ -615,7 +616,7 @@ ibus_property_set_tooltip (IBusProperty *prop, - g_assert (IBUS_IS_PROPERTY (prop)); - g_assert (tooltip == NULL || IBUS_IS_TEXT (tooltip)); - -- if (prop->priv->tooltip && !ibus_text_get_is_static (prop->priv->tooltip)) { -+ if (prop->priv->tooltip) { - g_object_unref (prop->priv->tooltip); - } - -@@ -624,8 +625,9 @@ ibus_property_set_tooltip (IBusProperty *prop, - } - else { - prop->priv->tooltip = tooltip; -- g_object_ref_sink (prop->priv->tooltip); - } -+ -+ g_object_ref_sink (prop->priv->tooltip); - } - - void diff --git a/srcpkgs/ibus/template b/srcpkgs/ibus/template index d84d4f6dceb8..f74b4e0d1191 100644 --- a/srcpkgs/ibus/template +++ b/srcpkgs/ibus/template @@ -1,29 +1,30 @@ # Template file for 'ibus' pkgname=ibus -version=1.5.26 -revision=2 +version=1.5.27 +revision=1 build_style=gnu-configure build_helper="gir" configure_args="--enable-ui --enable-gtk3 --enable-gtk4 - --disable-tests --disable-schemas-compile --disable-systemd-services - --enable-memconf --enable-dconf --enable-wayland - --with-python=/usr/bin/python3 + --enable-memconf --enable-dconf --enable-wayland --enable-xim + --disable-schemas-compile --disable-systemd-services + --with-python=/usr/bin/python3 --disable-python2 $(vopt_enable dicts emoji-dict) $(vopt_enable dicts unicode-dict) --enable-introspection --enable-vala $(vopt_enable ibus_setup setup)" -hostmakedepends="automake gettext-devel libtool pkg-config intltool dconf +hostmakedepends="pkg-config libtool gettext-devel intltool dconf python3 glib-devel vala $(vopt_if dicts 'cldr-emoji-annotation unicode-character-database unicode-emoji')" makedepends="dconf-devel gtk+-devel gtk4-devel hicolor-icon-theme iso-codes json-glib-devel libnotify-devel librsvg-devel python3-xdg vala libXtst-devel" -depends="hicolor-icon-theme iso-codes dbus-x11 python3-xdg - $(vopt_if ibus_setup 'python3-gobject>=3.12.1_3')" +depends="hicolor-icon-theme iso-codes setxkbmap dconf python3-xdg + dbus-x11 $(vopt_if ibus_setup 'python3-gobject>=3.12.1_3')" short_desc="Intelligent Input Bus" -maintainer="Orphaned " +maintainer="oreo639 " license="LGPL-2.1-or-later" homepage="https://github.com/ibus/ibus" distfiles="https://github.com/ibus/ibus/releases/download/${version}/ibus-${version}.tar.gz" -checksum=5c2fd118e7bfd4e9a42c3a20e6175a263426c90b6256f94989ed3d0384f4c9fc +checksum=6efbda5adb96f607cf7108d1e270962c0729a59c9ea6d58eea2dde0e3cbb97df +make_check_args="VERBOSE=1" build_options="ibus_setup dicts" desc_option_ibus_setup="Enable support for building the ibus setup UI" @@ -33,8 +34,8 @@ if [ -z "$CROSS_BUILD" ]; then build_options_default+=" dicts" fi -pre_install() { - vmkdir etc/dconf/db +pre_check() { + export DISABLE_GUI_TESTS="ibus-compose ibus-keypress test-stress xkb-latin-layouts" } post_install() {