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

Message ID ee2ded1a592d8f91595c26c08f6f9f047d74b4f2.1745163830.git.ludo@gnu.org
State New
Headers
Series Using the Shepherd's system log on the Hurd |

Commit Message

Ludovic Courtès April 20, 2025, 3:54 p.m. UTC
  * gnu/services/shepherd.scm (shepherd-system-log-service-type):
Pass #:kernel-log-file.

Reported-by: Yelninei <yelninei@tutamail.com>
Change-Id: I6f7a4b4e8e69a116069886e3879400d600645b30
---
 gnu/services/shepherd.scm | 9 +++++++++
 1 file changed, 9 insertions(+)
  

Patch

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)))))