diff options
Diffstat (limited to 'gnu/packages/patches/gegl-compatibility-old-librsvg.patch')
-rw-r--r-- | gnu/packages/patches/gegl-compatibility-old-librsvg.patch | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/gnu/packages/patches/gegl-compatibility-old-librsvg.patch b/gnu/packages/patches/gegl-compatibility-old-librsvg.patch new file mode 100644 index 0000000000..3e5733f9fd --- /dev/null +++ b/gnu/packages/patches/gegl-compatibility-old-librsvg.patch @@ -0,0 +1,80 @@ +From a99a93e5c9013bd4101f5058cdee7d0cf30234fe Mon Sep 17 00:00:00 2001 +Message-ID: <a99a93e5c9013bd4101f5058cdee7d0cf30234fe.1694554961.git.vivien@planete-kraus.eu> +From: Jehan <[email protected]> +Date: Wed, 5 Jul 2023 21:18:19 +0200 +Subject: [PATCH] Issue #333: continuing to support librsvg 2.40.x (C + versions). + +Commit 9beeefcbe uses too new functions of librsvg. We could just bump +the minimum required version but there are issues with Rust not being +available on every platform yet. So instead, let's add some conditional +code paths, so that it still builds with librsvg 2.40.x (which was the +last versions fully in C) while we use newer code and no warnings when +using newer versions. +--- + operations/external/svg-load.c | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +diff --git a/operations/external/svg-load.c b/operations/external/svg-load.c +index 3312a0c0a..15c0b30b7 100644 +--- a/operations/external/svg-load.c ++++ b/operations/external/svg-load.c +@@ -76,16 +76,25 @@ query_svg (GeglOperation *operation) + { + GeglProperties *o = GEGL_PROPERTIES (operation); + Priv *p = (Priv*) o->user_data; ++#if LIBRSVG_CHECK_VERSION(2, 52, 0) + gdouble out_width, out_height; ++#else ++ RsvgDimensionData dimensions; ++#endif + + g_return_val_if_fail (p->handle != NULL, FALSE); + +- rsvg_handle_get_intrinsic_size_in_pixels (p->handle, &out_width, &out_height); +- + p->format = babl_format ("R'G'B'A u8"); + ++#if LIBRSVG_CHECK_VERSION(2, 52, 0) ++ rsvg_handle_get_intrinsic_size_in_pixels (p->handle, &out_width, &out_height); + p->height = out_height; +- p->width = out_width; ++ p->width = out_width; ++#else ++ rsvg_handle_get_dimensions (p->handle, &dimensions); ++ p->height = dimensions.height; ++ p->width = dimensions.width; ++#endif + + return TRUE; + } +@@ -98,10 +107,12 @@ load_svg (GeglOperation *operation, + { + GeglProperties *o = GEGL_PROPERTIES (operation); + Priv *p = (Priv*) o->user_data; +- RsvgRectangle svg_rect = {0.0, 0.0, width, height}; + cairo_surface_t *surface; + cairo_t *cr; +- GError *error = NULL; ++#if LIBRSVG_CHECK_VERSION(2, 52, 0) ++ GError *error = NULL; ++ RsvgRectangle svg_rect = {0.0, 0.0, width, height}; ++#endif + + g_return_val_if_fail (p->handle != NULL, -1); + +@@ -115,7 +126,11 @@ load_svg (GeglOperation *operation, + (double)height / (double)p->height); + } + ++#if LIBRSVG_CHECK_VERSION(2, 52, 0) + rsvg_handle_render_document (p->handle, cr, &svg_rect, &error); ++#else ++ rsvg_handle_render_cairo (p->handle, cr); ++#endif + + cairo_surface_flush (surface); + +-- +2.41.0 + |