Subject: bug#26791: Hydra doesn't run make before using Guix

From: [email-masked] (Ludovic Courtès)
Date: Tue, 09 May 2017 23:29:47 +0200

Hi Danny,

Danny Milosavljevic <[email-masked]> skribis:

> For reference, the relevant commits are (newest first) 360874dd1c1aafddd82e389b9da09f69bddb2a20 (not really suspicious), 7e3f7acbe0885fd8a6e509fd0c309d1f4d9d3097, bf8b09169c7d8ae48ac99ea237b82867ee9aa885, 370ae085b5107a0928fd744a987fb4070bdf6a00, 83071b052a0585f7166245b7ba793436e104f8fe, 0315abe608007f1fed96cdcae21b6a83902b25e6, 9530e73b496fefe65dcb936825b6beda79f7fdf2, 33f0aa88155ee0718f21e7de24eb539cb9872217, 40fad1c24ce60076e26f6dc8096e4716d31d90c3 (!).
>
> Note that this all works fine after Guix has been built using make, so I don't think the problem is in the source code of Guix.
>
> As for that Hydra job:
>
>>Switched to a new branch 'fetchgit'
>>;;; compiled /home/hydra/.cache/guile/ccache/2.0-LE-8-2.0/usr/local/bin/hydra-eval-guile-jobs.go
>>adding `/gnu/store/vsw3112dw48ai5arsxf1qsvma8y4fvqp-git-export' to the load path
>>;;; compiling /gnu/store/vsw3112dw48ai5arsxf1qsvma8y4fvqp-git-export/build-aux/hydra/../../gnu/packages/xnee.scm
>
> It seems that hydra auto-compiles some Guix modules:
>
> So this Hydra job should run make in /gnu/store/vsw3112dw48ai5arsxf1qsvma8y4fvqp-git-export first.
>
> Unfortunately, I have no idea about Hydra - and "grep -r fetchgit ." inside "guix" doesn't turn up anything either.

Not a bug!  :-)

Hydra and Cuirass first go through an “evaluation” step, which consists
in producing a list of derivations + meta-data from Guix/GuixSD.
Concretely, Hydra runs build-aux/hydra/gnu-system.scm, which returns
that list (you can run “make hydra-jobs.scm” to see that result.)

As can be seen at the top of gnu-system.scm, the idea is to let Guile’s
auto-compilation kick in rather than have an explicit build step.  It
simplifies gnu-system.scm at the expense of providing messy output; it’s
also quite expensive.

I’m open to a brainstorming session on this.  I’m not sure how to
improve the situation myself.  We have a similar problem with ‘guix
pull’ in fact: should we first compile everything and then run, or
compile everything but the (gnu packages …) modules, or…?

Ludo’.