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

From: Guillaume Le Vaillant <[email-masked]>
Date: Sat, 05 Dec 2020 10:42:59 +0100

Pierre Neidhardt <[email-masked]> skribis:

> 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.
>

Indeed, I'll fix that.

>> +                    (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.

Actually, for CCL and Clisp, I get a "In procedure copy-file: Permission
denied" error if I don't delete the current file before copying the new
one.