Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0
@ 2023-12-27  4:09 qiutt
  2023-12-27 12:01 ` [OE-core] " Alexandre Belloni
  2024-01-10 18:42 ` Ross Burton
  0 siblings, 2 replies; 6+ messages in thread
From: qiutt @ 2023-12-27  4:09 UTC (permalink / raw)
  To: openembedded-core; +Cc: fnstml-fujitsuten, qiutt

From: qiutt <qiutt@fujitsu.com>

Changelog for 1.18.0 [1]:
  The cairo-sphinx tool has been removed
  Cairo now implements Type 3 color fonts for PDF
  The XML surface has been removed
  The Tee surface is now automatically enabled
  The Quartz surface is improved
  Cairo now hides all private symbols by default on every platform
  Fixed multiple issues

As a part of 1.18.0, the following patches should be dropped.
  CVE-2018-19876.patch : https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
  CVE-2019-6461.patch  : https://gitlab.freedesktop.org/cairo/cairo/-/commit/09643ee1abdd5daacebfcb564448f29be9a79bac
  CVE-2019-6462.patch  : https://gitlab.freedesktop.org/cairo/cairo/-/commit/bbeaf08190d3006a80b80a77724801cd477a37b8
  CVE-2020-35492.patch : https://gitlab.freedesktop.org/cairo/cairo/-/commit/c986a7310bb06582b7d8a566d5f007ba4e5e75bf

These options are all gone [2]: directfb, valgrind, egl, glesv2, opengl, trace

Build tool is changed : autotools -> meson

Fix cross compile error [3] by adding cairo.cross file.

 [1] https://www.cairographics.org/news/cairo-1.18.0/
 [2] https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/meson_options.txt
 [3] https://gitlab.freedesktop.org/cairo/cairo/-/issues/613

Signed-off-by: qiutt <qiutt@fujitsu.com>
---
 .../cairo/cairo/CVE-2018-19876.patch          | 34 ---------
 .../cairo/cairo/CVE-2019-6461.patch           | 20 ------
 .../cairo/cairo/CVE-2019-6462.patch           | 40 -----------
 .../cairo/cairo/CVE-2020-35492.patch          | 60 ----------------
 .../{cairo_1.16.0.bb => cairo_1.18.0.bb}      | 72 +++++++------------
 5 files changed, 25 insertions(+), 201 deletions(-)
 delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
 delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
 delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
 delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
 rename meta/recipes-graphics/cairo/{cairo_1.16.0.bb => cairo_1.18.0.bb} (51%)

diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch b/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
deleted file mode 100644
index 4252a5663b..0000000000
--- a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-CVE: CVE-2018-19876
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <cgarcia@igalia.com>
-Date: Mon, 19 Nov 2018 12:33:07 +0100
-Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in
- cairo_ft_apply_variations
-
-Fixes a crash when using freetype >= 2.9
----
- src/cairo-ft-font.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
-index 325dd61b4..981973f78 100644
---- a/src/cairo-ft-font.c
-+++ b/src/cairo-ft-font.c
-@@ -2393,7 +2393,11 @@ skip:
- done:
-         free (coords);
-         free (current_coords);
-+#if HAVE_FT_DONE_MM_VAR
-+        FT_Done_MM_Var (face->glyph->library, ft_mm_var);
-+#else
-         free (ft_mm_var);
-+#endif
-     }
- }
- 
--- 
-2.11.0
-
diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
deleted file mode 100644
index a2dba6cb20..0000000000
--- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-There is an assertion in function _cairo_arc_in_direction().
-
-CVE: CVE-2019-6461
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/src/cairo-arc.c b/src/cairo-arc.c
-index 390397bae..1bde774a4 100644
---- a/src/cairo-arc.c
-+++ b/src/cairo-arc.c
-@@ -186,7 +186,8 @@ _cairo_arc_in_direction (cairo_t	  *cr,
-     if (cairo_status (cr))
-         return;
- 
--    assert (angle_max >= angle_min);
-+    if (angle_max < angle_min)
-+       return;
- 
-     if (angle_max - angle_min > 2 * M_PI * MAX_FULL_CIRCLES) {
- 	angle_max = fmod (angle_max - angle_min, 2 * M_PI);
diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
deleted file mode 100644
index 7c3209291b..0000000000
--- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-CVE: CVE-2019-6462
-Upstream-Status: Backport
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
-
-From ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0 Mon Sep 17 00:00:00 2001
-From: Heiko Lewin <hlewin@gmx.de>
-Date: Sun, 1 Aug 2021 11:16:03 +0000
-Subject: [PATCH] _arc_max_angle_for_tolerance_normalized: fix infinite loop
-
----
- src/cairo-arc.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/cairo-arc.c b/src/cairo-arc.c
-index 390397bae..1c891d1a0 100644
---- a/src/cairo-arc.c
-+++ b/src/cairo-arc.c
-@@ -90,16 +90,18 @@ _arc_max_angle_for_tolerance_normalized (double tolerance)
- 	{ M_PI / 11.0,  9.81410988043554039085e-09 },
-     };
-     int table_size = ARRAY_LENGTH (table);
-+    const int max_segments = 1000; /* this value is chosen arbitrarily. this gives an error of about 1.74909e-20 */
- 
-     for (i = 0; i < table_size; i++)
- 	if (table[i].error < tolerance)
- 	    return table[i].angle;
- 
-     ++i;
-+
-     do {
- 	angle = M_PI / i++;
- 	error = _arc_error_normalized (angle);
--    } while (error > tolerance);
-+    } while (error > tolerance && i < max_segments);
- 
-     return angle;
- }
--- 
-2.38.1
-
diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch b/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
deleted file mode 100644
index fb6ce5cfdf..0000000000
--- a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Fix stack buffer overflow.
-
-CVE: CVE-2020-35492
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
-From: Heiko Lewin <heiko.lewin@worldiety.de>
-Date: Tue, 15 Dec 2020 16:48:19 +0100
-Subject: [PATCH] Fix mask usage in image-compositor
-
----
- src/cairo-image-compositor.c                |   8 ++--
- test/Makefile.sources                       |   1 +
- test/bug-image-compositor.c                 |  39 ++++++++++++++++++++
- test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes
- 4 files changed, 44 insertions(+), 4 deletions(-)
- create mode 100644 test/bug-image-compositor.c
- create mode 100644 test/reference/bug-image-compositor.ref.png
-
-diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
-index 79ad69f68..4f8aaed99 100644
---- a/src/cairo-image-compositor.c
-+++ b/src/cairo-image-compositor.c
-@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- 		    unsigned num_spans)
- {
-     cairo_image_span_renderer_t *r = abstract_renderer;
--    uint8_t *m;
-+    uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
-     int x0;
- 
-     if (num_spans == 0)
- 	return CAIRO_STATUS_SUCCESS;
- 
-     x0 = spans[0].x;
--    m = r->_buf;
-+    m = base;
-     do {
- 	int len = spans[1].x - spans[0].x;
- 	if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
-@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- 				      spans[0].x, y,
- 				      spans[1].x - spans[0].x, h);
- 
--	    m = r->_buf;
-+	    m = base;
- 	    x0 = spans[1].x;
- 	} else if (spans[0].coverage == 0x0) {
- 	    if (spans[0].x != x0) {
-@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- #endif
- 	    }
- 
--	    m = r->_buf;
-+	    m = base;
- 	    x0 = spans[1].x;
- 	} else {
- 	    *m++ = spans[0].coverage;
--- 
diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
similarity index 51%
rename from meta/recipes-graphics/cairo/cairo_1.16.0.bb
rename to meta/recipes-graphics/cairo/cairo_1.18.0.bb
index ffb813d290..ffae13b48a 100644
--- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
@@ -7,7 +7,7 @@ optional translucence (opacity/alpha) and combined using the \
 extended Porter/Duff compositing algebra as found in the X Render \
 Extension."
 HOMEPAGE = "http://cairographics.org"
-BUGTRACKER = "http://bugs.freedesktop.org"
+BUGTRACKER = "https://gitlab.freedesktop.org/cairo/cairo/-/issues"
 SECTION = "libs"
 
 LICENSE = "(MPL-1.1 | LGPL-2.1-only) & GPL-3.0-or-later"
@@ -26,62 +26,40 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
                     ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}"
 
 
-DEPENDS = "fontconfig glib-2.0 libpng pixman zlib"
+DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib"
 
 SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
            file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
-           file://CVE-2018-19876.patch \
-           file://CVE-2019-6461.patch \
-           file://CVE-2019-6462.patch \
-           file://CVE-2020-35492.patch \
           "
 
-SRC_URI[md5sum] = "f19e0353828269c22bd72e271243a552"
-SRC_URI[sha256sum] = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331"
+SRC_URI[sha256sum] = "243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64"
 
-inherit autotools pkgconfig upstream-version-is-even gtk-doc multilib_script
+inherit meson pkgconfig upstream-version-is-even gtk-doc multilib_script
+
+# Tell libsoup where the target ntlm_auth is installed
+do_write_config:append:class-target() {
+    cat >${WORKDIR}/cairo.cross <<EOF
+[binaries]
+ipc_rmid_deferred_release = 'true'
+EOF
+}
+EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/cairo.cross"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
 
 MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace"
 
