Hi,
Quoting Samuel Thibault (2024-02-08 00:13:57)
> > Could/should those be created by a postinst maintainer script of a package
> > in the essential set? Maybe by the hurd package?
>
> It used to be set by scripts but we can probably make the hurd postinst
> create them, yes. But is the hurd postinst actually run in your case?
yes, remember how in one of my last mails I ran into an error because the hurd
preinst was missing a check for [ -z "$DPKG_ROOT" ]. In chrootless mode,
maintainer scripts are run but without a chroot call, so the tools from the
outside are used to process the scripts and the $DPKG_ROOT tells the tools what
to do. So either the preinst or the postinst could gain a snippet like this:
mkdir -p "$DPKG_ROOT/servers" "$DPKG_ROOT/dev"
for f in /servers/exec /servers/startup /dev/console; do
touch "$DPKG_ROOT/$f"
done
> > The symlink chain is this one:
> >
> > /usr/libexec/runsystem -> /etc/hurd/runsystem -> /alternatives/runsystem -> /etc/hurd/runsystem.gnu
> >
> > Should that last one be linking to /etc/hurd/runsystem.sysv?
>
> Yes, I don't see why it's not doing that, isn't the alternative like
> this?
>
> Selection Path Priority Status
> ------------------------------------------------------------
> * 0 /etc/hurd/runsystem.sysv 10 auto mode
> 1 /etc/hurd/runsystem.gnu 5 manual mode
> 2 /etc/hurd/runsystem.sysv 10 manual mode
Since I cannot boot into this system, I'm afraid I cannot run
update-alternatives to get output like the above. :)
But here is my /var/lib/dpkg/alternatives/runsystem:
auto
/etc/hurd/runsystem
halt
/sbin/halt
poweroff
/sbin/poweroff
reboot
/sbin/reboot
/etc/hurd/runsystem.gnu
5
/sbin/halt-hurd
/sbin/poweroff-hurd
/sbin/reboot-hurd
So this is missing entries for /etc/hurd/runsystem.sysv. The hurd.postinst only
sets up the entry for runsystem.gnu at priority 5. So I looked at the
initscripts.postinst from sysvinit and that one also calls "uname" :D
I'll have to go through the postinst scripts of the essential packages and find
out who calls uname and then send patches. Until then I can hack around it.
> > If I do that I get:
> >
> > /usr/libexec/runsystem.hurd: 117: Pipe call failed
>
> You are probably also missing /servers/socket/1
No, I have that. Check here:
$ curl --silent
https://people.debian.org/~josch/hurd.tar.xz | unxz | tar tv | grep /servers/socket/
drwxr-xr-x root/root 0 2024-02-07 17:12 ./servers/socket/
-rw-r--r-- root/root 0 2024-02-07 17:12 ./servers/socket/1
I checked what should be in there according to
exodar.debian.net and also
created the remaining entries manually, so now I have:
$ ls -lha /mnt/servers/socket/
total 8.0K
drwxr-xr-x 2 root root 4.0K Feb 8 07:49 .
drwxr-xr-x 3 root root 4.0K Feb 7 17:12 ..
-rw-r--r-- 1 root root 0 Feb 7 17:12 1
-rw-r--r-- 1 root root 0 Feb 8 07:49 2
-rw-r--r-- 1 root root 0 Feb 8 07:49 26
lrwxrwxrwx 1 root root 1 Feb 8 07:49 inet -> 2
lrwxrwxrwx 1 root root 2 Feb 8 07:49 inet6 -> 26
lrwxrwxrwx 1 root root 1 Feb 8 07:49 local -> 1
But the problem remains the same.
> > My final goal is to have debvm-run (which is just a wrapper around mmdebstrap)
> > create a disk image that can be run with debvm-run (which is just a wrapper
> > around qemu). I think it would be really cool if in Hurd-related bug reports
> > one could just say "to reproduce this hurd problem locally, just run this".
>
> Yes, clearly (though we have already been providing hurd qemu images for
> a long time without that many people actually using the recommended
> qemu-based way to start them...)
But now think about this: if support for this is in debvm and then autopkgtest
has debvm support, then you can build hurd packages on linux using sbuild's
autopkgtest backend or more directly via sbuild-qemu. That would be super cool,
no? :D
> > I'm probably missing more customizations to make this work. Where else other
> > than in debootstrap should I look? Maybe the Debian installer is doing
> > something funny? Maybe there is a hurd-specific udeb that does some setup?
>
> There shouldn't be much more left than the /servers/socket/1 piece.
I hope you have another theory!
Thank you so much for your help!! :)
cheers, josch