Subject: [bug#77943] [PATCH 1/2] services: shepherd: Provide the right #:kernel-log-file on the Hurd.

From: Ludovic Courtès <[email-masked]>
Date: Sun, 20 Apr 2025 17:54:46 +0200

* gnu/services/shepherd.scm (shepherd-system-log-service-type):
Pass #:kernel-log-file.

Reported-by: Yelninei <[email-masked]>
Change-Id: I6f7a4b4e8e69a116069886e3879400d600645b30
---
 gnu/services/shepherd.scm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index c8e01c9d83..156a36c2da 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -781,6 +781,15 @@ (define shepherd-system-log-service-type
                                     (#f #~())
                                     (value #~(#:message-destination #$value)))
 
+                               ;; The Shepherd <= 1.0.4 chooses /proc/kmsg
+                               ;; unconditionally.  Fix that.
+                               #:kernel-log-file
+                               (cond ((string-contains %host-type "linux") ;Linux
+                                      "/proc/kmsg")
+                                     ((string-suffix? "-gnu" %host-type) ;GNU/Hurd
+                                      "/dev/klog")
+                                     (else #f))
+
                                #:date-format #$date-format
                                #:history-size #$history-size
                                #:max-silent-time #$max-silent-time)))))
-- 
2.49.0