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

From: Pierre Neidhardt <[email-masked]>
Date: Thu, 03 Dec 2020 10:42:29 +0100

Since staging was merged a few days ago, I've noticed an undesirable
side-effect of our revamped asdf-build-system: the systems packages have
priority over the user-local ones.

Here is the default list of registries:

--8<---------------cut here---------------start------------->8---
(defparameter* *default-source-registries*
    '(environment-source-registry
      user-source-registry
      user-source-registry-directory
      default-user-source-registry
      system-source-registry
      system-source-registry-directory
      default-system-source-registry)
    "List of default source registries" "3.1.0.102")
--8<---------------cut here---------------end--------------->8---

`user-source-registry' points to what is read in
~/.config/common-lisp/source-registry.conf(.d/)?, so nothing by default.

user-source-registry-directory reads what's in XDG_CONFIG_DIRS, and it
finds the Guix packages there.

The default-user-source-registry expands to

--8<---------------cut here---------------start------------->8---
(:SOURCE-REGISTRY (:TREE (:HOME "common-lisp/"))
                (:DIRECTORY (:HOME ".sbcl/systems/"))
                (:DIRECTORY
                 #P"/home/ambrevar/.local/share/common-lisp/systems/")
                (:TREE #P"/home/ambrevar/.local/share/common-lisp/source/")
                :INHERIT-CONFIGURATION)
--8<---------------cut here---------------end--------------->8---

which is where I would drop my user-local packages.

Finally, default-system-source-registry reads what's in XDG_DATA_DIRS,
and it finds the packages there again, but it does not read the
Guix-generated conf which collects the dependencies of each package.

I believe the issue is that `user-source-registry-directory' should read
from XDG_CONFIG_HOME, and not XDG_CONFIG_DIRS (which would make it
redundant with `user-source-registry').  This would make it an upstream
issue, but I wanted to double-check I properly understood the problem
with the Guix community first.

Guillaume, thoughts on this?

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