Subject: bug#40839: Shepherd activation .GO files are not cross-compiled ... and the Hurd

From: Jan Nieuwenhuizen <[email-masked]>
Date: Sat, 25 Apr 2020 19:38:42 +0200

Ludovic Courtès writes:

Hello!

>> Now, the tricky part is the value of target, because
>> #$(%current-target-system) might not be correct in that context.
>
> Yes, that brings us back to <https://issues.guix.gnu.org/issue/29296>.
> Time flies!  But now we really need to address it.

Oh!  Yes, I guess we need that as soon as we unify the hurd VM with the
guix system build?

> Jan Nieuwenhuizen <[email-masked]> skribis:
>
>> +  (let ((target (%current-target-system)))
>> +    (with-extensions (list shepherd)
>> +      (computed-file (string-append (basename (scheme-file-name file) ".scm")
>> +                                    ".go")
>> +                     #~(begin
>
> The problem here is that ‘%current-target-system’ is not resolved in the
> right context.  Though in practice, it’s “good enough” when using ‘guix
> system build --target’ though, because ‘%current-target-system’ is bound
> once and for all at the beginning.
>
> What about applying this patch, but adding a FIXME comment above ‘let’
> pointing at <https://bugs.gnu.org/29296>?

Pushed to core-updates as d2fc76462e72268ee5b04fe53805efc05c35e139,
with...

> Also, you can avoid duplicating the ‘compile-file’ call by writing it
> like this:
>
>   (with-target #$(or target #~%host-type)

...this change too.  Nice, that works (I tried (%current-system), which
did not work).

Thanks!
janneke

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com