Subject: bug#45017: asdf-build-system packages have priority over user ones

From: Pierre Neidhardt <[email-masked]>
Date: Sat, 05 Dec 2020 09:18:50 +0100

A few comments:

> @@ -603,7 +603,8 @@ statistical profiler, a code coverage tool, and many other extensions.")
>                  "0x4bjx6cxsjvxyagijhlvmc7jkyxifdvz5q5zvz37028va65243c")
>                 (_ "15l7cfa4a7jkfwdzsfm4q3n22jnb57imxahpql3h77xin57v1gbz"))))))))
>      (native-inputs
> -     `(("m4" ,m4)))
> +     `(("cl-asdf" ,cl-asdf)
> +       ("m4" ,m4)))
>      (arguments
>       `(#:tests? #f                      ;no 'check' target
>         #:modules ((ice-9 match)
> @@ -615,6 +616,17 @@ statistical profiler, a code coverage tool, and many other extensions.")
>           (add-after 'unpack 'unpack-image
>             (lambda* (#:key inputs #:allow-other-keys)
>               (invoke "tar" "xzvf" (assoc-ref inputs "ccl-bootstrap"))))
> +         (add-after 'unpack 'replace-asdf
> +           ;; Use system ASDF instead of bundled one.
> +           (lambda* (#:key inputs outputs #:allow-other-keys)
> +             (let* ((cl-asdf (assoc-ref inputs "cl-asdf"))
> +                    (guix-asdf (string-append
> +                                cl-asdf
> +                                "/share/common-lisp/source/asdf/asdf.lisp"))
> +                    (out (string-append (assoc-ref outputs "out")))

"out" is unused.  By the way, the same "out" is unused in SBCL.

> +                    (contrib-asdf "tools/asdf.lisp"))
> +               (delete-file contrib-asdf)

I think you don't need to delete the file, copy-file should overwrite.
That's what SBCL does.

Same with CLISP.

-- 
Pierre Neidhardt
https://ambrevar.xyz/