Subject: [bug#61939] [PATCH 1/3] gnu: rasdaemon: Refactor package.

From: Bruno Victal <[email-masked]>
Date: Fri, 3 Mar 2023 15:54:20 +0000

With commit 9367354a4e57506a7090143e423fa620f86eeed1, rasdaemon no longer
creates /var/lib/rasdaemon at install time.

* gnu/packages/linux.scm (rasdaemon)[arguments]: Remove obsolete patch.
Prefer wrap-program to brittle 'fix-dmidecode-and-modprobe phase.
---
 gnu/packages/linux.scm | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3601744c51..545d53fe91 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -69,6 +69,7 @@
 ;;; Copyright © 2022 Hilton Chain <[email-masked]>
 ;;; Copyright © 2022 Stefan <[email-masked]>
 ;;; Copyright © 2022 Demis Balbach <[email-masked]>
+;;; Copyright © 2023 Bruno Victal <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -9580,21 +9581,15 @@ (define-public rasdaemon
               ;; in EPERM during the install phase.  Removing the offending
               ;; line lets sysconfdir correctly pick up DESTDIR.
               (substitute* "configure.ac"
-                (("^test .* sysconfdir=/etc\n$") ""))
-              ;; Upstream tries to create /var/lib/rasdaemon at install time.
-              ;; This results in EPERM on guix.  Instead, the service should
-              ;; create this at activation time.
-              (substitute* "Makefile.am"
-                (("^\\s*\\$\\(install_sh\\) -d .*@RASSTATEDIR@.*$") ""))))
-          (add-after 'install 'fix-dmidecode-and-modprobe
-            (lambda _
-              (substitute* (string-append #$output "/sbin/ras-mc-ctl")
-                (("find_prog \\(\"dmidecode\"\\).*$") (format #f "~s;~%" (string-append #$dmidecode "/sbin/dmidecode")))
-                (("find_prog \\(\"modprobe\"\\).*$") (format #f "~s;~%" (string-append #$kmod "/bin/modprobe"))))))
+                (("^test .* sysconfdir=/etc\n$") ""))))
           (add-after 'wrap 'wrap-rasdaemon
-            (lambda _
-              (wrap-program (string-append #$output "/sbin/ras-mc-ctl")
-                `("PERL5LIB" ":" prefix ,(string-split (getenv "PERL5LIB") #\:))))))))
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((path (map dirname
+                               (list (search-input-file inputs "/sbin/dmidecode")
+                                     (search-input-file inputs "/bin/modprobe")))))
+                (wrap-program (string-append #$output "/sbin/ras-mc-ctl")
+                  `("PATH" ":" prefix ,path)
+                  `("PERL5LIB" ":" prefix ,(string-split (getenv "PERL5LIB") #\:)))))))))
     (build-system gnu-build-system)
     (home-page "https://github.com/mchehab/rasdaemon")
     (synopsis "Platform Reliability, Availability, and Serviceability tools")
-- 
2.39.1