(address . guix-patches@gnu.org)
This patch overwrites the ASDF version vendored into SBCL with the
newest version. The SBCL devs have stated[1] that they are not planning
on keeping their version of ASDF up to date. This will allow our SBCL
packages to use the newest ASDF going forward so.
From cfefce666df7a5fbc0f3ab4e771ccc8c28620bdd Mon Sep 17 00:00:00 2001
From: Katherine Cox-Buday <cox.katherine.e@gmail.com>
Date: Mon, 15 Apr 2019 22:33:27 -0500
Subject: [PATCH 1/2] gnu: Add cl-clack.
* gnu/packages/lisp.scm (cl-clack): New variable.
---
gnu/packages/lisp.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
Toggle diff (48 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 5549f7ddc8..449bcc856f 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5246,3 +5246,41 @@ Python's WSGI and Ruby's Rack.")
(define-public cl-clack
(sbcl-package->cl-source-package sbcl-clack))
+
+(define-public cl-asdf
+ (let ((version "3.3.3"))
+ (package
+ (name "cl-asdf")
+ (version version)
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://common-lisp.net/project/asdf/archives/asdf-"
+ version ".lisp"))
+ (sha256
+ (base32 "18lr6kxvzhr79c9rx3sdricz30aby866fj0m24w27zxsqlyvn3rd"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (guix build lisp-utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (guix build lisp-utils))
+ (let* ((out (string-append (assoc-ref %outputs "out")))
+ (asdf-install
+ (format #f "~a~a/source/asdf/" out %source-install-prefix))
+ (asdf (string-append (assoc-ref %build-inputs "source"))))
+ (mkdir-p asdf-install)
+ (copy-file asdf
+ (string-append asdf-install "asdf.lisp"))))))
+ (home-page "https://common-lisp.net/project/asdf/")
+ (synopsis "Another System Definition Facility")
+ (description
+ "ASDF is what Common Lisp hackers use to build and load software. It is
+the successor of the Lisp DEFSYSTEM of yore. ASDF stands for Another System
+Definition Facility.")
+ ;; MIT License
+ (license license:expat))))
--
2.20.1
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(-)
Toggle diff (58 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 449bcc856f..419ff1d2eb 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -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
--
Katherine