aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2021-02-10 14:55:38 +0530
committerArun Isaac2021-02-10 14:55:38 +0530
commite4ac55afd01a3d0f5f9a456b48ca702357d2f7c4 (patch)
treef6666a7c93ced7917974755c7a0042a2dd2b103d
parenta4a0ffd97f57f51c6e5df267ef5b5c84e8eedfe2 (diff)
downloadnsmc-e4ac55afd01a3d0f5f9a456b48ca702357d2f7c4.tar.gz
nsmc-e4ac55afd01a3d0f5f9a456b48ca702357d2f7c4.tar.lz
nsmc-e4ac55afd01a3d0f5f9a456b48ca702357d2f7c4.zip
Add guix.scm.
* guix.scm: New file.
-rw-r--r--guix.scm145
1 files changed, 145 insertions, 0 deletions
diff --git a/guix.scm b/guix.scm
new file mode 100644
index 0000000..5575184
--- /dev/null
+++ b/guix.scm
@@ -0,0 +1,145 @@
+(use-modules (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim)
+ (srfi srfi-1)
+ (srfi srfi-26)
+ (guix build utils)
+ (guix build-system cmake)
+ (guix build-system guile)
+ (guix gexp)
+ (guix git-download)
+ ((guix licenses) #:prefix license:)
+ (guix packages)
+ (guix utils)
+ (gnu packages bash)
+ (gnu packages guile)
+ (gnu packages guile-xyz)
+ (gnu packages maths)
+ (gnu packages pkg-config))
+
+(define %source-dir (dirname (current-filename)))
+
+(define git-file?
+ (let* ((pipe (with-directory-excursion %source-dir
+ (open-pipe* OPEN_READ "git" "ls-files")))
+ (files (let loop ((lines '()))
+ (match (read-line pipe)
+ ((? eof-object?)
+ (reverse lines))
+ (line
+ (loop (cons line lines))))))
+ (status (close-pipe pipe)))
+ (lambda (file stat)
+ (match (stat:type stat)
+ ('directory #t)
+ ((or 'regular 'symlink)
+ (any (cut string-suffix? <> file) files))
+ (_ #f)))))
+
+;; TODO: Contribute upstream to Guix and delete.
+(define sph-lib
+ (package
+ (name "sph-lib")
+ (version "2021-01-05")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sph-mn/sph-lib")
+ (commit "2b0474218e51c1debb4de7b932a0e1c8bff4577c")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0yz8igkv725ddjlss4jhzzwam3p4zkw38z45pydsdv4q912qjxml"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build-errors
+ (lambda _
+ (substitute* "modules/sph/documentation.scm"
+ (("\\(define output-format-markdown" all)
+ (string-append "(define default-format-arguments)\n" all)))
+ (chdir "modules")
+ (delete-file "sph/documentation/itpn.scm")
+ (delete-file-recursively "test"))))))
+ (inputs
+ `(("guile" ,guile-3.0)
+ ("guile-fibers" ,guile-fibers)
+ ("guile-reader" ,guile-reader)))
+ (home-page "https://github.com/sph-mn/sph-lib")
+ (synopsis "Collection of guile scheme libraries")
+ (description "Collection of guile scheme libraries")
+ (license license:gpl3+)))
+
+;; TODO: Contribute upstream to Guix and delete.
+(define sph-sc
+ (package
+ (name "sph-sc")
+ (version "2021-02-02")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sph-mn/sph-sc")
+ (commit "42c992737a5a1a176706c9a3c30c32ca3828476c")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f3nssnqpqbm5wfv53lg8wi3dcpc0l9qyysd9r1bvig343gs79lm"))))
+ (build-system guile-build-system)
+ (inputs
+ `(("bash" ,bash)
+ ("guile" ,guile-3.0)
+ ("sph-lib" ,sph-lib)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-build-errors
+ (lambda* (#:key outputs #:allow-other-keys)
+ (copy-recursively "other/sc-format/modules" "modules")
+ (chdir "modules")
+ (delete-file-recursively "test")))
+ (add-after 'install 'install-executables
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (string-append (assoc-ref outputs "out")))
+ (bin (string-append out "/bin"))
+ (version ,(version-major+minor (package-version guile-3.0)))
+ (scm (string-append out "/share/guile/site/" version))
+ (go (string-append out "/share/guile/" version "/site-ccache")))
+ (mkdir bin)
+ (for-each (lambda (executable)
+ (let ((installed-executable (string-append bin "/" (basename executable))))
+ (copy-file executable installed-executable)
+ (wrap-program installed-executable
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,scm ,(getenv "GUILE_LOAD_PATH")))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))))
+ (list "../exe/sc"
+ "../other/sc-format/exe/sc-format"))))))))
+ (home-page "https://github.com/sph-mn/sph-sc")
+ (synopsis "Compile scheme-like S-expressions to C")
+ (description "Compile scheme-like S-expressions to C")
+ (license license:gpl3+)))
+
+(package
+ (name "extent-sampling")
+ (version "0.1.0")
+ (home-page "https://git.systemreboot.net/guile-xapian")
+ (source (local-file %source-dir
+ #:recursive? #t
+ #:select? git-file?))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings
+ (inputs
+ `(("gsl" ,gsl)
+ ("guile" ,guile-3.0)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("sph-sc" ,sph-sc)))
+ (synopsis "Extent sampling library")
+ (description "Extent sampling library")
+ (license license:gpl3+))