Subject: [PATCH 0/3] Running guix gc on the Hurd.

From: "Jan (janneke) Nieuwenhuizen" <[email-masked]>
Date: Thu, 25 Jun 2020 22:34:00 +0200

From: Jan Nieuwenhuizen <[email-masked]>

Hi!

As discussed on IRC, we would like to get "guix gc" to work on the Hurd.  It's
kind of essential to get the build nodes running a Childhurd.  We discussed
several workarounds, but an acceptable one is non-trivial; so better look into
a proper fix first.

We found that /proc is missing, so I have added that.  And then we found that
/proc/1/environ (and others) may return EIO; so I've added a catch/workaround
for that.

However, when trying to test this I found that the hurd disk image on master
is pretty broken:

   * it creates an ext2, but not of hurd flavor (fixed in 0001)
   * it fails to call make-hurd-device-nodes (fixed in 0002)

With these two fixes, it boots again.  These are really minor fixes/typo-like
oversights and I was considering to "just push" them... but then I found that
the "guix build" command is also broken:

--8<---------------cut here---------------start------------->8---
root@guixygnu ~# guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)'
Backtrace:
In ice-9/boot-9.scm:
  1736:10  4 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
           3 (apply-smob/0 #<thunk 2d5380>)
In ice-9/boot-9.scm:
    718:2  2 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
In ice-9/eval.scm:
    619:8  1 (_ #(#(#<directory (guile-user) 2cc820>)))
In guix/ui.scm:
  1948:12  0 (run-guix-command _ . _)

guix/ui.scm:1948:12: In procedure run-guix-command:
In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f
--8<---------------cut here---------------end--------------->8---

How sad!

I'm a bit stuck on this, probably because I'm feeling somewhat discouraged.
Any ideas what could have broken this, how to look into it, fix this?

Greetings,
Janneke

Jan (janneke) Nieuwenhuizen (3):
  image: hurd: Create hurd-compatible ext2 file-system.
  image: hurd: Initialize root partition for the Hurd.
  guix: gc: Support for the Hurd.

 gnu/build/hurd-boot.scm    | 21 ++++++++++++++-------
 gnu/system/image.scm       |  7 -------
 gnu/system/images/hurd.scm | 11 ++++++++++-
 guix/store/roots.scm       | 12 +++++++++---
 4 files changed, 33 insertions(+), 18 deletions(-)

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com