Hi,

this has been a loooong yak shave and it still continues so I wanted to send a
small summary that work is still going on albeit slowly. Details and some
questions for this list further below.

Quoting Samuel Thibault (2025-11-20 02:04:39)
> Johannes Schauer Marin Rodrigues, le jeu. 20 nov. 2025 01:57:42 +0100, a 
> ecrit:
> > How would you normally mount a directory from outside with Hurd as a guest?
> 
> I usually don't, and just scp or git pull/push what I need
> 
> > Just via NFS? Does SMB work in Hurd (QEMU also does that by itself)?
> 
> Ah, yes there is an smbfs implementation too. I don't know its
> maintenance status though.
> 
> > While I have you: I'm currently using mini-httpd to serve a directory as a
> > local Debian mirror for apt. I saw that mini-httpd does not exist in the 
> > Hurd
> > archives. Is there a small-footprint http server which you'd recommend to 
> > use
> > on Hurd?
> 
> I don't know.

So ultimately my goal is to have a --mode=fakeroot-hurd option for mmdebstrap
which will be the default mode on GNU/Hurd and error out elsewhere. I have
local changes that implement this but I need to add test cases before I make a
release with that.

To make testcases I somehow need to create a QEMU virtual machine with GNU/Hurd
and I figured that the easiest way to do that is to add support for creating
Hurd images to the software which mmdebstrap is already using in its test suite
to create QEMU virtual machines: debvm. I have a POC which allows for debvm to
create bootable Hurd images here:
https://salsa.debian.org/helmutg/debvm/-/merge_requests/39

I have not yet figured out how to auto-login the root user in GNU/Hurd. The
agetty line which works on Linux errors out with "getty[585]: Bad syntax" and
according to Samuel Thibault it may just be that this feature isn't implemented
yet in hurd.

I also do not yet know how to set up networking inside the QEMU guest. The
/etc/network/interfaces which works on Linux does not seem to give me any
network inside the Hurd QEMU guest. Can somebody show me a setup which is known
to work on Hurd in QEMU?

A nice-to-have in this context would be a fix for
https://bugs.debian.org/1132024 which has a MR against init-system-helper but
seems to be stalled there:
https://salsa.debian.org/debian/init-system-helpers/-/merge_requests/33

More important to make this work is DPKG_ROOT support for openssh-server.
Because we cannot execute Hurd binaries on Linux, the DPKG_ROOT approach is the
only way to populate a Hurd chroot on Linux. Since debvm uses ssh for
connections with the QEMU guest, we need to add DPKG_ROOT support to openssh
which is this MR: https://salsa.debian.org/ssh-team/openssh/-/merge_requests/39

That MR is currently stalled because systemd-tmpfiles seems to be a good
solution to make DPKG_ROOT work out-of-the-box but there is no systemd on Hurd.
Matthias Geiger packaged seedfiles and uploaded it to experimental and the
upstream of seedfiles has been extremely helpful in making seedfiles work on
Hurd. The testsuite of seedfiles now passes on Hurd and I think the package is
ready to be uploaded to unstable.

Other construction sites which are required to make this work are:

 * src:pam https://salsa.debian.org/vorlon/pam/-/merge_requests/33
   https://bugs.debian.org/1137186
 * src:ucf https://salsa.debian.org/debian/ucf/-/merge_requests/5
   https://salsa.debian.org/debian/ucf/-/merge_requests/6
 * src:sudo https://salsa.debian.org/sudo-team/sudo/-/merge_requests/38 (merged 
but not uploaded yet)
 * src:debhelper https://salsa.debian.org/debian/debhelper/-/merge_requests/148 
(merged but not uploaded yet)
   https://salsa.debian.org/debian/debhelper/-/merge_requests/149 (merged but 
not uploaded yet)

So I think in general we are in a good spot and what is left is to have
maintainers apply all the patches which were submitted. This can take a while
so if you are in close contact with any of the maintainers of openssh,
init-system-helpers, pam or ucf you could see if maybe you get them to have a
look at the changes and help getting them ready to be merged.

Also helpful would be to get networking to work inside my QEMU VM and to get
auto-login to work.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to