Subject: bug#45017: closed (Re: asdf-build-system packages have priority over user ones)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 05 Dec 2020 15:18:02 +0000

Your bug report

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

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
45017: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=45017
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: asdf-build-system packages have priority over user ones
From: Guillaume Le Vaillant <[email-masked]>
To: Pierre Neidhardt <[email-masked]>
Cc: [email-masked]
Date: Sat, 05 Dec 2020 16:17:39 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Pierre Neidhardt <[email-masked]> skribis:

> Guillaume Le Vaillant <[email-masked]> writes:
>
>> Updated patches in attachment.
>> Do you see something else to fix or improve?
>
> Tested and approved!
>
> I suggest we merge on master since this is not very disruptive and it
> fixes a regression introduced with the build system overhaul.
>
> Thoughts?

Thanks for the review. Pushed as
031fbebafef81244a72e584a46b3fcc219256fcb and following.

Subject: asdf-build-system packages have priority over user ones
From: Pierre Neidhardt <[email-masked]>
To: [email-masked]
Cc: Guillaume Le Vaillant <[email-masked]>
Date: Thu, 03 Dec 2020 10:42:29 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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/