INFOPATH set in /etc/profile.d/guix.sh should end in ":" for Emacs's sake

  • Done
  • quality assurance status badge
Details
2 participants
  • Adam Porter
  • Ludovic Courtès
Owner
unassigned
Submitted by
Adam Porter
Severity
normal
A
A
Adam Porter wrote on 8 Mar 2020 14:31
(address . bug-guix@gnu.org)
CAO_b3FWuKszWm-P25nXzoNoLAuhGdVJ3VsuaXiUrpfDRWfnnOw@mail.gmail.com
I installed Guix into my system, and I've been enjoying using it.
However, I found that, after installing it, when I logged out and back
in, and then started Emacs, Emacs could no longer see my system's info
pages (including Emacs's own info pages). I found that the Emacs
variable Info-directory-list only contained
"/home/me/.config/guix/current/share/info", so it couldn't see the
info pages in "/usr/local/share/info/" and "/usr/share/info/".
According to the Info-directory-list docstring:

If nil, meaning not yet initialized, Info uses the environment
variable INFOPATH to initialize it, or ‘Info-default-directory-list’
if there is no INFOPATH variable in the environment, or the
concatenation of the two if INFOPATH ends with a ‘path-separator’.

I found that INFOPATH is being set in /etc/profile.d/guix.sh, which does this:

# Export INFOPATH so that the updated info pages can be found
# and read by both /usr/bin/info and/or $GUIX_PROFILE/bin/info
export INFOPATH="$_GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"

Since it does not append a colon at the end, Emacs doesn't add the
directories from Info-default-directory-list. I added a colon to the
end and restarted Emacs, and it fixed the problem.

So I'd suggest adding ":" to the end of INFOPATH in /etc/profile.d/guix.sh.

Thanks.
L
L
Ludovic Courtès wrote on 22 Mar 2020 00:04
(name . Adam Porter)(address . adam@alphapapa.net)(address . 39984-done@debbugs.gnu.org)
87tv2hux6v.fsf@gnu.org
Hi Adam,

Adam Porter <adam@alphapapa.net> skribis:

Toggle quote (26 lines)
> I installed Guix into my system, and I've been enjoying using it.
> However, I found that, after installing it, when I logged out and back
> in, and then started Emacs, Emacs could no longer see my system's info
> pages (including Emacs's own info pages). I found that the Emacs
> variable Info-directory-list only contained
> "/home/me/.config/guix/current/share/info", so it couldn't see the
> info pages in "/usr/local/share/info/" and "/usr/share/info/".
> According to the Info-directory-list docstring:
>
> If nil, meaning not yet initialized, Info uses the environment
> variable INFOPATH to initialize it, or ‘Info-default-directory-list’
> if there is no INFOPATH variable in the environment, or the
> concatenation of the two if INFOPATH ends with a ‘path-separator’.
>
> I found that INFOPATH is being set in /etc/profile.d/guix.sh, which does this:
>
> # Export INFOPATH so that the updated info pages can be found
> # and read by both /usr/bin/info and/or $GUIX_PROFILE/bin/info
> export INFOPATH="$_GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
>
> Since it does not append a colon at the end, Emacs doesn't add the
> directories from Info-default-directory-list. I added a colon to the
> end and restarted Emacs, and it fixed the problem.
>
> So I'd suggest adding ":" to the end of INFOPATH in /etc/profile.d/guix.sh.

Done in 3c69701f9735dd62a2f765b8bd23a7eaeb391412.

Thanks for the clear explanation!

Ludo’.
Closed
?