GNU bug report logs -
#22550
(require 'magit) produces error: "no such file or directory" "dash"
Previous Next
Reported by: myglc2 <myglc2 <at> gmail.com>
Date: Thu, 4 Feb 2016 04:16:02 UTC
Severity: normal
Done: Alex Kost <alezost <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
myglc2 (2016-02-04 18:16 +0300) wrote:
[...]
> glc4 <at> g1 ~$ echo $EMACSLOADPATH
> :/etc/emacs
>
> If I set it to match what you say ...
>
> glc4 <at> g1 ~$ EMACSLOADPATH=/etc/emacs/site-start.el
> glc4 <at> g1 ~$ emacs
No, no, it is expected; I meant ":/etc/emacs" is the default value,
sorry for the confusion.
[...]
> Note: below, I have EMACSLOADPATH=:/etc/emacs
>
>>> (require 'magit)
>>>
>>> ... generates this traceback ...
[...]
>> Yes, the problem is: currently only a user profile is "inspected" for
>> emacs packages, but not a system profile. I didn't realize people could
>> install emacs packages globally, but apparently we should also check the
>> system profile as well. Thanks for reporting!
>>
>>> Adding emac-dash to config.h.scm does not change the behavior.
>>
>> There is no need to install emacs-dash explicitly, as magit "propagates"
>> this library. You can do "M-x guix-edit magit" to see that "dash" is in
>> "propagated-inputs".
>
> When I do "M-x guix-edit" I get ...
>
> M-x guix-edit [No match]
>
> ... which is what lead me to believe I needed to fix load-path
No, there is no need to fix load-path; on GuixSD it should work
out-of-the-box; it doesn't work currently because there is a bug
introduced several days ago (see below).
>> Now could you try this after starting Emacs:
>>
>> M-: (guix-emacs-load-autoloads "/run/current-system/profile")
>>
>> and check that "M-x magit-status" works after that?
>
> YES! That makes everything work.
Thanks for confirmation!
> So, should I put ...
>
> '(guix-emacs-load-autoloads "/run/current-system/profile")'
>
> ... in init.el, in which case guix INFO should say so.
Well, you can do it as a temporary workaround, but we'll fix it soon (I
mean the system profile will also be inspected for emacs packages), so
it will not be necessary in the closest future.
> Or, is there something wrong with EMACSLOADPATH?
Yes, I mean it's not a problem on your side, but it's bug in GuixSD. I
think we should change this value from ":/etc/emacs" to "/etc/emacs:".
The problem with the current EMACSLOADPATH is that "/etc/emacs" value is
appended to 'load-path' variable, but it should be prepended to it, so
that the proper "site-lisp.el" will be found.
Sorry, this bug was introduced recently and you are the first who faced
it :-)
Right now I can't check it, but I think if you start emacs like this:
EMACSLOADPATH=/etc/emacs: emacs
you'll get "M-x guix-…" commands. Could you confirm?
So to recap, you found 2 issues:
1. Emacs packages installed in a system profile are not automatically
added to 'load-path'.
2. With the current EMACSLOADPATH, a wrong "site-lisp.el" is loaded, so
"M-x guix-…" commands are not autoloaded.
Both are easy to fix, thanks again for reporting!
--
Alex
This bug report was last modified 9 years and 64 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.