Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cairo for openSUSE:Factory checked in at 2023-03-24 15:17:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cairo (Old) and /work/SRC/openSUSE:Factory/.cairo.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cairo" Fri Mar 24 15:17:03 2023 rev:93 rq:1073167 version:1.17.8 Changes: -------- --- /work/SRC/openSUSE:Factory/cairo/cairo.changes 2022-09-21 14:39:32.545274057 +0200 +++ /work/SRC/openSUSE:Factory/.cairo.new.31432/cairo.changes 2023-03-24 15:17:09.125859795 +0100 @@ -1,0 +2,34 @@ +Fri Mar 17 13:27:04 UTC 2023 - Bjørn Lie <[email protected]> + +- Update to version 1.17.8: + + In a continuing effort to reduce the amount of legacy code, and + increase the long-term maintainability of cairo, the following + backends have been removed: + - GL and GLES drawing + + Additionally, cairo's Autotools build system has been removed; + from now on, cairo will only support the Meson build system. + While the end result should be identical, further testing is + appreciated. + + In this snapshot, cairo gained support for rendering COLRv1 + fonts, and rendering SVG and COLRv1 fonts with custom palettes. + + Support for macOS and Windows has been improved, with lots of + build and bug fixes. + + Lots of safety issues have been fixed, with array bounds + checking and plugging memory leaks, as well as fixes for bugs + identified via fuzzying. + + This is going to be the last snapshot of the 1.17 development + cycle; we only expect minor bug fixing and improvements until + the 1.18.0 release. +- Switch to meson buildsystem: Add meson BuildRequires and macros. +- Update Source Url to new home. +- Drop build_gl_backend define and conditional pkgconfig(egl) and + pkgconfig(gl) BuildRequires: No longer supported. +- Add generic c++_compiler and c_compiler BuildRequires: New + dependencies. +- Drop 0001-Set-default-LCD-filter-to-FreeType-s-default.patch: + Fixed upstream. +- Add upstream bug fix patches: + + cairo-1.17.8-fix-tee-compilation.patch + + cairo-1.17.8-ft-font-missing-glyph.patch + +------------------------------------------------------------------- Old: ---- 0001-Set-default-LCD-filter-to-FreeType-s-default.patch cairo-1.17.6.tar.xz New: ---- cairo-1.17.8-fix-tee-compilation.patch cairo-1.17.8-ft-font-missing-glyph.patch cairo-1.17.8.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cairo.spec ++++++ --- /var/tmp/diff_new_pack.vuKIoj/_old 2023-03-24 15:17:09.729863019 +0100 +++ /var/tmp/diff_new_pack.vuKIoj/_new 2023-03-24 15:17:09.729863019 +0100 @@ -1,7 +1,7 @@ # # spec file for package cairo # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,25 +17,30 @@ %define build_xcb_backend 1 -%define build_gl_backend 1 + Name: cairo -Version: 1.17.6 +Version: 1.17.8 Release: 0 Summary: Vector Graphics Library with Cross-Device Output Support License: LGPL-2.1-or-later OR MPL-1.1 Group: Development/Libraries/C and C++ URL: https://cairographics.org/ -Source0: https://download.gnome.org/sources/cairo/1.17/%{name}-%{version}.tar.xz +Source0: https://cairographics.org/snapshots/%{name}-%{version}.tar.xz Source99: baselibs.conf # PATCH-FIX-UPSTREAM cairo-xlib-endianness.patch fdo#63461 bnc#882951 [email protected] -- Fix crash when client and server have different endianness Patch0: cairo-xlib-endianness.patch # PATCH-FIX-UPSTREAM cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff [email protected] -- Fix segfault in get_bitmap_surface Patch1: cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff -# PATCH-FIX-UPSTREAM 0001-Set-default-LCD-filter-to-FreeType-s-default.patch -- Set default LCD filter to FreeType's default -Patch2: 0001-Set-default-LCD-filter-to-FreeType-s-default.patch +# PATCH-FIX-UPSTREAM cairo-1.17.8-fix-tee-compilation.patch -- https://gitlab.freedesktop.org/cairo/cairo/-/issues/634 tee: Fix cairo wrapper functions +Patch2: cairo-1.17.8-fix-tee-compilation.patch +# PATCH-FIX-UPSTREAM cairo-1.17.8-ft-font-missing-glyph.patch -- https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/467 ft: Use normal font size when detecting the format +Patch3: cairo-1.17.8-ft-font-missing-glyph.patch +BuildRequires: c++_compiler +BuildRequires: c_compiler BuildRequires: gtk-doc +BuildRequires: meson BuildRequires: pkgconfig BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(freetype2) @@ -49,10 +54,6 @@ # These libraries are needed only for tests. # Do not enable tests in build systems, it causes build loop! #BuildRequires: librsvg-devel poppler-devel -%if %{build_gl_backend} -BuildRequires: pkgconfig(egl) -BuildRequires: pkgconfig(gl) -%endif %if %{build_xcb_backend} BuildRequires: pkgconfig(xcb) >= 1.6 BuildRequires: pkgconfig(xcb-render) >= 1.6 @@ -144,28 +145,25 @@ %autosetup -p1 %build -%configure \ - --enable-fc \ - --enable-ft \ -%if %{build_gl_backend} - --enable-gl \ -%endif - --enable-ps \ - --enable-pdf \ - --enable-script \ - --enable-svg \ - --enable-tee \ +%meson \ %if %{build_xcb_backend} - --enable-xcb \ + -D xcb=enabled \ %endif - --enable-xlib \ - --enable-gtk-doc \ - --disable-static -%make_build + -D freetype=enabled \ + -D fontconfig=enabled \ + -D glib=enabled \ + -D gtk_doc=true \ + -D spectre=disabled \ + -D symbol-lookup=disabled \ + -D tee=enabled \ + -D tests=disabled \ + -D xlib=enabled \ + -D xml=disabled + %{nil} +%meson_build %install -%make_install -find %{buildroot} -type f -name "*.la" -delete -print +%meson_install %ldconfig_scriptlets -n libcairo2 %ldconfig_scriptlets -n libcairo-gobject2 @@ -187,12 +185,12 @@ %{_bindir}/cairo-sphinx %{_bindir}/cairo-trace %dir %{_libdir}/cairo -%{_libdir}/cairo/cairo-fdr.so -%{_libdir}/cairo/cairo-sphinx.so +%{_libdir}/cairo/libcairo-fdr.so +%{_libdir}/cairo/libcairo-sphinx.so %{_libdir}/cairo/libcairo-trace.so %files devel -%doc AUTHORS ChangeLog NEWS PORTING_GUIDE README +%doc AUTHORS NEWS README.md %doc %{_datadir}/gtk-doc/html/cairo %{_includedir}/cairo/ %{_libdir}/*.so ++++++ cairo-1.17.8-fix-tee-compilation.patch ++++++ >From 5e42a5277eddafd312a73e355d7775a4401dae4e Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi <[email protected]> Date: Fri, 3 Feb 2023 15:40:12 +0100 Subject: [PATCH] tee: Fix cairo wrapper functions Follow-up to !391 to apply the same changes to the (disabled by default) tee surface. Fixes: #634 --- src/cairo-tee-surface.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/cairo-tee-surface.c b/src/cairo-tee-surface.c index 7a94c9bca..4994a5a60 100644 --- a/src/cairo-tee-surface.c +++ b/src/cairo-tee-surface.c @@ -220,12 +220,12 @@ _cairo_tee_surface_paint (void *abstract_surface, num_slaves = _cairo_array_num_elements (&surface->slaves); slaves = _cairo_array_index (&surface->slaves, 0); for (n = 0; n < num_slaves; n++) { - status = _cairo_surface_wrapper_paint (&slaves[n], op, source, clip); + status = _cairo_surface_wrapper_paint (&slaves[n], op, source, 0, clip); if (unlikely (status)) return status; } - return _cairo_surface_wrapper_paint (&surface->master, op, source, clip); + return _cairo_surface_wrapper_paint (&surface->master, op, source, 0, clip); } static cairo_int_status_t @@ -244,13 +244,17 @@ _cairo_tee_surface_mask (void *abstract_surface, slaves = _cairo_array_index (&surface->slaves, 0); for (n = 0; n < num_slaves; n++) { status = _cairo_surface_wrapper_mask (&slaves[n], - op, source, mask, clip); + op, source, 0, + mask, 0, + clip); if (unlikely (status)) return status; } return _cairo_surface_wrapper_mask (&surface->master, - op, source, mask, clip); + op, source, 0, + mask, 0, + clip); } static cairo_int_status_t @@ -274,7 +278,7 @@ _cairo_tee_surface_stroke (void *abstract_surface, slaves = _cairo_array_index (&surface->slaves, 0); for (n = 0; n < num_slaves; n++) { status = _cairo_surface_wrapper_stroke (&slaves[n], - op, source, + op, source, 0, path, style, ctm, ctm_inverse, tolerance, antialias, @@ -284,7 +288,7 @@ _cairo_tee_surface_stroke (void *abstract_surface, } return _cairo_surface_wrapper_stroke (&surface->master, - op, source, + op, source, 0, path, style, ctm, ctm_inverse, tolerance, antialias, @@ -310,7 +314,7 @@ _cairo_tee_surface_fill (void *abstract_surface, slaves = _cairo_array_index (&surface->slaves, 0); for (n = 0; n < num_slaves; n++) { status = _cairo_surface_wrapper_fill (&slaves[n], - op, source, + op, source, 0, path, fill_rule, tolerance, antialias, clip); @@ -319,7 +323,7 @@ _cairo_tee_surface_fill (void *abstract_surface, } return _cairo_surface_wrapper_fill (&surface->master, - op, source, + op, source, 0, path, fill_rule, tolerance, antialias, clip); @@ -361,7 +365,7 @@ _cairo_tee_surface_show_text_glyphs (void *abstract_surface, for (n = 0; n < num_slaves; n++) { memcpy (glyphs_copy, glyphs, sizeof (cairo_glyph_t) * num_glyphs); status = _cairo_surface_wrapper_show_text_glyphs (&slaves[n], op, - source, + source, 0, utf8, utf8_len, glyphs_copy, num_glyphs, clusters, num_clusters, @@ -374,7 +378,7 @@ _cairo_tee_surface_show_text_glyphs (void *abstract_surface, memcpy (glyphs_copy, glyphs, sizeof (cairo_glyph_t) * num_glyphs); status = _cairo_surface_wrapper_show_text_glyphs (&surface->master, op, - source, + source, 0, utf8, utf8_len, glyphs_copy, num_glyphs, clusters, num_clusters, -- GitLab ++++++ cairo-1.17.8-ft-font-missing-glyph.patch ++++++ >From 2766d9feeccd5d66e346b0abab38726b8e0aa1e9 Mon Sep 17 00:00:00 2001 From: Adrian Johnson <[email protected]> Date: Tue, 7 Mar 2023 19:40:21 +1030 Subject: [PATCH] ft: Use normal font size when detecting the format The format may depend on the font size. Fixes #643 --- src/cairo-ft-font.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c index 22a6a622b..89af6193d 100644 --- a/src/cairo-ft-font.c +++ b/src/cairo-ft-font.c @@ -3314,11 +3314,13 @@ _cairo_ft_scaled_glyph_init_metrics (cairo_ft_scaled_font_t *scaled_font, if (scaled_font->unscaled->have_color && scaled_font->base.options.color_mode != CAIRO_COLOR_MODE_NO_COLOR) color_flag = FT_LOAD_COLOR; #endif + /* Ensure use_em_size = FALSE as the format (bitmap or outline) + * may change with the size. */ status = _cairo_ft_scaled_glyph_load_glyph (scaled_font, scaled_glyph, face, load_flags | color_flag, - !hint_metrics, + FALSE, vertical_layout); if (unlikely (status)) return status; @@ -3344,6 +3346,18 @@ _cairo_ft_scaled_glyph_init_metrics (cairo_ft_scaled_font_t *scaled_font, glyph_priv->format = CAIRO_FT_GLYPH_TYPE_BITMAP; } + /* If hinting is off, load the glyph with font size set the the em size. */ + if (!hint_metrics) { + status = _cairo_ft_scaled_glyph_load_glyph (scaled_font, + scaled_glyph, + face, + load_flags | color_flag, + TRUE, + vertical_layout); + if (unlikely (status)) + return status; + } + _cairo_ft_scaled_glyph_get_metrics (scaled_font, face, vertical_layout, @@ -3369,6 +3383,7 @@ _cairo_ft_scaled_glyph_init_metrics (cairo_ft_scaled_font_t *scaled_font, } if (glyph_priv->format == CAIRO_FT_GLYPH_TYPE_COLR_V1) { + /* Restore font size if previously loaded at em_size. */ if (!hint_metrics) { status = _cairo_ft_scaled_glyph_load_glyph (scaled_font, scaled_glyph, -- GitLab ++++++ cairo-1.17.6.tar.xz -> cairo-1.17.8.tar.xz ++++++ /work/SRC/openSUSE:Factory/cairo/cairo-1.17.6.tar.xz /work/SRC/openSUSE:Factory/.cairo.new.31432/cairo-1.17.8.tar.xz differ: char 25, line 1
