Subject: Re: bug#22550: (require 'magit) produces error: "no such file or directory" "dash"

From: Alex Kost <[email-masked]>
Date: Mon, 08 Feb 2016 12:19:51 +0300

myglc2 (2016-02-08 05:52 +0300) wrote:

>> Alex Kost (2016-02-04 23:00 +0300) wrote:
>>
>> [...]
>>> So to recap, you found 2 issues:
>>>
>>> 1. Emacs packages installed in a system profile are not automatically
>>>    added to 'load-path'.
>>
>> Fixed in commit 004ea62¹.  However, it will take effect when the new
>> source of "guix-emacs.el" will be used.  It will happen only after we'll
>> update our guix-devel snapshot (last time it was in commit 2c77615).
>
> Thanks. Given that I am using git pull, is it feasible to for me test
> this change now?

Yes, at first you need to "unset EMACSLOADPATH" to prevent Emacs from
loading "/run/current-system/profile/share/emacs/site-lisp/guix-emacs.el"
(it is required by "guix-init" which is in turn required by
"/etc/emacs/site-start.el").  Then you need to configure Emacs interface
from git checkout as described in the manual (info "(guix) Emacs Initial
Setup"), like this:

(let ((dir "~/src/guix/emacs"))
  (add-to-list 'load-path dir)
  (setq guix-load-path dir)
  (require 'guix-init nil t))

A side note: 'guix-init' is a wrapper which is used to perform 2 tasks:

1. To load autoloads for guix commands, so that you can run any "M-x guix-…"
   command without requiring all these "guix-….el" modules.

2. To find and autoload Emacs packages installed with Guix in a user
   profile (and now [thanks to you] in a system profile as well).

Not so long ago¹ our Emacs package was "patched" to take care of the
second task, so technically there is no need in "guix-init" anymore.  It
will be removed soon (or maybe stayed for some time for backward
compatibility), and instead 'guix-autoloads' should be required to
configure various Emacs modes for Guix.

↑ (It was a draft of announce about the future change) ↑

¹ http://git.savannah.gnu.org/cgit/guix.git/commit/?id=13fe4891fa247d306e203ee14c6886513bd86b52

-- 
Alex