From 7162e5b88208d00188dd9c7b22e0fcde2871fb55 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Mon, 29 Mar 2021 22:38:18 +0200
Subject: gnu: gegl: Refer to dot.

* gnu/packages/gimp.scm (gegl)[arguments]: Add a new 'refer-to-dot phase.
---
 gnu/packages/gimp.scm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

(limited to 'gnu')

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 4bdc4ee42e..86b42e0fab 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -38,6 +38,7 @@ (define-module (gnu packages gimp)
   #:use-module (gnu packages base)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -229,6 +230,16 @@ (define-public gegl
        (list "-Dintrospection=false")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'refer-to-dot
+           ;; Without ‘dot’ in $PATH, (at least) the GIMP would fail to start
+           ;; with an extremely obtuse ‘GEGL operation missing!’ error.
+           (lambda _
+             (substitute* "gegl/gegl-dot.c"
+               (("\"dot ")
+                (format #f "\"~a " (which "dot"))))
+             (substitute* "operations/common/introspect.c"
+               (("g_find_program_in_path \\(\"dot\"\\)")
+                (format #f "g_strdup (\"~a\")" (which "dot"))))))
          (add-after 'unpack 'extend-test-time-outs
            (lambda _
              ;; Multiply some poorly-chosen time-outs for busy build machines.
@@ -249,6 +260,7 @@ (define-public gegl
        ("json-glib" ,json-glib)))
     (inputs
      `(("cairo" ,cairo)
+       ("graphviz" ,graphviz)
        ("pango" ,pango)
        ("libpng" ,libpng)
        ("libjpeg" ,libjpeg-turbo)))
-- 
cgit v1.2.3