* [Buildroot] bump webkitgtk
@ 2024-01-05 9:06 Thomas Devoogdt
2024-01-05 9:11 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 24+ messages in thread
From: Thomas Devoogdt @ 2024-01-05 9:06 UTC (permalink / raw)
To: Yann E . MORIN, Thomas Petazzoni, Adrian Perez de Castro,
buildroot, Peter Korsgaard
Hi all,
I have an open patch series to bump webkitgtk, which has been open for a while.
https://patchwork.ozlabs.org/project/buildroot/list/?series=381656
The patches have been tested and acknowledged by Adrian. Ideally, the
series will get merged before the 2024.02 window, which is the next
LTS. What do you think?
I also saw that cairo is outdated, for which I also have a patch.
(https://patchwork.ozlabs.org/project/buildroot/patch/20240102090933.64969-1-thomas.devoogdt@barco.com/)
That one is a bit more tricky since the build system has been changed
upstream. So I can use an additional pair of eyes to check that one.
Kind regards,
Thomas
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Buildroot] bump webkitgtk
2024-01-05 9:06 [Buildroot] bump webkitgtk Thomas Devoogdt
@ 2024-01-05 9:11 ` Thomas Petazzoni via buildroot
2024-01-06 13:47 ` [Buildroot] [PATCH v5 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
0 siblings, 2 replies; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-01-05 9:11 UTC (permalink / raw)
To: Thomas Devoogdt; +Cc: Adrian Perez de Castro, Yann E . MORIN, buildroot
Hello Thomas,
On Fri, 5 Jan 2024 10:06:54 +0100
Thomas Devoogdt <thomas@devoogdt.com> wrote:
> I have an open patch series to bump webkitgtk, which has been open for a while.
> https://patchwork.ozlabs.org/project/buildroot/list/?series=381656
>
> The patches have been tested and acknowledged by Adrian. Ideally, the
> series will get merged before the 2024.02 window, which is the next
> LTS. What do you think?
I agree. We have lots of webkitgtk patches, including some fixes (some
of which haven't been looked at by Adrian I believe).
> I also saw that cairo is outdated, for which I also have a patch.
> (https://patchwork.ozlabs.org/project/buildroot/patch/20240102090933.64969-1-thomas.devoogdt@barco.com/)
> That one is a bit more tricky since the build system has been changed
> upstream. So I can use an additional pair of eyes to check that one.
I also saw this patch. My initial reaction is that I would have
preferred a staged approach, where we first bump to a version that
supports autotools and meson in one patch, then switch from autotools
to meson in one patch (without bumping), then bump again to whatever
latest version. This would have made review slightly easier. However, I
agree this is quite a bit of additional work, on top of very good work
you've already done, so I think we should just bite the bullet and look
at what you did, even if it's in a single patch.
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v5 1/3] package/cairo: bump to 1.17.4
2024-01-05 9:11 ` Thomas Petazzoni via buildroot
@ 2024-01-06 13:47 ` Thomas Devoogdt
2024-01-06 13:47 ` [Buildroot] [PATCH v5 2/3] package/cairo: move to the meson build system Thomas Devoogdt
2024-01-06 13:48 ` [Buildroot] [PATCH v5 3/3] package/cairo: bump to 1.18.0 Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
1 sibling, 2 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-01-06 13:47 UTC (permalink / raw)
To: buildroot
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
aperez, Fabrice Fontaine
News:
- https://www.cairographics.org/news/cairo-1.17.2/
- https://www.cairographics.org/news/cairo-1.17.4/
!! This is a bump to a snapshot release: 1.17.4.
But it is the first version that supports meson,
and the only version that supports both meson and autotools.
This is just an intermediate bump in order to
switch over to meson in a later commit.
Patches:
- drop 0001-fix-nofork-build.patch, upstream: [1]
- drop 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch, upstream: [2]
- add 0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch, upstream: [3]
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/cb2357f481396820ec954dc4b69eafc01a8d162a
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/issues/792
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
---
...r_tolerance_normalized-fix-infinite.patch} | 0
package/cairo/0001-fix-nofork-build.patch | 29 ----------------
...-Fix-mask-usage-in-image-compositor.patch} | 0
...vailable-in-cairo_ft_apply_variation.patch | 33 -------------------
...private.h-fix-missing-FT_Color-error.patch | 32 ++++++++++++++++++
package/cairo/cairo.hash | 6 ++--
package/cairo/cairo.mk | 10 +++---
7 files changed, 39 insertions(+), 71 deletions(-)
rename package/cairo/{0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch => 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch} (100%)
delete mode 100644 package/cairo/0001-fix-nofork-build.patch
rename package/cairo/{0004-Fix-mask-usage-in-image-compositor.patch => 0002-Fix-mask-usage-in-image-compositor.patch} (100%)
delete mode 100644 package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
create mode 100644 package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
diff --git a/package/cairo/0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
similarity index 100%
rename from package/cairo/0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
rename to package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
diff --git a/package/cairo/0001-fix-nofork-build.patch b/package/cairo/0001-fix-nofork-build.patch
deleted file mode 100644
index 702e9910a5..0000000000
--- a/package/cairo/0001-fix-nofork-build.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-test: fix build when SHOULD_FORK is false
-
-The code in test/cairo-test-runner.c properly takes into account
-platforms that do have fork() support, and uses the SHOULD_FORK define
-to know whether fork is available or not.
-
-However, this SHOULD_FORK macro is used to guard the inclusion of
-<unistd.h>, which is needed to get the prototype of other functions
-(namely readlink and getppid), that are used in portions of this file
-not guarded by SHOULD_FORK.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/test/cairo-test-runner.c
-===================================================================
---- a/test/cairo-test-runner.c
-+++ b/test/cairo-test-runner.c
-@@ -36,10 +36,10 @@
- #include <pixman.h> /* for version information */
-
- #define SHOULD_FORK HAVE_FORK && HAVE_WAITPID
--#if SHOULD_FORK
- #if HAVE_UNISTD_H
- #include <unistd.h>
- #endif
-+#if SHOULD_FORK
- #if HAVE_SIGNAL_H
- #include <signal.h>
- #endif
diff --git a/package/cairo/0004-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
similarity index 100%
rename from package/cairo/0004-Fix-mask-usage-in-image-compositor.patch
rename to package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
diff --git a/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch b/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
deleted file mode 100644
index 10e000d16f..0000000000
--- a/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-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
-[Retrieved from:
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645]
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
----
- 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.24.1
-
diff --git a/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
new file mode 100644
index 0000000000..3b18d8077b
--- /dev/null
+++ b/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
@@ -0,0 +1,32 @@
+From da698db0c20507f0e07492cbe40dbaf1c9053f71 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Sun, 12 Nov 2023 09:58:05 +0100
+Subject: [PATCH] cairo-ft-private.h: fix missing FT_Color error
+
+In file included from ../src/cairo-colr-glyph-render.c:37:
+../src/cairo-ft-private.h:87:30: error: unknown type name 'FT_Color'
+ 87 | FT_Color *palette,
+ | ^~~~~~~~
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/issues/792
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ src/cairo-ft-private.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/cairo-ft-private.h b/src/cairo-ft-private.h
+index 836f7e523..6b0e30223 100644
+--- a/src/cairo-ft-private.h
++++ b/src/cairo-ft-private.h
+@@ -43,6 +43,8 @@
+
+ #if CAIRO_HAS_FT_FONT
+
++#include FT_COLOR_H
++
+ CAIRO_BEGIN_DECLS
+
+ typedef struct _cairo_ft_unscaled_font cairo_ft_unscaled_font_t;
+--
+2.34.1
+
diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
index 3b93e24a22..fca9ff678c 100644
--- a/package/cairo/cairo.hash
+++ b/package/cairo/cairo.hash
@@ -1,7 +1,7 @@
-# From https://www.cairographics.org/releases/cairo-1.16.0.tar.xz.sha1
-sha1 00e81842ae5e81bb0343108884eb5205be0eac14 cairo-1.16.0.tar.xz
+# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
+sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
# Calculated based on the hash above
-sha256 5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331 cairo-1.16.0.tar.xz
+sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
# Hash for license files:
sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 7bc8f92deb..4515b76075 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -4,19 +4,17 @@
#
################################################################################
-CAIRO_VERSION = 1.16.0
+CAIRO_VERSION = 1.17.4
CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
CAIRO_CPE_ID_VENDOR = cairographics
-CAIRO_SITE = http://cairographics.org/releases
+CAIRO_SITE = http://cairographics.org/snapshots
CAIRO_INSTALL_STAGING = YES
-# 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
-CAIRO_IGNORE_CVES += CVE-2018-19876
-# 0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
+# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
CAIRO_IGNORE_CVES += CVE-2019-6462
-# 0004-Fix-mask-usage-in-image-compositor.patch
+# 0002-Fix-mask-usage-in-image-compositor.patch
CAIRO_IGNORE_CVES += CVE-2020-35492
CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v5 2/3] package/cairo: move to the meson build system
2024-01-06 13:47 ` [Buildroot] [PATCH v5 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
@ 2024-01-06 13:47 ` Thomas Devoogdt
2024-01-06 13:48 ` [Buildroot] [PATCH v5 3/3] package/cairo: bump to 1.18.0 Thomas Devoogdt
1 sibling, 0 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-01-06 13:47 UTC (permalink / raw)
To: buildroot
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
aperez, Fabrice Fontaine
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v2: added -std=gnu11 (allow inline int declaration in if loop, 99 caused some directives problems)
v3: enabled host-zlib, needed for librsvg
v4: also added gnu11 for host-cairo compiling (fixes my compilation on a gcc 4.9.2 based system)
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
---
package/cairo/Config.in | 34 +++++----
package/cairo/cairo.mk | 165 +++++++++++-----------------------------
2 files changed, 64 insertions(+), 135 deletions(-)
diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a2904b..caa6c37195 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
+ select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_XORG7
help
Cairo is a 2D graphics library with support for multiple
output devices. Currently supported output targets include
@@ -15,34 +16,35 @@ config BR2_PACKAGE_CAIRO
if BR2_PACKAGE_CAIRO
-config BR2_PACKAGE_CAIRO_PS
- bool "postscript support"
- select BR2_PACKAGE_ZLIB
- select BR2_PACKAGE_CAIRO_PDF
-
-config BR2_PACKAGE_CAIRO_PDF
- bool "pdf support"
- select BR2_PACKAGE_ZLIB
-
config BR2_PACKAGE_CAIRO_PNG
bool "png support"
select BR2_PACKAGE_LIBPNG
- select BR2_PACKAGE_ZLIB
-
-config BR2_PACKAGE_CAIRO_SCRIPT
- bool "script support"
- select BR2_PACKAGE_CAIRO_PNG
config BR2_PACKAGE_CAIRO_SVG
bool "svg support"
select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_PDF
config BR2_PACKAGE_CAIRO_TEE
bool "tee support"
+config BR2_PACKAGE_CAIRO_ZLIB
+ bool "zlib support"
+ select BR2_PACKAGE_ZLIB
+
+config BR2_PACKAGE_CAIRO_SCRIPT
+ bool "script support"
+ select BR2_PACKAGE_CAIRO_ZLIB
+
+config BR2_PACKAGE_CAIRO_PS
+ bool "postscript support"
+ select BR2_PACKAGE_CAIRO_ZLIB
+
+config BR2_PACKAGE_CAIRO_PDF
+ bool "pdf support"
+ select BR2_PACKAGE_CAIRO_ZLIB
+
config BR2_PACKAGE_CAIRO_XML
bool "xml support"
- select BR2_PACKAGE_CAIRO_PNG
+ select BR2_PACKAGE_CAIRO_ZLIB
endif
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 4515b76075..035eae525d 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -17,49 +17,43 @@ CAIRO_IGNORE_CVES += CVE-2019-6462
# 0002-Fix-mask-usage-in-image-compositor.patch
CAIRO_IGNORE_CVES += CVE-2020-35492
-CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
+CAIRO_CFLAGS = $(TARGET_CFLAGS)
+CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
# relocation truncated to fit: R_68K_GOT16O
ifeq ($(BR2_m68k_cf),y)
-CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
-endif
-
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),)
-CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
+CAIRO_CFLAGS += -mxgot
endif
# cairo can use C++11 atomics when available, so we need to link with
# libatomic for the architectures who need libatomic.
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-CAIRO_LIBS += -latomic
+CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no
-
-CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
+ -Dfontconfig=enabled \
+ -Dtests=disabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
+CAIRO_DEPENDENCIES = \
+ host-pkgconf \
+ fontconfig \
+ pixman
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no \
- --disable-directfb \
- --enable-ft \
- --enable-gobject \
- --disable-glesv2 \
- --disable-vg \
- --disable-xlib \
- --disable-xcb \
- --without-x \
- --disable-xlib-xrender \
- --disable-ps \
- --disable-pdf \
- --enable-png \
- --enable-script \
- --disable-svg \
- --disable-tee \
- --disable-xml
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dpng=enabled \
+ -Dtee=disabled \
+ -Dxcb=disabled \
+ -Dxlib=disabled \
+ -Dzlib=disabled \
+ -Dtests=disabled \
+ -Dglib=enabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
host-fontconfig \
@@ -68,117 +62,50 @@ HOST_CAIRO_DEPENDENCIES = \
host-pixman \
host-pkgconf
-# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
-# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
-# (which is experimental)
-ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
-CAIRO_CONF_OPTS += --enable-directfb
-CAIRO_DEPENDENCIES += directfb
-else
-CAIRO_CONF_OPTS += --disable-directfb
-endif
-
-ifeq ($(BR2_PACKAGE_FREETYPE),y)
-CAIRO_CONF_OPTS += --enable-ft
-CAIRO_DEPENDENCIES += freetype
-else
-CAIRO_CONF_OPTS += --disable-ft
-endif
-
-ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
-CAIRO_DEPENDENCIES += libexecinfo
-CAIRO_LIBS += -lexecinfo
-endif
-
-ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
-CAIRO_CONF_OPTS += --enable-gobject
-CAIRO_DEPENDENCIES += libglib2
-else
-CAIRO_CONF_OPTS += --disable-gobject
-endif
-
-# Can use GL or GLESv2 but not both
-ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
-CAIRO_CONF_OPTS += --enable-gl --disable-glesv2
-CAIRO_DEPENDENCIES += libgl
-else
-ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
-CAIRO_CONF_OPTS += --disable-gl --enable-glesv2
-CAIRO_DEPENDENCIES += libgles
-else
-CAIRO_CONF_OPTS += --disable-gl --disable-glesv2
-endif
-endif
-
-ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
-CAIRO_CONF_OPTS += --enable-vg
-CAIRO_DEPENDENCIES += libopenvg
-else
-CAIRO_CONF_OPTS += --disable-vg
-endif
-
ifeq ($(BR2_PACKAGE_LZO),y)
CAIRO_DEPENDENCIES += lzo
endif
-ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
-CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext
-else
-CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x
-endif
-
-ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
-CAIRO_CONF_OPTS += --enable-xlib-xrender
-CAIRO_DEPENDENCIES += xlib_libXrender
-else
-CAIRO_CONF_OPTS += --disable-xlib-xrender
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
-CAIRO_CONF_OPTS += --enable-ps
-CAIRO_DEPENDENCIES += zlib
-else
-CAIRO_CONF_OPTS += --disable-ps
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
-CAIRO_CONF_OPTS += --enable-pdf
-CAIRO_DEPENDENCIES += zlib
+ifeq ($(BR2_PACKAGE_FREETYPE),y)
+CAIRO_CONF_OPTS += -Dfreetype=enabled
+CAIRO_DEPENDENCIES += freetype
else
-CAIRO_CONF_OPTS += --disable-pdf
+CAIRO_CONF_OPTS += -Dfreetype=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
-CAIRO_CONF_OPTS += --enable-png
+CAIRO_CONF_OPTS += -Dpng=enabled
CAIRO_DEPENDENCIES += libpng
else
-CAIRO_CONF_OPTS += --disable-png
+CAIRO_CONF_OPTS += -Dpng=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y)
-CAIRO_CONF_OPTS += --enable-script
+ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
+CAIRO_CONF_OPTS += -Dtee=enabled
else
-CAIRO_CONF_OPTS += --disable-script
+CAIRO_CONF_OPTS += -Dtee=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
-CAIRO_CONF_OPTS += --enable-svg
+ifeq ($(BR2_PACKAGE_XORG7),y)
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += --disable-svg
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
-CAIRO_CONF_OPTS += --enable-tee
+ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
+CAIRO_CONF_OPTS += -Dzlib=enabled
+CAIRO_DEPENDENCIES += zlib
else
-CAIRO_CONF_OPTS += --disable-tee
+CAIRO_CONF_OPTS += -Dzlib=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_XML),y)
-CAIRO_CONF_OPTS += --enable-xml
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+CAIRO_CONF_OPTS += -Dglib=enabled
+CAIRO_DEPENDENCIES += libglib2
else
-CAIRO_CONF_OPTS += --disable-xml
+CAIRO_CONF_OPTS += -Dglib=disabled
endif
-$(eval $(autotools-package))
-$(eval $(host-autotools-package))
+$(eval $(meson-package))
+$(eval $(host-meson-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v5 3/3] package/cairo: bump to 1.18.0
2024-01-06 13:47 ` [Buildroot] [PATCH v5 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
2024-01-06 13:47 ` [Buildroot] [PATCH v5 2/3] package/cairo: move to the meson build system Thomas Devoogdt
@ 2024-01-06 13:48 ` Thomas Devoogdt
1 sibling, 0 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-01-06 13:48 UTC (permalink / raw)
To: buildroot
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
aperez, Fabrice Fontaine
News:
- https://www.cairographics.org/news/cairo-1.17.8/
- https://www.cairographics.org/news/cairo-1.18.0/
Some options are renamed/dropped so fix that along.
- GL and GLES drawing has been dropped in 1.17.8.
- The XML surface has been removed in 1.18.0.
Patches:
- drop 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch, upstream: [1]
- drop 0002-Fix-mask-usage-in-image-compositor.patch, upstream: [2]
- add 0002-meson.build-fix-x11-build.patch, upstream: [3]
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
---
...or_tolerance_normalized-fix-infinite.patch | 39 -------------
...rivate.h-fix-missing-FT_Color-error.patch} | 0
...2-Fix-mask-usage-in-image-compositor.patch | 56 -------------------
.../0002-meson.build-fix-x11-build.patch | 29 ++++++++++
package/cairo/cairo.hash | 6 +-
package/cairo/cairo.mk | 20 ++++---
6 files changed, 42 insertions(+), 108 deletions(-)
delete mode 100644 package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
rename package/cairo/{0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch => 0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch} (100%)
delete mode 100644 package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
create mode 100644 package/cairo/0002-meson.build-fix-x11-build.patch
diff --git a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
deleted file mode 100644
index 078e90fa42..0000000000
--- a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-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
-
-[Retrieved from:
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- 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/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
similarity index 100%
rename from package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
rename to package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
diff --git a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
deleted file mode 100644
index 54a95593c5..0000000000
--- a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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
-
-[Retrieved from
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be]
-[Removed changes in test/ directory to remove binary diff so that the
-patch can be applied by `patch` tool]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- src/cairo-image-compositor.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
-index bbf4cf228..2352c478e 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) {
-@@ -2646,7 +2646,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) {
-@@ -2675,7 +2675,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;
---
-2.38.1
-
diff --git a/package/cairo/0002-meson.build-fix-x11-build.patch b/package/cairo/0002-meson.build-fix-x11-build.patch
new file mode 100644
index 0000000000..fd17397586
--- /dev/null
+++ b/package/cairo/0002-meson.build-fix-x11-build.patch
@@ -0,0 +1,29 @@
+From 840e3ad20f8536d9857876ca2f5161896b68ab9b Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Sun, 12 Nov 2023 10:44:13 +0100
+Subject: [PATCH] meson.build: fix x11 build
+
+../../br-test-pkg/arm-aarch64/build/cairo-1.18.0/meson.build:381:13: ERROR: Can not run test applications in this cross environment.
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 9efe91978..9864b8699 100644
+--- a/meson.build
++++ b/meson.build
+@@ -369,7 +369,7 @@ if x11_dep.found() and xext_dep.found()
+
+ # Can skip the run check by providing the result in a cross file or
+ # native file as bool property value.
+- prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
++ prop = meson.get_external_property('ipc_rmid_deferred_release', 'false')
+ # We don't know the type of prop (bool, string) but need to differentiate
+ # between a set value (bool) or the fallback value (string), so convert to
+ # a string and check the string value.
+--
+2.34.1
+
diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
index fca9ff678c..df9c693bad 100644
--- a/package/cairo/cairo.hash
+++ b/package/cairo/cairo.hash
@@ -1,7 +1,5 @@
-# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
-sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
-# Calculated based on the hash above
-sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
+# From https://www.cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum
+sha256 243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 cairo-1.18.0.tar.xz
# Hash for license files:
sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 035eae525d..96b4d71f0f 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -4,19 +4,14 @@
#
################################################################################
-CAIRO_VERSION = 1.17.4
+CAIRO_VERSION = 1.18.0
CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
CAIRO_CPE_ID_VENDOR = cairographics
-CAIRO_SITE = http://cairographics.org/snapshots
+CAIRO_SITE = http://cairographics.org/releases
CAIRO_INSTALL_STAGING = YES
-# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
-CAIRO_IGNORE_CVES += CVE-2019-6462
-# 0002-Fix-mask-usage-in-image-compositor.patch
-CAIRO_IGNORE_CVES += CVE-2020-35492
-
CAIRO_CFLAGS = $(TARGET_CFLAGS)
CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
@@ -32,9 +27,13 @@ CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
+ -Dquartz=disabled \
-Dtests=disabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
CAIRO_DEPENDENCIES = \
host-pkgconf \
@@ -46,6 +45,7 @@ HOST_CAIRO_CONF_OPTS = \
-Dfontconfig=enabled \
-Dfreetype=enabled \
-Dpng=enabled \
+ -Dquartz=disabled \
-Dtee=disabled \
-Dxcb=disabled \
-Dxlib=disabled \
@@ -53,6 +53,8 @@ HOST_CAIRO_CONF_OPTS = \
-Dtests=disabled \
-Dglib=enabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
@@ -87,10 +89,10 @@ CAIRO_CONF_OPTS += -Dtee=disabled
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled -Dxlib-xcb=enabled
CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled -Dxlib-xcb=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4
2024-01-05 9:11 ` Thomas Petazzoni via buildroot
2024-01-06 13:47 ` [Buildroot] [PATCH v5 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
@ 2024-01-07 10:55 ` Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system Thomas Devoogdt
` (3 more replies)
1 sibling, 4 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-01-07 10:55 UTC (permalink / raw)
To: buildroot
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
aperez, Fabrice Fontaine
News:
- https://www.cairographics.org/news/cairo-1.17.2/
- https://www.cairographics.org/news/cairo-1.17.4/
!! This is a bump to a snapshot release: 1.17.4.
But it is the first version that supports meson,
and the only version that supports both meson and autotools.
This is just an intermediate bump in order to
switch over to meson in a later commit.
Patches:
- drop 0001-fix-nofork-build.patch, upstream: [1]
- drop 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch, upstream: [2]
- add 0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch, upstream: [3]
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/cb2357f481396820ec954dc4b69eafc01a8d162a
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/issues/792
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
---
...r_tolerance_normalized-fix-infinite.patch} | 0
package/cairo/0001-fix-nofork-build.patch | 29 ----------------
...-Fix-mask-usage-in-image-compositor.patch} | 0
...vailable-in-cairo_ft_apply_variation.patch | 33 -------------------
...private.h-fix-missing-FT_Color-error.patch | 32 ++++++++++++++++++
package/cairo/cairo.hash | 6 ++--
package/cairo/cairo.mk | 10 +++---
7 files changed, 39 insertions(+), 71 deletions(-)
rename package/cairo/{0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch => 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch} (100%)
delete mode 100644 package/cairo/0001-fix-nofork-build.patch
rename package/cairo/{0004-Fix-mask-usage-in-image-compositor.patch => 0002-Fix-mask-usage-in-image-compositor.patch} (100%)
delete mode 100644 package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
create mode 100644 package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
diff --git a/package/cairo/0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
similarity index 100%
rename from package/cairo/0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
rename to package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
diff --git a/package/cairo/0001-fix-nofork-build.patch b/package/cairo/0001-fix-nofork-build.patch
deleted file mode 100644
index 702e9910a5..0000000000
--- a/package/cairo/0001-fix-nofork-build.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-test: fix build when SHOULD_FORK is false
-
-The code in test/cairo-test-runner.c properly takes into account
-platforms that do have fork() support, and uses the SHOULD_FORK define
-to know whether fork is available or not.
-
-However, this SHOULD_FORK macro is used to guard the inclusion of
-<unistd.h>, which is needed to get the prototype of other functions
-(namely readlink and getppid), that are used in portions of this file
-not guarded by SHOULD_FORK.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/test/cairo-test-runner.c
-===================================================================
---- a/test/cairo-test-runner.c
-+++ b/test/cairo-test-runner.c
-@@ -36,10 +36,10 @@
- #include <pixman.h> /* for version information */
-
- #define SHOULD_FORK HAVE_FORK && HAVE_WAITPID
--#if SHOULD_FORK
- #if HAVE_UNISTD_H
- #include <unistd.h>
- #endif
-+#if SHOULD_FORK
- #if HAVE_SIGNAL_H
- #include <signal.h>
- #endif
diff --git a/package/cairo/0004-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
similarity index 100%
rename from package/cairo/0004-Fix-mask-usage-in-image-compositor.patch
rename to package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
diff --git a/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch b/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
deleted file mode 100644
index 10e000d16f..0000000000
--- a/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-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
-[Retrieved from:
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645]
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
----
- 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.24.1
-
diff --git a/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
new file mode 100644
index 0000000000..3b18d8077b
--- /dev/null
+++ b/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
@@ -0,0 +1,32 @@
+From da698db0c20507f0e07492cbe40dbaf1c9053f71 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Sun, 12 Nov 2023 09:58:05 +0100
+Subject: [PATCH] cairo-ft-private.h: fix missing FT_Color error
+
+In file included from ../src/cairo-colr-glyph-render.c:37:
+../src/cairo-ft-private.h:87:30: error: unknown type name 'FT_Color'
+ 87 | FT_Color *palette,
+ | ^~~~~~~~
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/issues/792
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ src/cairo-ft-private.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/cairo-ft-private.h b/src/cairo-ft-private.h
+index 836f7e523..6b0e30223 100644
+--- a/src/cairo-ft-private.h
++++ b/src/cairo-ft-private.h
+@@ -43,6 +43,8 @@
+
+ #if CAIRO_HAS_FT_FONT
+
++#include FT_COLOR_H
++
+ CAIRO_BEGIN_DECLS
+
+ typedef struct _cairo_ft_unscaled_font cairo_ft_unscaled_font_t;
+--
+2.34.1
+
diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
index 3b93e24a22..fca9ff678c 100644
--- a/package/cairo/cairo.hash
+++ b/package/cairo/cairo.hash
@@ -1,7 +1,7 @@
-# From https://www.cairographics.org/releases/cairo-1.16.0.tar.xz.sha1
-sha1 00e81842ae5e81bb0343108884eb5205be0eac14 cairo-1.16.0.tar.xz
+# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
+sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
# Calculated based on the hash above
-sha256 5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331 cairo-1.16.0.tar.xz
+sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
# Hash for license files:
sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 7bc8f92deb..4515b76075 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -4,19 +4,17 @@
#
################################################################################
-CAIRO_VERSION = 1.16.0
+CAIRO_VERSION = 1.17.4
CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
CAIRO_CPE_ID_VENDOR = cairographics
-CAIRO_SITE = http://cairographics.org/releases
+CAIRO_SITE = http://cairographics.org/snapshots
CAIRO_INSTALL_STAGING = YES
-# 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
-CAIRO_IGNORE_CVES += CVE-2018-19876
-# 0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
+# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
CAIRO_IGNORE_CVES += CVE-2019-6462
-# 0004-Fix-mask-usage-in-image-compositor.patch
+# 0002-Fix-mask-usage-in-image-compositor.patch
CAIRO_IGNORE_CVES += CVE-2020-35492
CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system
2024-01-07 10:55 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
@ 2024-01-07 10:55 ` Thomas Devoogdt
2024-01-16 22:39 ` Adrian Perez de Castro
2024-02-05 14:49 ` Peter Korsgaard
2024-01-07 10:55 ` [Buildroot] [PATCH v6 3/3] package/cairo: bump to 1.18.0 Thomas Devoogdt
` (2 subsequent siblings)
3 siblings, 2 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-01-07 10:55 UTC (permalink / raw)
To: buildroot
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
aperez, Fabrice Fontaine
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v2: added -std=gnu11 (allow inline int declaration in if loop, 99 caused some directives problems)
v3: enabled host-zlib, needed for librsvg
v4: also added gnu11 for host-cairo compiling (fixes my compilation on a gcc 4.9.2 based system)
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
v6: fix host-zlib option (again)
---
package/cairo/Config.in | 34 ++++----
package/cairo/cairo.mk | 168 ++++++++++++----------------------------
2 files changed, 66 insertions(+), 136 deletions(-)
diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a2904b..caa6c37195 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
+ select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_XORG7
help
Cairo is a 2D graphics library with support for multiple
output devices. Currently supported output targets include
@@ -15,34 +16,35 @@ config BR2_PACKAGE_CAIRO
if BR2_PACKAGE_CAIRO
-config BR2_PACKAGE_CAIRO_PS
- bool "postscript support"
- select BR2_PACKAGE_ZLIB
- select BR2_PACKAGE_CAIRO_PDF
-
-config BR2_PACKAGE_CAIRO_PDF
- bool "pdf support"
- select BR2_PACKAGE_ZLIB
-
config BR2_PACKAGE_CAIRO_PNG
bool "png support"
select BR2_PACKAGE_LIBPNG
- select BR2_PACKAGE_ZLIB
-
-config BR2_PACKAGE_CAIRO_SCRIPT
- bool "script support"
- select BR2_PACKAGE_CAIRO_PNG
config BR2_PACKAGE_CAIRO_SVG
bool "svg support"
select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_PDF
config BR2_PACKAGE_CAIRO_TEE
bool "tee support"
+config BR2_PACKAGE_CAIRO_ZLIB
+ bool "zlib support"
+ select BR2_PACKAGE_ZLIB
+
+config BR2_PACKAGE_CAIRO_SCRIPT
+ bool "script support"
+ select BR2_PACKAGE_CAIRO_ZLIB
+
+config BR2_PACKAGE_CAIRO_PS
+ bool "postscript support"
+ select BR2_PACKAGE_CAIRO_ZLIB
+
+config BR2_PACKAGE_CAIRO_PDF
+ bool "pdf support"
+ select BR2_PACKAGE_CAIRO_ZLIB
+
config BR2_PACKAGE_CAIRO_XML
bool "xml support"
- select BR2_PACKAGE_CAIRO_PNG
+ select BR2_PACKAGE_CAIRO_ZLIB
endif
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 4515b76075..190af15da0 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -17,168 +17,96 @@ CAIRO_IGNORE_CVES += CVE-2019-6462
# 0002-Fix-mask-usage-in-image-compositor.patch
CAIRO_IGNORE_CVES += CVE-2020-35492
-CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
+CAIRO_CFLAGS = $(TARGET_CFLAGS)
+CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
# relocation truncated to fit: R_68K_GOT16O
ifeq ($(BR2_m68k_cf),y)
-CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
-endif
-
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),)
-CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
+CAIRO_CFLAGS += -mxgot
endif
# cairo can use C++11 atomics when available, so we need to link with
# libatomic for the architectures who need libatomic.
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-CAIRO_LIBS += -latomic
+CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no
-
-CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
+ -Dfontconfig=enabled \
+ -Dtests=disabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
+CAIRO_DEPENDENCIES = \
+ host-pkgconf \
+ fontconfig \
+ pixman
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no \
- --disable-directfb \
- --enable-ft \
- --enable-gobject \
- --disable-glesv2 \
- --disable-vg \
- --disable-xlib \
- --disable-xcb \
- --without-x \
- --disable-xlib-xrender \
- --disable-ps \
- --disable-pdf \
- --enable-png \
- --enable-script \
- --disable-svg \
- --disable-tee \
- --disable-xml
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dpng=enabled \
+ -Dtee=disabled \
+ -Dxcb=disabled \
+ -Dxlib=disabled \
+ -Dzlib=enabled \
+ -Dtests=disabled \
+ -Dglib=enabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
host-fontconfig \
host-libglib2 \
host-libpng \
host-pixman \
- host-pkgconf
-
-# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
-# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
-# (which is experimental)
-ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
-CAIRO_CONF_OPTS += --enable-directfb
-CAIRO_DEPENDENCIES += directfb
-else
-CAIRO_CONF_OPTS += --disable-directfb
-endif
-
-ifeq ($(BR2_PACKAGE_FREETYPE),y)
-CAIRO_CONF_OPTS += --enable-ft
-CAIRO_DEPENDENCIES += freetype
-else
-CAIRO_CONF_OPTS += --disable-ft
-endif
-
-ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
-CAIRO_DEPENDENCIES += libexecinfo
-CAIRO_LIBS += -lexecinfo
-endif
-
-ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
-CAIRO_CONF_OPTS += --enable-gobject
-CAIRO_DEPENDENCIES += libglib2
-else
-CAIRO_CONF_OPTS += --disable-gobject
-endif
-
-# Can use GL or GLESv2 but not both
-ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
-CAIRO_CONF_OPTS += --enable-gl --disable-glesv2
-CAIRO_DEPENDENCIES += libgl
-else
-ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
-CAIRO_CONF_OPTS += --disable-gl --enable-glesv2
-CAIRO_DEPENDENCIES += libgles
-else
-CAIRO_CONF_OPTS += --disable-gl --disable-glesv2
-endif
-endif
-
-ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
-CAIRO_CONF_OPTS += --enable-vg
-CAIRO_DEPENDENCIES += libopenvg
-else
-CAIRO_CONF_OPTS += --disable-vg
-endif
+ host-pkgconf \
+ host-zlib
ifeq ($(BR2_PACKAGE_LZO),y)
CAIRO_DEPENDENCIES += lzo
endif
-ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
-CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext
-else
-CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x
-endif
-
-ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
-CAIRO_CONF_OPTS += --enable-xlib-xrender
-CAIRO_DEPENDENCIES += xlib_libXrender
-else
-CAIRO_CONF_OPTS += --disable-xlib-xrender
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
-CAIRO_CONF_OPTS += --enable-ps
-CAIRO_DEPENDENCIES += zlib
-else
-CAIRO_CONF_OPTS += --disable-ps
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
-CAIRO_CONF_OPTS += --enable-pdf
-CAIRO_DEPENDENCIES += zlib
+ifeq ($(BR2_PACKAGE_FREETYPE),y)
+CAIRO_CONF_OPTS += -Dfreetype=enabled
+CAIRO_DEPENDENCIES += freetype
else
-CAIRO_CONF_OPTS += --disable-pdf
+CAIRO_CONF_OPTS += -Dfreetype=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
-CAIRO_CONF_OPTS += --enable-png
+CAIRO_CONF_OPTS += -Dpng=enabled
CAIRO_DEPENDENCIES += libpng
else
-CAIRO_CONF_OPTS += --disable-png
+CAIRO_CONF_OPTS += -Dpng=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y)
-CAIRO_CONF_OPTS += --enable-script
+ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
+CAIRO_CONF_OPTS += -Dtee=enabled
else
-CAIRO_CONF_OPTS += --disable-script
+CAIRO_CONF_OPTS += -Dtee=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
-CAIRO_CONF_OPTS += --enable-svg
+ifeq ($(BR2_PACKAGE_XORG7),y)
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += --disable-svg
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
-CAIRO_CONF_OPTS += --enable-tee
+ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
+CAIRO_CONF_OPTS += -Dzlib=enabled
+CAIRO_DEPENDENCIES += zlib
else
-CAIRO_CONF_OPTS += --disable-tee
+CAIRO_CONF_OPTS += -Dzlib=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_XML),y)
-CAIRO_CONF_OPTS += --enable-xml
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+CAIRO_CONF_OPTS += -Dglib=enabled
+CAIRO_DEPENDENCIES += libglib2
else
-CAIRO_CONF_OPTS += --disable-xml
+CAIRO_CONF_OPTS += -Dglib=disabled
endif
-$(eval $(autotools-package))
-$(eval $(host-autotools-package))
+$(eval $(meson-package))
+$(eval $(host-meson-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v6 3/3] package/cairo: bump to 1.18.0
2024-01-07 10:55 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system Thomas Devoogdt
@ 2024-01-07 10:55 ` Thomas Devoogdt
2024-01-16 22:39 ` Adrian Perez de Castro
2024-01-16 22:38 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Adrian Perez de Castro
2024-02-05 14:38 ` Peter Korsgaard
3 siblings, 1 reply; 24+ messages in thread
From: Thomas Devoogdt @ 2024-01-07 10:55 UTC (permalink / raw)
To: buildroot
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
aperez, Fabrice Fontaine
News:
- https://www.cairographics.org/news/cairo-1.17.8/
- https://www.cairographics.org/news/cairo-1.18.0/
Some options are renamed/dropped so fix that along.
- GL and GLES drawing has been dropped in 1.17.8.
- The XML surface has been removed in 1.18.0.
Patches:
- drop 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch, upstream: [1]
- drop 0002-Fix-mask-usage-in-image-compositor.patch, upstream: [2]
- add 0002-meson.build-fix-x11-build.patch, upstream: [3]
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
---
...or_tolerance_normalized-fix-infinite.patch | 39 -------------
...rivate.h-fix-missing-FT_Color-error.patch} | 0
...2-Fix-mask-usage-in-image-compositor.patch | 56 -------------------
.../0002-meson.build-fix-x11-build.patch | 29 ++++++++++
package/cairo/cairo.hash | 6 +-
package/cairo/cairo.mk | 21 ++++---
6 files changed, 43 insertions(+), 108 deletions(-)
delete mode 100644 package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
rename package/cairo/{0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch => 0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch} (100%)
delete mode 100644 package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
create mode 100644 package/cairo/0002-meson.build-fix-x11-build.patch
diff --git a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
deleted file mode 100644
index 078e90fa42..0000000000
--- a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-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
-
-[Retrieved from:
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- 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/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
similarity index 100%
rename from package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
rename to package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
diff --git a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
deleted file mode 100644
index 54a95593c5..0000000000
--- a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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
-
-[Retrieved from
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be]
-[Removed changes in test/ directory to remove binary diff so that the
-patch can be applied by `patch` tool]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- src/cairo-image-compositor.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
-index bbf4cf228..2352c478e 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) {
-@@ -2646,7 +2646,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) {
-@@ -2675,7 +2675,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;
---
-2.38.1
-
diff --git a/package/cairo/0002-meson.build-fix-x11-build.patch b/package/cairo/0002-meson.build-fix-x11-build.patch
new file mode 100644
index 0000000000..fd17397586
--- /dev/null
+++ b/package/cairo/0002-meson.build-fix-x11-build.patch
@@ -0,0 +1,29 @@
+From 840e3ad20f8536d9857876ca2f5161896b68ab9b Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Sun, 12 Nov 2023 10:44:13 +0100
+Subject: [PATCH] meson.build: fix x11 build
+
+../../br-test-pkg/arm-aarch64/build/cairo-1.18.0/meson.build:381:13: ERROR: Can not run test applications in this cross environment.
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 9efe91978..9864b8699 100644
+--- a/meson.build
++++ b/meson.build
+@@ -369,7 +369,7 @@ if x11_dep.found() and xext_dep.found()
+
+ # Can skip the run check by providing the result in a cross file or
+ # native file as bool property value.
+- prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
++ prop = meson.get_external_property('ipc_rmid_deferred_release', 'false')
+ # We don't know the type of prop (bool, string) but need to differentiate
+ # between a set value (bool) or the fallback value (string), so convert to
+ # a string and check the string value.
+--
+2.34.1
+
diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
index fca9ff678c..df9c693bad 100644
--- a/package/cairo/cairo.hash
+++ b/package/cairo/cairo.hash
@@ -1,7 +1,5 @@
-# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
-sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
-# Calculated based on the hash above
-sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
+# From https://www.cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum
+sha256 243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 cairo-1.18.0.tar.xz
# Hash for license files:
sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 190af15da0..a1e649e8e4 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -4,19 +4,14 @@
#
################################################################################
-CAIRO_VERSION = 1.17.4
+CAIRO_VERSION = 1.18.0
CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
CAIRO_CPE_ID_VENDOR = cairographics
-CAIRO_SITE = http://cairographics.org/snapshots
+CAIRO_SITE = http://cairographics.org/releases
CAIRO_INSTALL_STAGING = YES
-# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
-CAIRO_IGNORE_CVES += CVE-2019-6462
-# 0002-Fix-mask-usage-in-image-compositor.patch
-CAIRO_IGNORE_CVES += CVE-2020-35492
-
CAIRO_CFLAGS = $(TARGET_CFLAGS)
CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
@@ -32,9 +27,13 @@ CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
+ -Dquartz=disabled \
-Dtests=disabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
CAIRO_DEPENDENCIES = \
host-pkgconf \
@@ -43,9 +42,11 @@ CAIRO_DEPENDENCIES = \
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
-Dfreetype=enabled \
-Dpng=enabled \
+ -Dquartz=disabled \
-Dtee=disabled \
-Dxcb=disabled \
-Dxlib=disabled \
@@ -53,6 +54,8 @@ HOST_CAIRO_CONF_OPTS = \
-Dtests=disabled \
-Dglib=enabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
@@ -88,10 +91,10 @@ CAIRO_CONF_OPTS += -Dtee=disabled
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled -Dxlib-xcb=enabled
CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled -Dxlib-xcb=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4
2024-01-07 10:55 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 3/3] package/cairo: bump to 1.18.0 Thomas Devoogdt
@ 2024-01-16 22:38 ` Adrian Perez de Castro
2024-02-05 14:38 ` Peter Korsgaard
3 siblings, 0 replies; 24+ messages in thread
From: Adrian Perez de Castro @ 2024-01-16 22:38 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
buildroot, Fabrice Fontaine
[-- Attachment #1.1: Type: text/plain, Size: 9540 bytes --]
On Sun, 07 Jan 2024 11:55:37 +0100 Thomas Devoogdt <thomas@devoogdt.com> wrote:
> News:
> - https://www.cairographics.org/news/cairo-1.17.2/
> - https://www.cairographics.org/news/cairo-1.17.4/
>
> !! This is a bump to a snapshot release: 1.17.4.
>
> But it is the first version that supports meson,
> and the only version that supports both meson and autotools.
>
> This is just an intermediate bump in order to
> switch over to meson in a later commit.
>
> Patches:
> - drop 0001-fix-nofork-build.patch, upstream: [1]
> - drop 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch, upstream: [2]
> - add 0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch, upstream: [3]
>
> [1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/cb2357f481396820ec954dc4b69eafc01a8d162a
> [2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
> [3]: https://gitlab.freedesktop.org/cairo/cairo/-/issues/792
>
> Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
Reviewed-by: Adrian Perez de Castro <aperez@igalia.com>
Tested-by: Adrian Perez de Castro <aperez@igalia.com>
For testing I did a build using raspberrypi3_64_defconfig, then added WPE
WebKit + Cog + Cage and tested the image loading a few web sites and two
benchmarks (MotionMark and Speedometer).
> ---
> v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
> ---
> ...r_tolerance_normalized-fix-infinite.patch} | 0
> package/cairo/0001-fix-nofork-build.patch | 29 ----------------
> ...-Fix-mask-usage-in-image-compositor.patch} | 0
> ...vailable-in-cairo_ft_apply_variation.patch | 33 -------------------
> ...private.h-fix-missing-FT_Color-error.patch | 32 ++++++++++++++++++
> package/cairo/cairo.hash | 6 ++--
> package/cairo/cairo.mk | 10 +++---
> 7 files changed, 39 insertions(+), 71 deletions(-)
> rename package/cairo/{0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch => 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch} (100%)
> delete mode 100644 package/cairo/0001-fix-nofork-build.patch
> rename package/cairo/{0004-Fix-mask-usage-in-image-compositor.patch => 0002-Fix-mask-usage-in-image-compositor.patch} (100%)
> delete mode 100644 package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
> create mode 100644 package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
>
> diff --git a/package/cairo/0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> similarity index 100%
> rename from package/cairo/0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> rename to package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> diff --git a/package/cairo/0001-fix-nofork-build.patch b/package/cairo/0001-fix-nofork-build.patch
> deleted file mode 100644
> index 702e9910a5..0000000000
> --- a/package/cairo/0001-fix-nofork-build.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -test: fix build when SHOULD_FORK is false
> -
> -The code in test/cairo-test-runner.c properly takes into account
> -platforms that do have fork() support, and uses the SHOULD_FORK define
> -to know whether fork is available or not.
> -
> -However, this SHOULD_FORK macro is used to guard the inclusion of
> -<unistd.h>, which is needed to get the prototype of other functions
> -(namely readlink and getppid), that are used in portions of this file
> -not guarded by SHOULD_FORK.
> -
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> -
> -Index: b/test/cairo-test-runner.c
> -===================================================================
> ---- a/test/cairo-test-runner.c
> -+++ b/test/cairo-test-runner.c
> -@@ -36,10 +36,10 @@
> - #include <pixman.h> /* for version information */
> -
> - #define SHOULD_FORK HAVE_FORK && HAVE_WAITPID
> --#if SHOULD_FORK
> - #if HAVE_UNISTD_H
> - #include <unistd.h>
> - #endif
> -+#if SHOULD_FORK
> - #if HAVE_SIGNAL_H
> - #include <signal.h>
> - #endif
> diff --git a/package/cairo/0004-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
> similarity index 100%
> rename from package/cairo/0004-Fix-mask-usage-in-image-compositor.patch
> rename to package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
> diff --git a/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch b/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
> deleted file mode 100644
> index 10e000d16f..0000000000
> --- a/package/cairo/0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -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
> -[Retrieved from:
> -https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645]
> -Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ----
> - 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.24.1
> -
> diff --git a/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
> new file mode 100644
> index 0000000000..3b18d8077b
> --- /dev/null
> +++ b/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
> @@ -0,0 +1,32 @@
> +From da698db0c20507f0e07492cbe40dbaf1c9053f71 Mon Sep 17 00:00:00 2001
> +From: Thomas Devoogdt <thomas@devoogdt.com>
> +Date: Sun, 12 Nov 2023 09:58:05 +0100
> +Subject: [PATCH] cairo-ft-private.h: fix missing FT_Color error
> +
> +In file included from ../src/cairo-colr-glyph-render.c:37:
> +../src/cairo-ft-private.h:87:30: error: unknown type name 'FT_Color'
> + 87 | FT_Color *palette,
> + | ^~~~~~~~
> +
> +Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/issues/792
> +Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
> +---
> + src/cairo-ft-private.h | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/src/cairo-ft-private.h b/src/cairo-ft-private.h
> +index 836f7e523..6b0e30223 100644
> +--- a/src/cairo-ft-private.h
> ++++ b/src/cairo-ft-private.h
> +@@ -43,6 +43,8 @@
> +
> + #if CAIRO_HAS_FT_FONT
> +
> ++#include FT_COLOR_H
> ++
> + CAIRO_BEGIN_DECLS
> +
> + typedef struct _cairo_ft_unscaled_font cairo_ft_unscaled_font_t;
> +--
> +2.34.1
> +
> diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
> index 3b93e24a22..fca9ff678c 100644
> --- a/package/cairo/cairo.hash
> +++ b/package/cairo/cairo.hash
> @@ -1,7 +1,7 @@
> -# From https://www.cairographics.org/releases/cairo-1.16.0.tar.xz.sha1
> -sha1 00e81842ae5e81bb0343108884eb5205be0eac14 cairo-1.16.0.tar.xz
> +# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
> +sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
> # Calculated based on the hash above
> -sha256 5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331 cairo-1.16.0.tar.xz
> +sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
>
> # Hash for license files:
> sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
> diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
> index 7bc8f92deb..4515b76075 100644
> --- a/package/cairo/cairo.mk
> +++ b/package/cairo/cairo.mk
> @@ -4,19 +4,17 @@
> #
> ################################################################################
>
> -CAIRO_VERSION = 1.16.0
> +CAIRO_VERSION = 1.17.4
> CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
> CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
> CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
> CAIRO_CPE_ID_VENDOR = cairographics
> -CAIRO_SITE = http://cairographics.org/releases
> +CAIRO_SITE = http://cairographics.org/snapshots
> CAIRO_INSTALL_STAGING = YES
>
> -# 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
> -CAIRO_IGNORE_CVES += CVE-2018-19876
> -# 0003-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> +# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> CAIRO_IGNORE_CVES += CVE-2019-6462
> -# 0004-Fix-mask-usage-in-image-compositor.patch
> +# 0002-Fix-mask-usage-in-image-compositor.patch
> CAIRO_IGNORE_CVES += CVE-2020-35492
>
> CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
> --
> 2.34.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
>
Cheers,
—Adrián
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system
2024-01-07 10:55 ` [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system Thomas Devoogdt
@ 2024-01-16 22:39 ` Adrian Perez de Castro
2024-02-05 14:49 ` Peter Korsgaard
1 sibling, 0 replies; 24+ messages in thread
From: Adrian Perez de Castro @ 2024-01-16 22:39 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
buildroot, Fabrice Fontaine
[-- Attachment #1.1: Type: text/plain, Size: 8953 bytes --]
On Sun, 07 Jan 2024 11:55:38 +0100 Thomas Devoogdt <thomas@devoogdt.com> wrote:
> Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
Reviewed-by: Adrian Perez de Castro <aperez@igalia.com>
Tested-by: Adrian Perez de Castro <aperez@igalia.com>
For testing I did a build using raspberrypi3_64_defconfig, then added WPE
WebKit + Cog + Cage and tested the image loading a few web sites and two
benchmarks (MotionMark and Speedometer).
> ---
> v2: added -std=gnu11 (allow inline int declaration in if loop, 99 caused some directives problems)
> v3: enabled host-zlib, needed for librsvg
> v4: also added gnu11 for host-cairo compiling (fixes my compilation on a gcc 4.9.2 based system)
> v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
> v6: fix host-zlib option (again)
> ---
> package/cairo/Config.in | 34 ++++----
> package/cairo/cairo.mk | 168 ++++++++++++----------------------------
> 2 files changed, 66 insertions(+), 136 deletions(-)
>
> diff --git a/package/cairo/Config.in b/package/cairo/Config.in
> index 0c87a2904b..caa6c37195 100644
> --- a/package/cairo/Config.in
> +++ b/package/cairo/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
> select BR2_PACKAGE_FONTCONFIG
> select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
> select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
> + select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_XORG7
> help
> Cairo is a 2D graphics library with support for multiple
> output devices. Currently supported output targets include
> @@ -15,34 +16,35 @@ config BR2_PACKAGE_CAIRO
>
> if BR2_PACKAGE_CAIRO
>
> -config BR2_PACKAGE_CAIRO_PS
> - bool "postscript support"
> - select BR2_PACKAGE_ZLIB
> - select BR2_PACKAGE_CAIRO_PDF
> -
> -config BR2_PACKAGE_CAIRO_PDF
> - bool "pdf support"
> - select BR2_PACKAGE_ZLIB
> -
> config BR2_PACKAGE_CAIRO_PNG
> bool "png support"
> select BR2_PACKAGE_LIBPNG
> - select BR2_PACKAGE_ZLIB
> -
> -config BR2_PACKAGE_CAIRO_SCRIPT
> - bool "script support"
> - select BR2_PACKAGE_CAIRO_PNG
>
> config BR2_PACKAGE_CAIRO_SVG
> bool "svg support"
> select BR2_PACKAGE_CAIRO_PNG
> - select BR2_PACKAGE_CAIRO_PDF
>
> config BR2_PACKAGE_CAIRO_TEE
> bool "tee support"
>
> +config BR2_PACKAGE_CAIRO_ZLIB
> + bool "zlib support"
> + select BR2_PACKAGE_ZLIB
> +
> +config BR2_PACKAGE_CAIRO_SCRIPT
> + bool "script support"
> + select BR2_PACKAGE_CAIRO_ZLIB
> +
> +config BR2_PACKAGE_CAIRO_PS
> + bool "postscript support"
> + select BR2_PACKAGE_CAIRO_ZLIB
> +
> +config BR2_PACKAGE_CAIRO_PDF
> + bool "pdf support"
> + select BR2_PACKAGE_CAIRO_ZLIB
> +
> config BR2_PACKAGE_CAIRO_XML
> bool "xml support"
> - select BR2_PACKAGE_CAIRO_PNG
> + select BR2_PACKAGE_CAIRO_ZLIB
>
> endif
> diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
> index 4515b76075..190af15da0 100644
> --- a/package/cairo/cairo.mk
> +++ b/package/cairo/cairo.mk
> @@ -17,168 +17,96 @@ CAIRO_IGNORE_CVES += CVE-2019-6462
> # 0002-Fix-mask-usage-in-image-compositor.patch
> CAIRO_IGNORE_CVES += CVE-2020-35492
>
> -CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
> +CAIRO_CFLAGS = $(TARGET_CFLAGS)
> +CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
>
> # relocation truncated to fit: R_68K_GOT16O
> ifeq ($(BR2_m68k_cf),y)
> -CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
> -endif
> -
> -ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),)
> -CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
> +CAIRO_CFLAGS += -mxgot
> endif
>
> # cairo can use C++11 atomics when available, so we need to link with
> # libatomic for the architectures who need libatomic.
> ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> -CAIRO_LIBS += -latomic
> +CAIRO_LDFLAGS += -latomic
> endif
>
> CAIRO_CONF_OPTS = \
> - --enable-trace=no \
> - --enable-interpreter=no
> -
> -CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
> + -Dfontconfig=enabled \
> + -Dtests=disabled \
> + -Dspectre=disabled \
> + -Dc_std=gnu11
> +CAIRO_DEPENDENCIES = \
> + host-pkgconf \
> + fontconfig \
> + pixman
>
> # Just the bare minimum to make other host-* packages happy
> HOST_CAIRO_CONF_OPTS = \
> - --enable-trace=no \
> - --enable-interpreter=no \
> - --disable-directfb \
> - --enable-ft \
> - --enable-gobject \
> - --disable-glesv2 \
> - --disable-vg \
> - --disable-xlib \
> - --disable-xcb \
> - --without-x \
> - --disable-xlib-xrender \
> - --disable-ps \
> - --disable-pdf \
> - --enable-png \
> - --enable-script \
> - --disable-svg \
> - --disable-tee \
> - --disable-xml
> + -Dfontconfig=enabled \
> + -Dfreetype=enabled \
> + -Dpng=enabled \
> + -Dtee=disabled \
> + -Dxcb=disabled \
> + -Dxlib=disabled \
> + -Dzlib=enabled \
> + -Dtests=disabled \
> + -Dglib=enabled \
> + -Dspectre=disabled \
> + -Dc_std=gnu11
> HOST_CAIRO_DEPENDENCIES = \
> host-freetype \
> host-fontconfig \
> host-libglib2 \
> host-libpng \
> host-pixman \
> - host-pkgconf
> -
> -# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
> -# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
> -# (which is experimental)
> -ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
> -CAIRO_CONF_OPTS += --enable-directfb
> -CAIRO_DEPENDENCIES += directfb
> -else
> -CAIRO_CONF_OPTS += --disable-directfb
> -endif
> -
> -ifeq ($(BR2_PACKAGE_FREETYPE),y)
> -CAIRO_CONF_OPTS += --enable-ft
> -CAIRO_DEPENDENCIES += freetype
> -else
> -CAIRO_CONF_OPTS += --disable-ft
> -endif
> -
> -ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
> -CAIRO_DEPENDENCIES += libexecinfo
> -CAIRO_LIBS += -lexecinfo
> -endif
> -
> -ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
> -CAIRO_CONF_OPTS += --enable-gobject
> -CAIRO_DEPENDENCIES += libglib2
> -else
> -CAIRO_CONF_OPTS += --disable-gobject
> -endif
> -
> -# Can use GL or GLESv2 but not both
> -ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
> -CAIRO_CONF_OPTS += --enable-gl --disable-glesv2
> -CAIRO_DEPENDENCIES += libgl
> -else
> -ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
> -CAIRO_CONF_OPTS += --disable-gl --enable-glesv2
> -CAIRO_DEPENDENCIES += libgles
> -else
> -CAIRO_CONF_OPTS += --disable-gl --disable-glesv2
> -endif
> -endif
> -
> -ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
> -CAIRO_CONF_OPTS += --enable-vg
> -CAIRO_DEPENDENCIES += libopenvg
> -else
> -CAIRO_CONF_OPTS += --disable-vg
> -endif
> + host-pkgconf \
> + host-zlib
>
> ifeq ($(BR2_PACKAGE_LZO),y)
> CAIRO_DEPENDENCIES += lzo
> endif
>
> -ifeq ($(BR2_PACKAGE_XORG7),y)
> -CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
> -CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext
> -else
> -CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x
> -endif
> -
> -ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
> -CAIRO_CONF_OPTS += --enable-xlib-xrender
> -CAIRO_DEPENDENCIES += xlib_libXrender
> -else
> -CAIRO_CONF_OPTS += --disable-xlib-xrender
> -endif
> -
> -ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
> -CAIRO_CONF_OPTS += --enable-ps
> -CAIRO_DEPENDENCIES += zlib
> -else
> -CAIRO_CONF_OPTS += --disable-ps
> -endif
> -
> -ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
> -CAIRO_CONF_OPTS += --enable-pdf
> -CAIRO_DEPENDENCIES += zlib
> +ifeq ($(BR2_PACKAGE_FREETYPE),y)
> +CAIRO_CONF_OPTS += -Dfreetype=enabled
> +CAIRO_DEPENDENCIES += freetype
> else
> -CAIRO_CONF_OPTS += --disable-pdf
> +CAIRO_CONF_OPTS += -Dfreetype=disabled
> endif
>
> ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
> -CAIRO_CONF_OPTS += --enable-png
> +CAIRO_CONF_OPTS += -Dpng=enabled
> CAIRO_DEPENDENCIES += libpng
> else
> -CAIRO_CONF_OPTS += --disable-png
> +CAIRO_CONF_OPTS += -Dpng=disabled
> endif
>
> -ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y)
> -CAIRO_CONF_OPTS += --enable-script
> +ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
> +CAIRO_CONF_OPTS += -Dtee=enabled
> else
> -CAIRO_CONF_OPTS += --disable-script
> +CAIRO_CONF_OPTS += -Dtee=disabled
> endif
>
> -ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
> -CAIRO_CONF_OPTS += --enable-svg
> +ifeq ($(BR2_PACKAGE_XORG7),y)
> +CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
> +CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
> else
> -CAIRO_CONF_OPTS += --disable-svg
> +CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
> endif
>
> -ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
> -CAIRO_CONF_OPTS += --enable-tee
> +ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
> +CAIRO_CONF_OPTS += -Dzlib=enabled
> +CAIRO_DEPENDENCIES += zlib
> else
> -CAIRO_CONF_OPTS += --disable-tee
> +CAIRO_CONF_OPTS += -Dzlib=disabled
> endif
>
> -ifeq ($(BR2_PACKAGE_CAIRO_XML),y)
> -CAIRO_CONF_OPTS += --enable-xml
> +ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
> +CAIRO_CONF_OPTS += -Dglib=enabled
> +CAIRO_DEPENDENCIES += libglib2
> else
> -CAIRO_CONF_OPTS += --disable-xml
> +CAIRO_CONF_OPTS += -Dglib=disabled
> endif
>
> -$(eval $(autotools-package))
> -$(eval $(host-autotools-package))
> +$(eval $(meson-package))
> +$(eval $(host-meson-package))
> --
> 2.34.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
>
Cheers,
—Adrián
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v6 3/3] package/cairo: bump to 1.18.0
2024-01-07 10:55 ` [Buildroot] [PATCH v6 3/3] package/cairo: bump to 1.18.0 Thomas Devoogdt
@ 2024-01-16 22:39 ` Adrian Perez de Castro
0 siblings, 0 replies; 24+ messages in thread
From: Adrian Perez de Castro @ 2024-01-16 22:39 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Eric Le Bihan, Thomas Devoogdt, yann.morin.1998, thomas.petazzoni,
buildroot, Fabrice Fontaine
[-- Attachment #1.1: Type: text/plain, Size: 11204 bytes --]
On Sun, 07 Jan 2024 11:55:39 +0100 Thomas Devoogdt <thomas@devoogdt.com> wrote:
> News:
> - https://www.cairographics.org/news/cairo-1.17.8/
> - https://www.cairographics.org/news/cairo-1.18.0/
>
> Some options are renamed/dropped so fix that along.
> - GL and GLES drawing has been dropped in 1.17.8.
> - The XML surface has been removed in 1.18.0.
>
> Patches:
> - drop 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch, upstream: [1]
> - drop 0002-Fix-mask-usage-in-image-compositor.patch, upstream: [2]
> - add 0002-meson.build-fix-x11-build.patch, upstream: [3]
>
> [1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0
> [2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be
> [3]: https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
>
> Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
Reviewed-by: Adrian Perez de Castro <aperez@igalia.com>
Tested-by: Adrian Perez de Castro <aperez@igalia.com>
For testing I did a build using raspberrypi3_64_defconfig, then added WPE
WebKit + Cog + Cage and tested the image loading a few web sites and two
benchmarks (MotionMark and Speedometer).
> ---
> v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
> ---
> ...or_tolerance_normalized-fix-infinite.patch | 39 -------------
> ...rivate.h-fix-missing-FT_Color-error.patch} | 0
> ...2-Fix-mask-usage-in-image-compositor.patch | 56 -------------------
> .../0002-meson.build-fix-x11-build.patch | 29 ++++++++++
> package/cairo/cairo.hash | 6 +-
> package/cairo/cairo.mk | 21 ++++---
> 6 files changed, 43 insertions(+), 108 deletions(-)
> delete mode 100644 package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> rename package/cairo/{0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch => 0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch} (100%)
> delete mode 100644 package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
> create mode 100644 package/cairo/0002-meson.build-fix-x11-build.patch
>
> diff --git a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> deleted file mode 100644
> index 078e90fa42..0000000000
> --- a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -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
> -
> -[Retrieved from:
> -https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0]
> -Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> ----
> - 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/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
> similarity index 100%
> rename from package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
> rename to package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
> diff --git a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
> deleted file mode 100644
> index 54a95593c5..0000000000
> --- a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -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
> -
> -[Retrieved from
> -https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be]
> -[Removed changes in test/ directory to remove binary diff so that the
> -patch can be applied by `patch` tool]
> -Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> ----
> - src/cairo-image-compositor.c | 8 ++++----
> - 1 file changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
> -index bbf4cf228..2352c478e 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) {
> -@@ -2646,7 +2646,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) {
> -@@ -2675,7 +2675,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;
> ---
> -2.38.1
> -
> diff --git a/package/cairo/0002-meson.build-fix-x11-build.patch b/package/cairo/0002-meson.build-fix-x11-build.patch
> new file mode 100644
> index 0000000000..fd17397586
> --- /dev/null
> +++ b/package/cairo/0002-meson.build-fix-x11-build.patch
> @@ -0,0 +1,29 @@
> +From 840e3ad20f8536d9857876ca2f5161896b68ab9b Mon Sep 17 00:00:00 2001
> +From: Thomas Devoogdt <thomas@devoogdt.com>
> +Date: Sun, 12 Nov 2023 10:44:13 +0100
> +Subject: [PATCH] meson.build: fix x11 build
> +
> +../../br-test-pkg/arm-aarch64/build/cairo-1.18.0/meson.build:381:13: ERROR: Can not run test applications in this cross environment.
> +
> +Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/issues/613
> +Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
> +---
> + meson.build | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/meson.build b/meson.build
> +index 9efe91978..9864b8699 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -369,7 +369,7 @@ if x11_dep.found() and xext_dep.found()
> +
> + # Can skip the run check by providing the result in a cross file or
> + # native file as bool property value.
> +- prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
> ++ prop = meson.get_external_property('ipc_rmid_deferred_release', 'false')
> + # We don't know the type of prop (bool, string) but need to differentiate
> + # between a set value (bool) or the fallback value (string), so convert to
> + # a string and check the string value.
> +--
> +2.34.1
> +
> diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
> index fca9ff678c..df9c693bad 100644
> --- a/package/cairo/cairo.hash
> +++ b/package/cairo/cairo.hash
> @@ -1,7 +1,5 @@
> -# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
> -sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
> -# Calculated based on the hash above
> -sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
> +# From https://www.cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum
> +sha256 243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 cairo-1.18.0.tar.xz
>
> # Hash for license files:
> sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
> diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
> index 190af15da0..a1e649e8e4 100644
> --- a/package/cairo/cairo.mk
> +++ b/package/cairo/cairo.mk
> @@ -4,19 +4,14 @@
> #
> ################################################################################
>
> -CAIRO_VERSION = 1.17.4
> +CAIRO_VERSION = 1.18.0
> CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
> CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
> CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
> CAIRO_CPE_ID_VENDOR = cairographics
> -CAIRO_SITE = http://cairographics.org/snapshots
> +CAIRO_SITE = http://cairographics.org/releases
> CAIRO_INSTALL_STAGING = YES
>
> -# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
> -CAIRO_IGNORE_CVES += CVE-2019-6462
> -# 0002-Fix-mask-usage-in-image-compositor.patch
> -CAIRO_IGNORE_CVES += CVE-2020-35492
> -
> CAIRO_CFLAGS = $(TARGET_CFLAGS)
> CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
>
> @@ -32,9 +27,13 @@ CAIRO_LDFLAGS += -latomic
> endif
>
> CAIRO_CONF_OPTS = \
> + -Ddwrite=disabled \
> -Dfontconfig=enabled \
> + -Dquartz=disabled \
> -Dtests=disabled \
> -Dspectre=disabled \
> + -Dsymbol-lookup=disabled \
> + -Dgtk_doc=false \
> -Dc_std=gnu11
> CAIRO_DEPENDENCIES = \
> host-pkgconf \
> @@ -43,9 +42,11 @@ CAIRO_DEPENDENCIES = \
>
> # Just the bare minimum to make other host-* packages happy
> HOST_CAIRO_CONF_OPTS = \
> + -Ddwrite=disabled \
> -Dfontconfig=enabled \
> -Dfreetype=enabled \
> -Dpng=enabled \
> + -Dquartz=disabled \
> -Dtee=disabled \
> -Dxcb=disabled \
> -Dxlib=disabled \
> @@ -53,6 +54,8 @@ HOST_CAIRO_CONF_OPTS = \
> -Dtests=disabled \
> -Dglib=enabled \
> -Dspectre=disabled \
> + -Dsymbol-lookup=disabled \
> + -Dgtk_doc=false \
> -Dc_std=gnu11
> HOST_CAIRO_DEPENDENCIES = \
> host-freetype \
> @@ -88,10 +91,10 @@ CAIRO_CONF_OPTS += -Dtee=disabled
> endif
>
> ifeq ($(BR2_PACKAGE_XORG7),y)
> -CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
> +CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled -Dxlib-xcb=enabled
> CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
> else
> -CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
> +CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled -Dxlib-xcb=disabled
> endif
>
> ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
> --
> 2.34.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
>
Cheers,
—Adrián
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4
2024-01-07 10:55 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
` (2 preceding siblings ...)
2024-01-16 22:38 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Adrian Perez de Castro
@ 2024-02-05 14:38 ` Peter Korsgaard
3 siblings, 0 replies; 24+ messages in thread
From: Peter Korsgaard @ 2024-02-05 14:38 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Eric Le Bihan, yann.morin.1998, thomas.petazzoni, buildroot,
aperez, Fabrice Fontaine
>>>>> "Thomas" == Thomas Devoogdt <thomas@devoogdt.com> writes:
> News:
> - https://www.cairographics.org/news/cairo-1.17.2/
> - https://www.cairographics.org/news/cairo-1.17.4/
> !! This is a bump to a snapshot release: 1.17.4.
> But it is the first version that supports meson,
> and the only version that supports both meson and autotools.
> This is just an intermediate bump in order to
> switch over to meson in a later commit.
> Patches:
> - drop 0001-fix-nofork-build.patch, upstream: [1]
> - drop
> 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch,
> upstream: [2]
> - add 0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch, upstream: [3]
> [1]:
> https://gitlab.freedesktop.org/cairo/cairo/-/commit/cb2357f481396820ec954dc4b69eafc01a8d162a
> [2]:
> https://gitlab.freedesktop.org/cairo/cairo/-/commit/90e85c2493fdfa3551f202ff10282463f1e36645
> [3]: https://gitlab.freedesktop.org/cairo/cairo/-/issues/792
> Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
> ---
> v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
> ---
> ...r_tolerance_normalized-fix-infinite.patch} | 0
> package/cairo/0001-fix-nofork-build.patch | 29 ----------------
> ...-Fix-mask-usage-in-image-compositor.patch} | 0
> ...vailable-in-cairo_ft_apply_variation.patch | 33 -------------------
> ...private.h-fix-missing-FT_Color-error.patch | 32 ++++++++++++++++++
> package/cairo/cairo.hash | 6 ++--
> package/cairo/cairo.mk | 10 +++---
You forgot to update the .checkpackageignore file. Committed with that
fixed, thanks.
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system
2024-01-07 10:55 ` [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system Thomas Devoogdt
2024-01-16 22:39 ` Adrian Perez de Castro
@ 2024-02-05 14:49 ` Peter Korsgaard
2024-02-05 21:22 ` [Buildroot] [PATCH v7 1/2] " Thomas Devoogdt
1 sibling, 1 reply; 24+ messages in thread
From: Peter Korsgaard @ 2024-02-05 14:49 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Eric Le Bihan, yann.morin.1998, thomas.petazzoni, buildroot,
aperez, Fabrice Fontaine
>>>>> "Thomas" == Thomas Devoogdt <thomas@devoogdt.com> writes:
> Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
> ---
> v2: added -std=gnu11 (allow inline int declaration in if loop, 99
> caused some directives problems)
> v3: enabled host-zlib, needed for librsvg
> v4: also added gnu11 for host-cairo compiling (fixes my compilation on
> a gcc 4.9.2 based system)
> v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
> v6: fix host-zlib option (again)
> ---
> package/cairo/Config.in | 34 ++++----
> package/cairo/cairo.mk | 168 ++++++++++++----------------------------
> 2 files changed, 66 insertions(+), 136 deletions(-)
> diff --git a/package/cairo/Config.in b/package/cairo/Config.in
> index 0c87a2904b..caa6c37195 100644
> --- a/package/cairo/Config.in
> +++ b/package/cairo/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
> select BR2_PACKAGE_FONTCONFIG
> select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
> select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
> + select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_XORG7
How come the change of build system adds libxrandr? This needs to be
described in the commit message.
> help
> Cairo is a 2D graphics library with support for multiple
> output devices. Currently supported output targets include
> @@ -15,34 +16,35 @@ config BR2_PACKAGE_CAIRO
> if BR2_PACKAGE_CAIRO
> -config BR2_PACKAGE_CAIRO_PS
> - bool "postscript support"
> - select BR2_PACKAGE_ZLIB
> - select BR2_PACKAGE_CAIRO_PDF
> -
> -config BR2_PACKAGE_CAIRO_PDF
> - bool "pdf support"
> - select BR2_PACKAGE_ZLIB
Please don't move options around. They were indeed not alphabetically
sorted, but after your move it is even worse. You are also changing a
number of dependencies without any clear (to me) reason?
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v7 1/2] package/cairo: move to the meson build system
2024-02-05 14:49 ` Peter Korsgaard
@ 2024-02-05 21:22 ` Thomas Devoogdt
2024-02-05 21:23 ` [Buildroot] [PATCH v7 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
0 siblings, 1 reply; 24+ messages in thread
From: Thomas Devoogdt @ 2024-02-05 21:22 UTC (permalink / raw)
To: peter
Cc: eric.le.bihan.dev, thomas, yann.morin.1998, thomas.petazzoni,
buildroot, aperez, fontaine.fabrice
- Moved BR2_PACKAGE_CAIRO_{SCRIPT,PS,PDF,XML} to Config.in.legacy
since they are not selectable anymore in the meson-build options.
BR2_PACKAGE_CAIRO_ZLIB serves for all of them now.
- Moved BR2_PACKAGE_CAIRO_SVG to Config.in.legacy since the PNG
option already selects that one. This is now in sync with the
meson build options.
- Note that the dependencies for the various options are slightly changed,
but there is not much mentioned about that, the meson introduction is done
in one big commit: [1].
- Added xlib_libXrender dependency, which was already required
before meson, it just came to my attention since it's a hard
error now.
- Added two patches to fix cross compiling, upstream: [2].
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/596a82f2d185b101bd74645492821fe2f9e0daa0
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v2: added -std=gnu11 (allow inline int declaration in if loop, 99 caused some directives problems)
v3: enabled host-zlib, needed for librsvg
v4: also added gnu11 for host-cairo compiling (fixes my compilation on a gcc 4.9.2 based system)
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
v6: fix host-zlib option (again)
v7: reworked patch by moving the old config options to legacy and by restoring their original order
---
Config.in.legacy | 35 ++++
...ping-of-run-check-for-IPC_RMID_DEFER.patch | 62 +++++++
...p-IPC_RMID_DEFERRED_RELEASE-check-wh.patch | 41 +++++
package/cairo/Config.in | 28 +--
package/cairo/cairo.mk | 160 +++++-------------
package/libgtk2/Config.in | 5 +-
package/libgtk3/Config.in | 5 +-
package/librsvg/Config.in | 2 +-
package/libsvg-cairo/Config.in | 2 +-
package/rrdtool/Config.in | 4 +-
10 files changed, 194 insertions(+), 150 deletions(-)
create mode 100644 package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
create mode 100644 package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
diff --git a/Config.in.legacy b/Config.in.legacy
index 82387338d9..431552afe7 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -146,6 +146,41 @@ endif
comment "Legacy options removed in 2024.02"
+config BR2_PACKAGE_CAIRO_SVG
+ bool "cairo svg support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_PNG
+ help
+ Cairo SVG is compiled together with PNG, so no need to have this config.
+
+config BR2_PACKAGE_CAIRO_SCRIPT
+ bool "cairo script support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo script got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_PS
+ bool "cairo postscript support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo PS got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_PDF
+ bool "cairo pdf support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo PDF got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_XML
+ bool "cairo xml support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo XML got merged in to cairo zlib with the introduction of meson.
+
config BR2_KERNEL_HEADERS_4_14
bool "kernel headers version 4.14.x are no longer supported"
select BR2_LEGACY
diff --git a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
new file mode 100644
index 0000000000..193a210391
--- /dev/null
+++ b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
@@ -0,0 +1,62 @@
+From 39cbc3c1f1caf558188bd2203c976bae8de2f6a7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Thu, 25 Feb 2021 10:52:45 +0000
+Subject: [PATCH] meson: allow skipping of run check for
+ IPC_RMID_DEFERRED_RELEASE
+
+The run check is particularly annoying in cross-compile scenarios,
+so allow bypassing the check by having the user provide the value
+via a cross file or native file:
+
+ [properties]
+ ipc_rmid_deferred_release = true
+
+Closes #408
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 25 ++++++++++++++++++++-----
+ 1 file changed, 20 insertions(+), 5 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index b159b4071..5f593e54d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -264,13 +264,28 @@ if x11_dep.found() and xext_dep.found()
+ ['X11/extensions/shmstr.h', {'extra-headers': extra_headers}],
+ ]
+ deps += [x11_dep, xext_dep]
+- res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
+- dependencies: [x11_dep, xext_dep],
+- name: 'shmctl IPC_RMID allowes subsequent attaches')
+
+- if res.returncode() == 0
+- conf.set('IPC_RMID_DEFERRED_RELEASE', 1)
++ # Can skip the run check by providing the result in a cross file or
++ # native file as bool property value.
++ prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
++ # We don't know the type of prop (bool, string) but need to differentiate
++ # between a set value (bool) or the fallback value (string), so convert to
++ # a string and chec the string value.
++ prop_str = '@0@'.format(prop)
++ if prop_str in ['true', 'false']
++ ipc_rmid_deferred_release = (prop_str == 'true')
++ message('IPC_RMID_DEFERRED_RELEASE:', ipc_rmid_deferred_release)
++ elif prop_str == 'auto'
++ res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
++ dependencies: [x11_dep, xext_dep],
++ name: 'shmctl IPC_RMID allowes subsequent attaches')
++
++ ipc_rmid_deferred_release = (res.returncode() == 0)
++ else
++ error('Unexpected value for external property ipc_rmid_deferred_release: @0@'.format(prop_str))
+ endif
++
++ conf.set10('IPC_RMID_DEFERRED_RELEASE', ipc_rmid_deferred_release)
+ endif
+
+ if feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
+--
+2.34.1
+
diff --git a/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch b/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
new file mode 100644
index 0000000000..b57379fced
--- /dev/null
+++ b/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
@@ -0,0 +1,41 @@
+From d628c24e757e35e53e6e19fea5f23c93611c9cda Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Mon, 5 Feb 2024 17:47:07 +0100
+Subject: [PATCH] meson: always skip IPC_RMID_DEFERRED_RELEASE check when cross
+ compiling
+
+../../br-test-pkg/bootlin-armv5-uclibc/build/cairo-1.17.4/meson.build:279:13:
+ERROR: Can not run test applications in this cross environment.
+
+Commit 1bec56ea8a931e1ae1c74cc740134497ec365267 added support to define
+ipc_rmid_deferred_release in a cross-compile config, but still kept
+the default to auto, which anyhow results in an error when cross-compiling.
+
+Fix that by always assuming 'true', the compilation might fail if IPC_RMID,
+is not defined, but that is perhaps desirable.
+
+See https://www.man7.org/linux/man-pages/man2/shmctl.2.html for more info
+about the call defined in meson-cc-tests/ipc_rmid_deferred_release.c
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 9100152ee..1de0fac0d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -369,7 +369,7 @@ if x11_dep.found() and xext_dep.found()
+
+ # Can skip the run check by providing the result in a cross file or
+ # native file as bool property value.
+- prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
++ prop = meson.get_external_property('ipc_rmid_deferred_release', meson.is_cross_build() ? 'true' : 'auto')
+ # We don't know the type of prop (bool, string) but need to differentiate
+ # between a set value (bool) or the fallback value (string), so convert to
+ # a string and check the string value.
+--
+2.34.1
+
diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a2904b..c41a12fe81 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
+ select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_XORG7
help
Cairo is a 2D graphics library with support for multiple
output devices. Currently supported output targets include
@@ -15,34 +16,15 @@ config BR2_PACKAGE_CAIRO
if BR2_PACKAGE_CAIRO
-config BR2_PACKAGE_CAIRO_PS
- bool "postscript support"
- select BR2_PACKAGE_ZLIB
- select BR2_PACKAGE_CAIRO_PDF
-
-config BR2_PACKAGE_CAIRO_PDF
- bool "pdf support"
- select BR2_PACKAGE_ZLIB
-
config BR2_PACKAGE_CAIRO_PNG
- bool "png support"
+ bool "png support (png and svg surfaces)"
select BR2_PACKAGE_LIBPNG
- select BR2_PACKAGE_ZLIB
-
-config BR2_PACKAGE_CAIRO_SCRIPT
- bool "script support"
- select BR2_PACKAGE_CAIRO_PNG
-
-config BR2_PACKAGE_CAIRO_SVG
- bool "svg support"
- select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_PDF
config BR2_PACKAGE_CAIRO_TEE
bool "tee support"
-config BR2_PACKAGE_CAIRO_XML
- bool "xml support"
- select BR2_PACKAGE_CAIRO_PNG
+config BR2_PACKAGE_CAIRO_ZLIB
+ bool "zlib support (script, ps, pdf, and xml surfaces)"
+ select BR2_PACKAGE_ZLIB
endif
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 4515b76075..3d2a67a6c5 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -17,168 +17,96 @@ CAIRO_IGNORE_CVES += CVE-2019-6462
# 0002-Fix-mask-usage-in-image-compositor.patch
CAIRO_IGNORE_CVES += CVE-2020-35492
-CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
+CAIRO_CFLAGS = $(TARGET_CFLAGS)
+CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
# relocation truncated to fit: R_68K_GOT16O
ifeq ($(BR2_m68k_cf),y)
-CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
-endif
-
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),)
-CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
+CAIRO_CFLAGS += -mxgot
endif
# cairo can use C++11 atomics when available, so we need to link with
# libatomic for the architectures who need libatomic.
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-CAIRO_LIBS += -latomic
+CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no
-
-CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
+ -Dfontconfig=enabled \
+ -Dtests=disabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
+CAIRO_DEPENDENCIES = \
+ host-pkgconf \
+ fontconfig \
+ pixman
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no \
- --disable-directfb \
- --enable-ft \
- --enable-gobject \
- --disable-glesv2 \
- --disable-vg \
- --disable-xlib \
- --disable-xcb \
- --without-x \
- --disable-xlib-xrender \
- --disable-ps \
- --disable-pdf \
- --enable-png \
- --enable-script \
- --disable-svg \
- --disable-tee \
- --disable-xml
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dpng=enabled \
+ -Dtee=disabled \
+ -Dxcb=disabled \
+ -Dxlib=disabled \
+ -Dzlib=enabled \
+ -Dtests=disabled \
+ -Dglib=enabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
host-fontconfig \
host-libglib2 \
host-libpng \
host-pixman \
- host-pkgconf
+ host-pkgconf \
+ host-zlib
-# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
-# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
-# (which is experimental)
-ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
-CAIRO_CONF_OPTS += --enable-directfb
-CAIRO_DEPENDENCIES += directfb
-else
-CAIRO_CONF_OPTS += --disable-directfb
+ifeq ($(BR2_PACKAGE_LZO),y)
+CAIRO_DEPENDENCIES += lzo
endif
ifeq ($(BR2_PACKAGE_FREETYPE),y)
-CAIRO_CONF_OPTS += --enable-ft
+CAIRO_CONF_OPTS += -Dfreetype=enabled
CAIRO_DEPENDENCIES += freetype
else
-CAIRO_CONF_OPTS += --disable-ft
-endif
-
-ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
-CAIRO_DEPENDENCIES += libexecinfo
-CAIRO_LIBS += -lexecinfo
+CAIRO_CONF_OPTS += -Dfreetype=disabled
endif
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
-CAIRO_CONF_OPTS += --enable-gobject
+CAIRO_CONF_OPTS += -Dglib=enabled
CAIRO_DEPENDENCIES += libglib2
else
-CAIRO_CONF_OPTS += --disable-gobject
-endif
-
-# Can use GL or GLESv2 but not both
-ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
-CAIRO_CONF_OPTS += --enable-gl --disable-glesv2
-CAIRO_DEPENDENCIES += libgl
-else
-ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
-CAIRO_CONF_OPTS += --disable-gl --enable-glesv2
-CAIRO_DEPENDENCIES += libgles
-else
-CAIRO_CONF_OPTS += --disable-gl --disable-glesv2
-endif
-endif
-
-ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
-CAIRO_CONF_OPTS += --enable-vg
-CAIRO_DEPENDENCIES += libopenvg
-else
-CAIRO_CONF_OPTS += --disable-vg
-endif
-
-ifeq ($(BR2_PACKAGE_LZO),y)
-CAIRO_DEPENDENCIES += lzo
+CAIRO_CONF_OPTS += -Dglib=disabled
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
-CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext
-else
-CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x
-endif
-
-ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
-CAIRO_CONF_OPTS += --enable-xlib-xrender
-CAIRO_DEPENDENCIES += xlib_libXrender
-else
-CAIRO_CONF_OPTS += --disable-xlib-xrender
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
-CAIRO_CONF_OPTS += --enable-ps
-CAIRO_DEPENDENCIES += zlib
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += --disable-ps
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
-CAIRO_CONF_OPTS += --enable-pdf
-CAIRO_DEPENDENCIES += zlib
-else
-CAIRO_CONF_OPTS += --disable-pdf
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
-CAIRO_CONF_OPTS += --enable-png
+CAIRO_CONF_OPTS += -Dpng=enabled
CAIRO_DEPENDENCIES += libpng
else
-CAIRO_CONF_OPTS += --disable-png
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y)
-CAIRO_CONF_OPTS += --enable-script
-else
-CAIRO_CONF_OPTS += --disable-script
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
-CAIRO_CONF_OPTS += --enable-svg
-else
-CAIRO_CONF_OPTS += --disable-svg
+CAIRO_CONF_OPTS += -Dpng=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
-CAIRO_CONF_OPTS += --enable-tee
+CAIRO_CONF_OPTS += -Dtee=enabled
else
-CAIRO_CONF_OPTS += --disable-tee
+CAIRO_CONF_OPTS += -Dtee=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_XML),y)
-CAIRO_CONF_OPTS += --enable-xml
+ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
+CAIRO_CONF_OPTS += -Dzlib=enabled
+CAIRO_DEPENDENCIES += zlib
else
-CAIRO_CONF_OPTS += --disable-xml
+CAIRO_CONF_OPTS += -Dzlib=disabled
endif
-$(eval $(autotools-package))
-$(eval $(host-autotools-package))
+$(eval $(meson-package))
+$(eval $(host-meson-package))
diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
index f2888b2f51..f8821ba246 100644
--- a/package/libgtk2/Config.in
+++ b/package/libgtk2/Config.in
@@ -9,9 +9,8 @@ config BR2_PACKAGE_LIBGTK2
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
select BR2_PACKAGE_AT_SPI2_CORE
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_PDF
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PANGO
select BR2_PACKAGE_GDK_PIXBUF
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
index 34b8d49eb3..9f9a081ecb 100644
--- a/package/libgtk3/Config.in
+++ b/package/libgtk3/Config.in
@@ -25,9 +25,8 @@ config BR2_PACKAGE_LIBGTK3
BR2_PACKAGE_HAS_LIBGL
select BR2_PACKAGE_AT_SPI2_CORE
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_PDF
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_LIBEPOXY
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PANGO
diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
index 270b524b37..d74359dfc9 100644
--- a/package/librsvg/Config.in
+++ b/package/librsvg/Config.in
@@ -9,7 +9,7 @@ config BR2_PACKAGE_LIBRSVG
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_SCRIPT
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_GDK_PIXBUF
select BR2_PACKAGE_HOST_RUSTC
select BR2_PACKAGE_LIBGLIB2
diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
index 9577c69bf0..4602e93c2a 100644
--- a/package/libsvg-cairo/Config.in
+++ b/package/libsvg-cairo/Config.in
@@ -1,7 +1,7 @@
config BR2_PACKAGE_LIBSVG_CAIRO
bool "libsvg-cairo"
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
select BR2_PACKAGE_LIBSVG
help
Libsvg-cairo provides the ability to render SVG content from
diff --git a/package/rrdtool/Config.in b/package/rrdtool/Config.in
index 5ffdc92618..d954fd1214 100644
--- a/package/rrdtool/Config.in
+++ b/package/rrdtool/Config.in
@@ -19,10 +19,8 @@ config BR2_PACKAGE_RRDTOOL_RRDGRAPH
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
depends on BR2_INSTALL_LIBSTDCPP # freetype support from pango
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PDF
select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_PANGO
help
This enables the graphing capabilities ('rrdgraph').
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v7 2/2] package/cairo: bump to 1.18.0
2024-02-05 21:22 ` [Buildroot] [PATCH v7 1/2] " Thomas Devoogdt
@ 2024-02-05 21:23 ` Thomas Devoogdt
2024-02-05 21:30 ` [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system Thomas Devoogdt
0 siblings, 1 reply; 24+ messages in thread
From: Thomas Devoogdt @ 2024-02-05 21:23 UTC (permalink / raw)
To: peter
Cc: eric.le.bihan.dev, thomas, yann.morin.1998, thomas.petazzoni,
buildroot, aperez, fontaine.fabrice
News:
- https://www.cairographics.org/news/cairo-1.17.8/
- https://www.cairographics.org/news/cairo-1.18.0/
Some options are renamed/dropped so fix that along.
- GL and GLES drawing has been dropped in 1.17.8.
- The XML surface has been removed in 1.18.0.
- xlib-xcb was added [1]
Patches:
- drop 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch, upstream: [2]
- drop 0002-Fix-mask-usage-in-image-compositor.patch, upstream: [3]
- drop 0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch, upstream: [4]
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/3468c67fe91f0c37e0ec5d335082653a6fa609b6
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be
[4]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
v7: rebased on v7-0001-package-cairo-move-to-the-meson-build-system
---
...or_tolerance_normalized-fix-infinite.patch | 39 ------------
...rivate.h-fix-missing-FT_Color-error.patch} | 0
...2-Fix-mask-usage-in-image-compositor.patch | 56 -----------------
...-IPC_RMID_DEFERRED_RELEASE-check-wh.patch} | 0
...ping-of-run-check-for-IPC_RMID_DEFER.patch | 62 -------------------
package/cairo/cairo.hash | 6 +-
package/cairo/cairo.mk | 21 ++++---
7 files changed, 14 insertions(+), 170 deletions(-)
delete mode 100644 package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
rename package/cairo/{0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch => 0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch} (100%)
delete mode 100644 package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
rename package/cairo/{0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch => 0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch} (100%)
delete mode 100644 package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
diff --git a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
deleted file mode 100644
index 078e90fa42..0000000000
--- a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-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
-
-[Retrieved from:
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- 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/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
similarity index 100%
rename from package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
rename to package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
diff --git a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
deleted file mode 100644
index 54a95593c5..0000000000
--- a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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
-
-[Retrieved from
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be]
-[Removed changes in test/ directory to remove binary diff so that the
-patch can be applied by `patch` tool]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- src/cairo-image-compositor.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
-index bbf4cf228..2352c478e 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) {
-@@ -2646,7 +2646,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) {
-@@ -2675,7 +2675,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;
---
-2.38.1
-
diff --git a/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch b/package/cairo/0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
similarity index 100%
rename from package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
rename to package/cairo/0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
diff --git a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
deleted file mode 100644
index 193a210391..0000000000
--- a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 39cbc3c1f1caf558188bd2203c976bae8de2f6a7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
-Date: Thu, 25 Feb 2021 10:52:45 +0000
-Subject: [PATCH] meson: allow skipping of run check for
- IPC_RMID_DEFERRED_RELEASE
-
-The run check is particularly annoying in cross-compile scenarios,
-so allow bypassing the check by having the user provide the value
-via a cross file or native file:
-
- [properties]
- ipc_rmid_deferred_release = true
-
-Closes #408
-
-Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
-Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
----
- meson.build | 25 ++++++++++++++++++++-----
- 1 file changed, 20 insertions(+), 5 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index b159b4071..5f593e54d 100644
---- a/meson.build
-+++ b/meson.build
-@@ -264,13 +264,28 @@ if x11_dep.found() and xext_dep.found()
- ['X11/extensions/shmstr.h', {'extra-headers': extra_headers}],
- ]
- deps += [x11_dep, xext_dep]
-- res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
-- dependencies: [x11_dep, xext_dep],
-- name: 'shmctl IPC_RMID allowes subsequent attaches')
-
-- if res.returncode() == 0
-- conf.set('IPC_RMID_DEFERRED_RELEASE', 1)
-+ # Can skip the run check by providing the result in a cross file or
-+ # native file as bool property value.
-+ prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
-+ # We don't know the type of prop (bool, string) but need to differentiate
-+ # between a set value (bool) or the fallback value (string), so convert to
-+ # a string and chec the string value.
-+ prop_str = '@0@'.format(prop)
-+ if prop_str in ['true', 'false']
-+ ipc_rmid_deferred_release = (prop_str == 'true')
-+ message('IPC_RMID_DEFERRED_RELEASE:', ipc_rmid_deferred_release)
-+ elif prop_str == 'auto'
-+ res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
-+ dependencies: [x11_dep, xext_dep],
-+ name: 'shmctl IPC_RMID allowes subsequent attaches')
-+
-+ ipc_rmid_deferred_release = (res.returncode() == 0)
-+ else
-+ error('Unexpected value for external property ipc_rmid_deferred_release: @0@'.format(prop_str))
- endif
-+
-+ conf.set10('IPC_RMID_DEFERRED_RELEASE', ipc_rmid_deferred_release)
- endif
-
- if feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
---
-2.34.1
-
diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
index fca9ff678c..df9c693bad 100644
--- a/package/cairo/cairo.hash
+++ b/package/cairo/cairo.hash
@@ -1,7 +1,5 @@
-# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
-sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
-# Calculated based on the hash above
-sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
+# From https://www.cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum
+sha256 243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 cairo-1.18.0.tar.xz
# Hash for license files:
sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 3d2a67a6c5..4ace04ebbe 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -4,19 +4,14 @@
#
################################################################################
-CAIRO_VERSION = 1.17.4
+CAIRO_VERSION = 1.18.0
CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
CAIRO_CPE_ID_VENDOR = cairographics
-CAIRO_SITE = http://cairographics.org/snapshots
+CAIRO_SITE = http://cairographics.org/releases
CAIRO_INSTALL_STAGING = YES
-# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
-CAIRO_IGNORE_CVES += CVE-2019-6462
-# 0002-Fix-mask-usage-in-image-compositor.patch
-CAIRO_IGNORE_CVES += CVE-2020-35492
-
CAIRO_CFLAGS = $(TARGET_CFLAGS)
CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
@@ -32,9 +27,13 @@ CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
+ -Dquartz=disabled \
-Dtests=disabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
CAIRO_DEPENDENCIES = \
host-pkgconf \
@@ -43,9 +42,11 @@ CAIRO_DEPENDENCIES = \
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
-Dfreetype=enabled \
-Dpng=enabled \
+ -Dquartz=disabled \
-Dtee=disabled \
-Dxcb=disabled \
-Dxlib=disabled \
@@ -53,6 +54,8 @@ HOST_CAIRO_CONF_OPTS = \
-Dtests=disabled \
-Dglib=enabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
@@ -82,10 +85,10 @@ CAIRO_CONF_OPTS += -Dglib=disabled
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled -Dxlib-xcb=enabled
CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled -Dxlib-xcb=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system
2024-02-05 21:23 ` [Buildroot] [PATCH v7 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
@ 2024-02-05 21:30 ` Thomas Devoogdt
2024-02-05 21:30 ` [Buildroot] [PATCH v8 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
2024-02-07 16:17 ` [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system Peter Korsgaard
0 siblings, 2 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-02-05 21:30 UTC (permalink / raw)
To: thomas
Cc: eric.le.bihan.dev, yann.morin.1998, thomas.petazzoni, buildroot,
aperez, fontaine.fabrice
- Moved BR2_PACKAGE_CAIRO_{SCRIPT,PS,PDF,XML} to Config.in.legacy
since they are not selectable anymore in the meson-build options.
BR2_PACKAGE_CAIRO_ZLIB serves for all of them now.
- Moved BR2_PACKAGE_CAIRO_SVG to Config.in.legacy since the PNG
option already selects that one. This is now in sync with the
meson build options.
- Note that the dependencies for the various options are slightly changed,
but there is not much mentioned about that, the meson introduction is done
in one big commit: [1].
- Added xlib_libXrender dependency, which was already required
before meson, it just came to my attention since it's a hard
error now.
- Added two patches to fix cross compiling, upstream: [2].
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/596a82f2d185b101bd74645492821fe2f9e0daa0
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v2: added -std=gnu11 (allow inline int declaration in if loop, 99 caused some directives problems)
v3: enabled host-zlib, needed for librsvg
v4: also added gnu11 for host-cairo compiling (fixes my compilation on a gcc 4.9.2 based system)
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
v6: fix host-zlib option (again)
v7: reworked patch by moving the old config options to legacy and by restoring their original order
---
Config.in.legacy | 35 ++++
...ping-of-run-check-for-IPC_RMID_DEFER.patch | 62 +++++++
...p-IPC_RMID_DEFERRED_RELEASE-check-wh.patch | 41 +++++
package/cairo/Config.in | 28 +--
package/cairo/cairo.mk | 160 +++++-------------
package/libgtk2/Config.in | 5 +-
package/libgtk3/Config.in | 5 +-
package/librsvg/Config.in | 2 +-
package/libsvg-cairo/Config.in | 2 +-
package/rrdtool/Config.in | 4 +-
10 files changed, 194 insertions(+), 150 deletions(-)
create mode 100644 package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
create mode 100644 package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
diff --git a/Config.in.legacy b/Config.in.legacy
index 82387338d9..431552afe7 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -146,6 +146,41 @@ endif
comment "Legacy options removed in 2024.02"
+config BR2_PACKAGE_CAIRO_SVG
+ bool "cairo svg support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_PNG
+ help
+ Cairo SVG is compiled together with PNG, so no need to have this config.
+
+config BR2_PACKAGE_CAIRO_SCRIPT
+ bool "cairo script support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo script got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_PS
+ bool "cairo postscript support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo PS got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_PDF
+ bool "cairo pdf support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo PDF got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_XML
+ bool "cairo xml support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo XML got merged in to cairo zlib with the introduction of meson.
+
config BR2_KERNEL_HEADERS_4_14
bool "kernel headers version 4.14.x are no longer supported"
select BR2_LEGACY
diff --git a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
new file mode 100644
index 0000000000..193a210391
--- /dev/null
+++ b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
@@ -0,0 +1,62 @@
+From 39cbc3c1f1caf558188bd2203c976bae8de2f6a7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Thu, 25 Feb 2021 10:52:45 +0000
+Subject: [PATCH] meson: allow skipping of run check for
+ IPC_RMID_DEFERRED_RELEASE
+
+The run check is particularly annoying in cross-compile scenarios,
+so allow bypassing the check by having the user provide the value
+via a cross file or native file:
+
+ [properties]
+ ipc_rmid_deferred_release = true
+
+Closes #408
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 25 ++++++++++++++++++++-----
+ 1 file changed, 20 insertions(+), 5 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index b159b4071..5f593e54d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -264,13 +264,28 @@ if x11_dep.found() and xext_dep.found()
+ ['X11/extensions/shmstr.h', {'extra-headers': extra_headers}],
+ ]
+ deps += [x11_dep, xext_dep]
+- res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
+- dependencies: [x11_dep, xext_dep],
+- name: 'shmctl IPC_RMID allowes subsequent attaches')
+
+- if res.returncode() == 0
+- conf.set('IPC_RMID_DEFERRED_RELEASE', 1)
++ # Can skip the run check by providing the result in a cross file or
++ # native file as bool property value.
++ prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
++ # We don't know the type of prop (bool, string) but need to differentiate
++ # between a set value (bool) or the fallback value (string), so convert to
++ # a string and chec the string value.
++ prop_str = '@0@'.format(prop)
++ if prop_str in ['true', 'false']
++ ipc_rmid_deferred_release = (prop_str == 'true')
++ message('IPC_RMID_DEFERRED_RELEASE:', ipc_rmid_deferred_release)
++ elif prop_str == 'auto'
++ res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
++ dependencies: [x11_dep, xext_dep],
++ name: 'shmctl IPC_RMID allowes subsequent attaches')
++
++ ipc_rmid_deferred_release = (res.returncode() == 0)
++ else
++ error('Unexpected value for external property ipc_rmid_deferred_release: @0@'.format(prop_str))
+ endif
++
++ conf.set10('IPC_RMID_DEFERRED_RELEASE', ipc_rmid_deferred_release)
+ endif
+
+ if feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
+--
+2.34.1
+
diff --git a/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch b/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
new file mode 100644
index 0000000000..b57379fced
--- /dev/null
+++ b/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
@@ -0,0 +1,41 @@
+From d628c24e757e35e53e6e19fea5f23c93611c9cda Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Mon, 5 Feb 2024 17:47:07 +0100
+Subject: [PATCH] meson: always skip IPC_RMID_DEFERRED_RELEASE check when cross
+ compiling
+
+../../br-test-pkg/bootlin-armv5-uclibc/build/cairo-1.17.4/meson.build:279:13:
+ERROR: Can not run test applications in this cross environment.
+
+Commit 1bec56ea8a931e1ae1c74cc740134497ec365267 added support to define
+ipc_rmid_deferred_release in a cross-compile config, but still kept
+the default to auto, which anyhow results in an error when cross-compiling.
+
+Fix that by always assuming 'true', the compilation might fail if IPC_RMID,
+is not defined, but that is perhaps desirable.
+
+See https://www.man7.org/linux/man-pages/man2/shmctl.2.html for more info
+about the call defined in meson-cc-tests/ipc_rmid_deferred_release.c
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 9100152ee..1de0fac0d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -369,7 +369,7 @@ if x11_dep.found() and xext_dep.found()
+
+ # Can skip the run check by providing the result in a cross file or
+ # native file as bool property value.
+- prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
++ prop = meson.get_external_property('ipc_rmid_deferred_release', meson.is_cross_build() ? 'true' : 'auto')
+ # We don't know the type of prop (bool, string) but need to differentiate
+ # between a set value (bool) or the fallback value (string), so convert to
+ # a string and check the string value.
+--
+2.34.1
+
diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a2904b..c41a12fe81 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
+ select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_XORG7
help
Cairo is a 2D graphics library with support for multiple
output devices. Currently supported output targets include
@@ -15,34 +16,15 @@ config BR2_PACKAGE_CAIRO
if BR2_PACKAGE_CAIRO
-config BR2_PACKAGE_CAIRO_PS
- bool "postscript support"
- select BR2_PACKAGE_ZLIB
- select BR2_PACKAGE_CAIRO_PDF
-
-config BR2_PACKAGE_CAIRO_PDF
- bool "pdf support"
- select BR2_PACKAGE_ZLIB
-
config BR2_PACKAGE_CAIRO_PNG
- bool "png support"
+ bool "png support (png and svg surfaces)"
select BR2_PACKAGE_LIBPNG
- select BR2_PACKAGE_ZLIB
-
-config BR2_PACKAGE_CAIRO_SCRIPT
- bool "script support"
- select BR2_PACKAGE_CAIRO_PNG
-
-config BR2_PACKAGE_CAIRO_SVG
- bool "svg support"
- select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_PDF
config BR2_PACKAGE_CAIRO_TEE
bool "tee support"
-config BR2_PACKAGE_CAIRO_XML
- bool "xml support"
- select BR2_PACKAGE_CAIRO_PNG
+config BR2_PACKAGE_CAIRO_ZLIB
+ bool "zlib support (script, ps, pdf, and xml surfaces)"
+ select BR2_PACKAGE_ZLIB
endif
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 4515b76075..3d2a67a6c5 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -17,168 +17,96 @@ CAIRO_IGNORE_CVES += CVE-2019-6462
# 0002-Fix-mask-usage-in-image-compositor.patch
CAIRO_IGNORE_CVES += CVE-2020-35492
-CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
+CAIRO_CFLAGS = $(TARGET_CFLAGS)
+CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
# relocation truncated to fit: R_68K_GOT16O
ifeq ($(BR2_m68k_cf),y)
-CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
-endif
-
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),)
-CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
+CAIRO_CFLAGS += -mxgot
endif
# cairo can use C++11 atomics when available, so we need to link with
# libatomic for the architectures who need libatomic.
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-CAIRO_LIBS += -latomic
+CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no
-
-CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
+ -Dfontconfig=enabled \
+ -Dtests=disabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
+CAIRO_DEPENDENCIES = \
+ host-pkgconf \
+ fontconfig \
+ pixman
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no \
- --disable-directfb \
- --enable-ft \
- --enable-gobject \
- --disable-glesv2 \
- --disable-vg \
- --disable-xlib \
- --disable-xcb \
- --without-x \
- --disable-xlib-xrender \
- --disable-ps \
- --disable-pdf \
- --enable-png \
- --enable-script \
- --disable-svg \
- --disable-tee \
- --disable-xml
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dpng=enabled \
+ -Dtee=disabled \
+ -Dxcb=disabled \
+ -Dxlib=disabled \
+ -Dzlib=enabled \
+ -Dtests=disabled \
+ -Dglib=enabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
host-fontconfig \
host-libglib2 \
host-libpng \
host-pixman \
- host-pkgconf
+ host-pkgconf \
+ host-zlib
-# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
-# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
-# (which is experimental)
-ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
-CAIRO_CONF_OPTS += --enable-directfb
-CAIRO_DEPENDENCIES += directfb
-else
-CAIRO_CONF_OPTS += --disable-directfb
+ifeq ($(BR2_PACKAGE_LZO),y)
+CAIRO_DEPENDENCIES += lzo
endif
ifeq ($(BR2_PACKAGE_FREETYPE),y)
-CAIRO_CONF_OPTS += --enable-ft
+CAIRO_CONF_OPTS += -Dfreetype=enabled
CAIRO_DEPENDENCIES += freetype
else
-CAIRO_CONF_OPTS += --disable-ft
-endif
-
-ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
-CAIRO_DEPENDENCIES += libexecinfo
-CAIRO_LIBS += -lexecinfo
+CAIRO_CONF_OPTS += -Dfreetype=disabled
endif
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
-CAIRO_CONF_OPTS += --enable-gobject
+CAIRO_CONF_OPTS += -Dglib=enabled
CAIRO_DEPENDENCIES += libglib2
else
-CAIRO_CONF_OPTS += --disable-gobject
-endif
-
-# Can use GL or GLESv2 but not both
-ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
-CAIRO_CONF_OPTS += --enable-gl --disable-glesv2
-CAIRO_DEPENDENCIES += libgl
-else
-ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
-CAIRO_CONF_OPTS += --disable-gl --enable-glesv2
-CAIRO_DEPENDENCIES += libgles
-else
-CAIRO_CONF_OPTS += --disable-gl --disable-glesv2
-endif
-endif
-
-ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
-CAIRO_CONF_OPTS += --enable-vg
-CAIRO_DEPENDENCIES += libopenvg
-else
-CAIRO_CONF_OPTS += --disable-vg
-endif
-
-ifeq ($(BR2_PACKAGE_LZO),y)
-CAIRO_DEPENDENCIES += lzo
+CAIRO_CONF_OPTS += -Dglib=disabled
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
-CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext
-else
-CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x
-endif
-
-ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
-CAIRO_CONF_OPTS += --enable-xlib-xrender
-CAIRO_DEPENDENCIES += xlib_libXrender
-else
-CAIRO_CONF_OPTS += --disable-xlib-xrender
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
-CAIRO_CONF_OPTS += --enable-ps
-CAIRO_DEPENDENCIES += zlib
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += --disable-ps
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
-CAIRO_CONF_OPTS += --enable-pdf
-CAIRO_DEPENDENCIES += zlib
-else
-CAIRO_CONF_OPTS += --disable-pdf
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
-CAIRO_CONF_OPTS += --enable-png
+CAIRO_CONF_OPTS += -Dpng=enabled
CAIRO_DEPENDENCIES += libpng
else
-CAIRO_CONF_OPTS += --disable-png
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y)
-CAIRO_CONF_OPTS += --enable-script
-else
-CAIRO_CONF_OPTS += --disable-script
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
-CAIRO_CONF_OPTS += --enable-svg
-else
-CAIRO_CONF_OPTS += --disable-svg
+CAIRO_CONF_OPTS += -Dpng=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
-CAIRO_CONF_OPTS += --enable-tee
+CAIRO_CONF_OPTS += -Dtee=enabled
else
-CAIRO_CONF_OPTS += --disable-tee
+CAIRO_CONF_OPTS += -Dtee=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_XML),y)
-CAIRO_CONF_OPTS += --enable-xml
+ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
+CAIRO_CONF_OPTS += -Dzlib=enabled
+CAIRO_DEPENDENCIES += zlib
else
-CAIRO_CONF_OPTS += --disable-xml
+CAIRO_CONF_OPTS += -Dzlib=disabled
endif
-$(eval $(autotools-package))
-$(eval $(host-autotools-package))
+$(eval $(meson-package))
+$(eval $(host-meson-package))
diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
index f2888b2f51..f8821ba246 100644
--- a/package/libgtk2/Config.in
+++ b/package/libgtk2/Config.in
@@ -9,9 +9,8 @@ config BR2_PACKAGE_LIBGTK2
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
select BR2_PACKAGE_AT_SPI2_CORE
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_PDF
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PANGO
select BR2_PACKAGE_GDK_PIXBUF
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
index 34b8d49eb3..9f9a081ecb 100644
--- a/package/libgtk3/Config.in
+++ b/package/libgtk3/Config.in
@@ -25,9 +25,8 @@ config BR2_PACKAGE_LIBGTK3
BR2_PACKAGE_HAS_LIBGL
select BR2_PACKAGE_AT_SPI2_CORE
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_PDF
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_LIBEPOXY
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PANGO
diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
index 270b524b37..d74359dfc9 100644
--- a/package/librsvg/Config.in
+++ b/package/librsvg/Config.in
@@ -9,7 +9,7 @@ config BR2_PACKAGE_LIBRSVG
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_SCRIPT
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_GDK_PIXBUF
select BR2_PACKAGE_HOST_RUSTC
select BR2_PACKAGE_LIBGLIB2
diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
index 9577c69bf0..4602e93c2a 100644
--- a/package/libsvg-cairo/Config.in
+++ b/package/libsvg-cairo/Config.in
@@ -1,7 +1,7 @@
config BR2_PACKAGE_LIBSVG_CAIRO
bool "libsvg-cairo"
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
select BR2_PACKAGE_LIBSVG
help
Libsvg-cairo provides the ability to render SVG content from
diff --git a/package/rrdtool/Config.in b/package/rrdtool/Config.in
index 5ffdc92618..d954fd1214 100644
--- a/package/rrdtool/Config.in
+++ b/package/rrdtool/Config.in
@@ -19,10 +19,8 @@ config BR2_PACKAGE_RRDTOOL_RRDGRAPH
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
depends on BR2_INSTALL_LIBSTDCPP # freetype support from pango
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PDF
select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_PANGO
help
This enables the graphing capabilities ('rrdgraph').
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v8 2/2] package/cairo: bump to 1.18.0
2024-02-05 21:30 ` [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system Thomas Devoogdt
@ 2024-02-05 21:30 ` Thomas Devoogdt
2024-02-07 16:17 ` [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system Peter Korsgaard
1 sibling, 0 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-02-05 21:30 UTC (permalink / raw)
To: thomas
Cc: eric.le.bihan.dev, yann.morin.1998, thomas.petazzoni, buildroot,
aperez, fontaine.fabrice
News:
- https://www.cairographics.org/news/cairo-1.17.8/
- https://www.cairographics.org/news/cairo-1.18.0/
Some options are renamed/dropped so fix that along.
- GL and GLES drawing has been dropped in 1.17.8.
- The XML surface has been removed in 1.18.0.
- xlib-xcb was added [1]
Patches:
- drop 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch, upstream: [2]
- drop 0002-Fix-mask-usage-in-image-compositor.patch, upstream: [3]
- drop 0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch, upstream: [4]
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/3468c67fe91f0c37e0ec5d335082653a6fa609b6
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be
[4]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
v7: rebased on v7-0001-package-cairo-move-to-the-meson-build-system
v8: forgot .checkpackageignore
---
.checkpackageignore | 2 -
...or_tolerance_normalized-fix-infinite.patch | 39 ------------
...rivate.h-fix-missing-FT_Color-error.patch} | 0
...2-Fix-mask-usage-in-image-compositor.patch | 56 -----------------
...-IPC_RMID_DEFERRED_RELEASE-check-wh.patch} | 0
...ping-of-run-check-for-IPC_RMID_DEFER.patch | 62 -------------------
package/cairo/cairo.hash | 6 +-
package/cairo/cairo.mk | 21 ++++---
8 files changed, 14 insertions(+), 172 deletions(-)
delete mode 100644 package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
rename package/cairo/{0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch => 0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch} (100%)
delete mode 100644 package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
rename package/cairo/{0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch => 0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch} (100%)
delete mode 100644 package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
diff --git a/.checkpackageignore b/.checkpackageignore
index 348cf3d289..86a774139a 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -227,8 +227,6 @@ package/c-icap/0001-Required-fixes-to-compile-and-run-under-cygwin.patch Upstrea
package/c-icap/S96cicap Indent Shellcheck Variables
package/ca-certificates/0001-mozilla-certdata2pem.py-make-cryptography-module-opt.patch Upstream
package/cache-calibrator/0001-Fix-conflicting-round-function.patch Upstream
-package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch Upstream
-package/cairo/0002-Fix-mask-usage-in-image-compositor.patch Upstream
package/caps/0001-Fix-stdint-types-with-musl.patch Upstream
package/cdrkit/0001-no-rcmd.patch Upstream
package/cdrkit/0002-define-__THROW-to-avoid-build-issue-with-musl.patch Upstream
diff --git a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
deleted file mode 100644
index 078e90fa42..0000000000
--- a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-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
-
-[Retrieved from:
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- 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/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
similarity index 100%
rename from package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
rename to package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
diff --git a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
deleted file mode 100644
index 54a95593c5..0000000000
--- a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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
-
-[Retrieved from
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be]
-[Removed changes in test/ directory to remove binary diff so that the
-patch can be applied by `patch` tool]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- src/cairo-image-compositor.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
-index bbf4cf228..2352c478e 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) {
-@@ -2646,7 +2646,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) {
-@@ -2675,7 +2675,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;
---
-2.38.1
-
diff --git a/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch b/package/cairo/0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
similarity index 100%
rename from package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
rename to package/cairo/0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
diff --git a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
deleted file mode 100644
index 193a210391..0000000000
--- a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 39cbc3c1f1caf558188bd2203c976bae8de2f6a7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
-Date: Thu, 25 Feb 2021 10:52:45 +0000
-Subject: [PATCH] meson: allow skipping of run check for
- IPC_RMID_DEFERRED_RELEASE
-
-The run check is particularly annoying in cross-compile scenarios,
-so allow bypassing the check by having the user provide the value
-via a cross file or native file:
-
- [properties]
- ipc_rmid_deferred_release = true
-
-Closes #408
-
-Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
-Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
----
- meson.build | 25 ++++++++++++++++++++-----
- 1 file changed, 20 insertions(+), 5 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index b159b4071..5f593e54d 100644
---- a/meson.build
-+++ b/meson.build
-@@ -264,13 +264,28 @@ if x11_dep.found() and xext_dep.found()
- ['X11/extensions/shmstr.h', {'extra-headers': extra_headers}],
- ]
- deps += [x11_dep, xext_dep]
-- res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
-- dependencies: [x11_dep, xext_dep],
-- name: 'shmctl IPC_RMID allowes subsequent attaches')
-
-- if res.returncode() == 0
-- conf.set('IPC_RMID_DEFERRED_RELEASE', 1)
-+ # Can skip the run check by providing the result in a cross file or
-+ # native file as bool property value.
-+ prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
-+ # We don't know the type of prop (bool, string) but need to differentiate
-+ # between a set value (bool) or the fallback value (string), so convert to
-+ # a string and chec the string value.
-+ prop_str = '@0@'.format(prop)
-+ if prop_str in ['true', 'false']
-+ ipc_rmid_deferred_release = (prop_str == 'true')
-+ message('IPC_RMID_DEFERRED_RELEASE:', ipc_rmid_deferred_release)
-+ elif prop_str == 'auto'
-+ res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
-+ dependencies: [x11_dep, xext_dep],
-+ name: 'shmctl IPC_RMID allowes subsequent attaches')
-+
-+ ipc_rmid_deferred_release = (res.returncode() == 0)
-+ else
-+ error('Unexpected value for external property ipc_rmid_deferred_release: @0@'.format(prop_str))
- endif
-+
-+ conf.set10('IPC_RMID_DEFERRED_RELEASE', ipc_rmid_deferred_release)
- endif
-
- if feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
---
-2.34.1
-
diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
index fca9ff678c..df9c693bad 100644
--- a/package/cairo/cairo.hash
+++ b/package/cairo/cairo.hash
@@ -1,7 +1,5 @@
-# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
-sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
-# Calculated based on the hash above
-sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
+# From https://www.cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum
+sha256 243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 cairo-1.18.0.tar.xz
# Hash for license files:
sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 3d2a67a6c5..4ace04ebbe 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -4,19 +4,14 @@
#
################################################################################
-CAIRO_VERSION = 1.17.4
+CAIRO_VERSION = 1.18.0
CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
CAIRO_CPE_ID_VENDOR = cairographics
-CAIRO_SITE = http://cairographics.org/snapshots
+CAIRO_SITE = http://cairographics.org/releases
CAIRO_INSTALL_STAGING = YES
-# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
-CAIRO_IGNORE_CVES += CVE-2019-6462
-# 0002-Fix-mask-usage-in-image-compositor.patch
-CAIRO_IGNORE_CVES += CVE-2020-35492
-
CAIRO_CFLAGS = $(TARGET_CFLAGS)
CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
@@ -32,9 +27,13 @@ CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
+ -Dquartz=disabled \
-Dtests=disabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
CAIRO_DEPENDENCIES = \
host-pkgconf \
@@ -43,9 +42,11 @@ CAIRO_DEPENDENCIES = \
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
-Dfreetype=enabled \
-Dpng=enabled \
+ -Dquartz=disabled \
-Dtee=disabled \
-Dxcb=disabled \
-Dxlib=disabled \
@@ -53,6 +54,8 @@ HOST_CAIRO_CONF_OPTS = \
-Dtests=disabled \
-Dglib=enabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
@@ -82,10 +85,10 @@ CAIRO_CONF_OPTS += -Dglib=disabled
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled -Dxlib-xcb=enabled
CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled -Dxlib-xcb=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system
2024-02-05 21:30 ` [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system Thomas Devoogdt
2024-02-05 21:30 ` [Buildroot] [PATCH v8 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
@ 2024-02-07 16:17 ` Peter Korsgaard
2024-02-07 19:15 ` Thomas Devoogdt
1 sibling, 1 reply; 24+ messages in thread
From: Peter Korsgaard @ 2024-02-07 16:17 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: eric.le.bihan.dev, fontaine.fabrice, thomas.petazzoni, buildroot,
aperez, yann.morin.1998
>>>>> "Thomas" == Thomas Devoogdt <thomas@devoogdt.com> writes:
> - Moved BR2_PACKAGE_CAIRO_{SCRIPT,PS,PDF,XML} to Config.in.legacy
> since they are not selectable anymore in the meson-build options.
> BR2_PACKAGE_CAIRO_ZLIB serves for all of them now.
> - Moved BR2_PACKAGE_CAIRO_SVG to Config.in.legacy since the PNG
> option already selects that one. This is now in sync with the
> meson build options.
> - Note that the dependencies for the various options are slightly changed,
> but there is not much mentioned about that, the meson introduction is done
> in one big commit: [1].
> - Added xlib_libXrender dependency, which was already required
> before meson, it just came to my attention since it's a hard
> error now.
In what configuration do you see that? I just did a test with current
master (commit 6008f2b1b901b) and the following defconfig without
issues:
BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_VFP=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_CAIRO=y
# BR2_TARGET_ROOTFS_TAR is not set
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system
2024-02-07 16:17 ` [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system Peter Korsgaard
@ 2024-02-07 19:15 ` Thomas Devoogdt
2024-02-07 19:31 ` [Buildroot] [PATCH v9 " Thomas Devoogdt
0 siblings, 1 reply; 24+ messages in thread
From: Thomas Devoogdt @ 2024-02-07 19:15 UTC (permalink / raw)
To: Peter Korsgaard
Cc: eric.le.bihan.dev, Thomas Devoogdt, yann.morin.1998,
thomas.petazzoni, buildroot, aperez, fontaine.fabrice
Hi Peter,
I compiled cairo with the same config,
once with autotools (current master), and once with the meson patch.
Compile with autotools-package:
CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
cairo (version 1.17.4 [snapshot]) will be compiled with:
The following surface backends:
...
Xlib: yes
Xlib Xrender: no (disabled, use --enable-xlib-xrender to enable)
XCB: yes
The following functions:
...
X11-xcb functions: no (disabled, use --enable-xlib-xcb to enable)
XCB-shm functions: yes
Compile with meson-package:
CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
cairo 1.17.4
Surface Backends
...
Xlib : YES
Xlib Xrender : YES
XCB : YES
Functions
...
X11-xcb : YES
XCB-shm : YES
So it seems that autotools just didn't compile xrender support,
while meson does require it.
See https://gitlab.freedesktop.org/cairo/cairo/-/blame/1.17.4/meson.build#L277.
So it seems that the git commit message should be adapted slightly.
Kr,
Thomas
Op wo 7 feb 2024 om 17:17 schreef Peter Korsgaard <peter@korsgaard.com>:
>
> >>>>> "Thomas" == Thomas Devoogdt <thomas@devoogdt.com> writes:
>
> > - Moved BR2_PACKAGE_CAIRO_{SCRIPT,PS,PDF,XML} to Config.in.legacy
> > since they are not selectable anymore in the meson-build options.
> > BR2_PACKAGE_CAIRO_ZLIB serves for all of them now.
>
> > - Moved BR2_PACKAGE_CAIRO_SVG to Config.in.legacy since the PNG
> > option already selects that one. This is now in sync with the
> > meson build options.
>
> > - Note that the dependencies for the various options are slightly changed,
> > but there is not much mentioned about that, the meson introduction is done
> > in one big commit: [1].
>
> > - Added xlib_libXrender dependency, which was already required
> > before meson, it just came to my attention since it's a hard
> > error now.
>
> In what configuration do you see that? I just did a test with current
> master (commit 6008f2b1b901b) and the following defconfig without
> issues:
>
> BR2_arm=y
> BR2_cortex_a9=y
> BR2_ARM_ENABLE_VFP=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
> BR2_INIT_NONE=y
> BR2_SYSTEM_BIN_SH_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> BR2_PACKAGE_XORG7=y
> BR2_PACKAGE_CAIRO=y
> # BR2_TARGET_ROOTFS_TAR is not set
>
> --
> Bye, Peter Korsgaard
>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v9 1/2] package/cairo: move to the meson build system
2024-02-07 19:15 ` Thomas Devoogdt
@ 2024-02-07 19:31 ` Thomas Devoogdt
2024-02-07 19:31 ` [Buildroot] [PATCH v9 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
2024-07-14 22:07 ` [Buildroot] [PATCH v9 1/2] package/cairo: move to the meson build system Arnout Vandecappelle via buildroot
0 siblings, 2 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-02-07 19:31 UTC (permalink / raw)
To: thomas
Cc: eric.le.bihan.dev, yann.morin.1998, thomas.petazzoni, buildroot,
aperez, fontaine.fabrice
- Moved BR2_PACKAGE_CAIRO_{SCRIPT,PS,PDF,XML} to Config.in.legacy
since they are not selectable anymore in the meson-build options.
BR2_PACKAGE_CAIRO_ZLIB serves for all of them now.
- Moved BR2_PACKAGE_CAIRO_SVG to Config.in.legacy since the PNG
option already selects that one. This is now in sync with the
meson build options.
- Note that the dependencies for the various options are slightly changed,
but there is not much mentioned about that, the meson introduction is done
in one big commit: [1].
- Added xlib_libXrender dependency, which was optional when using
autotools (--enable-xlib-xrender), but became mandatory when using
meson [2].
- Added two patches to fix cross compiling, upstream: [3]
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/596a82f2d185b101bd74645492821fe2f9e0daa0
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/blame/1.17.4/meson.build#L277
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v2: added -std=gnu11 (allow inline int declaration in if loop, 99 caused some directives problems)
v3: enabled host-zlib, needed for librsvg
v4: also added gnu11 for host-cairo compiling (fixes my compilation on a gcc 4.9.2 based system)
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
v6: fix host-zlib option (again)
v7: reworked patch by moving the old config options to legacy and by restoring their original order
v9: update git message wrt xlib_libXrender + made ipc_rmid_deferred_release false again by default
---
Config.in.legacy | 35 ++++
...ping-of-run-check-for-IPC_RMID_DEFER.patch | 62 +++++++
...p-IPC_RMID_DEFERRED_RELEASE-check-wh.patch | 42 +++++
package/cairo/Config.in | 28 +--
package/cairo/cairo.mk | 160 +++++-------------
package/libgtk2/Config.in | 5 +-
package/libgtk3/Config.in | 5 +-
package/librsvg/Config.in | 2 +-
package/libsvg-cairo/Config.in | 2 +-
package/rrdtool/Config.in | 4 +-
10 files changed, 195 insertions(+), 150 deletions(-)
create mode 100644 package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
create mode 100644 package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
diff --git a/Config.in.legacy b/Config.in.legacy
index 82387338d9..431552afe7 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -146,6 +146,41 @@ endif
comment "Legacy options removed in 2024.02"
+config BR2_PACKAGE_CAIRO_SVG
+ bool "cairo svg support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_PNG
+ help
+ Cairo SVG is compiled together with PNG, so no need to have this config.
+
+config BR2_PACKAGE_CAIRO_SCRIPT
+ bool "cairo script support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo script got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_PS
+ bool "cairo postscript support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo PS got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_PDF
+ bool "cairo pdf support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo PDF got merged in to cairo zlib with the introduction of meson.
+
+config BR2_PACKAGE_CAIRO_XML
+ bool "cairo xml support"
+ select BR2_LEGACY
+ select BR2_PACKAGE_CAIRO_ZLIB
+ help
+ Cairo XML got merged in to cairo zlib with the introduction of meson.
+
config BR2_KERNEL_HEADERS_4_14
bool "kernel headers version 4.14.x are no longer supported"
select BR2_LEGACY
diff --git a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
new file mode 100644
index 0000000000..193a210391
--- /dev/null
+++ b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
@@ -0,0 +1,62 @@
+From 39cbc3c1f1caf558188bd2203c976bae8de2f6a7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Thu, 25 Feb 2021 10:52:45 +0000
+Subject: [PATCH] meson: allow skipping of run check for
+ IPC_RMID_DEFERRED_RELEASE
+
+The run check is particularly annoying in cross-compile scenarios,
+so allow bypassing the check by having the user provide the value
+via a cross file or native file:
+
+ [properties]
+ ipc_rmid_deferred_release = true
+
+Closes #408
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 25 ++++++++++++++++++++-----
+ 1 file changed, 20 insertions(+), 5 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index b159b4071..5f593e54d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -264,13 +264,28 @@ if x11_dep.found() and xext_dep.found()
+ ['X11/extensions/shmstr.h', {'extra-headers': extra_headers}],
+ ]
+ deps += [x11_dep, xext_dep]
+- res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
+- dependencies: [x11_dep, xext_dep],
+- name: 'shmctl IPC_RMID allowes subsequent attaches')
+
+- if res.returncode() == 0
+- conf.set('IPC_RMID_DEFERRED_RELEASE', 1)
++ # Can skip the run check by providing the result in a cross file or
++ # native file as bool property value.
++ prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
++ # We don't know the type of prop (bool, string) but need to differentiate
++ # between a set value (bool) or the fallback value (string), so convert to
++ # a string and chec the string value.
++ prop_str = '@0@'.format(prop)
++ if prop_str in ['true', 'false']
++ ipc_rmid_deferred_release = (prop_str == 'true')
++ message('IPC_RMID_DEFERRED_RELEASE:', ipc_rmid_deferred_release)
++ elif prop_str == 'auto'
++ res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
++ dependencies: [x11_dep, xext_dep],
++ name: 'shmctl IPC_RMID allowes subsequent attaches')
++
++ ipc_rmid_deferred_release = (res.returncode() == 0)
++ else
++ error('Unexpected value for external property ipc_rmid_deferred_release: @0@'.format(prop_str))
+ endif
++
++ conf.set10('IPC_RMID_DEFERRED_RELEASE', ipc_rmid_deferred_release)
+ endif
+
+ if feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
+--
+2.34.1
+
diff --git a/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch b/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
new file mode 100644
index 0000000000..157508b704
--- /dev/null
+++ b/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
@@ -0,0 +1,42 @@
+From 8d5037ed642b02cdb018e49866aa286f30a7b59a Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas@devoogdt.com>
+Date: Mon, 5 Feb 2024 17:47:07 +0100
+Subject: [PATCH] meson: always skip IPC_RMID_DEFERRED_RELEASE check when
+ cross-compiling
+
+../../br-test-pkg/bootlin-armv5-uclibc/build/cairo-1.17.4/meson.build:279:13:
+ERROR: Can not run test applications in this cross environment.
+
+Commit 1bec56ea8a931e1ae1c74cc740134497ec365267 added support to define
+ipc_rmid_deferred_release in a cross-compile config, but still kept
+the default to auto, which anyhow results in an error when cross-compiling.
+
+There is only one usage of the ipc_rmid_deferred_release compile declarative
+which was originally added in this commit: 5041b462d084de8552336275914d30c23bf5dd35.
+
+If ipc_rmid_deferred_release is set to FALSE, an additional XSync is performed.
+This doesn't sound very harmful, so that is why this commit defaults to FALSE
+and thus avoids any cross-compile errors.
+
+Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
+Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 9efe91978..6a670bf94 100644
+--- a/meson.build
++++ b/meson.build
+@@ -369,7 +369,7 @@ if x11_dep.found() and xext_dep.found()
+
+ # Can skip the run check by providing the result in a cross file or
+ # native file as bool property value.
+- prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
++ prop = meson.get_external_property('ipc_rmid_deferred_release', meson.is_cross_build() ? 'false' : 'auto')
+ # We don't know the type of prop (bool, string) but need to differentiate
+ # between a set value (bool) or the fallback value (string), so convert to
+ # a string and check the string value.
+--
+2.34.1
+
diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a2904b..c41a12fe81 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
+ select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_XORG7
help
Cairo is a 2D graphics library with support for multiple
output devices. Currently supported output targets include
@@ -15,34 +16,15 @@ config BR2_PACKAGE_CAIRO
if BR2_PACKAGE_CAIRO
-config BR2_PACKAGE_CAIRO_PS
- bool "postscript support"
- select BR2_PACKAGE_ZLIB
- select BR2_PACKAGE_CAIRO_PDF
-
-config BR2_PACKAGE_CAIRO_PDF
- bool "pdf support"
- select BR2_PACKAGE_ZLIB
-
config BR2_PACKAGE_CAIRO_PNG
- bool "png support"
+ bool "png support (png and svg surfaces)"
select BR2_PACKAGE_LIBPNG
- select BR2_PACKAGE_ZLIB
-
-config BR2_PACKAGE_CAIRO_SCRIPT
- bool "script support"
- select BR2_PACKAGE_CAIRO_PNG
-
-config BR2_PACKAGE_CAIRO_SVG
- bool "svg support"
- select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_PDF
config BR2_PACKAGE_CAIRO_TEE
bool "tee support"
-config BR2_PACKAGE_CAIRO_XML
- bool "xml support"
- select BR2_PACKAGE_CAIRO_PNG
+config BR2_PACKAGE_CAIRO_ZLIB
+ bool "zlib support (script, ps, pdf, and xml surfaces)"
+ select BR2_PACKAGE_ZLIB
endif
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 4515b76075..3d2a67a6c5 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -17,168 +17,96 @@ CAIRO_IGNORE_CVES += CVE-2019-6462
# 0002-Fix-mask-usage-in-image-compositor.patch
CAIRO_IGNORE_CVES += CVE-2020-35492
-CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
+CAIRO_CFLAGS = $(TARGET_CFLAGS)
+CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
# relocation truncated to fit: R_68K_GOT16O
ifeq ($(BR2_m68k_cf),y)
-CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
-endif
-
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),)
-CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
+CAIRO_CFLAGS += -mxgot
endif
# cairo can use C++11 atomics when available, so we need to link with
# libatomic for the architectures who need libatomic.
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-CAIRO_LIBS += -latomic
+CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no
-
-CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
+ -Dfontconfig=enabled \
+ -Dtests=disabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
+CAIRO_DEPENDENCIES = \
+ host-pkgconf \
+ fontconfig \
+ pixman
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
- --enable-trace=no \
- --enable-interpreter=no \
- --disable-directfb \
- --enable-ft \
- --enable-gobject \
- --disable-glesv2 \
- --disable-vg \
- --disable-xlib \
- --disable-xcb \
- --without-x \
- --disable-xlib-xrender \
- --disable-ps \
- --disable-pdf \
- --enable-png \
- --enable-script \
- --disable-svg \
- --disable-tee \
- --disable-xml
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dpng=enabled \
+ -Dtee=disabled \
+ -Dxcb=disabled \
+ -Dxlib=disabled \
+ -Dzlib=enabled \
+ -Dtests=disabled \
+ -Dglib=enabled \
+ -Dspectre=disabled \
+ -Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
host-fontconfig \
host-libglib2 \
host-libpng \
host-pixman \
- host-pkgconf
+ host-pkgconf \
+ host-zlib
-# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
-# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
-# (which is experimental)
-ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
-CAIRO_CONF_OPTS += --enable-directfb
-CAIRO_DEPENDENCIES += directfb
-else
-CAIRO_CONF_OPTS += --disable-directfb
+ifeq ($(BR2_PACKAGE_LZO),y)
+CAIRO_DEPENDENCIES += lzo
endif
ifeq ($(BR2_PACKAGE_FREETYPE),y)
-CAIRO_CONF_OPTS += --enable-ft
+CAIRO_CONF_OPTS += -Dfreetype=enabled
CAIRO_DEPENDENCIES += freetype
else
-CAIRO_CONF_OPTS += --disable-ft
-endif
-
-ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
-CAIRO_DEPENDENCIES += libexecinfo
-CAIRO_LIBS += -lexecinfo
+CAIRO_CONF_OPTS += -Dfreetype=disabled
endif
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
-CAIRO_CONF_OPTS += --enable-gobject
+CAIRO_CONF_OPTS += -Dglib=enabled
CAIRO_DEPENDENCIES += libglib2
else
-CAIRO_CONF_OPTS += --disable-gobject
-endif
-
-# Can use GL or GLESv2 but not both
-ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
-CAIRO_CONF_OPTS += --enable-gl --disable-glesv2
-CAIRO_DEPENDENCIES += libgl
-else
-ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
-CAIRO_CONF_OPTS += --disable-gl --enable-glesv2
-CAIRO_DEPENDENCIES += libgles
-else
-CAIRO_CONF_OPTS += --disable-gl --disable-glesv2
-endif
-endif
-
-ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
-CAIRO_CONF_OPTS += --enable-vg
-CAIRO_DEPENDENCIES += libopenvg
-else
-CAIRO_CONF_OPTS += --disable-vg
-endif
-
-ifeq ($(BR2_PACKAGE_LZO),y)
-CAIRO_DEPENDENCIES += lzo
+CAIRO_CONF_OPTS += -Dglib=disabled
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
-CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext
-else
-CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x
-endif
-
-ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
-CAIRO_CONF_OPTS += --enable-xlib-xrender
-CAIRO_DEPENDENCIES += xlib_libXrender
-else
-CAIRO_CONF_OPTS += --disable-xlib-xrender
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
-CAIRO_CONF_OPTS += --enable-ps
-CAIRO_DEPENDENCIES += zlib
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += --disable-ps
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
-CAIRO_CONF_OPTS += --enable-pdf
-CAIRO_DEPENDENCIES += zlib
-else
-CAIRO_CONF_OPTS += --disable-pdf
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
-CAIRO_CONF_OPTS += --enable-png
+CAIRO_CONF_OPTS += -Dpng=enabled
CAIRO_DEPENDENCIES += libpng
else
-CAIRO_CONF_OPTS += --disable-png
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y)
-CAIRO_CONF_OPTS += --enable-script
-else
-CAIRO_CONF_OPTS += --disable-script
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
-CAIRO_CONF_OPTS += --enable-svg
-else
-CAIRO_CONF_OPTS += --disable-svg
+CAIRO_CONF_OPTS += -Dpng=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
-CAIRO_CONF_OPTS += --enable-tee
+CAIRO_CONF_OPTS += -Dtee=enabled
else
-CAIRO_CONF_OPTS += --disable-tee
+CAIRO_CONF_OPTS += -Dtee=disabled
endif
-ifeq ($(BR2_PACKAGE_CAIRO_XML),y)
-CAIRO_CONF_OPTS += --enable-xml
+ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
+CAIRO_CONF_OPTS += -Dzlib=enabled
+CAIRO_DEPENDENCIES += zlib
else
-CAIRO_CONF_OPTS += --disable-xml
+CAIRO_CONF_OPTS += -Dzlib=disabled
endif
-$(eval $(autotools-package))
-$(eval $(host-autotools-package))
+$(eval $(meson-package))
+$(eval $(host-meson-package))
diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
index f2888b2f51..f8821ba246 100644
--- a/package/libgtk2/Config.in
+++ b/package/libgtk2/Config.in
@@ -9,9 +9,8 @@ config BR2_PACKAGE_LIBGTK2
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
select BR2_PACKAGE_AT_SPI2_CORE
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_PDF
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PANGO
select BR2_PACKAGE_GDK_PIXBUF
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
index 34b8d49eb3..9f9a081ecb 100644
--- a/package/libgtk3/Config.in
+++ b/package/libgtk3/Config.in
@@ -25,9 +25,8 @@ config BR2_PACKAGE_LIBGTK3
BR2_PACKAGE_HAS_LIBGL
select BR2_PACKAGE_AT_SPI2_CORE
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_PDF
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_LIBEPOXY
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PANGO
diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
index 270b524b37..d74359dfc9 100644
--- a/package/librsvg/Config.in
+++ b/package/librsvg/Config.in
@@ -9,7 +9,7 @@ config BR2_PACKAGE_LIBRSVG
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_SCRIPT
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_GDK_PIXBUF
select BR2_PACKAGE_HOST_RUSTC
select BR2_PACKAGE_LIBGLIB2
diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
index 9577c69bf0..4602e93c2a 100644
--- a/package/libsvg-cairo/Config.in
+++ b/package/libsvg-cairo/Config.in
@@ -1,7 +1,7 @@
config BR2_PACKAGE_LIBSVG_CAIRO
bool "libsvg-cairo"
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_PNG
select BR2_PACKAGE_LIBSVG
help
Libsvg-cairo provides the ability to render SVG content from
diff --git a/package/rrdtool/Config.in b/package/rrdtool/Config.in
index 5ffdc92618..d954fd1214 100644
--- a/package/rrdtool/Config.in
+++ b/package/rrdtool/Config.in
@@ -19,10 +19,8 @@ config BR2_PACKAGE_RRDTOOL_RRDGRAPH
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
depends on BR2_INSTALL_LIBSTDCPP # freetype support from pango
select BR2_PACKAGE_CAIRO
- select BR2_PACKAGE_CAIRO_PDF
select BR2_PACKAGE_CAIRO_PNG
- select BR2_PACKAGE_CAIRO_PS
- select BR2_PACKAGE_CAIRO_SVG
+ select BR2_PACKAGE_CAIRO_ZLIB
select BR2_PACKAGE_PANGO
help
This enables the graphing capabilities ('rrdgraph').
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Buildroot] [PATCH v9 2/2] package/cairo: bump to 1.18.0
2024-02-07 19:31 ` [Buildroot] [PATCH v9 " Thomas Devoogdt
@ 2024-02-07 19:31 ` Thomas Devoogdt
2024-07-14 22:07 ` [Buildroot] [PATCH v9 1/2] package/cairo: move to the meson build system Arnout Vandecappelle via buildroot
1 sibling, 0 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-02-07 19:31 UTC (permalink / raw)
To: thomas
Cc: eric.le.bihan.dev, yann.morin.1998, thomas.petazzoni, buildroot,
aperez, fontaine.fabrice
News:
- https://www.cairographics.org/news/cairo-1.17.8/
- https://www.cairographics.org/news/cairo-1.18.0/
Some options are renamed/dropped so fix that along.
- GL and GLES drawing has been dropped in 1.17.8.
- The XML surface has been removed in 1.18.0.
- xlib-xcb was added [1]
Patches:
- drop 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch, upstream: [2]
- drop 0002-Fix-mask-usage-in-image-compositor.patch, upstream: [3]
- drop 0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch, upstream: [4]
[1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/3468c67fe91f0c37e0ec5d335082653a6fa609b6
[2]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0
[3]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be
[4]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
---
v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
v7: rebased on v7-0001-package-cairo-move-to-the-meson-build-system
v8: forgot .checkpackageignore
v9: n/a
---
.checkpackageignore | 2 -
...or_tolerance_normalized-fix-infinite.patch | 39 ------------
...rivate.h-fix-missing-FT_Color-error.patch} | 0
...2-Fix-mask-usage-in-image-compositor.patch | 56 -----------------
...-IPC_RMID_DEFERRED_RELEASE-check-wh.patch} | 0
...ping-of-run-check-for-IPC_RMID_DEFER.patch | 62 -------------------
package/cairo/cairo.hash | 6 +-
package/cairo/cairo.mk | 21 ++++---
8 files changed, 14 insertions(+), 172 deletions(-)
delete mode 100644 package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
rename package/cairo/{0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch => 0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch} (100%)
delete mode 100644 package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
rename package/cairo/{0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch => 0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch} (100%)
delete mode 100644 package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
diff --git a/.checkpackageignore b/.checkpackageignore
index 348cf3d289..86a774139a 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -227,8 +227,6 @@ package/c-icap/0001-Required-fixes-to-compile-and-run-under-cygwin.patch Upstrea
package/c-icap/S96cicap Indent Shellcheck Variables
package/ca-certificates/0001-mozilla-certdata2pem.py-make-cryptography-module-opt.patch Upstream
package/cache-calibrator/0001-Fix-conflicting-round-function.patch Upstream
-package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch Upstream
-package/cairo/0002-Fix-mask-usage-in-image-compositor.patch Upstream
package/caps/0001-Fix-stdint-types-with-musl.patch Upstream
package/cdrkit/0001-no-rcmd.patch Upstream
package/cdrkit/0002-define-__THROW-to-avoid-build-issue-with-musl.patch Upstream
diff --git a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch b/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
deleted file mode 100644
index 078e90fa42..0000000000
--- a/package/cairo/0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-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
-
-[Retrieved from:
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- 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/package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch b/package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
similarity index 100%
rename from package/cairo/0003-cairo-ft-private.h-fix-missing-FT_Color-error.patch
rename to package/cairo/0001-cairo-ft-private.h-fix-missing-FT_Color-error.patch
diff --git a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch b/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
deleted file mode 100644
index 54a95593c5..0000000000
--- a/package/cairo/0002-Fix-mask-usage-in-image-compositor.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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
-
-[Retrieved from
-https://gitlab.freedesktop.org/cairo/cairo/-/commit/03a820b173ed1fdef6ff14b4468f5dbc02ff59be]
-[Removed changes in test/ directory to remove binary diff so that the
-patch can be applied by `patch` tool]
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
----
- src/cairo-image-compositor.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
-index bbf4cf228..2352c478e 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) {
-@@ -2646,7 +2646,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) {
-@@ -2675,7 +2675,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;
---
-2.38.1
-
diff --git a/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch b/package/cairo/0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
similarity index 100%
rename from package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
rename to package/cairo/0002-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
diff --git a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
deleted file mode 100644
index 193a210391..0000000000
--- a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 39cbc3c1f1caf558188bd2203c976bae8de2f6a7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
-Date: Thu, 25 Feb 2021 10:52:45 +0000
-Subject: [PATCH] meson: allow skipping of run check for
- IPC_RMID_DEFERRED_RELEASE
-
-The run check is particularly annoying in cross-compile scenarios,
-so allow bypassing the check by having the user provide the value
-via a cross file or native file:
-
- [properties]
- ipc_rmid_deferred_release = true
-
-Closes #408
-
-Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
-Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
----
- meson.build | 25 ++++++++++++++++++++-----
- 1 file changed, 20 insertions(+), 5 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index b159b4071..5f593e54d 100644
---- a/meson.build
-+++ b/meson.build
-@@ -264,13 +264,28 @@ if x11_dep.found() and xext_dep.found()
- ['X11/extensions/shmstr.h', {'extra-headers': extra_headers}],
- ]
- deps += [x11_dep, xext_dep]
-- res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
-- dependencies: [x11_dep, xext_dep],
-- name: 'shmctl IPC_RMID allowes subsequent attaches')
-
-- if res.returncode() == 0
-- conf.set('IPC_RMID_DEFERRED_RELEASE', 1)
-+ # Can skip the run check by providing the result in a cross file or
-+ # native file as bool property value.
-+ prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
-+ # We don't know the type of prop (bool, string) but need to differentiate
-+ # between a set value (bool) or the fallback value (string), so convert to
-+ # a string and chec the string value.
-+ prop_str = '@0@'.format(prop)
-+ if prop_str in ['true', 'false']
-+ ipc_rmid_deferred_release = (prop_str == 'true')
-+ message('IPC_RMID_DEFERRED_RELEASE:', ipc_rmid_deferred_release)
-+ elif prop_str == 'auto'
-+ res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
-+ dependencies: [x11_dep, xext_dep],
-+ name: 'shmctl IPC_RMID allowes subsequent attaches')
-+
-+ ipc_rmid_deferred_release = (res.returncode() == 0)
-+ else
-+ error('Unexpected value for external property ipc_rmid_deferred_release: @0@'.format(prop_str))
- endif
-+
-+ conf.set10('IPC_RMID_DEFERRED_RELEASE', ipc_rmid_deferred_release)
- endif
-
- if feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
---
-2.34.1
-
diff --git a/package/cairo/cairo.hash b/package/cairo/cairo.hash
index fca9ff678c..df9c693bad 100644
--- a/package/cairo/cairo.hash
+++ b/package/cairo/cairo.hash
@@ -1,7 +1,5 @@
-# From https://www.cairographics.org/snapshots/cairo-1.17.4.tar.xz.sha1
-sha1 68712ae1039b114347be3b7200bc1c901d47a636 cairo-1.17.4.tar.xz
-# Calculated based on the hash above
-sha256 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705 cairo-1.17.4.tar.xz
+# From https://www.cairographics.org/releases/cairo-1.18.0.tar.xz.sha256sum
+sha256 243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64 cairo-1.18.0.tar.xz
# Hash for license files:
sha256 67228a9f7c5f9b67c58f556f1be178f62da4d9e2e6285318d8c74d567255abdf COPYING
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 3d2a67a6c5..4ace04ebbe 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -4,19 +4,14 @@
#
################################################################################
-CAIRO_VERSION = 1.17.4
+CAIRO_VERSION = 1.18.0
CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
CAIRO_CPE_ID_VENDOR = cairographics
-CAIRO_SITE = http://cairographics.org/snapshots
+CAIRO_SITE = http://cairographics.org/releases
CAIRO_INSTALL_STAGING = YES
-# 0001-_arc_max_angle_for_tolerance_normalized-fix-infinite.patch
-CAIRO_IGNORE_CVES += CVE-2019-6462
-# 0002-Fix-mask-usage-in-image-compositor.patch
-CAIRO_IGNORE_CVES += CVE-2020-35492
-
CAIRO_CFLAGS = $(TARGET_CFLAGS)
CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
@@ -32,9 +27,13 @@ CAIRO_LDFLAGS += -latomic
endif
CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
+ -Dquartz=disabled \
-Dtests=disabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
CAIRO_DEPENDENCIES = \
host-pkgconf \
@@ -43,9 +42,11 @@ CAIRO_DEPENDENCIES = \
# Just the bare minimum to make other host-* packages happy
HOST_CAIRO_CONF_OPTS = \
+ -Ddwrite=disabled \
-Dfontconfig=enabled \
-Dfreetype=enabled \
-Dpng=enabled \
+ -Dquartz=disabled \
-Dtee=disabled \
-Dxcb=disabled \
-Dxlib=disabled \
@@ -53,6 +54,8 @@ HOST_CAIRO_CONF_OPTS = \
-Dtests=disabled \
-Dglib=enabled \
-Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dgtk_doc=false \
-Dc_std=gnu11
HOST_CAIRO_DEPENDENCIES = \
host-freetype \
@@ -82,10 +85,10 @@ CAIRO_CONF_OPTS += -Dglib=disabled
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
-CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
+CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled -Dxlib-xcb=enabled
CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
else
-CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
+CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled -Dxlib-xcb=disabled
endif
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v9 1/2] package/cairo: move to the meson build system
2024-02-07 19:31 ` [Buildroot] [PATCH v9 " Thomas Devoogdt
2024-02-07 19:31 ` [Buildroot] [PATCH v9 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
@ 2024-07-14 22:07 ` Arnout Vandecappelle via buildroot
2024-07-17 18:09 ` Thomas Petazzoni via buildroot
1 sibling, 1 reply; 24+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2024-07-14 22:07 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: eric.le.bihan.dev, yann.morin.1998, thomas.petazzoni, buildroot,
aperez, fontaine.fabrice
On 07/02/2024 20:31, Thomas Devoogdt wrote:
> - Moved BR2_PACKAGE_CAIRO_{SCRIPT,PS,PDF,XML} to Config.in.legacy
> since they are not selectable anymore in the meson-build options.
> BR2_PACKAGE_CAIRO_ZLIB serves for all of them now.
>
> - Moved BR2_PACKAGE_CAIRO_SVG to Config.in.legacy since the PNG
> option already selects that one. This is now in sync with the
> meson build options.
>
> - Note that the dependencies for the various options are slightly changed,
> but there is not much mentioned about that, the meson introduction is done
> in one big commit: [1].
>
> - Added xlib_libXrender dependency, which was optional when using
> autotools (--enable-xlib-xrender), but became mandatory when using
> meson [2].
>
> - Added two patches to fix cross compiling, upstream: [3]
>
> [1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/596a82f2d185b101bd74645492821fe2f9e0daa0
> [2]: https://gitlab.freedesktop.org/cairo/cairo/-/blame/1.17.4/meson.build#L277
> [3]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
>
> Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
Both applied to master, thanks.
Regards,
Arnout
> ---
> v2: added -std=gnu11 (allow inline int declaration in if loop, 99 caused some directives problems)
> v3: enabled host-zlib, needed for librsvg
> v4: also added gnu11 for host-cairo compiling (fixes my compilation on a gcc 4.9.2 based system)
> v5: split in 3 commits: https://lore.kernel.org/buildroot/20240105101105.6a181dcd@windsurf/
> v6: fix host-zlib option (again)
> v7: reworked patch by moving the old config options to legacy and by restoring their original order
> v9: update git message wrt xlib_libXrender + made ipc_rmid_deferred_release false again by default
> ---
> Config.in.legacy | 35 ++++
> ...ping-of-run-check-for-IPC_RMID_DEFER.patch | 62 +++++++
> ...p-IPC_RMID_DEFERRED_RELEASE-check-wh.patch | 42 +++++
> package/cairo/Config.in | 28 +--
> package/cairo/cairo.mk | 160 +++++-------------
> package/libgtk2/Config.in | 5 +-
> package/libgtk3/Config.in | 5 +-
> package/librsvg/Config.in | 2 +-
> package/libsvg-cairo/Config.in | 2 +-
> package/rrdtool/Config.in | 4 +-
> 10 files changed, 195 insertions(+), 150 deletions(-)
> create mode 100644 package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
> create mode 100644 package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
>
> diff --git a/Config.in.legacy b/Config.in.legacy
> index 82387338d9..431552afe7 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -146,6 +146,41 @@ endif
>
> comment "Legacy options removed in 2024.02"
>
> +config BR2_PACKAGE_CAIRO_SVG
> + bool "cairo svg support"
> + select BR2_LEGACY
> + select BR2_PACKAGE_CAIRO_PNG
> + help
> + Cairo SVG is compiled together with PNG, so no need to have this config.
> +
> +config BR2_PACKAGE_CAIRO_SCRIPT
> + bool "cairo script support"
> + select BR2_LEGACY
> + select BR2_PACKAGE_CAIRO_ZLIB
> + help
> + Cairo script got merged in to cairo zlib with the introduction of meson.
> +
> +config BR2_PACKAGE_CAIRO_PS
> + bool "cairo postscript support"
> + select BR2_LEGACY
> + select BR2_PACKAGE_CAIRO_ZLIB
> + help
> + Cairo PS got merged in to cairo zlib with the introduction of meson.
> +
> +config BR2_PACKAGE_CAIRO_PDF
> + bool "cairo pdf support"
> + select BR2_LEGACY
> + select BR2_PACKAGE_CAIRO_ZLIB
> + help
> + Cairo PDF got merged in to cairo zlib with the introduction of meson.
> +
> +config BR2_PACKAGE_CAIRO_XML
> + bool "cairo xml support"
> + select BR2_LEGACY
> + select BR2_PACKAGE_CAIRO_ZLIB
> + help
> + Cairo XML got merged in to cairo zlib with the introduction of meson.
> +
> config BR2_KERNEL_HEADERS_4_14
> bool "kernel headers version 4.14.x are no longer supported"
> select BR2_LEGACY
> diff --git a/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
> new file mode 100644
> index 0000000000..193a210391
> --- /dev/null
> +++ b/package/cairo/0004-meson-allow-skipping-of-run-check-for-IPC_RMID_DEFER.patch
> @@ -0,0 +1,62 @@
> +From 39cbc3c1f1caf558188bd2203c976bae8de2f6a7 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
> +Date: Thu, 25 Feb 2021 10:52:45 +0000
> +Subject: [PATCH] meson: allow skipping of run check for
> + IPC_RMID_DEFERRED_RELEASE
> +
> +The run check is particularly annoying in cross-compile scenarios,
> +so allow bypassing the check by having the user provide the value
> +via a cross file or native file:
> +
> + [properties]
> + ipc_rmid_deferred_release = true
> +
> +Closes #408
> +
> +Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/commit/1bec56ea8a931e1ae1c74cc740134497ec365267
> +Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
> +---
> + meson.build | 25 ++++++++++++++++++++-----
> + 1 file changed, 20 insertions(+), 5 deletions(-)
> +
> +diff --git a/meson.build b/meson.build
> +index b159b4071..5f593e54d 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -264,13 +264,28 @@ if x11_dep.found() and xext_dep.found()
> + ['X11/extensions/shmstr.h', {'extra-headers': extra_headers}],
> + ]
> + deps += [x11_dep, xext_dep]
> +- res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
> +- dependencies: [x11_dep, xext_dep],
> +- name: 'shmctl IPC_RMID allowes subsequent attaches')
> +
> +- if res.returncode() == 0
> +- conf.set('IPC_RMID_DEFERRED_RELEASE', 1)
> ++ # Can skip the run check by providing the result in a cross file or
> ++ # native file as bool property value.
> ++ prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
> ++ # We don't know the type of prop (bool, string) but need to differentiate
> ++ # between a set value (bool) or the fallback value (string), so convert to
> ++ # a string and chec the string value.
> ++ prop_str = '@0@'.format(prop)
> ++ if prop_str in ['true', 'false']
> ++ ipc_rmid_deferred_release = (prop_str == 'true')
> ++ message('IPC_RMID_DEFERRED_RELEASE:', ipc_rmid_deferred_release)
> ++ elif prop_str == 'auto'
> ++ res = cc.run(files('meson-cc-tests/ipc_rmid_deferred_release.c'),
> ++ dependencies: [x11_dep, xext_dep],
> ++ name: 'shmctl IPC_RMID allowes subsequent attaches')
> ++
> ++ ipc_rmid_deferred_release = (res.returncode() == 0)
> ++ else
> ++ error('Unexpected value for external property ipc_rmid_deferred_release: @0@'.format(prop_str))
> + endif
> ++
> ++ conf.set10('IPC_RMID_DEFERRED_RELEASE', ipc_rmid_deferred_release)
> + endif
> +
> + if feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
> +--
> +2.34.1
> +
> diff --git a/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch b/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
> new file mode 100644
> index 0000000000..157508b704
> --- /dev/null
> +++ b/package/cairo/0005-meson-always-skip-IPC_RMID_DEFERRED_RELEASE-check-wh.patch
> @@ -0,0 +1,42 @@
> +From 8d5037ed642b02cdb018e49866aa286f30a7b59a Mon Sep 17 00:00:00 2001
> +From: Thomas Devoogdt <thomas@devoogdt.com>
> +Date: Mon, 5 Feb 2024 17:47:07 +0100
> +Subject: [PATCH] meson: always skip IPC_RMID_DEFERRED_RELEASE check when
> + cross-compiling
> +
> +../../br-test-pkg/bootlin-armv5-uclibc/build/cairo-1.17.4/meson.build:279:13:
> +ERROR: Can not run test applications in this cross environment.
> +
> +Commit 1bec56ea8a931e1ae1c74cc740134497ec365267 added support to define
> +ipc_rmid_deferred_release in a cross-compile config, but still kept
> +the default to auto, which anyhow results in an error when cross-compiling.
> +
> +There is only one usage of the ipc_rmid_deferred_release compile declarative
> +which was originally added in this commit: 5041b462d084de8552336275914d30c23bf5dd35.
> +
> +If ipc_rmid_deferred_release is set to FALSE, an additional XSync is performed.
> +This doesn't sound very harmful, so that is why this commit defaults to FALSE
> +and thus avoids any cross-compile errors.
> +
> +Upstream: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
> +Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
> +---
> + meson.build | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/meson.build b/meson.build
> +index 9efe91978..6a670bf94 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -369,7 +369,7 @@ if x11_dep.found() and xext_dep.found()
> +
> + # Can skip the run check by providing the result in a cross file or
> + # native file as bool property value.
> +- prop = meson.get_external_property('ipc_rmid_deferred_release', 'auto')
> ++ prop = meson.get_external_property('ipc_rmid_deferred_release', meson.is_cross_build() ? 'false' : 'auto')
> + # We don't know the type of prop (bool, string) but need to differentiate
> + # between a set value (bool) or the fallback value (string), so convert to
> + # a string and check the string value.
> +--
> +2.34.1
> +
> diff --git a/package/cairo/Config.in b/package/cairo/Config.in
> index 0c87a2904b..c41a12fe81 100644
> --- a/package/cairo/Config.in
> +++ b/package/cairo/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
> select BR2_PACKAGE_FONTCONFIG
> select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
> select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
> + select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_XORG7
> help
> Cairo is a 2D graphics library with support for multiple
> output devices. Currently supported output targets include
> @@ -15,34 +16,15 @@ config BR2_PACKAGE_CAIRO
>
> if BR2_PACKAGE_CAIRO
>
> -config BR2_PACKAGE_CAIRO_PS
> - bool "postscript support"
> - select BR2_PACKAGE_ZLIB
> - select BR2_PACKAGE_CAIRO_PDF
> -
> -config BR2_PACKAGE_CAIRO_PDF
> - bool "pdf support"
> - select BR2_PACKAGE_ZLIB
> -
> config BR2_PACKAGE_CAIRO_PNG
> - bool "png support"
> + bool "png support (png and svg surfaces)"
> select BR2_PACKAGE_LIBPNG
> - select BR2_PACKAGE_ZLIB
> -
> -config BR2_PACKAGE_CAIRO_SCRIPT
> - bool "script support"
> - select BR2_PACKAGE_CAIRO_PNG
> -
> -config BR2_PACKAGE_CAIRO_SVG
> - bool "svg support"
> - select BR2_PACKAGE_CAIRO_PNG
> - select BR2_PACKAGE_CAIRO_PDF
>
> config BR2_PACKAGE_CAIRO_TEE
> bool "tee support"
>
> -config BR2_PACKAGE_CAIRO_XML
> - bool "xml support"
> - select BR2_PACKAGE_CAIRO_PNG
> +config BR2_PACKAGE_CAIRO_ZLIB
> + bool "zlib support (script, ps, pdf, and xml surfaces)"
> + select BR2_PACKAGE_ZLIB
>
> endif
> diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
> index 4515b76075..3d2a67a6c5 100644
> --- a/package/cairo/cairo.mk
> +++ b/package/cairo/cairo.mk
> @@ -17,168 +17,96 @@ CAIRO_IGNORE_CVES += CVE-2019-6462
> # 0002-Fix-mask-usage-in-image-compositor.patch
> CAIRO_IGNORE_CVES += CVE-2020-35492
>
> -CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
> +CAIRO_CFLAGS = $(TARGET_CFLAGS)
> +CAIRO_LDFLAGS = $(TARGET_LDFLAGS)
>
> # relocation truncated to fit: R_68K_GOT16O
> ifeq ($(BR2_m68k_cf),y)
> -CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
> -endif
> -
> -ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),)
> -CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
> +CAIRO_CFLAGS += -mxgot
> endif
>
> # cairo can use C++11 atomics when available, so we need to link with
> # libatomic for the architectures who need libatomic.
> ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> -CAIRO_LIBS += -latomic
> +CAIRO_LDFLAGS += -latomic
> endif
>
> CAIRO_CONF_OPTS = \
> - --enable-trace=no \
> - --enable-interpreter=no
> -
> -CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
> + -Dfontconfig=enabled \
> + -Dtests=disabled \
> + -Dspectre=disabled \
> + -Dc_std=gnu11
> +CAIRO_DEPENDENCIES = \
> + host-pkgconf \
> + fontconfig \
> + pixman
>
> # Just the bare minimum to make other host-* packages happy
> HOST_CAIRO_CONF_OPTS = \
> - --enable-trace=no \
> - --enable-interpreter=no \
> - --disable-directfb \
> - --enable-ft \
> - --enable-gobject \
> - --disable-glesv2 \
> - --disable-vg \
> - --disable-xlib \
> - --disable-xcb \
> - --without-x \
> - --disable-xlib-xrender \
> - --disable-ps \
> - --disable-pdf \
> - --enable-png \
> - --enable-script \
> - --disable-svg \
> - --disable-tee \
> - --disable-xml
> + -Dfontconfig=enabled \
> + -Dfreetype=enabled \
> + -Dpng=enabled \
> + -Dtee=disabled \
> + -Dxcb=disabled \
> + -Dxlib=disabled \
> + -Dzlib=enabled \
> + -Dtests=disabled \
> + -Dglib=enabled \
> + -Dspectre=disabled \
> + -Dc_std=gnu11
> HOST_CAIRO_DEPENDENCIES = \
> host-freetype \
> host-fontconfig \
> host-libglib2 \
> host-libpng \
> host-pixman \
> - host-pkgconf
> + host-pkgconf \
> + host-zlib
>
> -# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
> -# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
> -# (which is experimental)
> -ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
> -CAIRO_CONF_OPTS += --enable-directfb
> -CAIRO_DEPENDENCIES += directfb
> -else
> -CAIRO_CONF_OPTS += --disable-directfb
> +ifeq ($(BR2_PACKAGE_LZO),y)
> +CAIRO_DEPENDENCIES += lzo
> endif
>
> ifeq ($(BR2_PACKAGE_FREETYPE),y)
> -CAIRO_CONF_OPTS += --enable-ft
> +CAIRO_CONF_OPTS += -Dfreetype=enabled
> CAIRO_DEPENDENCIES += freetype
> else
> -CAIRO_CONF_OPTS += --disable-ft
> -endif
> -
> -ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
> -CAIRO_DEPENDENCIES += libexecinfo
> -CAIRO_LIBS += -lexecinfo
> +CAIRO_CONF_OPTS += -Dfreetype=disabled
> endif
>
> ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
> -CAIRO_CONF_OPTS += --enable-gobject
> +CAIRO_CONF_OPTS += -Dglib=enabled
> CAIRO_DEPENDENCIES += libglib2
> else
> -CAIRO_CONF_OPTS += --disable-gobject
> -endif
> -
> -# Can use GL or GLESv2 but not both
> -ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
> -CAIRO_CONF_OPTS += --enable-gl --disable-glesv2
> -CAIRO_DEPENDENCIES += libgl
> -else
> -ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
> -CAIRO_CONF_OPTS += --disable-gl --enable-glesv2
> -CAIRO_DEPENDENCIES += libgles
> -else
> -CAIRO_CONF_OPTS += --disable-gl --disable-glesv2
> -endif
> -endif
> -
> -ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
> -CAIRO_CONF_OPTS += --enable-vg
> -CAIRO_DEPENDENCIES += libopenvg
> -else
> -CAIRO_CONF_OPTS += --disable-vg
> -endif
> -
> -ifeq ($(BR2_PACKAGE_LZO),y)
> -CAIRO_DEPENDENCIES += lzo
> +CAIRO_CONF_OPTS += -Dglib=disabled
> endif
>
> ifeq ($(BR2_PACKAGE_XORG7),y)
> -CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
> -CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext
> -else
> -CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x
> -endif
> -
> -ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
> -CAIRO_CONF_OPTS += --enable-xlib-xrender
> -CAIRO_DEPENDENCIES += xlib_libXrender
> -else
> -CAIRO_CONF_OPTS += --disable-xlib-xrender
> -endif
> -
> -ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
> -CAIRO_CONF_OPTS += --enable-ps
> -CAIRO_DEPENDENCIES += zlib
> +CAIRO_CONF_OPTS += -Dxcb=enabled -Dxlib=enabled
> +CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXrender
> else
> -CAIRO_CONF_OPTS += --disable-ps
> -endif
> -
> -ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
> -CAIRO_CONF_OPTS += --enable-pdf
> -CAIRO_DEPENDENCIES += zlib
> -else
> -CAIRO_CONF_OPTS += --disable-pdf
> +CAIRO_CONF_OPTS += -Dxcb=disabled -Dxlib=disabled
> endif
>
> ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
> -CAIRO_CONF_OPTS += --enable-png
> +CAIRO_CONF_OPTS += -Dpng=enabled
> CAIRO_DEPENDENCIES += libpng
> else
> -CAIRO_CONF_OPTS += --disable-png
> -endif
> -
> -ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y)
> -CAIRO_CONF_OPTS += --enable-script
> -else
> -CAIRO_CONF_OPTS += --disable-script
> -endif
> -
> -ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
> -CAIRO_CONF_OPTS += --enable-svg
> -else
> -CAIRO_CONF_OPTS += --disable-svg
> +CAIRO_CONF_OPTS += -Dpng=disabled
> endif
>
> ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
> -CAIRO_CONF_OPTS += --enable-tee
> +CAIRO_CONF_OPTS += -Dtee=enabled
> else
> -CAIRO_CONF_OPTS += --disable-tee
> +CAIRO_CONF_OPTS += -Dtee=disabled
> endif
>
> -ifeq ($(BR2_PACKAGE_CAIRO_XML),y)
> -CAIRO_CONF_OPTS += --enable-xml
> +ifeq ($(BR2_PACKAGE_CAIRO_ZLIB),y)
> +CAIRO_CONF_OPTS += -Dzlib=enabled
> +CAIRO_DEPENDENCIES += zlib
> else
> -CAIRO_CONF_OPTS += --disable-xml
> +CAIRO_CONF_OPTS += -Dzlib=disabled
> endif
>
> -$(eval $(autotools-package))
> -$(eval $(host-autotools-package))
> +$(eval $(meson-package))
> +$(eval $(host-meson-package))
> diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
> index f2888b2f51..f8821ba246 100644
> --- a/package/libgtk2/Config.in
> +++ b/package/libgtk2/Config.in
> @@ -9,9 +9,8 @@ config BR2_PACKAGE_LIBGTK2
> depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
> select BR2_PACKAGE_AT_SPI2_CORE
> select BR2_PACKAGE_CAIRO
> - select BR2_PACKAGE_CAIRO_PS
> - select BR2_PACKAGE_CAIRO_PDF
> - select BR2_PACKAGE_CAIRO_SVG
> + select BR2_PACKAGE_CAIRO_PNG
> + select BR2_PACKAGE_CAIRO_ZLIB
> select BR2_PACKAGE_LIBGLIB2
> select BR2_PACKAGE_PANGO
> select BR2_PACKAGE_GDK_PIXBUF
> diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
> index 34b8d49eb3..9f9a081ecb 100644
> --- a/package/libgtk3/Config.in
> +++ b/package/libgtk3/Config.in
> @@ -25,9 +25,8 @@ config BR2_PACKAGE_LIBGTK3
> BR2_PACKAGE_HAS_LIBGL
> select BR2_PACKAGE_AT_SPI2_CORE
> select BR2_PACKAGE_CAIRO
> - select BR2_PACKAGE_CAIRO_PS
> - select BR2_PACKAGE_CAIRO_PDF
> - select BR2_PACKAGE_CAIRO_SVG
> + select BR2_PACKAGE_CAIRO_PNG
> + select BR2_PACKAGE_CAIRO_ZLIB
> select BR2_PACKAGE_LIBEPOXY
> select BR2_PACKAGE_LIBGLIB2
> select BR2_PACKAGE_PANGO
> diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
> index 270b524b37..d74359dfc9 100644
> --- a/package/librsvg/Config.in
> +++ b/package/librsvg/Config.in
> @@ -9,7 +9,7 @@ config BR2_PACKAGE_LIBRSVG
> depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
> select BR2_PACKAGE_CAIRO
> select BR2_PACKAGE_CAIRO_PNG
> - select BR2_PACKAGE_CAIRO_SCRIPT
> + select BR2_PACKAGE_CAIRO_ZLIB
> select BR2_PACKAGE_GDK_PIXBUF
> select BR2_PACKAGE_HOST_RUSTC
> select BR2_PACKAGE_LIBGLIB2
> diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
> index 9577c69bf0..4602e93c2a 100644
> --- a/package/libsvg-cairo/Config.in
> +++ b/package/libsvg-cairo/Config.in
> @@ -1,7 +1,7 @@
> config BR2_PACKAGE_LIBSVG_CAIRO
> bool "libsvg-cairo"
> select BR2_PACKAGE_CAIRO
> - select BR2_PACKAGE_CAIRO_SVG
> + select BR2_PACKAGE_CAIRO_PNG
> select BR2_PACKAGE_LIBSVG
> help
> Libsvg-cairo provides the ability to render SVG content from
> diff --git a/package/rrdtool/Config.in b/package/rrdtool/Config.in
> index 5ffdc92618..d954fd1214 100644
> --- a/package/rrdtool/Config.in
> +++ b/package/rrdtool/Config.in
> @@ -19,10 +19,8 @@ config BR2_PACKAGE_RRDTOOL_RRDGRAPH
> depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
> depends on BR2_INSTALL_LIBSTDCPP # freetype support from pango
> select BR2_PACKAGE_CAIRO
> - select BR2_PACKAGE_CAIRO_PDF
> select BR2_PACKAGE_CAIRO_PNG
> - select BR2_PACKAGE_CAIRO_PS
> - select BR2_PACKAGE_CAIRO_SVG
> + select BR2_PACKAGE_CAIRO_ZLIB
> select BR2_PACKAGE_PANGO
> help
> This enables the graphing capabilities ('rrdgraph').
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v9 1/2] package/cairo: move to the meson build system
2024-07-14 22:07 ` [Buildroot] [PATCH v9 1/2] package/cairo: move to the meson build system Arnout Vandecappelle via buildroot
@ 2024-07-17 18:09 ` Thomas Petazzoni via buildroot
2024-07-17 21:07 ` Thomas Devoogdt
0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-07-17 18:09 UTC (permalink / raw)
To: Arnout Vandecappelle via buildroot
Cc: eric.le.bihan.dev, Thomas Devoogdt, fontaine.fabrice, aperez,
yann.morin.1998
Hello,
On Mon, 15 Jul 2024 00:07:11 +0200
Arnout Vandecappelle via buildroot <buildroot@buildroot.org> wrote:
> > - Added two patches to fix cross compiling, upstream: [3]
> >
> > [1]: https://gitlab.freedesktop.org/cairo/cairo/-/commit/596a82f2d185b101bd74645492821fe2f9e0daa0
> > [2]: https://gitlab.freedesktop.org/cairo/cairo/-/blame/1.17.4/meson.build#L277
> > [3]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
> >
> > Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
>
> Both applied to master, thanks.
This switch to Meson, or the bump to 1.18.0 is causing a huge amount of
build failures in our autobuilders:
http://autobuild.buildroot.net/?reason=cairo-1.18.0
Would it be possible to have a look?
Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Buildroot] [PATCH v9 1/2] package/cairo: move to the meson build system
2024-07-17 18:09 ` Thomas Petazzoni via buildroot
@ 2024-07-17 21:07 ` Thomas Devoogdt
0 siblings, 0 replies; 24+ messages in thread
From: Thomas Devoogdt @ 2024-07-17 21:07 UTC (permalink / raw)
To: Thomas Petazzoni
Cc: Eric Le Bihan, Thomas Devoogdt, Fabrice Fontaine,
Arnout Vandecappelle via buildroot, Adrian Perez de Castro,
Yann E . MORIN
[-- Attachment #1.1: Type: text/plain, Size: 1555 bytes --]
Hi Thomas,
The error::
../output-1/build/cairo-1.18.0/meson.build:1:0: ERROR: Unable to detect GNU
compiler type
...
Obviously, I tested the compilation at submitting time. So that comes to a
surprise. I know that different toolchains are used. To get compilation
working, the c_std=gnu11 flag was set. I saw that the same thing was done
upstream in the meantime. (
https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/555) So perhaps
it's related, and should use that, since that patch falls back to c11.
Kr,
Thomas
Op wo 17 jul. 2024 20:09 schreef Thomas Petazzoni <
thomas.petazzoni@bootlin.com>:
> Hello,
>
> On Mon, 15 Jul 2024 00:07:11 +0200
> Arnout Vandecappelle via buildroot <buildroot@buildroot.org> wrote:
>
> > > - Added two patches to fix cross compiling, upstream: [3]
> > >
> > > [1]:
> https://gitlab.freedesktop.org/cairo/cairo/-/commit/596a82f2d185b101bd74645492821fe2f9e0daa0
> > > [2]:
> https://gitlab.freedesktop.org/cairo/cairo/-/blame/1.17.4/meson.build#L277
> > > [3]: https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/534
> > >
> > > Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
> >
> > Both applied to master, thanks.
>
> This switch to Meson, or the bump to 1.18.0 is causing a huge amount of
> build failures in our autobuilders:
>
> http://autobuild.buildroot.net/?reason=cairo-1.18.0
>
> Would it be possible to have a look?
>
> Thanks a lot!
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
>
>
[-- Attachment #1.2: Type: text/html, Size: 3135 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2024-07-17 21:08 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-05 9:06 [Buildroot] bump webkitgtk Thomas Devoogdt
2024-01-05 9:11 ` Thomas Petazzoni via buildroot
2024-01-06 13:47 ` [Buildroot] [PATCH v5 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
2024-01-06 13:47 ` [Buildroot] [PATCH v5 2/3] package/cairo: move to the meson build system Thomas Devoogdt
2024-01-06 13:48 ` [Buildroot] [PATCH v5 3/3] package/cairo: bump to 1.18.0 Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 2/3] package/cairo: move to the meson build system Thomas Devoogdt
2024-01-16 22:39 ` Adrian Perez de Castro
2024-02-05 14:49 ` Peter Korsgaard
2024-02-05 21:22 ` [Buildroot] [PATCH v7 1/2] " Thomas Devoogdt
2024-02-05 21:23 ` [Buildroot] [PATCH v7 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
2024-02-05 21:30 ` [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system Thomas Devoogdt
2024-02-05 21:30 ` [Buildroot] [PATCH v8 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
2024-02-07 16:17 ` [Buildroot] [PATCH v8 1/2] package/cairo: move to the meson build system Peter Korsgaard
2024-02-07 19:15 ` Thomas Devoogdt
2024-02-07 19:31 ` [Buildroot] [PATCH v9 " Thomas Devoogdt
2024-02-07 19:31 ` [Buildroot] [PATCH v9 2/2] package/cairo: bump to 1.18.0 Thomas Devoogdt
2024-07-14 22:07 ` [Buildroot] [PATCH v9 1/2] package/cairo: move to the meson build system Arnout Vandecappelle via buildroot
2024-07-17 18:09 ` Thomas Petazzoni via buildroot
2024-07-17 21:07 ` Thomas Devoogdt
2024-01-07 10:55 ` [Buildroot] [PATCH v6 3/3] package/cairo: bump to 1.18.0 Thomas Devoogdt
2024-01-16 22:39 ` Adrian Perez de Castro
2024-01-16 22:38 ` [Buildroot] [PATCH v6 1/3] package/cairo: bump to 1.17.4 Adrian Perez de Castro
2024-02-05 14:38 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox