Subject: [PATCH 1/3] gnu: Add graphviz-2.38.

From: Ricardo Wurmus <[email-masked]>
Date: Mon, 31 Dec 2018 14:48:15 +0100

* gnu/packages/graphviz.scm (graphviz-2.38): New variable.
---
 gnu/packages/graphviz.scm | 51 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 569923d4e..47342b784 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2015 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2015 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2016 Theodoros Foradis <[email-masked]>
-;;; Copyright © 2017 Ricardo Wurmus <[email-masked]>
+;;; Copyright © 2017, 2018 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2017 Gábor Boskovits <[email-masked]>
 ;;; Copyright © 2018 Mathieu Lirzin <[email-masked]>
@@ -27,7 +27,10 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix utils)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages glib)
@@ -35,6 +38,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages image)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -43,6 +47,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gd)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tex)
   #:use-module ((guix licenses) #:prefix license:))
@@ -114,6 +119,50 @@ software engineering, database and web design, machine learning, and in visual
 interfaces for other technical domains.")
     (license license:epl1.0)))
 
+;; Older Graphviz needed for pygraphviz.  See
+;; https://github.com/pygraphviz/pygraphviz/issues/175
+(define-public graphviz-2.38
+  ;; This commit corresponds to the changelog change for version 2.38.0.
+  ;; There are no tags.
+  (let ((commit "f54ac2c9313ae80ccf76ef4ac6aa9be820a23126")
+        (revision "1"))
+    (package (inherit graphviz)
+      (name "graphviz")
+      (version (git-version "2.38.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.com/graphviz/graphviz.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1vjg308gflmi1khgjmcj431cnkrlv12bg4cqah39mwhny92jy92x"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments graphviz)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'prepare-bootstrap
+               (lambda _
+                 (substitute* "autogen.sh"
+                   (("/bin/sh") (which "sh"))
+                   (("\\$GRAPHVIZ_VERSION_DATE") "0"))
+                 (setenv "CONFIG_SHELL" (which "sh"))
+                 (setenv "SHELL" (which "sh"))
+
+                 (map make-file-writable (find-files "." ".*"))
+                 #t))
+             (replace 'bootstrap
+               (lambda _ (invoke (which "sh") "autogen.sh" "NOCONFIG") #t))))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("flex" ,flex)
+         ("perl" ,perl)
+         ("tcl" ,tcl)
+         ,@(package-native-inputs graphviz))))))
+
 (define-public python-graphviz
   (package
     (name "python-graphviz")
-- 
2.19.1