-X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
-                   trace"
-PACKAGECONFIG:class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
-PACKAGECONFIG:class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
-
-PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
-PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
-PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb"
-PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind"
-PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl"
-PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2"
-PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
-# trace is under GPLv3
-PACKAGECONFIG[trace] = "--enable-trace,--disable-trace"
-
-EXTRA_OECONF += " \
-    ${@bb.utils.contains('TARGET_FPU', 'soft', '--disable-some-floating-point', '', d)} \
-    --enable-tee \
-"
-
-# We don't depend on binutils so we need to disable this
-export ac_cv_lib_bfd_bfd_openr="no"
-# Ensure we don't depend on LZO
-export ac_cv_lib_lzo2_lzo2a_decompress="no"
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xlib xcb', '', d)} trace"
+PACKAGECONFIG[xlib] = "-Dxlib=enabled,-Dxlib=disabled,virtual/libx11 libxrender libxext"
+PACKAGECONFIG[xcb] = "-Dxcb=enabled,-Dxcb=disabled,libxcb"
+# cairo-trace is GPLv3 so add an option to remove it
+PACKAGECONFIG[trace] = ""
 
 do_install:append () {
-	rm -rf ${D}${bindir}/cairo-sphinx
-	rm -rf ${D}${libdir}/cairo/cairo-fdr*
-	rm -rf ${D}${libdir}/cairo/cairo-sphinx*
-	rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr*
-	rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx*
-	[ ! -d ${D}${bindir} ] ||
-		rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
-	[ ! -d ${D}${libdir}/cairo ] ||
-		rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
+    if ! ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'true', 'false', d)}; then
+        rm ${D}${bindir}/cairo-trace ${D}${libdir}/cairo/libcairo-trace.so
+        rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${libdir}/cairo
+    fi
 }
 
 PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
@@ -99,7 +77,7 @@ DESCRIPTION:cairo-perf-utils = "The Cairo library performance utilities"
 FILES:${PN} = "${libdir}/libcairo.so.*"
 FILES:${PN}-gobject = "${libdir}/libcairo-gobject.so.*"
 FILES:${PN}-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*"
