Hi, Quoting Johannes Schauer Marin Rodrigues (2026-06-01 10:26:13) > 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.
another status update! > 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. Samuel implemented the -a switch now and it works! Thank you! I updated https://salsa.debian.org/helmutg/debvm/-/merge_requests/39 with a fitting line for /etc/inittab and rebased on current main. > 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? The missing ingredient was the netdde package which is intentionally in the unreleased suite and was thus not installed by mmdebstrap together with the rest of the base system even though it is Essential:yes. A simple /etc/network/interfaces would be: auto /dev/eth0 iface /dev/eth0 inet dhcp I also had to add DPKG_ROOT support to ifupdown: * https://salsa.debian.org/debian/ifupdown/-/merge_requests/31 * https://salsa.debian.org/debian/ifupdown/-/merge_requests/32 And it turns out I forgot to submit my patch for orphan-sysvinit-scripts so better late than never: https://salsa.debian.org/matthew/orphan-sysvinit-scripts/-/merge_requests/3 > 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 Writing another email to address this bug is on my TODO list for this week. > 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 This has been merged and is now in 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) Of above list, the only remaining open issue is pam. With a local repository carrying all the patched packages and in the hurd branch of debvm I can now run this to create a bootable image: mmdebstrap --unshare-helper bin/debvm-create \ -o ~/tmp/rootfs.ext4 --sshkey /tmp/id_rsa.pub --release=unstable \ --initsystem=sysv --architecture=hurd-i386 -- --mode=chrootless \ "deb http://ftp.ports.debian.org/debian-ports/ unstable main" \ "deb http://ftp.ports.debian.org/debian-ports/ unreleased main" \ "deb [trusted=yes] http://127.0.0.1:8080 ./" And then start it like this: bin/debvm-run -i ~/tmp/rootfs.ext4 -s 2222 And this ends with: DHCPREQUEST for 10.0.2.15 on /dev/eth0 to 255.255.255.255 port 67 DHCPACK of 10.0.2.15 from 10.0.2.2 bound to 10.0.2.15 -- renewal in 39639 seconds. done. Cleaning up temporary files.... INIT: Entering runlevel: 2 Using makefile-style concurrent boot in runlevel 2. xkbcommon: ERROR: couldn't find a Compose file for locale "C" (mapped to "C") unexpected ACK from keyboard Starting OpenBSD Secure Shell server: sshd. Debian GNU/Hurd forky/sid testvm console The programs included with the Debian GNU/Hurd system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Hurd comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@testvm:~# So slowly but surely things are improving. We are getting there! Thank you all for your help! cheers, josch
signature.asc
Description: signature

