Subject: Re: bug#65718: Importing a toolchain packages causes top-level dependency cycles

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 11 Sep 2023 10:35:50 -0400

Hello,

Maxim Cournoyer <[email-masked]> writes:

[...]

> A very simple reproducer on current master:
>
> modified   gnu/packages/firmware.scm
> @@ -43,6 +43,7 @@ (define-module (gnu packages firmware)
>    #:use-module (gnu packages admin)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages assembly)
> +  #:use-module (gnu packages avr)
>    #:use-module (gnu packages backup)
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages bash)
>
>
> And then:
>
> $ ./pre-inst-env guix build hello

[...]

> ;;; loading /home/maxim/src/guix/gnu/packages/unicode.scm
> error: cross-gcc: unbound variable

There were multiple top-level problems in the avr and embedded modules,
which I've fixed in bug#65860 [0] (pending review).

I've added some documentation w.r.t. rules to avoid cyclic module
dependencies to hopefully educate people like myself about the problem
and how to avoid it in the future.

On a related note, I've also sent some improvement to guile-devel [1] so
that we can track the nested level of loaded modules when setting
'%load-verbosely' to #t.

[0]  https://issues.guix.gnu.org/65860
[1]  https://lists.gnu.org/archive/html/guile-devel/2023-09/msg00021.html.

-- 
Thanks,
Maxim