Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pango for openSUSE:Factory checked in at 2021-07-21 19:05:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pango (Old) and /work/SRC/openSUSE:Factory/.pango.new.2632 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pango" Wed Jul 21 19:05:49 2021 rev:131 rq:907040 version:1.48.7 Changes: -------- --- /work/SRC/openSUSE:Factory/pango/pango.changes 2021-05-23 23:30:40.100721441 +0200 +++ /work/SRC/openSUSE:Factory/.pango.new.2632/pango.changes 2021-07-21 19:06:45.527330973 +0200 @@ -1,0 +2,25 @@ +Tue Jul 13 17:29:05 UTC 2021 - Dominique Leuenberger <[email protected]> + +- 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 <[email protected]> + +- 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 <[email protected]> + +- 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. + +------------------------------------------------------------------- Old: ---- pango-1.48.5.obscpio New: ---- 3ff6365.patch pango-1.48.7.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pango.spec ++++++ --- /var/tmp/diff_new_pack.d0LNw3/_old 2021-07-21 19:06:46.079331932 +0200 +++ /var/tmp/diff_new_pack.d0LNw3/_new 2021-07-21 19:06:46.083331940 +0200 @@ -17,7 +17,7 @@ Name: pango -Version: 1.48.5 +Version: 1.48.7 Release: 0 Summary: Library for Layout and Rendering of Text License: LGPL-2.1-or-later @@ -26,6 +26,8 @@ Source0: %{name}-%{version}.tar.xz Source2: macros.pango Source99: baselibs.conf +# PATCH-FIX-UPSTREAM 3ff6365.patch [email protected] -- Revert upstream commit, introduces runtime dep on X +Patch0: https://gitlab.gnome.org/GNOME/pango/-/commit/3ff6365.patch BuildRequires: gcc-c++ BuildRequires: help2man @@ -117,7 +119,8 @@ to develop applications that require these. %prep -%autosetup -p1 +%setup +%patch0 -p1 -R %build %meson \ @@ -154,6 +157,7 @@ %files tools %{_bindir}/pango-list +%{_bindir}/pango-segmentation %{_bindir}/pango-view %{_mandir}/man1/pango-view.1%{ext_man} ++++++ 3ff6365.patch ++++++ >From d4356779945855f7cc950dbe162285ccf21bcce9 Mon Sep 17 00:00:00 2001 From: Matthias Clasen <[email protected]> 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 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.d0LNw3/_old 2021-07-21 19:06:46.115331995 +0200 +++ /var/tmp/diff_new_pack.d0LNw3/_new 2021-07-21 19:06:46.115331995 +0200 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="disabled"> <param name="url">https://gitlab.gnome.org/GNOME/pango.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="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ pango-1.48.5.obscpio -> pango-1.48.7.obscpio ++++++ ++++ 10532 lines of diff (skipped) ++++++ pango.obsinfo ++++++ --- /var/tmp/diff_new_pack.d0LNw3/_old 2021-07-21 19:06:46.371332440 +0200 +++ /var/tmp/diff_new_pack.d0LNw3/_new 2021-07-21 19:06:46.371332440 +0200 @@ -1,5 +1,5 @@ name: pango -version: 1.48.5 -mtime: 1621345915 -commit: 3940a1714e84b076d04d4638c88df3dba7d8014e +version: 1.48.7 +mtime: 1625320606 +commit: 467bda1e0bc2614b10e2edc46dccc9588388e045
