Subject: [PATCH 00/12] Introducing Smart Hurdloading

From: Ludovic Courtès <[email-masked]>
Date: Fri, 22 Sep 2023 14:52:27 +0200

This patch series, my friends, sets up Smart Hurdloading™, sometimes
referred to as “Hurd auto-offloading”.  (Yeah I worked hard on branding…)

Concretely, if you add (service hurd-vm-service-type), you can now run:

  guix build libreoffice -s i586-gnu

on your machine, and the childhurd will take care of keeping one CPU core
busy for a while.  There’s no configuration involved beyond this one
(service hurd-vm-service-type) line: no need to exchange SSH keys,
substitute keys, write /etc/guix/machines.scm, and all that.  It’s all
taken care off automatically.

One key element here is support for declarative and extensible offloading
configuration—meaning that /etc/guix/machines.scm is now optionally generated
straight from your ‘operating-system’ config.  The rest is about generating
keys, authorizing them, etc.

The series is a bit of a potpourri: I fixed Hurd issues here and there
(currently offloading to a childhurd doesn’t work on ‘master’, because
of the locale issue, for instance), improved documentation, etc.  I also
took a couple of long detours not shown here that might lead to further
improvements in the future.

My goal is to extend this mechanism beyond the Hurd, to have a generic
mechanism to spin up Guix System VMs we can easily offload to.

Thoughts?

Ludo’.

Ludovic Courtès (12):
  system: vm: Remove unused variable.
  secret-service: Increase default handshake timeout.
  services: hurd-vm: Use the default SSH port number.
  gnu: glibc-utf8-locales: Reintroduce input labels.
  services: guix: Use the right locale package on GNU/Hurd.
  services: guix: Support declarative offloading setup.
  services: childhurd: Authorize the childhurd’s key on the host.
  services: hurd-vm: ‘image’ field has to be an <image> record.
  tests: hurd-vm: Remove custom disk image configuration.
  services: hurd-vm: Disable password-based authentication for root.
  doc: Give an example showing how to add an account in the childhurd.
  services: hurd-vm: Implement zero-configuration offloading.

 doc/guix.texi                   | 167 ++++++++++++++++++++++++++------
 gnu/build/secret-service.scm    |   2 +-
 gnu/packages/base.scm           |   4 +-
 gnu/services/base.scm           |  58 ++++++++++-
 gnu/services/virtualization.scm | 153 ++++++++++++++++++++++++++---
 gnu/system/vm.scm               |  41 ++------
 gnu/tests/virtualization.scm    |  68 ++++++++++---
 7 files changed, 394 insertions(+), 99 deletions(-)

base-commit: 3d8d67ef6928f5d81118c97f03372cd341eab8b0
-- 
2.41.0