blob: 1cde2e0ec85cfd7c4f56ad9444498e8c4caa8699 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
;; To use this file to build HEAD of gn-guile:
;;
;; guix build -f guix.scm
;;
;; To get a development container
;;
;; guix shell -C -D -f guix.scm
;;
(define-module (gn-guile-package)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system guile)
#:use-module (guix utils)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages package-management)
#:use-module ((gnu packages bash) #:select (bash-minimal))
#:use-module ((gnu packages bioinformatics) #:select (gemma))
#:use-module ((gnu packages certs) #:select (nss-certs))
#:use-module ((gnu packages guile) #:select (guile-json-4 guile-3.0 guile-readline))
#:use-module ((gnu packages guile-xyz) #:select (guile-dbi guile-dbd-mysql guile-fibers guile-redis guile-hashing guile-commonmark))
#:use-module ((gnu packages parallel) #:select (parallel))
#:use-module ((gnu packages perl) #:select (perl))
#:use-module ((gnu packages tls) #:select (guile-gnutls openssl))
#:use-module (srfi srfi-1)
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim))
(define %source-dir (dirname (current-filename)))
(define %git-commit
(read-string (open-pipe "git show HEAD | head -1 | cut -d ' ' -f 2" OPEN_READ)))
(define-public gn-guile-git
(package
(name "gn-guile-git")
(version (git-version "4.0.0-" "HEAD" %git-commit))
(source (local-file %source-dir
#:recursive? #t
#:select? (or (git-predicate (dirname (current-source-directory)))
(const #t))))
(build-system guile-build-system)
(propagated-inputs
(list guile-3.0 guile-dbi guile-dbd-mysql guile-fibers guile-gnutls guile-readline
guile-commonmark guile-redis openssl nss-certs gemma parallel guile-hashing
guile-json-4))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
;; When using the guile-build-system, guild doesn't
;; correctly set the GUILE_LOAD_PATH for the various guile
;; packages in the build phase leading to build failures.
(add-before 'build 'augment-GUILE_LOAD_PATH
(lambda* (#:key outputs #:allow-other-keys)
(let* ((guile-version (target-guile-effective-version))
(guile-dbi-scm (string-append #$guile-dbi "/share/guile/site/2.2")))
;; guild uses this: "\\.(scm|sls)$" regexp to try and
;; compile all scm files in this repository. We don't
;; need to compile guix.scm
(delete-file "guix.scm")
(setenv "GUILE_LOAD_PATH"
(string-append
guile-dbi-scm ":"
(format
#f "~{~a:~}"
(map (lambda (package)
(format #f "~a/share/guile/site/~a"
package guile-version))
(list #$guile-fibers #$guile-commonmark #$guile-json-4 #$guile-hashing)))
#$(getenv "GUILE_LOAD_PATH")))))))))
(home-page "https://git.genenetwork.com/gn-guile")
(synopsis "Next generation GN code in guile")
(description "Use of guile.")
(license license:gpl3)))
gn-guile-git
|