~ruther/guix-local

4beac7d95c84ea3be809030f942b8b71d155129e — Vivien Kraus 2 years ago 0b4a20e
gnu: gegl: Update to 0.4.46.

* gnu/packages/gimp.scm (gegl): Update to 0.4.46.
* gnu/packages/gimp.scm (gegl-0.4.44): New variable.
* gnu/packages/gnome.scm (gnome-photos)[inputs]: Replace gegl with gegl-0.4.44.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1239,6 1239,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/gdm-remove-hardcoded-xwayland-path.patch	\
  %D%/packages/patches/gdm-wayland-session-wrapper-from-env.patch	\
  %D%/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch	\
  %D%/packages/patches/gegl-compatibility-old-librsvg.patch	\
  %D%/packages/patches/gemmi-fix-pegtl-usage.patch		\
  %D%/packages/patches/gemmi-fix-sajson-types.patch		\
  %D%/packages/patches/genimage-mke2fs-test.patch		\

M gnu/packages/gimp.scm => gnu/packages/gimp.scm +25 -2
@@ 215,7 215,7 @@ provided, as well as a framework to add new color models and data types.")
(define-public gegl
  (package
    (name "gegl")
    (version "0.4.42")
    (version "0.4.46")
    (source
     (origin
       (method url-fetch)


@@ 228,8 228,10 @@ provided, as well as a framework to add new color models and data types.")
                  (string-append "ftp://ftp.gtk.org/pub/gegl/"
                                 (version-major+minor version)
                                 "/gegl-" version ".tar.xz")))
       (patches
        (search-patches "gegl-compatibility-old-librsvg.patch"))
       (sha256
        (base32 "0bg0vlmj4n9x1291b9fsjqxsal192zlg48pa57f6xid6p863ma5b"))))
        (base32 "14p8n6vily0yp6gqafl2xy7d2rh1j48pcj0a7mglqxy83d4b5cyh"))))
    (build-system meson-build-system)
    (arguments
     `(#:configure-flags


@@ 285,6 287,27 @@ buffers.")
    ;; application and GUI binary gegl is licensed under GPL.
    (license (list license:lgpl3+ license:gpl3+))))

;; gnome-photos does not build against gegl 0.4.46 yet.
;; See also <https://gitlab.gnome.org/GNOME/gnome-photos/-/issues/214>.
(define-public gegl-0.4.44
  (package
    (inherit gegl)
    (version "0.4.44")
    (source
     (origin
       (method url-fetch)
       (uri (list (string-append "https://download.gimp.org/pub/gegl/"
                                 (string-take version 3)
                                 "/gegl-" version ".tar.xz")
                  (string-append "https://ftp.gtk.org/pub/gegl/"
                                 (version-major+minor version)
                                 "/gegl-" version ".tar.xz")
                  (string-append "ftp://ftp.gtk.org/pub/gegl/"
                                 (version-major+minor version)
                                 "/gegl-" version ".tar.xz")))
       (sha256
        (base32 "09k1sn4h0bakgmq2hgd1iamprngpr81ky3fd9446lh2ycd0xnk0a"))))))

(define-public gimp
  (package
    (name "gimp")

M gnu/packages/gnome.scm => gnu/packages/gnome.scm +1 -1
@@ 855,7 855,7 @@ tomorrow, the rest of the week and for special occasions.")
    (inputs
     (list babl
           cairo
           gegl
           gegl-0.4.44
           geocode-glib
           gexiv2
           gfbgraph

A gnu/packages/patches/gegl-compatibility-old-librsvg.patch => gnu/packages/patches/gegl-compatibility-old-librsvg.patch +80 -0
@@ 0,0 1,80 @@
From a99a93e5c9013bd4101f5058cdee7d0cf30234fe Mon Sep 17 00:00:00 2001
Message-ID: <a99a93e5c9013bd4101f5058cdee7d0cf30234fe.1694554961.git.vivien@planete-kraus.eu>
From: Jehan <jehan@girinstud.io>
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