Subject: [bug#47350] [PATCH 23/29] gnu: Add julia-openspecfun-jll.

From: zimoun <[email-masked]>
Date: Tue, 23 Mar 2021 20:46:50 +0100

* gnu/packages/julia-xyz.scm (julia-openspecfun-jll): New variable.
---
 gnu/packages/julia-xyz.scm | 46 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 02466fcd04..afa8e815f8 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -23,6 +23,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system julia)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages tls))
 
 (define-public julia-abstractffts
@@ -878,6 +879,51 @@ have arbitrary indices, similar to those found in some other programming
 languages like Fortran.")
     (license license:expat)))
 
+;;; TODO: Remove this autogenerated source package
+;;; and build it from realse source using <https://github.com/JuliaPackaging/Yggdrasil/>
+(define-public julia-openspecfun-jll
+(let ((commit "6c505cce3bdcd9cd2b15b4f9362ec3a42c4da71c"))
+  (package
+    (name "julia-openspecfun-jll")
+    (version "0.5.3+4")                 ;tag not created upstream
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0bl2gcgndsbiwhwy8fl070cjm1fyf9kxj6gkikgirmzgjl29iakn"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f                      ; no runtests.jl
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'override-binary-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (map
+              (lambda (wrapper)
+                (substitute* wrapper
+                  (("generate_wrapper_header.*")
+                   (string-append
+                    "generate_wrapper_header(\"OpenSpecFun\", \""
+                    (assoc-ref inputs "openspecfun") "\")\n"))))
+              ;; There's a Julia file for each platform, override them all
+              (find-files "src/wrappers/" "\\.jl$"))
+             #t)))))
+    (inputs
+     `(("openspecfun" ,openspecfun)))
+    (propagated-inputs
+     `(("julia-jllwrappers" ,julia-jllwrappers)
+       ("julia-compilersupportlibraries-jll" ,julia-compilersupportlibraries-jll)))
+    (home-page "https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl")
+    (synopsis "Internal wrappers")
+    (description "This package is an autogenerated source package constructed
+using @code{BinaryBuilder.jl}. The originating @code{build_tarballs.jl} script
+can be found on the community build tree Yggdrasil.")
+    (license license:expat))))
+
 (define-public julia-parsers
   (package
     (name "julia-parsers")
-- 
2.28.0