Subject: [PATCH 2/2] gnu: Add julia-sundials-jull

From: Jean-Baptiste Volatier <[email-masked]>
Date: Thu, 21 Oct 2021 13:10:06 +0000

* gnu/packages/julia-jll.scm (julia-sundials-jll): New variable.
* gnu/packages/maths.scm (sundials-julia): New variable.
---
 gnu/packages/julia-jll.scm | 38 ++++++++++++++++++++++++++++++++++++++
 gnu/packages/maths.scm     | 24 ++++++++++++++++++++++++
 2 files changed, 62 insertions(+)

diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index d3677d0a33..e1c33903dd 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -2709,3 +2709,41 @@ (define-public julia-zstd-jll
     (synopsis "Zstd library wrappers")
     (description "This package provides a wrapper for the zstd library.")
     (license license:expat)))
+
+(define-public julia-sundials-jll
+  (package
+    (name "julia-sundials-jll")
+    (version "5.2.1+0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaBinaryWrappers/Sundials_jll.jl")
+               (commit (string-append "Sundials-v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0cijb9frq8gj8bjpqf2lr5d0jxlj262y6h6xi4z3536dingrvffc"))))
+    (build-system julia-build-system)
+    (arguments
+     '(#:tests? #f  ; no runtests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'override-binary-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (map
+               (lambda (wrapper)
+                 (substitute* wrapper
+                   (("global artifact_dir.*")
+                    (string-append
+                     "global artifact_dir = \""
+                      (assoc-ref inputs "sundials") "\"\n"))))
+               ;; There's a Julia file for each platform, override them all
+               (find-files "src/wrappers/" "\\.jl$")))))))
+    (inputs
+     `(("sundials" ,sundials-julia)))
+    (propagated-inputs
+     `(("julia-jllwrappers" ,julia-jllwrappers)))
+    (home-page "https://github.com/JuliaBinaryWrappers/Sundials_jll.jl")
+    (synopsis "SUndials library wrappers")
+    (description "This package provides a wrapper for the sundials library.")
+    (license license:expat)))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 038ca5518c..54f44a3b55 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -5943,6 +5943,30 @@ (define-public sundials-openmpi
 	     ,%openmpi-setup)))))
     (synopsis "SUNDIALS with OpenMPI support")))

+(define-public sundials-julia
+  (package
+    (inherit sundials)
+    (name "sundials-julia")
+    (version "5.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/LLNL/sundials.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "08q9svjdl6fmqrwyd9p12m98n0wd2lws38yh223wyp6590zi3i49"))))
+    (inputs
+     `(("lapack" ,lapack)
+       ,@(package-inputs sundials)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sundials)
+       ((#:configure-flags flags '())
+        `(cons* "-DLAPACK_ENABLE:BOOL=ON"
+                ,flags))))
+    (synopsis "SUNDIALS with lapack support as required by julia-sundials-jll")))
+
 (define-public combinatorial-blas
   (package
     (name "combinatorial-blas")
--
2.33.1