gnu: sbcl: Honour XDG_DATA_DIRS/sbcl-bundle-systems.

* gnu/packages/lisp.scm (asdf-substitutions): New variable.
(sbcl)[source]: Add snippet.
[native-search-paths]: Add XDG_DATA_DIRS.

Signed-off-by: 宋文武 <iyzsong@gmail.com>
This commit is contained in:
Andy Patterson 2016-10-02 22:41:28 -04:00 committed by 宋文武
parent eb0ff8a382
commit 8d0489aeb6
No known key found for this signature in database
GPG Key ID: 26525665AE727D37

View File

@ -47,6 +47,17 @@
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define (asdf-substitutions lisp)
;; Prepend XDG_DATA_DIRS/LISP-bundle-systems to ASDF's
;; 'default-system-source-registry'.
`((("\\(,dir \"systems/\"\\)\\)")
(format #f
"(,dir \"~a-bundle-systems\")))
,@(loop :for dir :in (xdg-data-dirs \"common-lisp/\")
:collect `(:directory (,dir \"systems\"))"
,lisp))))
(define-public gcl (define-public gcl
(package (package
(name "gcl") (name "gcl")
@ -226,7 +237,12 @@ an interpreter, a compiler, a debugger, and much more.")
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2")) version "-source.tar.bz2"))
(sha256 (sha256
(base32 "0fjdqnb2rsm2vi9794ywp27jr239ddvzc4xfr0dk49jd4v7p2kc5")))) (base32 "0fjdqnb2rsm2vi9794ywp27jr239ddvzc4xfr0dk49jd4v7p2kc5"))
(modules '((guix build utils)))
(snippet
;; Add sbcl-bundle-systems to 'default-system-source-registry'.
`(substitute* "contrib/asdf/asdf.lisp"
,@(asdf-substitutions name)))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
;; Bootstrap with CLISP. ;; Bootstrap with CLISP.
@ -315,6 +331,10 @@ an interpreter, a compiler, a debugger, and much more.")
#t)))) #t))))
;; No 'check' target, though "make.sh" (build phase) runs tests. ;; No 'check' target, though "make.sh" (build phase) runs tests.
#:tests? #f)) #:tests? #f))
(native-search-paths
(list (search-path-specification
(variable "XDG_DATA_DIRS")
(files '("share")))))
(home-page "http://www.sbcl.org/") (home-page "http://www.sbcl.org/")
(synopsis "Common Lisp implementation") (synopsis "Common Lisp implementation")
(description "Steel Bank Common Lisp (SBCL) is a high performance Common (description "Steel Bank Common Lisp (SBCL) is a high performance Common