From cc9ca4bfdf295affeeaba6422cbbd13e66332387 Mon Sep 17 00:00:00 2001
From: Taiju HIGASHI <higashi@taiju.info>
Date: Wed, 6 Jul 2022 22:48:59 +0900
Subject: [PATCH] gnu: gwl: Fix build.

* gnu/packages/package-management.scm (gwl): Apply patches for newer versions
of guile-config
* gnu/packages/patches/gwl-fix-build-guile-config-0.5.1.patch: Add the patch.
---
 gnu/packages/package-management.scm           |  5 +-
 .../gwl-fix-build-guile-config-0.5.1.patch    | 75 +++++++++++++++++++
 2 files changed, 79 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/gwl-fix-build-guile-config-0.5.1.patch

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index e485e34bca..3c82d847a6 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
 ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1308,7 +1309,9 @@ (define-public gwl
               (uri (string-append "mirror://gnu/gwl/gwl-" version ".tar.gz"))
               (sha256
                (base32
-                "0sgaaq430l3dqmqqiikfb0ilxnd2cq28626y18kxx5c781qwpys9"))))
+                "0sgaaq430l3dqmqqiikfb0ilxnd2cq28626y18kxx5c781qwpys9"))
+              (patches
+                (search-patches "gwl-fix-build-guile-config-0.5.1.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-build? #false ; for reproducibility
diff --git a/gnu/packages/patches/gwl-fix-build-guile-config-0.5.1.patch b/gnu/packages/patches/gwl-fix-build-guile-config-0.5.1.patch
new file mode 100644
index 0000000000..496fd652e1
--- /dev/null
+++ b/gnu/packages/patches/gwl-fix-build-guile-config-0.5.1.patch
@@ -0,0 +1,75 @@
+From c0f281d2ef927686ed42f9c44828c501011a60dc Mon Sep 17 00:00:00 2001
+From: Ricardo Wurmus <rekado@elephly.net>
+Date: Tue, 5 Jul 2022 16:58:53 +0200
+Subject: Require guile-config >= 0.5.0.
+
+---
+ configure.ac      |  5 +++++
+ gwl/config.scm.in | 14 +++++++++-----
+ 2 files changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a6897f4..eadc82f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -42,6 +42,11 @@ GUILE_MODULE_REQUIRED(gcrypt hash)
+ GUILE_MODULE_REQUIRED(pfds sets)
+ GUILE_MODULE_REQUIRED(drmaa v1 high)
+ GUILE_MODULE_REQUIRED(config)
++GUILE_MODULE_CHECK(guile_config_too_old,(config api),(argument (name 'foo) (optional? 'old)),supports `optional?' field in argument definition)
++if test "x$guile_config_too_old" = "xyes"; then
++   AC_MSG_ERROR([Guile Config needs to be version 0.5.0 or higher.])
++fi
++
+ AC_PATH_PROG([DOT], [dot])
+ if test "x$DOT" = "x"; then
+    AC_MSG_ERROR(['dot' could not be found; please check your Graphviz installation.])
+diff --git a/gwl/config.scm.in b/gwl/config.scm.in
+index 20a562e..d64eca3 100644
+--- a/gwl/config.scm.in
++++ b/gwl/config.scm.in
+@@ -65,7 +65,6 @@ workflow.")
+        (list
+         (argument
+          (name 'file)
+-         (optional? #false)
+          (test file-exists?)
+          (handler identity)
+          (example "/path/to/my-workflow.w"))))
+@@ -95,12 +94,19 @@ workflow.")
+          (character #\i)
+          (synopsis "Specify workflow input NAME, optionally mapped to FILE")
+          (example "NAME[=FILE]")
+-         (test string?))
++         (default #false)
++         (test (match-lambda
++                 (#false #true)
++                 (value (string? value)))))
+         (switch
+          (name 'output)
+          (character #\o)
+          (synopsis "Set LOCATION as output for a workflow")
+-         (example "LOCATION"))
++         (example "LOCATION")
++         (default #false)
++         (test (match-lambda
++                 (#false #true)
++                 (value (string? value)))))
+         (switch
+          (name 'engine)
+          (character #\e)
+@@ -147,11 +153,9 @@ format) of the specified workflow.")
+        (list
+         (argument
+          (name 'file)
+-         (optional? #false)
+          (test file-exists?)
+          (handler identity)
+          (example "/path/to/my-workflow.w")))))
+-
+      (configuration
+       (name 'web)
+       (synopsis "Start the web interface")
+-- 
+cgit v1.1
+
-- 
2.36.1

