civodul pushed a commit to branch master
in repository guix.

commit de247e40576e0f84a004b18a9b737f2b8ca0420b
Author: Dariqq <[email protected]>
AuthorDate: Mon Dec 16 21:33:12 2024 +0000

    gnu: Add shepherd-for-home.
    
    * gnu/packages/admin.scm (shepherd-for-home): New variable.
    
    Change-Id: If66c7e7b688de239ca862326b51592b43ba22c25
    Signed-off-by: Ludovic Courtès <[email protected]>
    Modified-by: Ludovic Courtès <[email protected]>
---
 gnu/packages/admin.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 4d7b95913b..cff378f184 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -603,6 +603,35 @@ interface and is based on GNU Guile.")
 
 (define-public shepherd shepherd-0.10)
 
+(define-public shepherd-for-home
+  ;; Variant of shepherd without 'sbin' to not shadow 'halt' and 'reboot' on
+  ;; foreign distributions.
+  (let ((base shepherd-1.0))
+    (hidden-package
+     (package/inherit base
+       (name "shepherd-for-home")
+       (source #f)
+       (build-system trivial-build-system)
+       (arguments
+        (list
+         #:modules '((guix build union)
+                     (guix build utils))
+         #:builder
+         #~(begin
+             (use-modules (guix build union)
+                          (guix build utils))
+             (union-build #$output
+                          (list #$(this-package-input "shepherd"))
+                          #:create-all-directories? #t)
+             (delete-file-recursively
+              (string-append #$output "/sbin"))
+             (delete-file-recursively
+              (string-append #$output "/share/man/man8")))))
+       (synopsis
+        "The Shepherd for Guix Home, without @command{halt} and 
@command{reboot}")
+       (native-inputs '())
+       (inputs (list base))))))
+
 (define-public guile2.2-shepherd
   (package
     (inherit shepherd-0.10)

Reply via email to