Subject: Re: bug#28144: info-dir ERROR: no code for module (guix build utils)

From: [email-masked] (Ludovic Courtès)
Date: Mon, 13 Nov 2017 11:03:15 +0100

Hello,

Christopher Baines <[email-masked]> skribis:

> The following derivations will be built:
>    /gnu/store/8qi10kwz4ghabdj5p7s252z11snvhhgf-profile.drv
>    /gnu/store/0jxiph2hvmvakcj6gkz9d00a8ncma903-info-dir.drv
> Backtrace:
> In ice-9/boot-9.scm:
>  160: 18 [catch #t #<catch-closure 8c5e00> ...]
> In unknown file:
>    ?: 17 [apply-smob/1 #<catch-closure 8c5e00>]
> In ice-9/boot-9.scm:
>   66: 16 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
>  432: 15 [eval # #]
> In ice-9/boot-9.scm:
> 2412: 14 [save-module-excursion #<procedure 8e6940 at ice-9/boot-9.scm:4084:3 ()>]
> 4089: 13 [#<procedure 8e6940 at ice-9/boot-9.scm:4084:3 ()>]
> 1734: 12 [%start-stack load-stack #<procedure 8f0340 at ice-9/boot-9.scm:4080:10 ()>]
> 1739: 11 [#<procedure 8f8c30 ()>]
> In unknown file:
>    ?: 10 [primitive-load "/gnu/store/9ywpf5jc12svv04gvbx96j5z1kpllwn4-info-dir-builder"]
> In ice-9/eval.scm:
>  505: 9 [#<procedure 79c6a0 at ice-9/eval.scm:499:4 (exp)> (begin # # # ...)]
> In ice-9/psyntax.scm:
> 1107: 8 [expand-top-sequence ((begin # # # ...)) () ((top)) ...]
>  990: 7 [scan ((begin (use-modules # # ...) (define # #) ...)) () ...]
>  990: 6 [scan ((use-modules # # ...) (define # #) (define # #) ...) () ...]
>  279: 5 [scan ((# #) #(syntax-object *unspecified* # #)) () (()) ...]
> In ice-9/boot-9.scm:
> 3622: 4 [process-use-modules ((#) (#) (#) (#))]
>  712: 3 [map #<procedure 8576a0 at ice-9/boot-9.scm:3622:25 (mif-args)> (# # # #)]
> 3623: 2 [#<procedure 8576a0 at ice-9/boot-9.scm:3622:25 (mif-args)> (#)]
> 2903: 1 [resolve-interface (guix build utils) #:select ...]
> In unknown file:
>    ?: 0 [scm-error misc-error #f ...]
>
> ERROR: In procedure scm-error:
> ERROR: no code for module (guix build utils)
> builder for `/gnu/store/0jxiph2hvmvakcj6gkz9d00a8ncma903-info-dir.drv' failed with exit code 1

I’ve just experienced it!

As in your case, info-dir.drv contained no references to
module-import.drv or anything like that, and the ‘guile’ command line
lacked ‘-L …-module-import’.

Then I recompiled guix/profiles.go, and the problem went away.

My guess is that Guile 2.2.2 sometimes mishandles syntax parameters.  In
this case, the syntax param used by ‘with-imported-modules’ was seen as
'() during macro expansion whereas it should have been '((guix build
utils)).

This is very similar to what we see in <https://bugs.gnu.org/27476>.

Ludo’.