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

From: Pierre Neidhardt <[email-masked]>
Date: Fri, 04 Dec 2020 13:46:28 +0100

Guillaume Le Vaillant <[email-masked]> writes:

> SBCL and ECL are patched to use our cl-asdf because it is necessary to
> build the sbcl-* and ecl-* packages. Also patching ABCL, CCL, and Clisp
> sounds like a good idea. At least all the compilers would use the same
> version of ASDF, and hopefully behave in the same way when looking for
> configuration files.

Yup, that'd be neat :)

Related to this, I've noticed another issue with SBCL packages: when an
SBCL package has a dependency that's updated in ~/common-lisp,
(asdf:load-system ...) tries to recompile it in its folder, which fails
since /gnu/store is read-only.

Example:

- Apply the above patch or edit
  ~/.config/common-lisp/source-registry.conf
  to make sure ~/common-lisp is loaded before system packages.

- Install sbcl-cl-cookie.

- Check out https://github.com/fukamachi/quri:
  git clone https://github.com/fukamachi/quri ~/common-lisp/quri

- Now run

--8<---------------cut here---------------start------------->8---
$ sbcl
* (asdf:load-system :cl-cookie)
WARNING: System definition file #P"/gnu/store/81cwmspx3366vdjs6v20rnd8a0xyr6in-sbcl-cl-fad-0.7.6/share/common-lisp/sbcl/cl-fad/cl-fad.asd" contains definition for system "cl-fad-test". Please only define "cl-fad" and secondary systems with a name starting with "cl-fad/" (e.g. "cl-fad/test") in that file.

debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread
#<THREAD "main thread" RUNNING {100B790203}>:
  Error opening #P"/gnu/store/22q4ydm0pagi4irz0clssgkhkyh115j8-sbcl-cl-cookie-0.9.10-1.cea55ae/lib/common-lisp/sbcl/cl-cookie/src/cl-cookie-tmpGHU3ALSV.fasl":

    Read-only file system
--8<---------------cut here---------------end--------------->8---

Not sure what to do about this.

I'm guessing that Common Lisp development is not practical with Guix'
SBCL packages and I should just stick to the CL packages.

Thoughts?

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