[bug#35302] Update ASDF Version to 3.3.3.

Message ID 87pnplnyvh.fsf@gmail.com
State Accepted
Headers show
Series [bug#35302] Update ASDF Version to 3.3.3. | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Katherine Cox-Buday April 17, 2019, 2:34 a.m. UTC
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.

[1] - https://bugs.launchpad.net/sbcl/+bug/1823442

Comments

swedebugia June 27, 2019, 2:18 p.m. UTC | #1
On 2019-04-17 04:34, Katherine Cox-Buday wrote:
> 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.
> 
> [1] - https://bugs.launchpad.net/sbcl/+bug/1823442
> 
> 
> 

This seem to have fallen through the cracks. Can someone with cl 
knowledge review this?
Guillaume Le Vaillant Jan. 17, 2020, 4:51 p.m. UTC | #2
Patches merged as d276ffcac9ad7f5f0feee8de25628b8f37338aec and
2f66c315b8d816685d87ce1e0721a12598be582e. Thanks.

Patch

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(-)

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