gnu: cuirass: Add dependency on Guile-Gcrypt.

This is a followup to 53166aec98, which
added a hard dependency of Guix on Guile-Gcrypt.

* gnu/packages/ci.scm (cuirass)[inputs]: Add GUILE-GCRYPT.
[arguments]: In 'wrap-program' phase, use 'string-join' to compute
'mods'.  Define 'objs' for use in GUILE_LOAD_COMPILED_PATH, and take
objects from lib/guile/X.Y/site-ccache.
This commit is contained in:
Ludovic Courtès 2018-09-05 14:46:28 +02:00
parent 5e3082df1c
commit 7903f00a74
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 17 additions and 13 deletions

View File

@ -32,6 +32,7 @@
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages mail) #:use-module (gnu packages mail)
#:use-module (gnu packages package-management) #:use-module (gnu packages package-management)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
@ -223,39 +224,42 @@ their dependencies.")
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
;; Wrap the 'cuirass' command to refer to the right modules. ;; Wrap the 'cuirass' command to refer to the right modules.
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(gcrypt (assoc-ref inputs "guile-gcrypt"))
(json (assoc-ref inputs "guile-json")) (json (assoc-ref inputs "guile-json"))
(sqlite (assoc-ref inputs "guile-sqlite3")) (sqlite (assoc-ref inputs "guile-sqlite3"))
(git (assoc-ref inputs "guile-git")) (git (assoc-ref inputs "guile-git"))
(bytes (assoc-ref inputs "guile-bytestructures")) (bytes (assoc-ref inputs "guile-bytestructures"))
(fibers (assoc-ref inputs "guile-fibers")) (fibers (assoc-ref inputs "guile-fibers"))
(guix (assoc-ref inputs "guix")) (guix (assoc-ref inputs "guix"))
(deps (list gcrypt json sqlite git bytes fibers guix))
(guile (assoc-ref %build-inputs "guile")) (guile (assoc-ref %build-inputs "guile"))
(effective (read-line (effective (read-line
(open-pipe* OPEN_READ (open-pipe* OPEN_READ
(string-append guile "/bin/guile") (string-append guile "/bin/guile")
"-c" "(display (effective-version))"))) "-c" "(display (effective-version))")))
(mods (string-append json "/share/guile/site/" (mods (string-drop-right ;drop trailing colon
effective ":" (string-join deps
git "/share/guile/site/" (string-append "/share/guile/site/"
effective ":" effective ":")
bytes "/share/guile/site/" 'suffix)
effective ":" 1))
sqlite "/share/guile/site/" (objs (string-drop-right
effective ":" (string-join deps
fibers "/share/guile/site/" (string-append "/lib/guile/" effective
effective ":" "/site-ccache:")
guix "/share/guile/site/" 'suffix)
effective))) 1)))
;; Make sure 'cuirass' can find the 'evaluate' command, as ;; Make sure 'cuirass' can find the 'evaluate' command, as
;; well as the relevant Guile modules. ;; well as the relevant Guile modules.
(wrap-program (string-append out "/bin/cuirass") (wrap-program (string-append out "/bin/cuirass")
`("PATH" ":" prefix (,(string-append out "/bin"))) `("PATH" ":" prefix (,(string-append out "/bin")))
`("GUILE_LOAD_PATH" ":" prefix (,mods)) `("GUILE_LOAD_PATH" ":" prefix (,mods))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,mods))) `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
#t)))))) #t))))))
(inputs (inputs
`(("guile" ,guile-2.2) `(("guile" ,guile-2.2)
("guile-fibers" ,guile-fibers) ("guile-fibers" ,guile-fibers)
("guile-gcrypt" ,guile-gcrypt)
("guile-json" ,guile-json) ("guile-json" ,guile-json)
("guile-sqlite3" ,guile-sqlite3) ("guile-sqlite3" ,guile-sqlite3)
("guile-git" ,guile-git) ("guile-git" ,guile-git)