Accepting request 907040 from GNOME:Factory
- Add 3ff6365.patch, reverse applied: fix build of e.g. g-c-c. This commit introduced a requirement to run X. (forwarded request 906179 from dimstar) OBS-URL: https://build.opensuse.org/request/show/907040 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pango?expand=0&rev=131
This commit is contained in:
commit
cb7636c763
121
3ff6365.patch
Normal file
121
3ff6365.patch
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
From d4356779945855f7cc950dbe162285ccf21bcce9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matthias Clasen <mclasen@redhat.com>
|
||||||
|
Date: Sun, 27 Jun 2021 11:31:13 -0400
|
||||||
|
Subject: [PATCH] shape: Bring back careful rounding code
|
||||||
|
|
||||||
|
When we added the round-glyph-positions option in
|
||||||
|
c43da2d3 and b5634799, we lost some code that was careful
|
||||||
|
to round in device coordinates.
|
||||||
|
|
||||||
|
The reason we lost it is that the rounding needs fontconfig-
|
||||||
|
specific data that is only available in the backend, and the
|
||||||
|
rounding now happens in the frontend.
|
||||||
|
|
||||||
|
Bringing it back is annoying, since we've run out of vfunc
|
||||||
|
slots to get info from the backend. This commit works around
|
||||||
|
that limitation in a hacky way.
|
||||||
|
|
||||||
|
Fixes: #562
|
||||||
|
---
|
||||||
|
pango/shape.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++---
|
||||||
|
1 file changed, 73 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pango/shape.c b/pango/shape.c
|
||||||
|
index 04407732..b870ecad 100644
|
||||||
|
--- a/pango/shape.c
|
||||||
|
+++ b/pango/shape.c
|
||||||
|
@@ -151,6 +151,32 @@ fallback_shape (const char *text,
|
||||||
|
pango_glyph_string_reverse_range (glyphs, 0, glyphs->num_glyphs);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* FIXME: This is very ugly. We are out of room for vfuncs, so we can't
|
||||||
|
+ * easily add api to get is_hinted and the matrix from the PangoFcFont.
|
||||||
|
+ *
|
||||||
|
+ * Keep in sync with pangofc-font.h!
|
||||||
|
+ */
|
||||||
|
+struct _PangoFcFont
|
||||||
|
+{
|
||||||
|
+ PangoFont parent_instance;
|
||||||
|
+
|
||||||
|
+ gpointer font_pattern; /* fully resolved pattern */
|
||||||
|
+ PangoFontMap *fontmap; /* associated map */
|
||||||
|
+ gpointer priv; /* used internally */
|
||||||
|
+ PangoMatrix matrix; /* used internally */
|
||||||
|
+ PangoFontDescription *description;
|
||||||
|
+
|
||||||
|
+ GSList *metrics_by_lang;
|
||||||
|
+
|
||||||
|
+ guint is_hinted : 1;
|
||||||
|
+ guint is_transformed : 1;
|
||||||
|
+};
|
||||||
|
+typedef struct _PangoFcFont PangoFcFont;
|
||||||
|
+
|
||||||
|
+#define PANGO_IS_FC_FONT(obj) \
|
||||||
|
+ g_type_is_a (((GTypeInstance*)obj)->g_class->g_type, \
|
||||||
|
+ g_type_from_name ("PangoFcFont"))
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* pango_shape_with_flags:
|
||||||
|
* @item_text: valid UTF-8 text to shape
|
||||||
|
@@ -294,11 +320,54 @@ pango_shape_with_flags (const gchar *item_text,
|
||||||
|
|
||||||
|
if (flags & PANGO_SHAPE_ROUND_POSITIONS)
|
||||||
|
{
|
||||||
|
- for (i = 0; i < glyphs->num_glyphs; i++)
|
||||||
|
+ if (PANGO_IS_FC_FONT (analysis->font))
|
||||||
|
{
|
||||||
|
- glyphs->glyphs[i].geometry.width = PANGO_UNITS_ROUND (glyphs->glyphs[i].geometry.width );
|
||||||
|
- glyphs->glyphs[i].geometry.x_offset = PANGO_UNITS_ROUND (glyphs->glyphs[i].geometry.x_offset);
|
||||||
|
- glyphs->glyphs[i].geometry.y_offset = PANGO_UNITS_ROUND (glyphs->glyphs[i].geometry.y_offset);
|
||||||
|
+ PangoFcFont *fc_font = (PangoFcFont *)analysis->font;
|
||||||
|
+ if (fc_font->is_hinted)
|
||||||
|
+ {
|
||||||
|
+ double x_scale_inv, y_scale_inv;
|
||||||
|
+ double x_scale, y_scale;
|
||||||
|
+
|
||||||
|
+ x_scale_inv = y_scale_inv = 1.0;
|
||||||
|
+ pango_matrix_get_font_scale_factors (&fc_font->matrix, &x_scale_inv, &y_scale_inv);
|
||||||
|
+ if (PANGO_GRAVITY_IS_IMPROPER (analysis->gravity))
|
||||||
|
+ {
|
||||||
|
+ x_scale_inv = -x_scale_inv;
|
||||||
|
+ y_scale_inv = -y_scale_inv;
|
||||||
|
+ }
|
||||||
|
+ x_scale = 1. / x_scale_inv;
|
||||||
|
+ y_scale = 1. / y_scale_inv;
|
||||||
|
+
|
||||||
|
+ if (x_scale == 1.0 && y_scale == 1.0)
|
||||||
|
+ {
|
||||||
|
+ for (i = 0; i < glyphs->num_glyphs; i++)
|
||||||
|
+ glyphs->glyphs[i].geometry.width = PANGO_UNITS_ROUND (glyphs->glyphs[i].geometry.width);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ #if 0
|
||||||
|
+ if (PANGO_GRAVITY_IS_VERTICAL (analysis->gravity))
|
||||||
|
+ {
|
||||||
|
+ /* XXX */
|
||||||
|
+ double tmp = x_scale;
|
||||||
|
+ x_scale = y_scale;
|
||||||
|
+ y_scale = -tmp;
|
||||||
|
+ }
|
||||||
|
+ #endif
|
||||||
|
+ #define HINT(value, scale_inv, scale) (PANGO_UNITS_ROUND ((int) ((value) * scale)) * scale_inv)
|
||||||
|
+ #define HINT_X(value) HINT ((value), x_scale, x_scale_inv)
|
||||||
|
+ #define HINT_Y(value) HINT ((value), y_scale, y_scale_inv)
|
||||||
|
+ for (i = 0; i < glyphs->num_glyphs; i++)
|
||||||
|
+ {
|
||||||
|
+ glyphs->glyphs[i].geometry.width = HINT_X (glyphs->glyphs[i].geometry.width);
|
||||||
|
+ glyphs->glyphs[i].geometry.x_offset = HINT_X (glyphs->glyphs[i].geometry.x_offset);
|
||||||
|
+ glyphs->glyphs[i].geometry.y_offset = HINT_Y (glyphs->glyphs[i].geometry.y_offset);
|
||||||
|
+ }
|
||||||
|
+ #undef HINT_Y
|
||||||
|
+ #undef HINT_X
|
||||||
|
+ #undef HINT
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
2
_service
2
_service
@ -2,7 +2,7 @@
|
|||||||
<service name="obs_scm" mode="disabled">
|
<service name="obs_scm" mode="disabled">
|
||||||
<param name="url">https://gitlab.gnome.org/GNOME/pango.git</param>
|
<param name="url">https://gitlab.gnome.org/GNOME/pango.git</param>
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="revision">refs/tags/1.48.5</param>
|
<param name="revision">1.48.7</param>
|
||||||
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
|
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
|
||||||
<param name="versionrewrite-pattern">(.*)\+0</param>
|
<param name="versionrewrite-pattern">(.*)\+0</param>
|
||||||
<param name="versionrewrite-replacement">\1</param>
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:bcd03268ec4fc5813e11e4cf360ef91589b030199ec4d88bee39137648a9b6ab
|
|
||||||
size 3303436
|
|
3
pango-1.48.7.obscpio
Normal file
3
pango-1.48.7.obscpio
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:75cfc2a22b159ceae580fec1f1b32d707019d1f6a68b95a6c9e478a5911ffffe
|
||||||
|
size 3360268
|
@ -1,3 +1,28 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 13 17:29:05 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- Add 3ff6365.patch, reverse applied: fix build of e.g. g-c-c. This
|
||||||
|
commit introduced a requirement to run X.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jul 5 10:18:45 UTC 2021 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
- Update to version 1.48.7:
|
||||||
|
+ Fix a thread-safety issue in fontmap initialization.
|
||||||
|
+ Small documentation improvements.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 29 16:22:13 UTC 2021 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
- Update to version 1.48.6:
|
||||||
|
+ Avoid attribute index overflow.
|
||||||
|
+ Add a new pango-segmentation utility.
|
||||||
|
+ Documentation cleanups and fixes.
|
||||||
|
+ Update script property data for gravity.
|
||||||
|
+ Bring back careful glyph position rounding.
|
||||||
|
+ Add a few missing bidi types.
|
||||||
|
+ Add more tests.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue May 18 16:16:14 UTC 2021 - Michael Gorse <mgorse@suse.com>
|
Tue May 18 16:16:14 UTC 2021 - Michael Gorse <mgorse@suse.com>
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name: pango
|
name: pango
|
||||||
version: 1.48.5
|
version: 1.48.7
|
||||||
mtime: 1621345915
|
mtime: 1625320606
|
||||||
commit: 3940a1714e84b076d04d4638c88df3dba7d8014e
|
commit: 467bda1e0bc2614b10e2edc46dccc9588388e045
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: pango
|
Name: pango
|
||||||
Version: 1.48.5
|
Version: 1.48.7
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Library for Layout and Rendering of Text
|
Summary: Library for Layout and Rendering of Text
|
||||||
License: LGPL-2.1-or-later
|
License: LGPL-2.1-or-later
|
||||||
@ -26,6 +26,8 @@ URL: https://pango.gnome.org/
|
|||||||
Source0: %{name}-%{version}.tar.xz
|
Source0: %{name}-%{version}.tar.xz
|
||||||
Source2: macros.pango
|
Source2: macros.pango
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
|
# PATCH-FIX-UPSTREAM 3ff6365.patch dimstar@opensuse.org -- Revert upstream commit, introduces runtime dep on X
|
||||||
|
Patch0: https://gitlab.gnome.org/GNOME/pango/-/commit/3ff6365.patch
|
||||||
|
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: help2man
|
BuildRequires: help2man
|
||||||
@ -117,7 +119,8 @@ This package contains all necessary include files and libraries needed
|
|||||||
to develop applications that require these.
|
to develop applications that require these.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%setup
|
||||||
|
%patch0 -p1 -R
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson \
|
%meson \
|
||||||
@ -154,6 +157,7 @@ cp %{SOURCE2} %{buildroot}%_rpmmacrodir
|
|||||||
|
|
||||||
%files tools
|
%files tools
|
||||||
%{_bindir}/pango-list
|
%{_bindir}/pango-list
|
||||||
|
%{_bindir}/pango-segmentation
|
||||||
%{_bindir}/pango-view
|
%{_bindir}/pango-view
|
||||||
%{_mandir}/man1/pango-view.1%{ext_man}
|
%{_mandir}/man1/pango-view.1%{ext_man}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user