Subject: Re: bug#21127: Problem with guix.el on hybrid systems.

From: Alex Kost <[email-masked]>
Date: Sat, 25 Jul 2015 10:52:17 +0300

Ludovic Courtès (2015-07-24 23:31 +0300) wrote:

> Mathieu Lirzin <[email-masked]> skribis:
>
>> From ca4360cc33f56dbfd1fa1367f68d3bd3d0d7c553 Mon Sep 17 00:00:00 2001
>> From: Mathieu Lirzin <[email-masked]>
>> Date: Fri, 24 Jul 2015 12:59:20 +0200
>> Subject: [PATCH] emacs: Fix guix-guile-program.
>>
>> * emacs/guix-backend.el: Move to ...
>> * emacs/guix-backend.el.in: ... here.
>>   (guix-guile-program): Default to the Guile used when building Guix to
>>   avoid breaking guix.el when installing another Guile.
>> * configure.ac: Adapt to it.
>> * .gitignore: Likewise.
>
> [...]
>
>> +(defvar guix-guile-program "@GUILE@"
>
> Sounds reasonable to me.
>
> Alternately, I wonder if it would make sense to define that variable in
> guix-init.el to avoid having an additional .in file.
>
> Alex, WDYT?

Mathieu, thanks for catching it!  I also think that it is better to
avoid converting "guix-backend.el" into ".in" file.

I had the same question with 'guix-load-path' variable when Emacs UI was
merging into Guix: this var was defined in "guix-backend.el" but it had
to depend on @prefix@, so I just put another "(defvar …)" into
"guix-init.el.in".  As you can see there are 2 definitions of
'guix-load-path':

- in "guix-backend.el" (with an old "configure"-independent value)

- and in "guix-init.el" (with the current default value).

So I suggest to do the same with 'guix-guile-program', i.e. to put

  (defvar guix-guile-program "@GUILE" …)

into "guix-init.el.in" and that's it.  Since "guix-init.el" is loaded
the first, "defvar" in "guix-backend.el" will not override the default
value.

-- 
Alex