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
 

Reply via email to