From a3b9985c46e2dbc9ce472ed5522cc5f1e8763c6e Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <cox.katherine.e@gmail.com>
Date: Mon, 15 Apr 2019 22:38:55 -0500
Subject: [PATCH 2/2] gnu: sbcl: Update ASDF Version to 3.3.3.
* gnu/packages/lisp.scm (sbcl): Update ASDF Version to 3.3.3.
---
gnu/packages/lisp.scm | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
@@ -328,14 +328,10 @@ an interpreter, a compiler, a debugger, and much more.")
version "-source.tar.bz2"))
(sha256
(base32 "08z62qba0kmm15k93s2rq7ipi769895g8iwigcp20qjh6amwnwph"))
- (modules '((guix build utils)))
- (snippet
- ;; Add sbcl-bundle-systems to 'default-system-source-registry'.
- `(begin
- (substitute* "contrib/asdf/asdf.lisp"
- ,@(asdf-substitutions name))
- #t))))
+ (modules '((guix build utils)))))
(build-system gnu-build-system)
+ (inputs
+ `(("cl-asdf" ,cl-asdf)))
(outputs '("out" "doc"))
(native-inputs
;; From INSTALL:
@@ -415,6 +411,22 @@ an interpreter, a compiler, a debugger, and much more.")
;; them in HOME, so it needs to be writeable.
(add-before 'build 'set-HOME
(lambda _ (setenv "HOME" "/tmp") #t))
+ (add-after 'unpack 'replace-asdf
+ ;; SBCL developers have not committed to keeping ASDF up to date
+ ;; due to breaking changes. Guix can handle this situation easily,
+ ;; and it behooves us to have more control over what version of
+ ;; ASDF we use to build software; therefore, replace the contrib
+ ;; ASDF with the version packaged into Guix.
+ (lambda* (#:key build-inputs #:allow-other-keys)
+ (let* ((cl-asdf (assoc-ref %build-inputs "cl-asdf"))
+ (guix-asdf
+ (format #f "~a/share/common-lisp/source/asdf/asdf.lisp"
+ cl-asdf))
+ (out (string-append (assoc-ref %outputs "out")))
+ (contrib-asdf (format #f "./contrib/asdf/asdf.lisp")))
+ (copy-file guix-asdf contrib-asdf)
+ (substitute* "contrib/asdf/asdf.lisp"
+ ,@(asdf-substitutions name)))))
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(setenv "CC" "gcc")
@@ -445,8 +457,8 @@ an interpreter, a compiler, a debugger, and much more.")
new-doc/sbcl-dir)
(delete-file-recursively old-doc-dir)
#t))))
- ;; No 'check' target, though "make.sh" (build phase) runs tests.
- #:tests? #f))
+ ;; No 'check' target, though "make.sh" (build phase) runs tests.
+ #:tests? #f))
(native-search-paths
(list (search-path-specification
(variable "XDG_DATA_DIRS")
--
2.20.1