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] autotool: Bump to 1.5.17
Date: Sun, 31 May 2026 02:06:39 GMT [thread overview]
Message-ID: <178019319954.1.8705860140361831836.rpms-ibus-10da60ca9248@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : 10da60ca92482357ada52b40e510073481308abd
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2017-10-22T20:28:11+09:00
Stats : +139/-55 in 5 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/10da60ca92482357ada52b40e510073481308abd?branch=autotool
Log:
Bump to 1.5.17
---
diff --git a/.gitignore b/.gitignore
index b762e46..cb853da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,3 +52,4 @@ ibus-1.3.6.tar.gz
/ibus-1.5.15.tar.gz
/cldr-emoji-annotation-30.0.3_2.tar.gz
/ibus-1.5.16.tar.gz
+/ibus-1.5.17.tar.gz
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ibus-HEAD.patch
diff --git a/ibus-xx-emoji-harfbuzz.patch b/ibus-xx-emoji-harfbuzz.patch
index a2dcb2d..3921c3e 100644
--- a/ibus-xx-emoji-harfbuzz.patch
+++ b/ibus-xx-emoji-harfbuzz.patch
@@ -1,6 +1,6 @@
-From f85ce71361d3d55eccc0bcc4fba1ccfb2a6c670f Mon Sep 17 00:00:00 2001
+From 1e358f28a2b36743847584671ef533769036b40d Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Wed, 20 Sep 2017 13:04:55 +0900
+Date: Sun, 22 Oct 2017 10:45:33 +0900
Subject: [PATCH] Integrate custom rendering to use HarfBuzz glyph info
IBusFontSet offers FcFontSet, glyph info with HarfBuzz and rendering
@@ -14,15 +14,15 @@ Need configure --enable-harfbuzz-for-emoji option to enable this feature.
[1]: https://bugzilla.gnome.org/show_bug.cgi?id=780669
https://bugzilla.gnome.org/show_bug.cgi?id=781123
---
- bindings/vala/IBusFontSet-1.0.metadata | 1 +
- bindings/vala/Makefile.am | 83 +++
- bindings/vala/ibus-fontset-1.0.deps | 1 +
- configure.ac | 29 +
- ui/gtk3/Makefile.am | 32 ++
- ui/gtk3/emojier.vala | 100 +++-
- ui/gtk3/ibusfontset.c | 950 +++++++++++++++++++++++++++++++++
- ui/gtk3/ibusfontset.h | 302 +++++++++++
- 8 files changed, 1496 insertions(+), 2 deletions(-)
+ bindings/vala/IBusFontSet-1.0.metadata | 1 +
+ bindings/vala/Makefile.am | 83 +++
+ bindings/vala/ibus-fontset-1.0.deps | 1 +
+ configure.ac | 29 +
+ ui/gtk3/Makefile.am | 32 +
+ ui/gtk3/emojier.vala | 100 +++-
+ ui/gtk3/ibusfontset.c | 1030 ++++++++++++++++++++++++++++++++
+ ui/gtk3/ibusfontset.h | 302 ++++++++++
+ 8 files changed, 1576 insertions(+), 2 deletions(-)
create mode 100644 bindings/vala/IBusFontSet-1.0.metadata
create mode 100644 bindings/vala/ibus-fontset-1.0.deps
create mode 100644 ui/gtk3/ibusfontset.c
@@ -250,10 +250,10 @@ index 786b80e6..cd1e9c2c 100644
man_seven_DATA =$(man_seven_files:.7=.7.gz)
man_sevendir = $(mandir)/man7
diff --git a/ui/gtk3/emojier.vala b/ui/gtk3/emojier.vala
-index 9cd98140..c581671e 100644
+index f3e9f15c..58a26dd6 100644
--- a/ui/gtk3/emojier.vala
+++ b/ui/gtk3/emojier.vala
-@@ -80,6 +80,9 @@ class IBusEmojier : Gtk.ApplicationWindow {
+@@ -99,6 +99,9 @@ class IBusEmojier : Gtk.ApplicationWindow {
}
}
private class EWhiteLabel : Gtk.Label {
@@ -263,7 +263,7 @@ index 9cd98140..c581671e 100644
public EWhiteLabel(string text) {
GLib.Object(
name : "IBusEmojierWhiteLabel"
-@@ -87,8 +90,78 @@ class IBusEmojier : Gtk.ApplicationWindow {
+@@ -106,8 +109,78 @@ class IBusEmojier : Gtk.ApplicationWindow {
if (text != "")
set_label(text);
}
@@ -343,7 +343,7 @@ index 9cd98140..c581671e 100644
public ESelectedLabel(string text) {
GLib.Object(
name : "IBusEmojierSelectedLabel"
-@@ -97,7 +170,7 @@ class IBusEmojier : Gtk.ApplicationWindow {
+@@ -116,7 +189,7 @@ class IBusEmojier : Gtk.ApplicationWindow {
set_label(text);
}
}
@@ -352,7 +352,7 @@ index 9cd98140..c581671e 100644
public EGoldLabel(string text) {
GLib.Object(
name : "IBusEmojierGoldLabel"
-@@ -212,6 +285,9 @@ class IBusEmojier : Gtk.ApplicationWindow {
+@@ -231,6 +304,9 @@ class IBusEmojier : Gtk.ApplicationWindow {
m_category_to_emojis_dict;
private static GLib.HashTable<string, GLib.SList<string>>?
m_emoji_to_emoji_variants_dict;
@@ -362,7 +362,7 @@ index 9cd98140..c581671e 100644
private ThemedRGBA m_rgba;
private Gtk.Box m_vbox;
-@@ -1609,6 +1685,22 @@ class IBusEmojier : Gtk.ApplicationWindow {
+@@ -1666,6 +1742,22 @@ class IBusEmojier : Gtk.ApplicationWindow {
}
@@ -385,7 +385,7 @@ index 9cd98140..c581671e 100644
public static bool has_loaded_emoji_dict() {
if (m_emoji_to_data_dict == null)
return false;
-@@ -1639,6 +1731,10 @@ class IBusEmojier : Gtk.ApplicationWindow {
+@@ -1696,6 +1788,10 @@ class IBusEmojier : Gtk.ApplicationWindow {
int font_size = font_desc.get_size() / Pango.SCALE;
if (font_size != 0)
m_emoji_font_size = font_size;
@@ -398,10 +398,10 @@ index 9cd98140..c581671e 100644
diff --git a/ui/gtk3/ibusfontset.c b/ui/gtk3/ibusfontset.c
new file mode 100644
-index 00000000..d637d034
+index 00000000..16ceef05
--- /dev/null
+++ b/ui/gtk3/ibusfontset.c
-@@ -0,0 +1,950 @@
+@@ -0,0 +1,1030 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* vim:set et sts=4: */
+/* ibus - The Input Bus
@@ -443,15 +443,22 @@ index 00000000..d637d034
+#define SERIF "serif"
+#define SANS "sans"
+
-+
-+static gboolean m_color_supported;
-+static FT_Library m_ftlibrary;
-+static FcFontSet *m_fcfontset;
-+static gchar *m_family;
-+static guint m_size;
-+static gchar *m_language;
-+static GHashTable *m_scaled_font_table;
-+static GHashTable *m_hb_font_table;
++typedef struct _FcFontSetEx {
++ int nfont;
++ int sfont;
++ FcPattern **fonts;
++ FT_Face *ft_faces;
++} FcFontSetEx;
++
++static gboolean m_color_supported;
++static FT_Library m_ftlibrary;
++static FcFontSetEx *m_fcfontset;
++static gchar *m_family;
++static guint m_size;
++static gchar *m_language;
++static GHashTable *m_font_index_per_char_table;
++static GHashTable *m_scaled_font_table;
++static GHashTable *m_hb_font_table;
+
+enum {
+ PROP_0,
@@ -689,8 +696,13 @@ index 00000000..d637d034
+ pattern = FcPatternCreate ();
+ FcPatternAddString (pattern, FC_FAMILY, (FcChar8*) family);
+ FcPatternAddDouble (pattern, FC_SIZE, (double) size);
++/* FC_VERSION is for the build check of FC_COLOR and m_color_supported is
++ * for the runtime check.
++ */
++#if FC_VERSION >= 21205
+ if (m_color_supported)
+ FcPatternAddBool (pattern, FC_COLOR, has_color);
++#endif
+ FcPatternAddDouble (pattern, FC_DPI, 96);
+ FcConfigSubstitute(NULL, pattern, FcMatchPattern);
+ font_options = cairo_font_options_create ();
@@ -889,8 +901,10 @@ index 00000000..d637d034
+
+ FcPatternGetString (buff->fcfont, FC_FAMILY, 0, &family);
+ g_return_if_fail (family != NULL);
++#if FC_VERSION >= 21205
+ if (m_color_supported)
+ FcPatternGetBool (buff->fcfont, FC_COLOR, 0, &has_color);
++#endif
+ size = m_size;
+ if (size == 0) {
+ g_warning ("Font size is not right for font %s.", family);
@@ -937,7 +951,7 @@ index 00000000..d637d034
+ return ft_face;
+}
+
-+void
++static void
+_cairo_show_unknown_glyphs (cairo_t *cr,
+ const cairo_glyph_t *glyphs,
+ guint num_glyphs,
@@ -999,6 +1013,25 @@ index 00000000..d637d034
+ cairo_restore (cr);
+}
+
++static void
++ibus_fcfontset_destroy_ex (FcFontSetEx *fcfontset_ex)
++{
++ FcFontSet *fcfontset = NULL;
++ int i;
++
++ g_return_if_fail (fcfontset_ex != NULL);
++
++ for (i = 0; i < fcfontset_ex->nfont; i++)
++ FT_Done_Face (fcfontset_ex->ft_faces[i]);
++ fcfontset = FcFontSetCreate ();
++ fcfontset->nfont = fcfontset_ex->nfont;
++ fcfontset->sfont = fcfontset_ex->sfont;
++ fcfontset->fonts = fcfontset_ex->fonts;
++ FcFontSetDestroy (fcfontset);
++ g_free (fcfontset_ex->ft_faces);
++ g_free (fcfontset_ex);
++}
++
+IBusCairoLine *
+ibus_cairo_line_copy (IBusCairoLine *cairo_lines)
+{
@@ -1151,6 +1184,7 @@ index 00000000..d637d034
+ guint size;
+ const gchar *language;
+ gboolean update_fontset = FALSE;
++ FcFontSet *fcfontset = NULL;
+ FcResult result;
+
+ g_return_val_if_fail (IBUS_IS_FONTSET (fontset), FALSE);
@@ -1177,9 +1211,13 @@ index 00000000..d637d034
+ if (!update_fontset && m_fcfontset != NULL)
+ return FALSE;
+
++ if (m_font_index_per_char_table)
++ g_hash_table_destroy (m_font_index_per_char_table);
+ if (m_fcfontset)
-+ g_clear_pointer (&m_fcfontset, FcFontSetDestroy);
++ g_clear_pointer (&m_fcfontset, ibus_fcfontset_destroy_ex);
+
++ m_font_index_per_char_table = g_hash_table_new (g_direct_hash,
++ g_direct_equal);
+ if (g_strcmp0 (family, ""))
+ FcPatternAddString (pattern, FC_FAMILY, (const FcChar8*) family);
+ if (size > 0)
@@ -1189,21 +1227,32 @@ index 00000000..d637d034
+ FcPatternAddInteger (pattern, FC_WEIGHT, FC_WEIGHT_NORMAL);
+ FcPatternAddInteger (pattern, FC_WIDTH, FC_WIDTH_NORMAL);
+ FcPatternAddInteger (pattern, FC_DPI, 96);
++#if FC_VERSION >= 21205
+ if (m_color_supported &&
+ (!g_ascii_strncasecmp (family, MONOSPACE, strlen (MONOSPACE)) ||
+ !g_ascii_strncasecmp (family, SERIF, strlen (SERIF)) ||
+ !g_ascii_strncasecmp (family, SANS, strlen (SANS)))) {
+ FcPatternAddBool (pattern, FC_COLOR, TRUE);
+ }
++#endif
+ FcConfigSubstitute (NULL, pattern, FcMatchPattern);
+ FcConfigSubstitute (NULL, pattern, FcMatchFont);
+ FcDefaultSubstitute (pattern);
-+ m_fcfontset = FcFontSort (NULL, pattern, FcTrue, NULL, &result);
++ fcfontset = FcFontSort (NULL, pattern, FcTrue, NULL, &result);
+ FcPatternDestroy (pattern);
-+ if (result == FcResultNoMatch || m_fcfontset->nfont == 0) {
++ if (result == FcResultNoMatch || fcfontset->nfont == 0) {
+ g_warning ("No FcFontSet for %s", family ? family : "(null)");
+ return FALSE;
+ }
++ m_fcfontset = g_new0 (FcFontSetEx, 1);
++ m_fcfontset->nfont = fcfontset->nfont;
++ m_fcfontset->sfont = fcfontset->sfont;
++ m_fcfontset->fonts = fcfontset->fonts;
++ m_fcfontset->ft_faces = g_new0 (FT_Face, fcfontset->nfont);
++ fcfontset->nfont = 0;
++ fcfontset->sfont = 0;
++ fcfontset->fonts = NULL;
++ FcFontSetDestroy (fcfontset);
+ return TRUE;
+}
+
@@ -1244,14 +1293,37 @@ index 00000000..d637d034
+ ++n;
+ continue;
+ }
-+ for (i = 0; i < m_fcfontset->nfont; i++) {
-+ if (g_unichar_iscntrl (c) && !g_unichar_isspace (c))
++ i = GPOINTER_TO_INT (g_hash_table_lookup (m_font_index_per_char_table,
++ GINT_TO_POINTER (c)));
++ if (i > 0) {
++ i--;
++ if (i >= m_fcfontset->nfont) {
++ g_warning ("i:%d >= m_fcfontset->nfont:%d",
++ i, m_fcfontset->nfont);
++ } else {
++ buff[n].fcfont = m_fcfontset->fonts[i];
++ has_glyphs = TRUE;
++ }
++ }
++ for (; i < m_fcfontset->nfont; i++) {
++ if (!has_glyphs && g_unichar_iscntrl (c) && !g_unichar_isspace (c))
+ break;
-+ FT_Face ft_face = ibus_fontset_get_ftface_from_fcfont (
-+ fontset,
-+ m_fcfontset->fonts[i]);
-+ if (FT_Get_Char_Index (ft_face, c) != 0) {
++ FT_Face ft_face = m_fcfontset->ft_faces[i];
++ if (!has_glyphs && ft_face == 0) {
++ ft_face = ibus_fontset_get_ftface_from_fcfont (
++ fontset,
++ m_fcfontset->fonts[i]);
++ m_fcfontset->ft_faces[i] = ft_face;
++ }
++ if (has_glyphs || FT_Get_Char_Index (ft_face, c) != 0) {
++ FcChar8 *font_file = NULL;
++ FcPatternGetString (m_fcfontset->fonts[i], FC_FILE, 0, &font_file);
+ buff[n].fcfont = m_fcfontset->fonts[i];
++ if (!has_glyphs) {
++ g_hash_table_insert (m_font_index_per_char_table,
++ GINT_TO_POINTER (c),
++ GINT_TO_POINTER (i + 1));
++ }
+ if (n > 0 && buff[n - 1].fcfont != buff[n].fcfont) {
+ get_string_extents_with_font (str->str,
+ &buff[n - 1],
@@ -1265,10 +1337,8 @@ index 00000000..d637d034
+ }
+ ++n;
+ has_glyphs = TRUE;
-+ FT_Done_Face (ft_face);
+ break;
+ }
-+ FT_Done_Face (ft_face);
+ }
+ if (!has_glyphs) {
+ if (n > 0) {
@@ -1278,24 +1348,34 @@ index 00000000..d637d034
+ * likes Pango.
+ */
+ for (i = 0; i < m_fcfontset->nfont; i++) {
-+ FT_Face ft_face = ibus_fontset_get_ftface_from_fcfont (
-+ fontset,
-+ m_fcfontset->fonts[i]);
++ FT_Face ft_face = m_fcfontset->ft_faces[i];
++ if (ft_face == 0) {
++ ft_face = ibus_fontset_get_ftface_from_fcfont (
++ fontset,
++ m_fcfontset->fonts[i]);
++ m_fcfontset->ft_faces[i] = ft_face;
++ }
+ /* Check alphabets instead of space or digits
+ * because 'Noto Emoji Color' font's digits are
+ * white color and cannot change the font color.
+ * the font does not have alphabets.
+ */
+ if (FT_Get_Char_Index (ft_face, 'A') != 0) {
++ FcChar8 *font_file = NULL;
++ FcPatternGetString (m_fcfontset->fonts[i], FC_FILE, 0, &font_file);
+ buff[n].fcfont = m_fcfontset->fonts[i];
-+ FT_Done_Face (ft_face);
++ g_hash_table_insert (m_font_index_per_char_table,
++ GINT_TO_POINTER (c),
++ GINT_TO_POINTER (i + 1));
+ has_glyphs = TRUE;
+ break;
+ }
-+ FT_Done_Face (ft_face);
+ }
+ if (!has_glyphs) {
+ buff[n].fcfont = m_fcfontset->fonts[0];
++ g_hash_table_insert (m_font_index_per_char_table,
++ GINT_TO_POINTER (c),
++ GINT_TO_POINTER (1));
+ g_warning ("Not found fonts for unicode %04X at %d in %s",
+ c, n, text);
+ }
diff --git a/ibus.spec b/ibus.spec
index 692e454..855e40c 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -29,8 +29,8 @@
%global dbus_python_version 0.83.0
Name: ibus
-Version: 1.5.16
-Release: 11%{?dist}
+Version: 1.5.17
+Release: 1%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
@@ -41,7 +41,6 @@ Source2: %{name}.conf.5
# Will remove the annotation tarball once the rpm is available on Fedora
# Upstreamed patches.
# Patch0: %%{name}-HEAD.patch
-Patch0: %{name}-HEAD.patch
# Under testing #1349148 #1385349 #1350291 #1406699 #1432252
Patch1: %{name}-1385349-segv-bus-proxy.patch
%if %with_emoji_harfbuzz
@@ -93,7 +92,8 @@ Requires: %{name}-wayland%{?_isa} = %{version}-%{release}
Requires: iso-codes
Requires: dbus-x11
Requires: dconf
-Requires: librsvg2
+# rpmlint asks to delete librsvg2
+#Requires: librsvg2
# Owner of %%python3_sitearch/gi/overrides
Requires: python3-gobject
# https://bugzilla.redhat.com/show_bug.cgi?id=1161871
@@ -177,7 +177,7 @@ Summary: IBus PyGTK2 library
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
Requires: dbus-python >= %{dbus_python_version}
-Requires: python
+Requires: python2
Requires: pygtk2
BuildArch: noarch
@@ -192,7 +192,7 @@ Group: System Environment/Libraries
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# Owner of %%python2_sitearch/gi/overrides
Requires: pygobject3-base
-Requires: python
+Requires: python2
%description py2override
This is a Python2 override library for IBus. The Python files override
@@ -241,12 +241,10 @@ The ibus-devel-docs package contains developer documentation for IBus
%setup -q
# %%patch0 -p1
# cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c ||
-%patch0 -p1
%patch1 -p1 -z .segv
%if %with_emoji_harfbuzz
%patch2 -p1 -z .hb
%endif
-cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c ||
# prep test
diff client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c
@@ -415,6 +413,8 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &> /dev/null || :
%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.so
%if %with_pygobject3
+# The setup package won't include icon files so that
+# gtk-update-icon-cache is executed in the main package only one time.
%files setup
%{_bindir}/ibus-setup
%{_datadir}/applications/ibus-setup.desktop
@@ -449,6 +449,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &> /dev/null || :
%{_datadir}/gtk-doc/html/*
%changelog
+* Sun Oct 22 2017 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.17-1
+- Bumped to 1.5.17
+
* Thu Sep 21 2017 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.16-11
- Copy ibusimcontext.c
- Fix Super-space in Plasma after ibus exit
diff --git a/sources b/sources
index 42d5269..b11174b 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (ibus-1.5.16.tar.gz) = 494ead69cf9c0111fd25fd1de27e796d89db4f08443afa1ec469f638469b25d8b19a59ea7ab0db0f3a130b9a89b3f2819667099ba38fc973d6efc61b367ce237
+SHA512 (ibus-1.5.17.tar.gz) = 8a7e4fabbcb2096e647b1fb7487c92882bd320a4d777f2765817378abec2e60cafd63364c881fefc2805ff2baa6b28b15ee0710587662a3e65eeb60ead19496c
reply other threads:[~2026-05-31 2:06 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=178019319954.1.8705860140361831836.rpms-ibus-10da60ca9248@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