Subject: bug#37286: Make a faster method to list supported boards.

From: Danny Milosavljevic <[email-masked]>
Date: Mon, 2 Sep 2019 22:49:04 +0200

Hi,

On Mon, 02 Sep 2019 12:52:49 -0600
Jesse Gibbons <[email-masked]> wrote:

> guix tries to build an entire system. It doesn't look like it checks if
> "dne-board" is a valid board until it is building the image. It takes
> hours to cross-compile the kernel, and even longer if the kernel needs
> to be deblobbed.

Yes, that's true.

For better or for worse, there are a LOT of different ARM boards.

Back when I implemented that part I thought that when you want to find out
whether your board is supported, there's a good chance that you want to
install Guix anyway--so you need the system image anyway.

If it turns out not to be supported you just uselessly built a lot of
stuff--but the substitute cache should have cached all that stuff anyway.

But for some reason the ARM build farm substitute cache has a very bad hit
rate (I remember waiting MONTHS to finally get a "flash-image" substitute
that I didn't build myself).

If we decided to do so, we could limit ourselves to just a few that we
specially support--but that would make Guix System really a non-universal
operating system.  (with the current state of Guix ARM implementation it is
anyway)

It would be easy to get the list of supported u-boot targets from the
derivation.  It might be that Guix Data Service would help with that
(see "More progress with the Guix Data Service" by Christopher Baines).

Or we can maintain a list in the package definition ourselves.

What do you think?