Subject: Re: [bug#55612] [PATCH 0/2] Update guile-hall to 0.4.1.

From: Taiju HIGASHI <[email-masked]>
Date: Wed, 06 Jul 2022 22:56:43 +0900

Hi Ricarod,

> The GWL now supports guile-config 0.5.x.  My apologies for the delay.
>
> Taiju Higashi, could you please update your patch so that it updates to
> guile-config 0.5.1?  Once ready I can apply it.  Thanks!
>
> (The GWL should get a new release soon, but that shouldn’t block this
> issue.)

I sent the patch. However, the GWL build fails.
I also made a patch for GWL package definitions.
If there are problems with the GWL patch, please ignore this patch.

>From cc9ca4bfdf295affeeaba6422cbbd13e66332387 Mon Sep 17 00:00:00 2001
From: Taiju HIGASHI <[email-masked]>
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 <[email-masked]>
 ;;; Copyright © 2021 John Kehayias <[email-masked]>
 ;;; Copyright © 2022 Zhu Zihao <[email-masked]>
+;;; Copyright © 2022 Taiju HIGASHI <[email-masked]>
 ;;;
 ;;; 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 <[email-masked]>
+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

Regards,
--
Taiju