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

From: Alex Kost <[email-masked]>
Date: Sat, 26 Mar 2016 03:08:14 +0300

myglc2 (2016-03-25 18:20 +0300) wrote:

> Alex Kost <[email-masked]> writes:
[...]
>> This issue should be completely fixed now (after commit 092dd65¹).
>> (Just to remind) the original issue is a request for auto-finding emacs
>> packages installed globally (in a system profile).
>>
>> So, if you update your Emacs, it should automatically find emacs
>> packages (magit, etc.) installed both in user and system profiles.
>>
>> To update Emacs, one need to:
>>
>> 1. If emacs is installed in a user profile:
>>
>>   $ guix pull
>>   $ guix package --upgrade=emacs
>>
>> 2. If emacs is installed in a system profile:
>>
>>   # guix pull
>>   # guix system reconfigure
>>
>> ¹ http://git.savannah.gnu.org/cgit/guix.git/commit/?id=092dd6541fc75ed19ebbb1f9d8e6f32a88cb3445
>
> Hi Alex, Thank you for the followup.
>
> I can't test on GuixSD right now, but '2.' looks good here.
>
> If you have a moment, Is there a way to set up my git checkout guix
> environment to use changes like this as they are made in the development
> version?
>
> My current 'Guix checkout' config (on a Guix/Debian install) looks like
> this ...
>
>   /home/g1/.config/guix:
>   lrwxrwxrwx 1 g1 g1   14 Mar 24 13:49 latest -> ../../src/guix
>
> ... in ~/.profile I have ...
>
> # guix
> export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
> GUIX_PROFILE="$HOME/.guix-profile"
> source "$HOME/.guix-profile/etc/profile"
>
> ... and in ~/.emacs.d/init.el I have ...
>
> ;; start: guix emacs setup
>
> ;; to run emacs interface from git checkout and have guix-edit operate
> ;; on git checkout files
> (let ((dir "/home/g1/src/guix/emacs"))
>   (add-to-list 'load-path dir)
>   (setq guix-load-path dir))
> (require 'guix-init nil t)

Use (require 'guix-autoloads nil t) instead.  Nowadays, the only thing
'guix-init' does is it requires 'guix-autoloads'.

>  ;; to read the guix manual from git checkout
> (with-eval-after-load 'info
>   (info-initialize)
>   (add-to-list 'Info-directory-list
> 	       "/home/g1/src/guix/doc"))
>
> ;; from #guix for guix compatible diffs
> (setq ediff-patch-options "-b -f")

I have no idea what it is used for (I don't have this setting in my
emacs config), but "-b" is probably should not be specified here.  If
you do:

1. M-: (require 'ediff-ptch)
2. C-h v ediff-patch-options

you'll see a note about "-b" option.

The rest looks good to me, I use pretty much the same configurations to
set up Guix (and emacs stuff) from git.

-- 
Alex