Subject: [bug#49965] Correct Input type for Common Lisp packages

From: Guillaume Le Vaillant <[email-masked]>
Date: Tue, 10 Aug 2021 08:10:19 +0000

Charles <[email-masked]> skribis:

> I didn't know I about theses conf files, and after seeing them, I'm
> not sure how to use them. Not to mention: I don't have
> a $GUIX_PROFILE/etc/common-lisp.
>
> Up to now I have been using a config like the following:
>
> (require :asdf)
> (uiop:appendf
>  asdf:*central-registry*
>  (list (uiop:getcwd))
>  (directory
>   (concatenate
>    'string
>    (or (uiop:getenv "GUIX_ENVIRONMENT")
>        "~/.guix-profile")
>    "/share/common-lisp/"
>    (case uiop:*implementation-type*
>      ((:sbcl) "sbcl")
>      ((:ecl) "ecl")
>      (otherwise "source"))
>    "/*")))
>
> which I find quite readable, although probably not perfect.

The "$GUIX_PROFILE/etc/common-lisp" directory will only be there if you
have at least one Common Lisp package installed in the profile.

ASDF should be able to find sources and compiled libraries by itself
(it's using XDG_CONFIG_DIRS and XDG_DATA_DIRS to find the
configuration files created by asdf-build-system and populate the
source registry and the output translations).
I suspect that your custom 'asdf:*central-registry*' is superseding the
default configuration, causing ASDF to ignore the
'etc/common-lisp/source-registry.conf.d/*' files.
Could you try without it to see if it works?

> What advantage is there to avoiding propagated-inputs?

I think it's the philosophy of GNU Guix to use references to the store
by default, and use input propagation only when it's the only way to get
things to work. This way the profiles are less cluttered.