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

From: Adam Porter <[email-masked]>
Date: Sun, 8 Mar 2020 08:31:24 -0500

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.