diff --git a/recipes/libs/cairo/recipe.toml b/recipes/libs/cairo/recipe.toml index b751537c8..17e81b9b5 100644 --- a/recipes/libs/cairo/recipe.toml +++ b/recipes/libs/cairo/recipe.toml @@ -1,6 +1,7 @@ [source] tar = "https://www.cairographics.org/releases/cairo-1.18.4.tar.xz" blake3 = "b9fa14e02f85ec4e72396c62236c98502d04dbbdf8daf01ab9557a1c7aa7106e" +patches = ["redox.patch"] [build] dependencies = [ @@ -12,8 +13,14 @@ dependencies = [ "libffi", "libiconv", "libpng", + "libpthread-stubs", + "libx11", + "libxau", + "libxcb", + "libxext", "pcre2", "pixman", + "x11proto", "zlib", ] template = "custom" @@ -24,5 +31,6 @@ DYNAMIC_INIT #TODO: why is -lexpat not automatic? cookbook_meson \ -Dc_args="-DCAIRO_NO_MUTEX=1 -DM_SQRT2=1.41421356237309504880 -DM_LN2=0.69314718055994530942 -lexpat" \ + -Dxlib-xcb=enabled \ -Dtests=disabled """ diff --git a/recipes/libs/cairo/redox.patch b/recipes/libs/cairo/redox.patch index d02e163c2..110b39a1e 100644 --- a/recipes/libs/cairo/redox.patch +++ b/recipes/libs/cairo/redox.patch @@ -1,12 +1,50 @@ -diff -ruwN source/src/cairoint.h source-new/src/cairoint.h ---- source/src/cairoint.h 2018-08-16 19:10:53.000000000 -0600 -+++ source-new/src/cairoint.h 2019-10-02 19:55:59.131388156 -0600 -@@ -187,7 +187,7 @@ - static inline int cairo_const - _cairo_popcount (uint32_t mask) +diff -ruwN cairo-1.18.4/meson.build source/meson.build +--- cairo-1.18.4/meson.build 2025-03-08 05:35:35.000000000 -0700 ++++ source/meson.build 2025-05-04 18:07:04.594213814 -0600 +@@ -440,13 +440,13 @@ + if feature_conf.get('CAIRO_HAS_XCB_SURFACE', 0) == 1 + xcbshm_dep = dependency('xcb-shm', required: get_option('xcb')) + if xcbshm_dep.found() +- feature_conf.set('CAIRO_HAS_XCB_SHM_FUNCTIONS', 1) +- deps += [xcbshm_dep] +- built_features += [{ +- 'name': 'cairo-xcb-shm', +- 'description': 'XCB/SHM functions', +- 'deps': [xcbshm_dep], +- }] ++ #feature_conf.set('CAIRO_HAS_XCB_SHM_FUNCTIONS', 1) ++ #deps += [xcbshm_dep] ++ #built_features += [{ ++ # 'name': 'cairo-xcb-shm', ++ # 'description': 'XCB/SHM functions', ++ # 'deps': [xcbshm_dep], ++ #}] + endif + endif + +diff -ruwN cairo-1.18.4/perf/Makefile.in source/perf/Makefile.in +--- cairo-1.18.4/perf/Makefile.in 1969-12-31 17:00:00.000000000 -0700 ++++ source/perf/Makefile.in 2025-05-01 12:52:11.400963345 -0600 +@@ -0,0 +1,3 @@ ++all: ++ ++install: +diff -ruwN cairo-1.18.4/src/cairo-ps-surface.c source/src/cairo-ps-surface.c +--- cairo-1.18.4/src/cairo-ps-surface.c 2025-03-08 05:35:35.000000000 -0700 ++++ source/src/cairo-ps-surface.c 2025-05-04 18:08:43.821264417 -0600 +@@ -102,7 +102,7 @@ + #define DEBUG_FALLBACK(s) + #endif + +-#ifndef HAVE_CTIME_R ++#if !defined(HAVE_CTIME_R) && !defined(__redox__) + static char *ctime_r(const time_t *timep, char *buf) { --#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -+#if !defined(__redox__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) - return __builtin_popcount (mask); - #else - register int y; + (void)buf; +diff -ruwN cairo-1.18.4/test/Makefile.in source/test/Makefile.in +--- cairo-1.18.4/test/Makefile.in 1969-12-31 17:00:00.000000000 -0700 ++++ source/test/Makefile.in 2025-05-01 12:52:11.400963345 -0600 +@@ -0,0 +1,3 @@ ++all: ++ ++install: