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

From: Mathieu Othacehe <[email-masked]>
Date: Sat, 25 Apr 2020 14:32:14 +0200

> The wip-hurd-vm branch cross-builds a VM for the Hurd.  It uses some
> dedicated hacks to build the system packages, services, system profile
> and shepherd configuration and cross-build them into a qemu image.
>
> We did this to avoid too much struggle up front with parameterizing,
> working around, or removing Linux-specifics from "guix system
> --target=i586-pc-gnu build,vm,..."

I have not followed really closely the recent progress on the Hurd, but
I think we may need to synchronize at some point :)

As you have noticed our image creation is very tied to Linux and Intel
x86 compatible machines. I would like in the future that producing images
for other architectures/kernels could be less hacky.

My idea is to:

* Speed up image creation by removing the need to use VM to produce
  images.

* Augment the operating-system record, or provide a new record, that
  encapsulates information related to image layout (partitions,
  bootloader location), target architecture (i586-pc-gnu,
  aarch64-linux, ...).

  This way, one would just have to run `guix system disk-image
  my-board.scm' or `guix system disk-image --board=xxx config.scm', and
  not have to worry about specifying the correct target triplet, kernel
  and bootloader packages.

On the wip-disk-image, I propose the creation of an "image" record in
(gnu image), but I'm still not sure how to interface it.

Thanks,

Mathieu