From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: "qiutt@fujitsu.com" <qiutt@fujitsu.com>
Cc: openembedded-core@lists.openembedded.org, fnstml-fujitsuten@fujitsu.com
Subject: Re: [OE-core] [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0
Date: Wed, 27 Dec 2023 13:01:41 +0100 [thread overview]
Message-ID: <20231227120141608b1d22@mail.local> (raw)
In-Reply-To: <20231227040936.1063726-1-qiutt@fujitsu.com>
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
next prev parent reply other threads:[~2023-12-27 12:01 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-27 4:09 [PATCH V4] cairo: upgrade 1.16.0 -> 1.18.0 qiutt
2023-12-27 12:01 ` Alexandre Belloni [this message]
2024-01-02 17:53 ` [OE-core] " Alexander Kanavin
2024-01-10 18:42 ` Ross Burton
2024-01-10 20:55 ` Alexander Kanavin
2024-01-10 21:00 ` Ross Burton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231227120141608b1d22@mail.local \
--to=alexandre.belloni@bootlin.com \
--cc=fnstml-fujitsuten@fujitsu.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=qiutt@fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox