Subject: bug#22981: guix-edit does not find git checkout directory

From: myglc2 <[email-masked]>
Date: Fri, 11 Mar 2016 09:45:38 -0500

Alex Kost <[email-masked]> writes:

> myglc2 (2016-03-11 00:56 +0300) wrote:
>
>> Situation: GuixSD sysetm managaed by user glc using a git checkout in
>> /home/glc/sre/guix.
>>
>> Problem: When I follow the manual to set up a vanila user (glc5) with a
>> separate git checkout in /home/glc5/src/guix, guix-edit does not find
>> the checkout source.
>>
>> Note: I followed comments from the #guix irc channel to set links in glc
>> and root that point to the glc checkout:
>>
>> glc@g1 ~/src/guix [env]$ stat ~/.config/guix/latest
>>   File: ‘/home/glc/.config/guix/latest’ -> ‘../../src/guix’
>>
>> glc@g1 ~/src/guix [env]$ stat /root/.config/guix/latest
>>   File: ‘/root/.config/guix/latest’ -> ‘/home/glc/src/guix’
>>
>>
>> CREATE USER glc5
> [...]
>> glc5@g1 ~/src$ stat ~/.config/guix/latest
>> stat: cannot stat ‘/home/glc5/.config/guix/latest’: No such file or directory
>
> I don't understand, so you made the links for user 'glc', but then you
> check another user 'glc5'.  If you run emacs under glc, and try "M-x
> guix-edit" there, you should be pointed to "~/.config/guix/latest".

Yes, but it only it works for me (glc) because I studied guix for 6
weeks and learned an unpublished trick on #guix IRC channel.

> Since you didn't make such a link for 'glc5', you are pointed to the
> store.

Yes because I am trying to help you improve the user experience. So glc5
is a simulated new user following the manual literally ;)

> Anyway, you can configure any directory for "M-x guix-edit" by setting
> 'guix-directory' variable.  See (info "(guix) Emacs Commands").  It is
> not in the hmtl manual yet.

But what is the _recommended_ way to do this?

A) set 'guix-directory' variable in emacs init file?

B) make symbolic link to ~/src/guix from ~/.config/guix/latest?

C) something else?

And if a _new_ user starts reading in "8.1 Building from Git", how do
they find this information?

FWIW, I vote for method B.