-FILES:${PN}-perf-utils = "${bindir}/cairo-trace* ${libdir}/cairo/*.la ${libdir}/cairo/libcairo-trace.so"
+FILES:${PN}-perf-utils = "${bindir}/cairo-* ${libdir}/cairo/libcairo-trace.so ${libdir}/cairo/libcairo-fdr.so"
 
 BBCLASSEXTEND = "native nativesdk"
 
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0
  2023-12-27  4:09 [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0 qiutt
@ 2023-12-27 12:01 ` Alexandre Belloni
  2024-01-02 17:53   ` Alexander Kanavin
  2024-01-10 18:42 ` Ross Burton
  1 sibling, 1 reply; 6+ messages in thread
From: Alexandre Belloni @ 2023-12-27 12:01 UTC (permalink / raw)
  To: qiutt@fujitsu.com; +Cc: openembedded-core, fnstml-fujitsuten

Hello,

This fails on x86-64 x32:

https://autobuilder.yoctoproject.org/typhoon/#/builders/57/builds/8214/steps/12/logs/stdio

| ../cairo-1.18.0/meson.build:381:13: ERROR: Can not run test applications in this cross environment.
| 
| A full log can be found at /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/build/meson-logs/meson-log.txt
| ERROR: meson failed
| WARNING: /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854:175 exit 1 from 'exit 1'
| WARNING: Backtrace (BB generated script):
| 	#1: bbfatal_log, /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854, line 175
| 	#2: meson_do_configure, /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854, line 164
| 	#3: do_configure, /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854, line 150
| 	#4: main, /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854, line 188
NOTE: recipe cairo-1.18.0-r0: task do_configure: Failed
ERROR: Task (/home/pokybuild/yocto-worker/qemux86-64-x32/build/meta/recipes-graphics/cairo/cairo_1.18.0.bb:do_configure) failed with exit code '1'

On 27/12/2023 12:09:36+0800, qiutt@fujitsu.com wrote:
> From: qiutt <qiutt@fujitsu.com>
> 
> Changelog for 1.18.0 [1]:
>   The cairo-sphinx tool has been removed
>   Cairo now implements Type 3 color fonts for PDF
>   The XML surface has been removed
>   The Tee surface is now automatically enabled
>   The Quartz surface is improved
>   Cairo now hides all private symbols by default on every platform
>   Fixed multiple issues
> 
> As a part of 1.18.0, the following patches should be dropped.
>   CVE-2018-19876.patch : https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
>   CVE-2019-6461.patch  : https://gitlab.freedesktop.org/cairo/cairo/-/commit/09643ee1abdd5daacebfcb564448f29be9a79bac
>   CVE-2019-6462.patch  : https://gitlab.freedesktop.org/cairo/cairo/-/commit/bbeaf08190d3006a80b80a77724801cd477a37b8
>   CVE-2020-35492.patch : https://gitlab.freedesktop.org/cairo/cairo/-/commit/c986a7310bb06582b7d8a566d5f007ba4e5e75bf
> 
> These options are all gone [2]: directfb, valgrind, egl, glesv2, opengl, trace
> 
> Build tool is changed : autotools -> meson
> 
> Fix cross compile error [3] by adding cairo.cross file.
> 
>  [1] https://www.cairographics.org/news/cairo-1.18.0/
>  [2] https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/meson_options.txt
>  [3] https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
> 
> Signed-off-by: qiutt <qiutt@fujitsu.com>
> ---
>  .../cairo/cairo/CVE-2018-19876.patch          | 34 ---------
>  .../cairo/cairo/CVE-2019-6461.patch           | 20 ------
>  .../cairo/cairo/CVE-2019-6462.patch           | 40 -----------
>  .../cairo/cairo/CVE-2020-35492.patch          | 60 ----------------
>  .../{cairo_1.16.0.bb => cairo_1.18.0.bb}      | 72 +++++++------------
>  5 files changed, 25 insertions(+), 201 deletions(-)
>  delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
>  delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
>  delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
>  delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
>  rename meta/recipes-graphics/cairo/{cairo_1.16.0.bb => cairo_1.18.0.bb} (51%)
> 
> diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch b/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> deleted file mode 100644
> index 4252a5663b..0000000000
> --- a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -CVE: CVE-2018-19876
> -Upstream-Status: Backport
> -Signed-off-by: Ross Burton <ross.burton@intel.com>
> -
> -From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001
> -From: Carlos Garcia Campos <cgarcia@igalia.com>
> -Date: Mon, 19 Nov 2018 12:33:07 +0100
> -Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in
> - cairo_ft_apply_variations
> -
> -Fixes a crash when using freetype >= 2.9
> ----
> - src/cairo-ft-font.c | 4 ++++
> - 1 file changed, 4 insertions(+)
> -
> -diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
> -index 325dd61b4..981973f78 100644
> ---- a/src/cairo-ft-font.c
> -+++ b/src/cairo-ft-font.c
> -@@ -2393,7 +2393,11 @@ skip:
> - done:
> -         free (coords);
> -         free (current_coords);
> -+#if HAVE_FT_DONE_MM_VAR
> -+        FT_Done_MM_Var (face->glyph->library, ft_mm_var);
> -+#else
> -         free (ft_mm_var);
> -+#endif
> -     }
> - }
> - 
> --- 
> -2.11.0
> -
> diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> deleted file mode 100644
> index a2dba6cb20..0000000000
> --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -There is an assertion in function _cairo_arc_in_direction().
> -
> -CVE: CVE-2019-6461
> -Upstream-Status: Pending
> -Signed-off-by: Ross Burton <ross.burton@intel.com>
> -
> -diff --git a/src/cairo-arc.c b/src/cairo-arc.c
> -index 390397bae..1bde774a4 100644
> ---- a/src/cairo-arc.c
> -+++ b/src/cairo-arc.c
> -@@ -186,7 +186,8 @@ _cairo_arc_in_direction (cairo_t	  *cr,
> -     if (cairo_status (cr))
> -         return;
> - 
> --    assert (angle_max >= angle_min);
> -+    if (angle_max < angle_min)
> -+       return;
> - 
> -     if (angle_max - angle_min > 2 * M_PI * MAX_FULL_CIRCLES) {
> - 	angle_max = fmod (angle_max - angle_min, 2 * M_PI);
> diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> deleted file mode 100644
> index 7c3209291b..0000000000
> --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -CVE: CVE-2019-6462
> -Upstream-Status: Backport
> -Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> -
> -From ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0 Mon Sep 17 00:00:00 2001
> -From: Heiko Lewin <hlewin@gmx.de>
> -Date: Sun, 1 Aug 2021 11:16:03 +0000
> -Subject: [PATCH] _arc_max_angle_for_tolerance_normalized: fix infinite loop
> -
> ----
> - src/cairo-arc.c | 4 +++-
> - 1 file changed, 3 insertions(+), 1 deletion(-)
> -
> -diff --git a/src/cairo-arc.c b/src/cairo-arc.c
> -index 390397bae..1c891d1a0 100644
> ---- a/src/cairo-arc.c
> -+++ b/src/cairo-arc.c
> -@@ -90,16 +90,18 @@ _arc_max_angle_for_tolerance_normalized (double tolerance)
> - 	{ M_PI / 11.0,  9.81410988043554039085e-09 },
> -     };
> -     int table_size = ARRAY_LENGTH (table);
> -+    const int max_segments = 1000; /* this value is chosen arbitrarily. this gives an error of about 1.74909e-20 */
> - 
> -     for (i = 0; i < table_size; i++)
> - 	if (table[i].error < tolerance)
> - 	    return table[i].angle;
> - 
> -     ++i;
> -+
> -     do {
> - 	angle = M_PI / i++;
> - 	error = _arc_error_normalized (angle);
> --    } while (error > tolerance);
> -+    } while (error > tolerance && i < max_segments);
> - 
> -     return angle;
> - }
> --- 
> -2.38.1
> -
> diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch b/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> deleted file mode 100644
> index fb6ce5cfdf..0000000000
> --- a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -Fix stack buffer overflow.
> -
> -CVE: CVE-2020-35492
> -Upstream-Status: Backport
> -Signed-off-by: Ross Burton <ross.burton@arm.com>
> -
> -From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
> -From: Heiko Lewin <heiko.lewin@worldiety.de>
> -Date: Tue, 15 Dec 2020 16:48:19 +0100
> -Subject: [PATCH] Fix mask usage in image-compositor
> -
> ----
> - src/cairo-image-compositor.c                |   8 ++--
> - test/Makefile.sources                       |   1 +
> - test/bug-image-compositor.c                 |  39 ++++++++++++++++++++
> - test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes
> - 4 files changed, 44 insertions(+), 4 deletions(-)
> - create mode 100644 test/bug-image-compositor.c
> - create mode 100644 test/reference/bug-image-compositor.ref.png
> -
> -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
> -index 79ad69f68..4f8aaed99 100644
> ---- a/src/cairo-image-compositor.c
> -+++ b/src/cairo-image-compositor.c
> -@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> - 		    unsigned num_spans)
> - {
> -     cairo_image_span_renderer_t *r = abstract_renderer;
> --    uint8_t *m;
> -+    uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
> -     int x0;
> - 
> -     if (num_spans == 0)
> - 	return CAIRO_STATUS_SUCCESS;
> - 
> -     x0 = spans[0].x;
> --    m = r->_buf;
> -+    m = base;
> -     do {
> - 	int len = spans[1].x - spans[0].x;
> - 	if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
> -@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> - 				      spans[0].x, y,
> - 				      spans[1].x - spans[0].x, h);
> - 
> --	    m = r->_buf;
> -+	    m = base;
> - 	    x0 = spans[1].x;
> - 	} else if (spans[0].coverage == 0x0) {
> - 	    if (spans[0].x != x0) {
> -@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> - #endif
> - 	    }
> - 
> --	    m = r->_buf;
> -+	    m = base;
> - 	    x0 = spans[1].x;
> - 	} else {
> - 	    *m++ = spans[0].coverage;
> --- 
> diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
> similarity index 51%
> rename from meta/recipes-graphics/cairo/cairo_1.16.0.bb
> rename to meta/recipes-graphics/cairo/cairo_1.18.0.bb
> index ffb813d290..ffae13b48a 100644
> --- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
> +++ b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
> @@ -7,7 +7,7 @@ optional translucence (opacity/alpha) and combined using the \
>  extended Porter/Duff compositing algebra as found in the X Render \
>  Extension."
>  HOMEPAGE = "http://cairographics.org"
> -BUGTRACKER = "http://bugs.freedesktop.org"
> +BUGTRACKER = "https://gitlab.freedesktop.org/cairo/cairo/-/issues"
>  SECTION = "libs"
>  
>  LICENSE = "(MPL-1.1 | LGPL-2.1-only) & GPL-3.0-or-later"
> @@ -26,62 +26,40 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
>                      ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}"
>  
>  
> -DEPENDS = "fontconfig glib-2.0 libpng pixman zlib"
> +DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib"
>  
>  SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
>             file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
> -           file://CVE-2018-19876.patch \
> -           file://CVE-2019-6461.patch \
> -           file://CVE-2019-6462.patch \
> -           file://CVE-2020-35492.patch \
>            "
>  
> -SRC_URI[md5sum] = "f19e0353828269c22bd72e271243a552"
> -SRC_URI[sha256sum] = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331"
> +SRC_URI[sha256sum] = "243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64"
>  
> -inherit autotools pkgconfig upstream-version-is-even gtk-doc multilib_script
> +inherit meson pkgconfig upstream-version-is-even gtk-doc multilib_script
> +
> +# Tell libsoup where the target ntlm_auth is installed
> +do_write_config:append:class-target() {
> +    cat >${WORKDIR}/cairo.cross <<EOF
> +[binaries]
> +ipc_rmid_deferred_release = 'true'
> +EOF
> +}
> +EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/cairo.cross"
> +
> +GTKDOC_MESON_OPTION = "gtk_doc"
>  
>  MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace"
>  
> -X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
> -
> -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
> -                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
> -                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
> -                   trace"
> -PACKAGECONFIG:class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
> -PACKAGECONFIG:class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
> -
> -PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
> -PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
> -PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb"
> -PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind"
> -PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl"
> -PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2"
> -PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
> -# trace is under GPLv3
> -PACKAGECONFIG[trace] = "--enable-trace,--disable-trace"
> -
> -EXTRA_OECONF += " \
> -    ${@bb.utils.contains('TARGET_FPU', 'soft', '--disable-some-floating-point', '', d)} \
> -    --enable-tee \
> -"
> -
> -# We don't depend on binutils so we need to disable this
> -export ac_cv_lib_bfd_bfd_openr="no"
> -# Ensure we don't depend on LZO
> -export ac_cv_lib_lzo2_lzo2a_decompress="no"
> +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xlib xcb', '', d)} trace"
> +PACKAGECONFIG[xlib] = "-Dxlib=enabled,-Dxlib=disabled,virtual/libx11 libxrender libxext"
> +PACKAGECONFIG[xcb] = "-Dxcb=enabled,-Dxcb=disabled,libxcb"
> +# cairo-trace is GPLv3 so add an option to remove it
> +PACKAGECONFIG[trace] = ""
>  
>  do_install:append () {
> -	rm -rf ${D}${bindir}/cairo-sphinx
> -	rm -rf ${D}${libdir}/cairo/cairo-fdr*
> -	rm -rf ${D}${libdir}/cairo/cairo-sphinx*
> -	rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr*
> -	rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx*
> -	[ ! -d ${D}${bindir} ] ||
> -		rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
> -	[ ! -d ${D}${libdir}/cairo ] ||
> -		rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
> +    if ! ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'true', 'false', d)}; then
> +        rm ${D}${bindir}/cairo-trace ${D}${libdir}/cairo/libcairo-trace.so
> +        rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${libdir}/cairo
> +    fi
>  }
>  
>  PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
> @@ -99,7 +77,7 @@ DESCRIPTION:cairo-perf-utils = "The Cairo library performance utilities"
>  FILES:${PN} = "${libdir}/libcairo.so.*"
>  FILES:${PN}-gobject = "${libdir}/libcairo-gobject.so.*"
>  FILES:${PN}-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*"
> -FILES:${PN}-perf-utils = "${bindir}/cairo-trace* ${libdir}/cairo/*.la ${libdir}/cairo/libcairo-trace.so"
> +FILES:${PN}-perf-utils = "${bindir}/cairo-* ${libdir}/cairo/libcairo-trace.so ${libdir}/cairo/libcairo-fdr.so"
>  
>  BBCLASSEXTEND = "native nativesdk"
>  
> -- 
> 2.25.1
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#192922): https://lists.openembedded.org/g/openembedded-core/message/192922
> Mute This Topic: https://lists.openembedded.org/mt/103380468/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0
  2023-12-27 12:01 ` [OE-core] " Alexandre Belloni
@ 2024-01-02 17:53   ` Alexander Kanavin
  0 siblings, 0 replies; 6+ messages in thread
From: Alexander Kanavin @ 2024-01-02 17:53 UTC (permalink / raw)
  To: alexandre.belloni; +Cc: qiutt@fujitsu.com, openembedded-core, fnstml-fujitsuten

I just sent a fixup patch for that, together with the unchanged cairo
update patch.

Alex

On Wed, 27 Dec 2023 at 13:01, Alexandre Belloni via
lists.openembedded.org
<alexandre.belloni=bootlin.com@lists.openembedded.org> wrote:
>
> Hello,
>
> This fails on x86-64 x32:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/57/builds/8214/steps/12/logs/stdio
>
> | ../cairo-1.18.0/meson.build:381:13: ERROR: Can not run test applications in this cross environment.
> |
> | A full log can be found at /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/build/meson-logs/meson-log.txt
> | ERROR: meson failed
> | WARNING: /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854:175 exit 1 from 'exit 1'
> | WARNING: Backtrace (BB generated script):
> |       #1: bbfatal_log, /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854, line 175
> |       #2: meson_do_configure, /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854, line 164
> |       #3: do_configure, /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854, line 150
> |       #4: main, /home/pokybuild/yocto-worker/qemux86-64-x32/build/build/tmp/work/x86_64_x32-poky-linux-gnux32/cairo/1.18.0/temp/run.do_configure.31854, line 188
> NOTE: recipe cairo-1.18.0-r0: task do_configure: Failed
> ERROR: Task (/home/pokybuild/yocto-worker/qemux86-64-x32/build/meta/recipes-graphics/cairo/cairo_1.18.0.bb:do_configure) failed with exit code '1'
>
> On 27/12/2023 12:09:36+0800, qiutt@fujitsu.com wrote:
> > From: qiutt <qiutt@fujitsu.com>
> >
> > Changelog for 1.18.0 [1]:
> >   The cairo-sphinx tool has been removed
> >   Cairo now implements Type 3 color fonts for PDF
> >   The XML surface has been removed
> >   The Tee surface is now automatically enabled
> >   The Quartz surface is improved
> >   Cairo now hides all private symbols by default on every platform
> >   Fixed multiple issues
> >
> > As a part of 1.18.0, the following patches should be dropped.
> >   CVE-2018-19876.patch : https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
> >   CVE-2019-6461.patch  : https://gitlab.freedesktop.org/cairo/cairo/-/commit/09643ee1abdd5daacebfcb564448f29be9a79bac
> >   CVE-2019-6462.patch  : https://gitlab.freedesktop.org/cairo/cairo/-/commit/bbeaf08190d3006a80b80a77724801cd477a37b8
> >   CVE-2020-35492.patch : https://gitlab.freedesktop.org/cairo/cairo/-/commit/c986a7310bb06582b7d8a566d5f007ba4e5e75bf
> >
> > These options are all gone [2]: directfb, valgrind, egl, glesv2, opengl, trace
> >
> > Build tool is changed : autotools -> meson
> >
> > Fix cross compile error [3] by adding cairo.cross file.
> >
> >  [1] https://www.cairographics.org/news/cairo-1.18.0/
> >  [2] https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/meson_options.txt
> >  [3] https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
> >
> > Signed-off-by: qiutt <qiutt@fujitsu.com>
> > ---
> >  .../cairo/cairo/CVE-2018-19876.patch          | 34 ---------
> >  .../cairo/cairo/CVE-2019-6461.patch           | 20 ------
> >  .../cairo/cairo/CVE-2019-6462.patch           | 40 -----------
> >  .../cairo/cairo/CVE-2020-35492.patch          | 60 ----------------
> >  .../{cairo_1.16.0.bb => cairo_1.18.0.bb}      | 72 +++++++------------
> >  5 files changed, 25 insertions(+), 201 deletions(-)
> >  delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> >  delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> >  delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> >  delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> >  rename meta/recipes-graphics/cairo/{cairo_1.16.0.bb => cairo_1.18.0.bb} (51%)
> >
> > diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch b/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> > deleted file mode 100644
> > index 4252a5663b..0000000000
> > --- a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> > +++ /dev/null
> > @@ -1,34 +0,0 @@
> > -CVE: CVE-2018-19876
> > -Upstream-Status: Backport
> > -Signed-off-by: Ross Burton <ross.burton@intel.com>
> > -
> > -From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001
> > -From: Carlos Garcia Campos <cgarcia@igalia.com>
> > -Date: Mon, 19 Nov 2018 12:33:07 +0100
> > -Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in
> > - cairo_ft_apply_variations
> > -
> > -Fixes a crash when using freetype >= 2.9
> > ----
> > - src/cairo-ft-font.c | 4 ++++
> > - 1 file changed, 4 insertions(+)
> > -
> > -diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
> > -index 325dd61b4..981973f78 100644
> > ---- a/src/cairo-ft-font.c
> > -+++ b/src/cairo-ft-font.c
> > -@@ -2393,7 +2393,11 @@ skip:
> > - done:
> > -         free (coords);
> > -         free (current_coords);
> > -+#if HAVE_FT_DONE_MM_VAR
> > -+        FT_Done_MM_Var (face->glyph->library, ft_mm_var);
> > -+#else
> > -         free (ft_mm_var);
> > -+#endif
> > -     }
> > - }
> > -
> > ---
> > -2.11.0
> > -
> > diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> > deleted file mode 100644
> > index a2dba6cb20..0000000000
> > --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> > +++ /dev/null
> > @@ -1,20 +0,0 @@
> > -There is an assertion in function _cairo_arc_in_direction().
> > -
> > -CVE: CVE-2019-6461
> > -Upstream-Status: Pending
> > -Signed-off-by: Ross Burton <ross.burton@intel.com>
> > -
> > -diff --git a/src/cairo-arc.c b/src/cairo-arc.c
> > -index 390397bae..1bde774a4 100644
> > ---- a/src/cairo-arc.c
> > -+++ b/src/cairo-arc.c
> > -@@ -186,7 +186,8 @@ _cairo_arc_in_direction (cairo_t   *cr,
> > -     if (cairo_status (cr))
> > -         return;
> > -
> > --    assert (angle_max >= angle_min);
> > -+    if (angle_max < angle_min)
> > -+       return;
> > -
> > -     if (angle_max - angle_min > 2 * M_PI * MAX_FULL_CIRCLES) {
> > -     angle_max = fmod (angle_max - angle_min, 2 * M_PI);
> > diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> > deleted file mode 100644
> > index 7c3209291b..0000000000
> > --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> > +++ /dev/null
> > @@ -1,40 +0,0 @@
> > -CVE: CVE-2019-6462
> > -Upstream-Status: Backport
> > -Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> > -
> > -From ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0 Mon Sep 17 00:00:00 2001
> > -From: Heiko Lewin <hlewin@gmx.de>
> > -Date: Sun, 1 Aug 2021 11:16:03 +0000
> > -Subject: [PATCH] _arc_max_angle_for_tolerance_normalized: fix infinite loop
> > -
> > ----
> > - src/cairo-arc.c | 4 +++-
> > - 1 file changed, 3 insertions(+), 1 deletion(-)
> > -
> > -diff --git a/src/cairo-arc.c b/src/cairo-arc.c
> > -index 390397bae..1c891d1a0 100644
> > ---- a/src/cairo-arc.c
> > -+++ b/src/cairo-arc.c
> > -@@ -90,16 +90,18 @@ _arc_max_angle_for_tolerance_normalized (double tolerance)
> > -     { M_PI / 11.0,  9.81410988043554039085e-09 },
> > -     };
> > -     int table_size = ARRAY_LENGTH (table);
> > -+    const int max_segments = 1000; /* this value is chosen arbitrarily. this gives an error of about 1.74909e-20 */
> > -
> > -     for (i = 0; i < table_size; i++)
> > -     if (table[i].error < tolerance)
> > -         return table[i].angle;
> > -
> > -     ++i;
> > -+
> > -     do {
> > -     angle = M_PI / i++;
> > -     error = _arc_error_normalized (angle);
> > --    } while (error > tolerance);
> > -+    } while (error > tolerance && i < max_segments);
> > -
> > -     return angle;
> > - }
> > ---
> > -2.38.1
> > -
> > diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch b/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> > deleted file mode 100644
> > index fb6ce5cfdf..0000000000
> > --- a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> > +++ /dev/null
> > @@ -1,60 +0,0 @@
> > -Fix stack buffer overflow.
> > -
> > -CVE: CVE-2020-35492
> > -Upstream-Status: Backport
> > -Signed-off-by: Ross Burton <ross.burton@arm.com>
> > -
> > -From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
> > -From: Heiko Lewin <heiko.lewin@worldiety.de>
> > -Date: Tue, 15 Dec 2020 16:48:19 +0100
> > -Subject: [PATCH] Fix mask usage in image-compositor
> > -
> > ----
> > - src/cairo-image-compositor.c                |   8 ++--
> > - test/Makefile.sources                       |   1 +
> > - test/bug-image-compositor.c                 |  39 ++++++++++++++++++++
> > - test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes
> > - 4 files changed, 44 insertions(+), 4 deletions(-)
> > - create mode 100644 test/bug-image-compositor.c
> > - create mode 100644 test/reference/bug-image-compositor.ref.png
> > -
> > -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
> > -index 79ad69f68..4f8aaed99 100644
> > ---- a/src/cairo-image-compositor.c
> > -+++ b/src/cairo-image-compositor.c
> > -@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> > -                 unsigned num_spans)
> > - {
> > -     cairo_image_span_renderer_t *r = abstract_renderer;
> > --    uint8_t *m;
> > -+    uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
> > -     int x0;
> > -
> > -     if (num_spans == 0)
> > -     return CAIRO_STATUS_SUCCESS;
> > -
> > -     x0 = spans[0].x;
> > --    m = r->_buf;
> > -+    m = base;
> > -     do {
> > -     int len = spans[1].x - spans[0].x;
> > -     if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
> > -@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> > -                                   spans[0].x, y,
> > -                                   spans[1].x - spans[0].x, h);
> > -
> > --        m = r->_buf;
> > -+        m = base;
> > -         x0 = spans[1].x;
> > -     } else if (spans[0].coverage == 0x0) {
> > -         if (spans[0].x != x0) {
> > -@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> > - #endif
> > -         }
> > -
> > --        m = r->_buf;
> > -+        m = base;
> > -         x0 = spans[1].x;
> > -     } else {
> > -         *m++ = spans[0].coverage;
> > ---
> > diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
> > similarity index 51%
> > rename from meta/recipes-graphics/cairo/cairo_1.16.0.bb
> > rename to meta/recipes-graphics/cairo/cairo_1.18.0.bb
> > index ffb813d290..ffae13b48a 100644
> > --- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
> > +++ b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
> > @@ -7,7 +7,7 @@ optional translucence (opacity/alpha) and combined using the \
> >  extended Porter/Duff compositing algebra as found in the X Render \
> >  Extension."
> >  HOMEPAGE = "http://cairographics.org"
> > -BUGTRACKER = "http://bugs.freedesktop.org"
> > +BUGTRACKER = "https://gitlab.freedesktop.org/cairo/cairo/-/issues"
> >  SECTION = "libs"
> >
> >  LICENSE = "(MPL-1.1 | LGPL-2.1-only) & GPL-3.0-or-later"
> > @@ -26,62 +26,40 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
> >                      ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}"
> >
> >
> > -DEPENDS = "fontconfig glib-2.0 libpng pixman zlib"
> > +DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib"
> >
> >  SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
> >             file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
> > -           file://CVE-2018-19876.patch \
> > -           file://CVE-2019-6461.patch \
> > -           file://CVE-2019-6462.patch \
> > -           file://CVE-2020-35492.patch \
> >            "
> >
> > -SRC_URI[md5sum] = "f19e0353828269c22bd72e271243a552"
> > -SRC_URI[sha256sum] = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331"
> > +SRC_URI[sha256sum] = "243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64"
> >
> > -inherit autotools pkgconfig upstream-version-is-even gtk-doc multilib_script
> > +inherit meson pkgconfig upstream-version-is-even gtk-doc multilib_script
> > +
> > +# Tell libsoup where the target ntlm_auth is installed
> > +do_write_config:append:class-target() {
> > +    cat >${WORKDIR}/cairo.cross <<EOF
> > +[binaries]
> > +ipc_rmid_deferred_release = 'true'
> > +EOF
> > +}
> > +EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/cairo.cross"
> > +
> > +GTKDOC_MESON_OPTION = "gtk_doc"
> >
> >  MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace"
> >
> > -X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
> > -
> > -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
> > -                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
> > -                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
> > -                   trace"
> > -PACKAGECONFIG:class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
> > -PACKAGECONFIG:class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
> > -
> > -PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
> > -PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
> > -PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb"
> > -PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind"
> > -PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl"
> > -PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2"
> > -PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
> > -# trace is under GPLv3
> > -PACKAGECONFIG[trace] = "--enable-trace,--disable-trace"
> > -
> > -EXTRA_OECONF += " \
> > -    ${@bb.utils.contains('TARGET_FPU', 'soft', '--disable-some-floating-point', '', d)} \
> > -    --enable-tee \
> > -"
> > -
> > -# We don't depend on binutils so we need to disable this
> > -export ac_cv_lib_bfd_bfd_openr="no"
> > -# Ensure we don't depend on LZO
> > -export ac_cv_lib_lzo2_lzo2a_decompress="no"
> > +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xlib xcb', '', d)} trace"
> > +PACKAGECONFIG[xlib] = "-Dxlib=enabled,-Dxlib=disabled,virtual/libx11 libxrender libxext"
> > +PACKAGECONFIG[xcb] = "-Dxcb=enabled,-Dxcb=disabled,libxcb"
> > +# cairo-trace is GPLv3 so add an option to remove it
> > +PACKAGECONFIG[trace] = ""
> >
> >  do_install:append () {
> > -     rm -rf ${D}${bindir}/cairo-sphinx
> > -     rm -rf ${D}${libdir}/cairo/cairo-fdr*
> > -     rm -rf ${D}${libdir}/cairo/cairo-sphinx*
> > -     rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr*
> > -     rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx*
> > -     [ ! -d ${D}${bindir} ] ||
> > -             rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
> > -     [ ! -d ${D}${libdir}/cairo ] ||
> > -             rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
> > +    if ! ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'true', 'false', d)}; then
> > +        rm ${D}${bindir}/cairo-trace ${D}${libdir}/cairo/libcairo-trace.so
> > +        rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${libdir}/cairo
> > +    fi
> >  }
> >
> >  PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
> > @@ -99,7 +77,7 @@ DESCRIPTION:cairo-perf-utils = "The Cairo library performance utilities"
> >  FILES:${PN} = "${libdir}/libcairo.so.*"
> >  FILES:${PN}-gobject = "${libdir}/libcairo-gobject.so.*"
> >  FILES:${PN}-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*"
> > -FILES:${PN}-perf-utils = "${bindir}/cairo-trace* ${libdir}/cairo/*.la ${libdir}/cairo/libcairo-trace.so"
> > +FILES:${PN}-perf-utils = "${bindir}/cairo-* ${libdir}/cairo/libcairo-trace.so ${libdir}/cairo/libcairo-fdr.so"
> >
> >  BBCLASSEXTEND = "native nativesdk"
> >
> > --
> > 2.25.1
> >
>
> >
> >
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#192938): https://lists.openembedded.org/g/openembedded-core/message/192938
> Mute This Topic: https://lists.openembedded.org/mt/103380468/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0
  2023-12-27  4:09 [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0 qiutt
  2023-12-27 12:01 ` [OE-core] " Alexandre Belloni
@ 2024-01-10 18:42 ` Ross Burton
  2024-01-10 20:55   ` Alexander Kanavin
  1 sibling, 1 reply; 6+ messages in thread
From: Ross Burton @ 2024-01-10 18:42 UTC (permalink / raw)
  To: qiutt@fujitsu.com
  Cc: openembedded-core@lists.openembedded.org,
	fnstml-fujitsuten@fujitsu.com

If you’re going to take someone elses WIP commit wholesale, please at least credit them...

Ross

> On 27 Dec 2023, at 04:09, qiutt@fujitsu.com via lists.openembedded.org <qiutt=fujitsu.com@lists.openembedded.org> wrote:
> 
> From: qiutt <qiutt@fujitsu.com>
> 
> Changelog for 1.18.0 [1]:
>  The cairo-sphinx tool has been removed
>  Cairo now implements Type 3 color fonts for PDF
>  The XML surface has been removed
>  The Tee surface is now automatically enabled
>  The Quartz surface is improved
>  Cairo now hides all private symbols by default on every platform
>  Fixed multiple issues
> 
> As a part of 1.18.0, the following patches should be dropped.
>  CVE-2018-19876.patch : https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
>  CVE-2019-6461.patch  : https://gitlab.freedesktop.org/cairo/cairo/-/commit/09643ee1abdd5daacebfcb564448f29be9a79bac
>  CVE-2019-6462.patch  : https://gitlab.freedesktop.org/cairo/cairo/-/commit/bbeaf08190d3006a80b80a77724801cd477a37b8
>  CVE-2020-35492.patch : https://gitlab.freedesktop.org/cairo/cairo/-/commit/c986a7310bb06582b7d8a566d5f007ba4e5e75bf
> 
> These options are all gone [2]: directfb, valgrind, egl, glesv2, opengl, trace
> 
> Build tool is changed : autotools -> meson
> 
> Fix cross compile error [3] by adding cairo.cross file.
> 
> [1] https://www.cairographics.org/news/cairo-1.18.0/
> [2] https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/meson_options.txt
> [3] https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
> 
> Signed-off-by: qiutt <qiutt@fujitsu.com>
> ---
> .../cairo/cairo/CVE-2018-19876.patch          | 34 ---------
> .../cairo/cairo/CVE-2019-6461.patch           | 20 ------
> .../cairo/cairo/CVE-2019-6462.patch           | 40 -----------
> .../cairo/cairo/CVE-2020-35492.patch          | 60 ----------------
> .../{cairo_1.16.0.bb => cairo_1.18.0.bb}      | 72 +++++++------------
> 5 files changed, 25 insertions(+), 201 deletions(-)
> delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> rename meta/recipes-graphics/cairo/{cairo_1.16.0.bb => cairo_1.18.0.bb} (51%)
> 
> diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch b/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> deleted file mode 100644
> index 4252a5663b..0000000000
> --- a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -CVE: CVE-2018-19876
> -Upstream-Status: Backport
> -Signed-off-by: Ross Burton <ross.burton@intel.com>
> -
> -From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001
> -From: Carlos Garcia Campos <cgarcia@igalia.com>
> -Date: Mon, 19 Nov 2018 12:33:07 +0100
> -Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in
> - cairo_ft_apply_variations
> -
> -Fixes a crash when using freetype >= 2.9
> ----
> - src/cairo-ft-font.c | 4 ++++
> - 1 file changed, 4 insertions(+)
> -
> -diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
> -index 325dd61b4..981973f78 100644
> ---- a/src/cairo-ft-font.c
> -+++ b/src/cairo-ft-font.c
> -@@ -2393,7 +2393,11 @@ skip:
> - done:
> -         free (coords);
> -         free (current_coords);
> -+#if HAVE_FT_DONE_MM_VAR
> -+        FT_Done_MM_Var (face->glyph->library, ft_mm_var);
> -+#else
> -         free (ft_mm_var);
> -+#endif
> -     }
> - }
> - 
> --- 
> -2.11.0
> -
> diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> deleted file mode 100644
> index a2dba6cb20..0000000000
> --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -There is an assertion in function _cairo_arc_in_direction().
> -
> -CVE: CVE-2019-6461
> -Upstream-Status: Pending
> -Signed-off-by: Ross Burton <ross.burton@intel.com>
> -
> -diff --git a/src/cairo-arc.c b/src/cairo-arc.c
> -index 390397bae..1bde774a4 100644
> ---- a/src/cairo-arc.c
> -+++ b/src/cairo-arc.c
> -@@ -186,7 +186,8 @@ _cairo_arc_in_direction (cairo_t  *cr,
> -     if (cairo_status (cr))
> -         return;
> - 
> --    assert (angle_max >= angle_min);
> -+    if (angle_max < angle_min)
> -+       return;
> - 
> -     if (angle_max - angle_min > 2 * M_PI * MAX_FULL_CIRCLES) {
> - angle_max = fmod (angle_max - angle_min, 2 * M_PI);
> diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> deleted file mode 100644
> index 7c3209291b..0000000000
> --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -CVE: CVE-2019-6462
> -Upstream-Status: Backport
> -Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> -
> -From ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0 Mon Sep 17 00:00:00 2001
> -From: Heiko Lewin <hlewin@gmx.de>
> -Date: Sun, 1 Aug 2021 11:16:03 +0000
> -Subject: [PATCH] _arc_max_angle_for_tolerance_normalized: fix infinite loop
> -
> ----
> - src/cairo-arc.c | 4 +++-
> - 1 file changed, 3 insertions(+), 1 deletion(-)
> -
> -diff --git a/src/cairo-arc.c b/src/cairo-arc.c
> -index 390397bae..1c891d1a0 100644
> ---- a/src/cairo-arc.c
> -+++ b/src/cairo-arc.c
> -@@ -90,16 +90,18 @@ _arc_max_angle_for_tolerance_normalized (double tolerance)
> - { M_PI / 11.0,  9.81410988043554039085e-09 },
> -     };
> -     int table_size = ARRAY_LENGTH (table);
> -+    const int max_segments = 1000; /* this value is chosen arbitrarily. this gives an error of about 1.74909e-20 */
> - 
> -     for (i = 0; i < table_size; i++)
> - if (table[i].error < tolerance)
> -    return table[i].angle;
> - 
> -     ++i;
> -+
> -     do {
> - angle = M_PI / i++;
> - error = _arc_error_normalized (angle);
> --    } while (error > tolerance);
> -+    } while (error > tolerance && i < max_segments);
> - 
> -     return angle;
> - }
> --- 
> -2.38.1
> -
> diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch b/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> deleted file mode 100644
> index fb6ce5cfdf..0000000000
> --- a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -Fix stack buffer overflow.
> -
> -CVE: CVE-2020-35492
> -Upstream-Status: Backport
> -Signed-off-by: Ross Burton <ross.burton@arm.com>
> -
> -From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
> -From: Heiko Lewin <heiko.lewin@worldiety.de>
> -Date: Tue, 15 Dec 2020 16:48:19 +0100
> -Subject: [PATCH] Fix mask usage in image-compositor
> -
> ----
> - src/cairo-image-compositor.c                |   8 ++--
> - test/Makefile.sources                       |   1 +
> - test/bug-image-compositor.c                 |  39 ++++++++++++++++++++
> - test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes
> - 4 files changed, 44 insertions(+), 4 deletions(-)
> - create mode 100644 test/bug-image-compositor.c
> - create mode 100644 test/reference/bug-image-compositor.ref.png
> -
> -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
> -index 79ad69f68..4f8aaed99 100644
> ---- a/src/cairo-image-compositor.c
> -+++ b/src/cairo-image-compositor.c
> -@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> -    unsigned num_spans)
> - {
> -     cairo_image_span_renderer_t *r = abstract_renderer;
> --    uint8_t *m;
> -+    uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
> -     int x0;
> - 
> -     if (num_spans == 0)
> - return CAIRO_STATUS_SUCCESS;
> - 
> -     x0 = spans[0].x;
> --    m = r->_buf;
> -+    m = base;
> -     do {
> - int len = spans[1].x - spans[0].x;
> - if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
> -@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> -      spans[0].x, y,
> -      spans[1].x - spans[0].x, h);
> - 
> --    m = r->_buf;
> -+    m = base;
> -    x0 = spans[1].x;
> - } else if (spans[0].coverage == 0x0) {
> -    if (spans[0].x != x0) {
> -@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
> - #endif
> -    }
> - 
> --    m = r->_buf;
> -+    m = base;
> -    x0 = spans[1].x;
> - } else {
> -    *m++ = spans[0].coverage;
> --- 
> diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
> similarity index 51%
> rename from meta/recipes-graphics/cairo/cairo_1.16.0.bb
> rename to meta/recipes-graphics/cairo/cairo_1.18.0.bb
> index ffb813d290..ffae13b48a 100644
> --- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
> +++ b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
> @@ -7,7 +7,7 @@ optional translucence (opacity/alpha) and combined using the \
> extended Porter/Duff compositing algebra as found in the X Render \
> Extension."
> HOMEPAGE = "http://cairographics.org"
> -BUGTRACKER = "http://bugs.freedesktop.org"
> +BUGTRACKER = "https://gitlab.freedesktop.org/cairo/cairo/-/issues"
> SECTION = "libs"
> 
> LICENSE = "(MPL-1.1 | LGPL-2.1-only) & GPL-3.0-or-later"
> @@ -26,62 +26,40 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
>                     ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}"
> 
> 
> -DEPENDS = "fontconfig glib-2.0 libpng pixman zlib"
> +DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib"
> 
> SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
>            file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
> -           file://CVE-2018-19876.patch \
> -           file://CVE-2019-6461.patch \
> -           file://CVE-2019-6462.patch \
> -           file://CVE-2020-35492.patch \
>           "
> 
> -SRC_URI[md5sum] = "f19e0353828269c22bd72e271243a552"
> -SRC_URI[sha256sum] = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331"
> +SRC_URI[sha256sum] = "243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64"
> 
> -inherit autotools pkgconfig upstream-version-is-even gtk-doc multilib_script
> +inherit meson pkgconfig upstream-version-is-even gtk-doc multilib_script
> +
> +# Tell libsoup where the target ntlm_auth is installed
> +do_write_config:append:class-target() {
> +    cat >${WORKDIR}/cairo.cross <<EOF
> +[binaries]
> +ipc_rmid_deferred_release = 'true'
> +EOF
> +}
> +EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/cairo.cross"
> +
> +GTKDOC_MESON_OPTION = "gtk_doc"
> 
> MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace"
> 
> -X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
> -
> -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
> -                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
> -                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
> -                   trace"
> -PACKAGECONFIG:class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
> -PACKAGECONFIG:class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
> -
> -PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
> -PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
> -PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb"
> -PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind"
> -PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl"
> -PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2"
> -PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
> -# trace is under GPLv3
> -PACKAGECONFIG[trace] = "--enable-trace,--disable-trace"
> -
> -EXTRA_OECONF += " \
> -    ${@bb.utils.contains('TARGET_FPU', 'soft', '--disable-some-floating-point', '', d)} \
> -    --enable-tee \
> -"
> -
> -# We don't depend on binutils so we need to disable this
> -export ac_cv_lib_bfd_bfd_openr="no"
> -# Ensure we don't depend on LZO
> -export ac_cv_lib_lzo2_lzo2a_decompress="no"
> +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xlib xcb', '', d)} trace"
> +PACKAGECONFIG[xlib] = "-Dxlib=enabled,-Dxlib=disabled,virtual/libx11 libxrender libxext"
> +PACKAGECONFIG[xcb] = "-Dxcb=enabled,-Dxcb=disabled,libxcb"
> +# cairo-trace is GPLv3 so add an option to remove it
> +PACKAGECONFIG[trace] = ""
> 
> do_install:append () {
> - rm -rf ${D}${bindir}/cairo-sphinx
> - rm -rf ${D}${libdir}/cairo/cairo-fdr*
> - rm -rf ${D}${libdir}/cairo/cairo-sphinx*
> - rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr*
> - rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx*
> - [ ! -d ${D}${bindir} ] ||
> - rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
> - [ ! -d ${D}${libdir}/cairo ] ||
> - rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
> +    if ! ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'true', 'false', d)}; then
> +        rm ${D}${bindir}/cairo-trace ${D}${libdir}/cairo/libcairo-trace.so
> +        rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${libdir}/cairo
> +    fi
> }
> 
> PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
> @@ -99,7 +77,7 @@ DESCRIPTION:cairo-perf-utils = "The Cairo library performance utilities"
> FILES:${PN} = "${libdir}/libcairo.so.*"
> FILES:${PN}-gobject = "${libdir}/libcairo-gobject.so.*"
> FILES:${PN}-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*"
> -FILES:${PN}-perf-utils = "${bindir}/cairo-trace* ${libdir}/cairo/*.la ${libdir}/cairo/libcairo-trace.so"
> +FILES:${PN}-perf-utils = "${bindir}/cairo-* ${libdir}/cairo/libcairo-trace.so ${libdir}/cairo/libcairo-fdr.so"
> 
> BBCLASSEXTEND = "native nativesdk"
> 
> -- 
> 2.25.1
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#192922): https://lists.openembedded.org/g/openembedded-core/message/192922
> Mute This Topic: https://lists.openembedded.org/mt/103380468/6875888
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ross.burton@arm.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0
  2024-01-10 18:42 ` Ross Burton
@ 2024-01-10 20:55   ` Alexander Kanavin
  2024-01-10 21:00     ` Ross Burton
  0 siblings, 1 reply; 6+ messages in thread
From: Alexander Kanavin @ 2024-01-10 20:55 UTC (permalink / raw)
  To: Ross Burton
  Cc: fnstml-fujitsuten@fujitsu.com,
	openembedded-core@lists.openembedded.org, qiutt@fujitsu.com

[-- Attachment #1: Type: text/plain, Size: 15598 bytes --]

I think you should clarify. What wip commit and who’s taken it and where?

Alex

On Wed 10. Jan 2024 at 19.42, Ross Burton <ross.burton@arm.com> wrote:

> If you’re going to take someone elses WIP commit wholesale, please at
> least credit them...
>
> Ross
>
> > On 27 Dec 2023, at 04:09, qiutt@fujitsu.com via lists.openembedded.org
> <qiutt=fujitsu.com@lists.openembedded.org> wrote:
> >
> > From: qiutt <qiutt@fujitsu.com>
> >
> > Changelog for 1.18.0 [1]:
> >  The cairo-sphinx tool has been removed
> >  Cairo now implements Type 3 color fonts for PDF
> >  The XML surface has been removed
> >  The Tee surface is now automatically enabled
> >  The Quartz surface is improved
> >  Cairo now hides all private symbols by default on every platform
> >  Fixed multiple issues
> >
> > As a part of 1.18.0, the following patches should be dropped.
> >  CVE-2018-19876.patch :
> https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
> >  CVE-2019-6461.patch  :
> https://gitlab.freedesktop.org/cairo/cairo/-/commit/09643ee1abdd5daacebfcb564448f29be9a79bac
> >  CVE-2019-6462.patch  :
> https://gitlab.freedesktop.org/cairo/cairo/-/commit/bbeaf08190d3006a80b80a77724801cd477a37b8
> >  CVE-2020-35492.patch :
> https://gitlab.freedesktop.org/cairo/cairo/-/commit/c986a7310bb06582b7d8a566d5f007ba4e5e75bf
> >
> > These options are all gone [2]: directfb, valgrind, egl, glesv2, opengl,
> trace
> >
> > Build tool is changed : autotools -> meson
> >
> > Fix cross compile error [3] by adding cairo.cross file.
> >
> > [1] https://www.cairographics.org/news/cairo-1.18.0/
> > [2]
> https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/meson_options.txt
> > [3] https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
> >
> > Signed-off-by: qiutt <qiutt@fujitsu.com>
> > ---
> > .../cairo/cairo/CVE-2018-19876.patch          | 34 ---------
> > .../cairo/cairo/CVE-2019-6461.patch           | 20 ------
> > .../cairo/cairo/CVE-2019-6462.patch           | 40 -----------
> > .../cairo/cairo/CVE-2020-35492.patch          | 60 ----------------
> > .../{cairo_1.16.0.bb => cairo_1.18.0.bb}      | 72 +++++++------------
> > 5 files changed, 25 insertions(+), 201 deletions(-)
> > delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> > delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> > delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> > delete mode 100644 meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> > rename meta/recipes-graphics/cairo/{cairo_1.16.0.bb => cairo_1.18.0.bb}
> (51%)
> >
> > diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> b/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> > deleted file mode 100644
> > index 4252a5663b..0000000000
> > --- a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
> > +++ /dev/null
> > @@ -1,34 +0,0 @@
> > -CVE: CVE-2018-19876
> > -Upstream-Status: Backport
> > -Signed-off-by: Ross Burton <ross.burton@intel.com>
> > -
> > -From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001
> > -From: Carlos Garcia Campos <cgarcia@igalia.com>
> > -Date: Mon, 19 Nov 2018 12:33:07 +0100
> > -Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available
> in
> > - cairo_ft_apply_variations
> > -
> > -Fixes a crash when using freetype >= 2.9
> > ----
> > - src/cairo-ft-font.c | 4 ++++
> > - 1 file changed, 4 insertions(+)
> > -
> > -diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
> > -index 325dd61b4..981973f78 100644
> > ---- a/src/cairo-ft-font.c
> > -+++ b/src/cairo-ft-font.c
> > -@@ -2393,7 +2393,11 @@ skip:
> > - done:
> > -         free (coords);
> > -         free (current_coords);
> > -+#if HAVE_FT_DONE_MM_VAR
> > -+        FT_Done_MM_Var (face->glyph->library, ft_mm_var);
> > -+#else
> > -         free (ft_mm_var);
> > -+#endif
> > -     }
> > - }
> > -
> > ---
> > -2.11.0
> > -
> > diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> b/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> > deleted file mode 100644
> > index a2dba6cb20..0000000000
> > --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
> > +++ /dev/null
> > @@ -1,20 +0,0 @@
> > -There is an assertion in function _cairo_arc_in_direction().
> > -
> > -CVE: CVE-2019-6461
> > -Upstream-Status: Pending
> > -Signed-off-by: Ross Burton <ross.burton@intel.com>
> > -
> > -diff --git a/src/cairo-arc.c b/src/cairo-arc.c
> > -index 390397bae..1bde774a4 100644
> > ---- a/src/cairo-arc.c
> > -+++ b/src/cairo-arc.c
> > -@@ -186,7 +186,8 @@ _cairo_arc_in_direction (cairo_t  *cr,
> > -     if (cairo_status (cr))
> > -         return;
> > -
> > --    assert (angle_max >= angle_min);
> > -+    if (angle_max < angle_min)
> > -+       return;
> > -
> > -     if (angle_max - angle_min > 2 * M_PI * MAX_FULL_CIRCLES) {
> > - angle_max = fmod (angle_max - angle_min, 2 * M_PI);
> > diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> b/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> > deleted file mode 100644
> > index 7c3209291b..0000000000
> > --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
> > +++ /dev/null
> > @@ -1,40 +0,0 @@
> > -CVE: CVE-2019-6462
> > -Upstream-Status: Backport
> > -Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> > -
> > -From ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0 Mon Sep 17 00:00:00 2001
> > -From: Heiko Lewin <hlewin@gmx.de>
> > -Date: Sun, 1 Aug 2021 11:16:03 +0000
> > -Subject: [PATCH] _arc_max_angle_for_tolerance_normalized: fix infinite
> loop
> > -
> > ----
> > - src/cairo-arc.c | 4 +++-
> > - 1 file changed, 3 insertions(+), 1 deletion(-)
> > -
> > -diff --git a/src/cairo-arc.c b/src/cairo-arc.c
> > -index 390397bae..1c891d1a0 100644
> > ---- a/src/cairo-arc.c
> > -+++ b/src/cairo-arc.c
> > -@@ -90,16 +90,18 @@ _arc_max_angle_for_tolerance_normalized (double
> tolerance)
> > - { M_PI / 11.0,  9.81410988043554039085e-09 },
> > -     };
> > -     int table_size = ARRAY_LENGTH (table);
> > -+    const int max_segments = 1000; /* this value is chosen
> arbitrarily. this gives an error of about 1.74909e-20 */
> > -
> > -     for (i = 0; i < table_size; i++)
> > - if (table[i].error < tolerance)
> > -    return table[i].angle;
> > -
> > -     ++i;
> > -+
> > -     do {
> > - angle = M_PI / i++;
> > - error = _arc_error_normalized (angle);
> > --    } while (error > tolerance);
> > -+    } while (error > tolerance && i < max_segments);
> > -
> > -     return angle;
> > - }
> > ---
> > -2.38.1
> > -
> > diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> b/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> > deleted file mode 100644
> > index fb6ce5cfdf..0000000000
> > --- a/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
> > +++ /dev/null
> > @@ -1,60 +0,0 @@
> > -Fix stack buffer overflow.
> > -
> > -CVE: CVE-2020-35492
> > -Upstream-Status: Backport
> > -Signed-off-by: Ross Burton <ross.burton@arm.com>
> > -
> > -From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
> > -From: Heiko Lewin <heiko.lewin@worldiety.de>
> > -Date: Tue, 15 Dec 2020 16:48:19 +0100
> > -Subject: [PATCH] Fix mask usage in image-compositor
> > -
> > ----
> > - src/cairo-image-compositor.c                |   8 ++--
> > - test/Makefile.sources                       |   1 +
> > - test/bug-image-compositor.c                 |  39 ++++++++++++++++++++
> > - test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes
> > - 4 files changed, 44 insertions(+), 4 deletions(-)
> > - create mode 100644 test/bug-image-compositor.c
> > - create mode 100644 test/reference/bug-image-compositor.ref.png
> > -
> > -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
> > -index 79ad69f68..4f8aaed99 100644
> > ---- a/src/cairo-image-compositor.c
> > -+++ b/src/cairo-image-compositor.c
> > -@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_renderer,
> int y, int h,
> > -    unsigned num_spans)
> > - {
> > -     cairo_image_span_renderer_t *r = abstract_renderer;
> > --    uint8_t *m;
> > -+    uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
> > -     int x0;
> > -
> > -     if (num_spans == 0)
> > - return CAIRO_STATUS_SUCCESS;
> > -
> > -     x0 = spans[0].x;
> > --    m = r->_buf;
> > -+    m = base;
> > -     do {
> > - int len = spans[1].x - spans[0].x;
> > - if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
> > -@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int
> y, int h,
> > -      spans[0].x, y,
> > -      spans[1].x - spans[0].x, h);
> > -
> > --    m = r->_buf;
> > -+    m = base;
> > -    x0 = spans[1].x;
> > - } else if (spans[0].coverage == 0x0) {
> > -    if (spans[0].x != x0) {
> > -@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int
> y, int h,
> > - #endif
> > -    }
> > -
> > --    m = r->_buf;
> > -+    m = base;
> > -    x0 = spans[1].x;
> > - } else {
> > -    *m++ = spans[0].coverage;
> > ---
> > diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
> b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
> > similarity index 51%
> > rename from meta/recipes-graphics/cairo/cairo_1.16.0.bb
> > rename to meta/recipes-graphics/cairo/cairo_1.18.0.bb
> > index ffb813d290..ffae13b48a 100644
> > --- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
> > +++ b/meta/recipes-graphics/cairo/cairo_1.18.0.bb
> > @@ -7,7 +7,7 @@ optional translucence (opacity/alpha) and combined using
> the \
> > extended Porter/Duff compositing algebra as found in the X Render \
> > Extension."
> > HOMEPAGE = "http://cairographics.org"
> > -BUGTRACKER = "http://bugs.freedesktop.org"
> > +BUGTRACKER = "https://gitlab.freedesktop.org/cairo/cairo/-/issues"
> > SECTION = "libs"
> >
> > LICENSE = "(MPL-1.1 | LGPL-2.1-only) & GPL-3.0-or-later"
> > @@ -26,62 +26,40 @@ LIC_FILES_CHKSUM =
> "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
> >                     ${@bb.utils.contains('PACKAGECONFIG', 'trace',
> 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504',
> '', d)}"
> >
> >
> > -DEPENDS = "fontconfig glib-2.0 libpng pixman zlib"
> > +DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib"
> >
> > SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
> >            file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
> \
> > -           file://CVE-2018-19876.patch \
> > -           file://CVE-2019-6461.patch \
> > -           file://CVE-2019-6462.patch \
> > -           file://CVE-2020-35492.patch \
> >           "
> >
> > -SRC_URI[md5sum] = "f19e0353828269c22bd72e271243a552"
> > -SRC_URI[sha256sum] =
> "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331"
> > +SRC_URI[sha256sum] =
> "243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64"
> >
> > -inherit autotools pkgconfig upstream-version-is-even gtk-doc
> multilib_script
> > +inherit meson pkgconfig upstream-version-is-even gtk-doc multilib_script
> > +
> > +# Tell libsoup where the target ntlm_auth is installed
> > +do_write_config:append:class-target() {
> > +    cat >${WORKDIR}/cairo.cross <<EOF
> > +[binaries]
> > +ipc_rmid_deferred_release = 'true'
> > +EOF
> > +}
> > +EXTRA_OEMESON:append:class-target = " --cross-file
> ${WORKDIR}/cairo.cross"
> > +
> > +GTKDOC_MESON_OPTION = "gtk_doc"
> >
> > MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace"
> >
> > -X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
> > -
> > -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb',
> d)} \
> > -                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11
> xcb', '', d)} \
> > -                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11
> opengl', 'opengl', '', d)} \
> > -                   trace"
> > -PACKAGECONFIG:class-native = "${@bb.utils.contains('DISTRO_FEATURES',
> 'x11', 'x11 xcb', '', d)}"
> > -PACKAGECONFIG:class-nativesdk =
> "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
> > -
> > -PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no
> --disable-xlib,${X11DEPENDS}"
> > -PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
> > -PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb"
> > -PACKAGECONFIG[valgrind] =
> "--enable-valgrind=yes,--disable-valgrind,valgrind"
> > -PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl"
> > -PACKAGECONFIG[glesv2] =
> "--enable-glesv2,--disable-glesv2,virtual/libgles2"
> > -PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
> > -# trace is under GPLv3
> > -PACKAGECONFIG[trace] = "--enable-trace,--disable-trace"
> > -
> > -EXTRA_OECONF += " \
> > -    ${@bb.utils.contains('TARGET_FPU', 'soft',
> '--disable-some-floating-point', '', d)} \
> > -    --enable-tee \
> > -"
> > -
> > -# We don't depend on binutils so we need to disable this
> > -export ac_cv_lib_bfd_bfd_openr="no"
> > -# Ensure we don't depend on LZO
> > -export ac_cv_lib_lzo2_lzo2a_decompress="no"
> > +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xlib
> xcb', '', d)} trace"
> > +PACKAGECONFIG[xlib] = "-Dxlib=enabled,-Dxlib=disabled,virtual/libx11
> libxrender libxext"
> > +PACKAGECONFIG[xcb] = "-Dxcb=enabled,-Dxcb=disabled,libxcb"
> > +# cairo-trace is GPLv3 so add an option to remove it
> > +PACKAGECONFIG[trace] = ""
> >
> > do_install:append () {
> > - rm -rf ${D}${bindir}/cairo-sphinx
> > - rm -rf ${D}${libdir}/cairo/cairo-fdr*
> > - rm -rf ${D}${libdir}/cairo/cairo-sphinx*
> > - rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr*
> > - rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx*
> > - [ ! -d ${D}${bindir} ] ||
> > - rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
> > - [ ! -d ${D}${libdir}/cairo ] ||
> > - rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
> > +    if ! ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'true',
> 'false', d)}; then
> > +        rm ${D}${bindir}/cairo-trace
> ${D}${libdir}/cairo/libcairo-trace.so
> > +        rmdir --ignore-fail-on-non-empty ${D}${bindir}
> ${D}${libdir}/cairo
> > +    fi
> > }
> >
> > PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
> > @@ -99,7 +77,7 @@ DESCRIPTION:cairo-perf-utils = "The Cairo library
> performance utilities"
> > FILES:${PN} = "${libdir}/libcairo.so.*"
> > FILES:${PN}-gobject = "${libdir}/libcairo-gobject.so.*"
> > FILES:${PN}-script-interpreter =
> "${libdir}/libcairo-script-interpreter.so.*"
> > -FILES:${PN}-perf-utils = "${bindir}/cairo-trace* ${libdir}/cairo/*.la
> ${libdir}/cairo/libcairo-trace.so"
> > +FILES:${PN}-perf-utils = "${bindir}/cairo-*
> ${libdir}/cairo/libcairo-trace.so ${libdir}/cairo/libcairo-fdr.so"
> >
> > BBCLASSEXTEND = "native nativesdk"
> >
> > --
> > 2.25.1
> >
> >
> >
> >
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#193520):
> https://lists.openembedded.org/g/openembedded-core/message/193520
> Mute This Topic: https://lists.openembedded.org/mt/103380468/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>

[-- Attachment #2: Type: text/html, Size: 21918 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [OE-core] [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0
  2024-01-10 20:55   ` Alexander Kanavin
@ 2024-01-10 21:00     ` Ross Burton
  0 siblings, 0 replies; 6+ messages in thread
From: Ross Burton @ 2024-01-10 21:00 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: openembedded-core@lists.openembedded.org

On 10 Jan 2024, at 20:55, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
> 
> I think you should clarify. What wip commit and who’s taken it and where?

v3 onwards of the cairo upgrade are ~99% my upgrade to the beta.

I’m just about to post another iteration which incorporates your fixes.

Ross

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-01-10 21:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-27  4:09 [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0 qiutt
2023-12-27 12:01 ` [OE-core] " Alexandre Belloni
2024-01-02 17:53   ` Alexander Kanavin
2024-01-10 18:42 ` Ross Burton
2024-01-10 20:55   ` Alexander Kanavin
2024-01-10 21:00     ` Ross Burton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox