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

From: bbb ee <[email-masked]>
Date: Sat, 27 Nov 2021 10:09:43 +0000

Thanks, the problem is solved.

## Possible cause
Initially, I have emacs installed and ~/.guix-profile/etc/profile sourced.

but when I type "guix package -I | grep emacs". I don't see emacs package
(strange).

So I reinstall emacs : guix install emacs. Then I can see 2 emacs-27.1
installation
```
$ which -a emacs
/home/dev_1/.guix-profile/bin/emacs
/home/dev_1/.guix-profile/bin/emacs
/run/current-system/profile/bin/emacs

$ ls -l /home/dev_1/.guix-profile/bin/emacs
lrwxrwxrwx 8 root root 64 Jan  1  1970 /home/dev_1/.guix-profile/bin/emacs
-> /gnu/store/6mw831p6pccqwr3k3qanr6pmhcq0qym6-emacs-27.1/bin/emacs

$ ls -l /run/current-system/profile/bin/emacs
lrwxrwxrwx 2 root root 64 Jan  1  1970
/run/current-system/profile/bin/emacs ->
/gnu/store/yy66pbp3h5mw5sv7hrl1778skapszq7k-emacs-27.1/bin/emacs
```

Now $EMACSLOADPATH contains 6 paths with
"$GUIX_PROFILE/share/emacs/site-lisp" in it:
```
$ echo $EMACSLOADPATH
/home/dev_1/.guix-profile/share/emacs/site-lisp:/home/dev_1/.guix-profile/share/emacs/27.1/lisp:/home/dev_1/.guix-profile/share/emacs/site-lisp:/home/dev_1/.guix-profile/share/emacs/27.1/lisp:/run/current-system/profile/share/emacs/site-lisp:/run/current-system/profile/share/emacs/27.1/lisp
```
Before $EMACSLOADPATH contains only 2 paths without
"$GUIX_PROFILE/share/emacs/site-lisp" in it.

I think my first emacs installation should has something break,so
$EMACSLOADPATH isn't correctly set.

Thanks again

Le dim. 21 nov. 2021 à 04:25, Maxim Cournoyer <[email-masked]> a
écrit :

> 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
>