[bug#69443] gnu: Add guile-gsl.
Commit Message
Hi y'all,
This is both a patch submission and a call for help—I'm far out of my
waters with this package and am not sure of the proper Guix-y way to
build it.
So the build sequence for Guile GSL is:
(1) Compile a bundled libguilegslblas.so with a C compiler, using the GSL
libraries from package inputs.
(2) Put proper paths to the GSL libraries and libguilegslblas into the
Scheme files.
(3) Compile Scheme files as per guile-build-system.
I've got (2) and (3) more or less working. The problem is: which build
system should I use and how do I synthesize GNU build system (makefile,
libguilegslblas.so, (1)) and Guile one?
You can find my draft (doesn't build and is not usable in general) patch
attached below. Any help appreciated!
Thanks,
--
Artyom Bologov.
Comments
Hi,
Patch applied based on <https://issues.guix.gnu.org/69820>.
Thanks,
Oleg
From 5bd38a674fff008c189d1c39495d771354c945fb Mon Sep 17 00:00:00 2001
From: Artyom Bologov <mail@aartaka.me>
Date: Wed, 28 Feb 2024 02:54:31 +0400
Subject: [PATCH] gnu: Add guile-gsl.
* gnu/packages/guile-xyz.scm (guile-gsl): New variable.
---
gnu/packages/guile-xyz.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
@@ -4474,6 +4474,40 @@ (define-public guile-ffi-cblas
function: raw, typed, and functional.")
(license license:lgpl3+))))
+(define-public guile-gsl
+ (let ((commit "8540bcb6afa9be37153852255608d26d5a4df9dd")
+ (revision "0"))
+ (package
+ (name "guile-gsl")
+ (version "0.0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aartaka/guile-gsl")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "00dy33ibvfhzs5xp65g4g8d02wy4fiamjbp3pg87cghg41q4lwkr"))))
+ (build-system guile-build-system)
+ (arguments
+ '(#:source-directory "modules"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'substitute-gsl-so
+ (lambda _
+ (let ((gsl (string-append #$(this-package-input "lmdb")
+ "/lib/libgsl.so")))
+ (substitute* "modules/gsl/core.scm"
+ (("libgsl.so") gsl))))))))
+ (native-inputs (list guile-3.0))
+ (inputs (list guile-3.0 gsl))
+ (home-page "https://github.com/aartaka/guile-gsl")
+ (synopsis "Bindings for GNU Scientific library in Guile.")
+ (description "This package provides Guile Scheme wrapper for libgsl.so.
+Only vector, matrix, and BLAS operations are covered for now.")
+ (license license:gpl3+))))
+
(define-public guile-ffi-fftw
(let ((commit "294ad9e7491dcb40026d2fec9be2af05263be1c0")
(revision "2"))
--
2.41.0