Subject: bug#52002: missing $GUIX_PROFILE/share/emacs/site-lisp in EMACSLOADPATH

From: Maxim Cournoyer <[email-masked]>
Date: Sat, 20 Nov 2021 23:25:10 -0500

Hello,

bbb ee <[email-masked]> writes:

> ## Description of bug
> emacs can't load packages installed by guix because missing
> $GUIX_PROFILE/share/emacs/site-lisp
> in EMACSLOADPATH
>
> $GUIX_PROFILE/share/emacs/site-lisp isn't set in my
> $GUIX_PROFILE/etc/profile and not in my $EMACSLOADPATH
>
> ```
> $ echo $EMACSLOADPATH
> /run/current-system/profile/share/emacs/site-lisp:/run/current-system/profile/share/emacs/27.1/lisp
>
> $ less $GUIX_PROFILE/etc/profile
> export
> EMACSLOADPATH="${GUIX_PROFILE:-/gnu/store/vq5dzmbx202z9p5hjyxfzcdpyzapxgxg-profile}/share/emacs/site-lisp:${GUIX_PROFILE:-/gnu/store/vq5dzmbx202z9p5hjyxfzcdpyzapxgxg-profile}/share/emacs/27.1/lisp${EMACSLOADPATH:+:}$EMACSLOADPATH"
>
> ```

The EMACSLOADPATH environment variable is set when installing Emacs
itself; have you installed the 'emacs' package in your profile (guix
install emacs), then sourced your profile again
(. ~/.guix-profile/etc/profile), or alternatively started a new shell?

This works for me, for example:

--8<---------------cut here---------------start------------->8---
$ guix shell --container emacs emacs-magit -- emacs --batch --eval \
  '(begin (print (getenv "EMACSLOADPATH") (print (magit-version))'
Loading /gnu/store/hsj3kl0vc3hxiapklg5nj42z5jb4s80p-emacs-magit-3.3.0/share/emacs/site-lisp/magit-3.3.0/magit-autoloads...
[...]
"/gnu/store/zv9iqvv6jnnvf0cr0c8kan3dcgj8mybj-profile/share/emacs/site-lisp:/gnu/store/ybpddmq7f8ajzydhiqqx6dldgmadqanp-emacs-27.2/share/emacs/27.2/lisp"

"3.3.0"
--8<---------------cut here---------------end--------------->8---

HTH,

Maxim