Hello,
Apr 19, 2025, 20:42 by l...@gnu.org: > Hi again, > > yelni...@tutamail.com 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. > Great, thanks. The last thing that still needs fixing is the message-destination procedure in the system-log.sh test. Currently It sends all messages to the $syslog_remote_file if the message has a sender, but arguably the (null) AF_UNIX sockets are not remote. After I changed that I was able to finally build shepherd with all non skipped tests passing. I then tried the shepherd syslogd on the childhurd but some things were not quite right: - the /dev/klog messages are being logged but were missing the %kernel-prefix, i dont think this is a problem with shepherd. - I saw no syslog messages in /var/log/messages, i.e. from sshd or a user shepherd logging to syslog. It just seems to stop logging to the main log file entirely after finishing with /dev/klog. Any ideas? > Regarding cross-compilation, here’s a protip: > > guix build -L $PWD/.guix/modules shepherd@1.0.99-tarball \ > --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. > This even works in the childhurd operating system record and I can just use that package instead of the manual "make dist" and source override I did before. > Thanks a lot for the detailed bug reports and suggestions; it’s much > appreciated! > Thank you for making shepherd very approachable. I had no issues understanding how the syslog service is supposed to work and hunt down the bug. > Ludo’. >