From c3610fdbe6a1a0c2dcdfaefce681578754aebc21bc10a869b30f00c891ef518b Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 25 Sep 2023 12:10:53 +0000 Subject: [PATCH] Accepting request 1113272 from GNOME:Next OBS-URL: https://build.opensuse.org/request/show/1113272 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/cairo?expand=0&rev=156 --- cairo-1.17.8-fix-tee-compilation.patch | 110 ------------------ cairo-1.17.8-ft-font-missing-glyph.patch | 62 ---------- cairo-1.17.8.tar.xz | 3 - cairo-1.18.0.tar.xz | 3 + ...tmap_surface-bsc1036789-CVE-2017-7475.diff | 8 +- cairo.changes | 41 +++++++ cairo.spec | 13 +-- 7 files changed, 51 insertions(+), 189 deletions(-) delete mode 100644 cairo-1.17.8-fix-tee-compilation.patch delete mode 100644 cairo-1.17.8-ft-font-missing-glyph.patch delete mode 100644 cairo-1.17.8.tar.xz create mode 100644 cairo-1.18.0.tar.xz diff --git a/cairo-1.17.8-fix-tee-compilation.patch b/cairo-1.17.8-fix-tee-compilation.patch deleted file mode 100644 index 52ea4f5..0000000 --- a/cairo-1.17.8-fix-tee-compilation.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 5e42a5277eddafd312a73e355d7775a4401dae4e Mon Sep 17 00:00:00 2001 -From: Emmanuele Bassi -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 - - diff --git a/cairo-1.17.8-ft-font-missing-glyph.patch b/cairo-1.17.8-ft-font-missing-glyph.patch deleted file mode 100644 index 320b5d6..0000000 --- a/cairo-1.17.8-ft-font-missing-glyph.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 2766d9feeccd5d66e346b0abab38726b8e0aa1e9 Mon Sep 17 00:00:00 2001 -From: Adrian Johnson -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 - - diff --git a/cairo-1.17.8.tar.xz b/cairo-1.17.8.tar.xz deleted file mode 100644 index d6aba7f..0000000 --- a/cairo-1.17.8.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b10c8892d1b58d70d3f0ba5b47863a061262fa56b9dc7944161f8c8b783bc64 -size 33392240 diff --git a/cairo-1.18.0.tar.xz b/cairo-1.18.0.tar.xz new file mode 100644 index 0000000..c0bf693 --- /dev/null +++ b/cairo-1.18.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 +size 33761148 diff --git a/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff b/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff index adb2002..e13fae5 100644 --- a/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff +++ b/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff @@ -1,8 +1,8 @@ -Index: cairo-1.17.6/src/cairo-ft-font.c +Index: cairo-1.18.0/src/cairo-ft-font.c =================================================================== ---- cairo-1.17.6.orig/src/cairo-ft-font.c -+++ cairo-1.17.6/src/cairo-ft-font.c -@@ -1223,7 +1223,7 @@ _get_bitmap_surface (FT_Bitmap *bi +--- cairo-1.18.0.orig/src/cairo-ft-font.c ++++ cairo-1.18.0/src/cairo-ft-font.c +@@ -1233,7 +1233,7 @@ _get_bitmap_surface (FT_Bitmap *bi width = bitmap->width; height = bitmap->rows; diff --git a/cairo.changes b/cairo.changes index 05fa2f5..055426d 100644 --- a/cairo.changes +++ b/cairo.changes @@ -1,3 +1,44 @@ +------------------------------------------------------------------- +Sat Sep 23 17:18:14 UTC 2023 - Bjørn Lie + +- Update to version 1.18.0: + + The first stable cairo release in five years should be cause + for celebration. + + All the API added in the 1.17 development cycle is now + considered stable, and will not change. + + Many thanks to all the contributors for this release. + + The cairo-sphinx tool has been removed; we could not find any + instruction on how to use it, and no user answered our call for + help. If you were using cairo-sphinx, please reach out to the + cairo maintainers. + + Cairo now implements Type 3 color fonts for PDF. + + Multiple documentation fixes, to ensure that the cairo API + reference is up to date. Also fixed multiple compiler warnings + generated when building cairo. + + The XML surface has been removed; it was disabled by default + when building cairo, and we could not find any downstream + distributor that would enable it. + + The Tee surface is now automatically enabled. Downstream + distributors of cairo have been enabling for years it in order + to build Firefox. + + Fixed multiple issues with the DWrite font backend. + + Improved the Quartz surface; mainly, Quartz surfaces now use + the main display ColorSpace, speeding up rendering operations. + + Cairo now hides all private symbols by default on every + platform; the old "slim" symbols hack to alias internally used + symbols has been dropped, in favor of using + `-Bsymbolic-functions` with toolchains that support it. + + Fixed multiple memory leaks in the code base and test suite, + and general maintenance. + + Added new API to expose the Pixman dithering filter to cairo + patterns; this is currently implemented only for image + surfaces. +- Drop patches fixed upstream: + + cairo-1.17.8-fix-tee-compilation.patch + + cairo-1.17.8-ft-font-missing-glyph.patch +- Rebase patches with quilt. +- Stop passing xml=disabled to meson setup, xml backend is dropped. + ------------------------------------------------------------------- Fri Mar 17 13:27:04 UTC 2023 - Bjørn Lie diff --git a/cairo.spec b/cairo.spec index d1e9562..9e6fab0 100644 --- a/cairo.spec +++ b/cairo.spec @@ -19,23 +19,19 @@ %define build_xcb_backend 1 Name: cairo -Version: 1.17.8 +Version: 1.18.0 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://cairographics.org/snapshots/%{name}-%{version}.tar.xz +URL: https://cairographics.org +Source0: %{url}/releases/%{name}-%{version}.tar.xz Source99: baselibs.conf # PATCH-FIX-UPSTREAM cairo-xlib-endianness.patch fdo#63461 bnc#882951 fcrozat@suse.com -- 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 alarrosa@suse.com -- Fix segfault in get_bitmap_surface Patch1: cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff -# 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 @@ -158,7 +154,6 @@ cairo. -D tee=enabled \ -D tests=disabled \ -D xlib=enabled \ - -D xml=disabled %{nil} %meson_build @@ -182,11 +177,9 @@ cairo. %files tools %license util/cairo-trace/COPYING util/cairo-trace/COPYING-GPL-3 -%{_bindir}/cairo-sphinx %{_bindir}/cairo-trace %dir %{_libdir}/cairo %{_libdir}/cairo/libcairo-fdr.so -%{_libdir}/cairo/libcairo-sphinx.so %{_libdir}/cairo/libcairo-trace.so %files devel