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-02-15 23:12:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pango (Old) and /work/SRC/openSUSE:Factory/.pango.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pango" Mon Feb 15 23:12:01 2021 rev:127 rq:871201 version:1.48.2 Changes: -------- --- /work/SRC/openSUSE:Factory/pango/pango.changes 2021-01-26 14:44:28.923230360 +0100 +++ /work/SRC/openSUSE:Factory/.pango.new.28504/pango.changes 2021-02-15 23:13:22.975134367 +0100 @@ -1,0 +2,10 @@ +Thu Feb 11 10:57:51 UTC 2021 - Bj??rn Lie <bjorn....@gmail.com> + +- Update to version 1.48.2: + + Fix memory leaks reported by asan + + Avoid overflow in pango_attr_list_update + + Add a valgrind suppression file + + Make tests more robust + + Fix pango_font_describe for Emoji fonts + +------------------------------------------------------------------- Old: ---- pango-1.48.1.obscpio New: ---- pango-1.48.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pango.spec ++++++ --- /var/tmp/diff_new_pack.3iUgLP/_old 2021-02-15 23:13:23.607135312 +0100 +++ /var/tmp/diff_new_pack.3iUgLP/_new 2021-02-15 23:13:23.611135317 +0100 @@ -17,7 +17,7 @@ Name: pango -Version: 1.48.1 +Version: 1.48.2 Release: 0 Summary: Library for Layout and Rendering of Text License: LGPL-2.1-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.3iUgLP/_old 2021-02-15 23:13:23.639135360 +0100 +++ /var/tmp/diff_new_pack.3iUgLP/_new 2021-02-15 23:13:23.639135360 +0100 @@ -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.1</param> + <param name="revision">refs/tags/1.48.2</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ pango-1.48.1.obscpio -> pango-1.48.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/.gitlab-ci/run-tests.sh new/pango-1.48.2/.gitlab-ci/run-tests.sh --- old/pango-1.48.1/.gitlab-ci/run-tests.sh 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/.gitlab-ci/run-tests.sh 2021-02-11 02:03:54.000000000 +0100 @@ -7,7 +7,7 @@ builddir=$1 # Ignore memory leaks lower in dependencies -export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp +export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp:print_suppressions=0 # Check leaks of slices export G_SLICE=always-malloc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/.gitlab-ci.yml new/pango-1.48.2/.gitlab-ci.yml --- old/pango-1.48.1/.gitlab-ci.yml 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/.gitlab-ci.yml 2021-02-11 02:03:54.000000000 +0100 @@ -52,7 +52,6 @@ - CC=clang meson --buildtype=debugoptimized -Db_sanitize=address -Db_lundef=false -Dintrospection=disabled _build - ninja -C _build - .gitlab-ci/run-tests.sh _build - allow_failure: true artifacts: when: always reports: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/NEWS new/pango-1.48.2/NEWS --- old/pango-1.48.1/NEWS 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/NEWS 2021-02-11 02:03:54.000000000 +0100 @@ -1,3 +1,11 @@ +Overview of changes in 1.48.2 +============================= +- Fix memory leaks reported by asan +- Avoid overflow in pango_attr_list_update +- Add a valgrind suppression file +- Make tests more robust +- Fix pango_font_describe for Emoji fonts + Overview of changes in 1.48.1 ============================= - Require GLib 2.62 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/meson.build new/pango-1.48.2/meson.build --- old/pango-1.48.1/meson.build 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/meson.build 2021-02-11 02:03:54.000000000 +0100 @@ -1,5 +1,5 @@ project('pango', 'c', 'cpp', - version: '1.48.1', + version: '1.48.2', license: 'LGPLv2.1+', default_options: [ 'buildtype=debugoptimized', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/pango/fonts.c new/pango-1.48.2/pango/fonts.c --- old/pango-1.48.1/pango/fonts.c 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/pango/fonts.c 2021-02-11 02:03:54.000000000 +0100 @@ -2457,9 +2457,8 @@ * @face: a #PangoFontFace. * * Gets a name representing the style of this face among the - * different faces in the #PangoFontFamily for the face. This - * name is unique among all faces in the family and is suitable - * for displaying to users. + * different faces in the #PangoFontFamily for the face. The + * name is suitable for displaying to users. * * Return value: the face name for the face. This string is * owned by the face object and must not be modified or freed. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/pango/pango-attributes.c new/pango-1.48.2/pango/pango-attributes.c --- old/pango-1.48.1/pango/pango-attributes.c 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/pango/pango-attributes.c 2021-02-11 02:03:54.000000000 +0100 @@ -1697,6 +1697,10 @@ { guint i, p; + g_return_if_fail (pos >= 0); + g_return_if_fail (remove >= 0); + g_return_if_fail (add >= 0); + if (list->attributes) for (i = 0, p = list->attributes->len; i < p; i++) { @@ -1729,7 +1733,10 @@ } else if (attr->end_index >= pos + remove) { - attr->end_index += add - remove; + if (G_MAXUINT - attr->end_index < add - remove) + attr->end_index = G_MAXUINT; + else + attr->end_index += add - remove; } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/pango/pangofc-fontmap.c new/pango-1.48.2/pango/pangofc-fontmap.c --- old/pango-1.48.1/pango/pangofc-fontmap.c 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/pango/pangofc-fontmap.c 2021-02-11 02:03:54.000000000 +0100 @@ -2519,7 +2519,24 @@ pango_font_description_set_variant (desc, PANGO_VARIANT_NORMAL); if (include_size && FcPatternGetDouble (pattern, FC_SIZE, 0, &size) == FcResultMatch) - pango_font_description_set_size (desc, size * PANGO_SCALE); + { + FcMatrix *fc_matrix; + double scale_factor = 1; + + if (FcPatternGetMatrix (pattern, FC_MATRIX, 0, &fc_matrix) == FcResultMatch) + { + PangoMatrix mat = PANGO_MATRIX_INIT; + + mat.xx = fc_matrix->xx; + mat.xy = fc_matrix->xy; + mat.yx = fc_matrix->yx; + mat.yy = fc_matrix->yy; + + scale_factor = pango_matrix_get_font_scale_factor (&mat); + } + + pango_font_description_set_size (desc, scale_factor * size * PANGO_SCALE); + } /* gravity is a bit different. we don't want to set it if it was not set on * the pattern */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/pango.supp new/pango-1.48.2/pango.supp --- old/pango-1.48.1/pango.supp 1970-01-01 01:00:00.000000000 +0100 +++ new/pango-1.48.2/pango.supp 2021-02-11 02:03:54.000000000 +0100 @@ -0,0 +1,86 @@ +# Pango +{ + pango 1 + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib*/libfontconfig.so* + obj:/usr/lib*/libfontconfig.so* + obj:/usr/lib*/libcairo.so* + fun:pango_cairo_fc_font_map_fontset_key_substitute +} + +{ + pango 2 + Memcheck:Leak + fun:realloc + obj:/usr/lib*/libfontconfig.so* + obj:/usr/lib*/libfontconfig.so* + fun:_cairo_ft_font_options_substitute +} + +# Fontconfig +{ + FcFontSetList + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + obj:/usr/lib*/libfontconfig.so* + obj:/usr/lib*/libfontconfig.so* + fun:FcFontSetList +} + +{ + FcPatternObjectInsertElt + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:FcPatternObjectInsertElt +} + +{ + FcFontRenderPrepare + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib*/libfontconfig.so* + obj:/usr/lib*/libfontconfig.so* + fun:FcFontRenderPrepare +} + +{ + FcDefaultSubstitute + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib*/libfontconfig.so* + obj:/usr/lib*/libfontconfig.so* + fun:FcDefaultSubstitute +} + +# Pixman +{ + pixman_image_composite32 + Memcheck:Cond + obj:/usr/lib*/libpixman-1.so* + obj:/usr/lib*/libpixman-1.so* + fun:pixman_image_composite32 +} + +# GLib +{ + glib GQuark + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + ... + fun:g_quark_* +} +{ + glib GQuark + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + ... + fun:g_intern_static_string +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/tests/meson.build new/pango-1.48.2/tests/meson.build --- old/pango-1.48.1/tests/meson.build 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/tests/meson.build 2021-02-11 02:03:54.000000000 +0100 @@ -8,6 +8,8 @@ if host_system == 'windows' test_cflags += '-DHAVE_WIN32' +elif host_system == 'darwin' + test_cflags += '-DHAVE_CARBON' endif test_env = environment() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/tests/test-common.c new/pango-1.48.2/tests/test-common.c --- old/pango-1.48.1/tests/test-common.c 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/tests/test-common.c 2021-02-11 02:03:54.000000000 +0100 @@ -97,11 +97,11 @@ switch (attr->klass->type) { case PANGO_ATTR_LANGUAGE: - g_string_append_printf (string, "%s", pango_language_to_string (((PangoAttrLanguage *)attr)->value)); + g_string_append (string, pango_language_to_string (((PangoAttrLanguage *)attr)->value)); break; case PANGO_ATTR_FAMILY: case PANGO_ATTR_FONT_FEATURES: - g_string_append_printf (string, "%s", ((PangoAttrString *)attr)->value); + g_string_append (string, ((PangoAttrString *)attr)->value); break; case PANGO_ATTR_STYLE: case PANGO_ATTR_WEIGHT: @@ -127,7 +127,7 @@ case PANGO_ATTR_FONT_DESC: { char *text = pango_font_description_to_string (((PangoAttrFontDesc *)attr)->desc); - g_string_append_printf (string, "%s", text); + g_string_append (string, text); g_free (text); } break; @@ -138,7 +138,7 @@ case PANGO_ATTR_STRIKETHROUGH_COLOR: { char *text = pango_color_to_string (&((PangoAttrColor *)attr)->color); - g_string_append_printf (string, "%s", text); + g_string_append (string, text); g_free (text); } break; @@ -146,7 +146,12 @@ g_string_append_printf (string, "shape"); break; case PANGO_ATTR_SCALE: - g_string_append_printf (string,"%f", ((PangoAttrFloat *)attr)->value); + { + char val[20]; + + g_ascii_formatd (val, 20, "%f", ((PangoAttrFloat *)attr)->value); + g_string_append (string, val); + } break; default: g_assert_not_reached (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/tests/test-font.c new/pango-1.48.2/tests/test-font.c --- old/pango-1.48.1/tests/test-font.c 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/tests/test-font.c 2021-02-11 02:03:54.000000000 +0100 @@ -220,7 +220,7 @@ for (i = 0; i < n_faces; i++) { face = pango_font_family_get_face (families[0], pango_font_face_get_face_name (faces[i])); - g_assert_true (face == faces[i]); + g_assert_cmpstr (pango_font_face_get_face_name (face), ==, pango_font_face_get_face_name (faces[i])); } desc = pango_font_description_new (); @@ -243,9 +243,75 @@ g_object_unref (font); pango_font_description_free (desc); g_free (faces); - g_free (families); + g_free (families); + g_object_unref (context); +} + +static void +test_roundtrip_plain (void) +{ + PangoFontMap *fontmap; + PangoContext *context; + PangoFontDescription *desc, *desc2; + PangoFont *font; + +#ifdef HAVE_CARBON + /* We probably don't have the right fonts */ + g_test_skip ("Skipping font-dependent tests on OS X"); + return; +#endif + + fontmap = pango_cairo_font_map_get_default (); + context = pango_font_map_create_context (fontmap); + + desc = pango_font_description_from_string ("Cantarell 11"); + + font = pango_context_load_font (context, desc); + desc2 = pango_font_describe (font); + + g_assert (pango_font_description_equal (desc2, desc)); + + pango_font_description_free (desc2); + g_object_unref (font); + pango_font_description_free (desc); + g_object_unref (context); +} + +static void +test_roundtrip_emoji (void) +{ + PangoFontMap *fontmap; + PangoContext *context; + PangoFontDescription *desc, *desc2; + PangoFont *font; + +#ifdef HAVE_CARBON + /* We probably don't have the right fonts */ + g_test_skip ("Skipping font-dependent tests on OS X"); + return; +#endif + + fontmap = pango_cairo_font_map_get_default (); + context = pango_font_map_create_context (fontmap); + + /* This is how pango_itemize creates the emoji font desc */ + desc = pango_font_description_from_string ("Cantarell 11"); + pango_font_description_set_family_static (desc, "emoji"); + + font = pango_context_load_font (context, desc); + desc2 = pango_font_describe (font); + + /* We can't expect the family name to match, since we go in with + * a generic family + */ + pango_font_description_unset_fields (desc, PANGO_FONT_MASK_FAMILY); + pango_font_description_unset_fields (desc2, PANGO_FONT_MASK_FAMILY); + g_assert (pango_font_description_equal (desc2, desc)); + + pango_font_description_free (desc2); + g_object_unref (font); + pango_font_description_free (desc); g_object_unref (context); - g_object_unref (fontmap); } int @@ -264,6 +330,8 @@ g_test_add_func ("/pango/fontdescription/variation", test_variation); g_test_add_func ("/pango/font/extents", test_extents); g_test_add_func ("/pango/font/enumerate", test_enumerate); + g_test_add_func ("/pango/font/roundtrip/plain", test_roundtrip_plain); + g_test_add_func ("/pango/font/roundtrip/emoji", test_roundtrip_emoji); return g_test_run (); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.1/tests/testmisc.c new/pango-1.48.2/tests/testmisc.c --- old/pango-1.48.1/tests/testmisc.c 2021-01-22 00:05:22.000000000 +0100 +++ new/pango-1.48.2/tests/testmisc.c 2021-02-11 02:03:54.000000000 +0100 @@ -64,6 +64,7 @@ result = pango_itemize_with_base_dir (context, PANGO_DIRECTION_LTR, "\xc3\xa1\na", 3, 1, NULL, NULL); g_assert (result != NULL); + g_list_free_full (result, (GDestroyNotify)pango_item_free); g_object_unref (context); } ++++++ pango.obsinfo ++++++ --- /var/tmp/diff_new_pack.3iUgLP/_old 2021-02-15 23:13:23.919135778 +0100 +++ /var/tmp/diff_new_pack.3iUgLP/_new 2021-02-15 23:13:23.919135778 +0100 @@ -1,5 +1,5 @@ name: pango -version: 1.48.1 -mtime: 1611270322 -commit: 65577fee8e8e7e01cabab72552f64f668270e640 +version: 1.48.2 +mtime: 1613005434 +commit: a152a56f4ff0784533f4a3cc93b782c653e764c6