Subject: bug#77634: [shepherd] Test failures on GNU/Hurd

From: Ludovic Courtès <[email-masked]>
Date: Sat, 19 Apr 2025 22:41:28 +0200

Hi again,

[email-masked] writes:

> Some minor other things:
> -  Currently the NULL byte from the sender is added into the log
> message, might be worth filtering out
> - "herd status syslogd" does not show the endpoints and
> kernel-log-file the syslog is reading from
> - the shepherd package from the shepherd channel in
> 'set-fibers-directory sets fibers ccache dir also to the fibers source
> dir
> - I am unable to cross compile shepehrd from git with guix because of help2man
> - the guix shepherd-syslog service currently does not expose setting
> the endpoints and kernel-log-file (currently on my childhurd this
> would be /dev/klog instead of /dev/kmsg)

All good points!  Most of these are now fixed on the Shepherd side:

  48e53a4 guix: Record the right Fibers .go file directory.
  98878a7 system-log: Serialize information about sockets and the kernel log file.
  be57f65 system-log: Close input file on end-of-file.
  21bd4ec system-log: Print “localhost” for messages received over AF_UNIX sockets.
  1ad90aa system-log: Read kernel messages from /dev/klog on the Hurd.

Regarding cross-compilation, here’s a protip:

  guix build -L $PWD/.guix/modules [email-masked] \
     --target=i586-pc-gnu

It works because it first builds the tarball, which includes
pre-generated man pages, and then uses it as the source of the Shepherd
being cross-compiled.

Thanks a lot for the detailed bug reports and suggestions; it’s much
appreciated!

Ludo’.