guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

06/12: system: hurd: Add swap-services to hurd-default-essential-service


From: guix-commits
Subject: 06/12: system: hurd: Add swap-services to hurd-default-essential-services.
Date: Mon, 18 Sep 2023 01:43:06 -0400 (EDT)

janneke pushed a commit to branch hurd-team
in repository guix.

commit c7db76e485db734350a496b360b4769f77e31782
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Thu Jun 15 07:27:34 2023 +0200

    system: hurd: Add swap-services to hurd-default-essential-services.
    
    * gnu/services/base.scm (swap-service-type): Do not include 'udev' 
requirement
    for the Hurd.  Use system* with "swapon", "swapoff" for the Hurd.
    * gnu/system.scm (hurd-default-essential-services): Add swap-services.
    * gnu/services/base.scm (swap-service-type):
---
 gnu/services/base.scm | 20 +++++++++++-------
 gnu/system.scm        | 57 ++++++++++++++++++++++++++-------------------------
 2 files changed, 42 insertions(+), 35 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index b3f2d2e8b8..0ad36658d8 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -43,6 +43,7 @@
   #:autoload   (guix diagnostics) (warning formatted-message &fix-hint)
   #:autoload   (guix i18n) (G_)
   #:use-module (guix combinators)
+  #:use-module (guix utils)
   #:use-module (gnu services)
   #:use-module (gnu services admin)
   #:use-module (gnu services shepherd)
@@ -2471,7 +2472,7 @@ instance."
      (with-imported-modules (source-module-closure '((gnu build file-systems)))
        (shepherd-service
         (provision (list (swap->shepherd-service-name swap)))
-        (requirement `(udev ,@requirements))
+        (requirement `(,@(if (target-hurd?) '() '(udev)) ,@requirements))
         (documentation "Enable the given swap space.")
         (modules `((gnu build file-systems)
                    ,@%default-modules))
@@ -2479,16 +2480,21 @@ instance."
                    (let ((device #$device-lookup))
                      (and device
                           (begin
-                            (restart-on-EINTR (swapon device
-                                                      #$(if (swap-space? swap)
-                                                            
(swap-space->flags-bit-mask
-                                                             swap)
-                                                            0)))
+                            #$(if (target-hurd?)
+                                  #~(system* "swapon" device)
+                                  #~(restart-on-EINTR
+                                     (swapon device
+                                             #$(if (swap-space? swap)
+                                                   (swap-space->flags-bit-mask
+                                                    swap)
+                                                   0))))
                             #t)))))
         (stop #~(lambda _
                   (let ((device #$device-lookup))
                     (when device
-                      (restart-on-EINTR (swapoff device)))
+                      #$(if (target-hurd?)
+                            #~(system* "swapoff" device)
+                            #~(restart-on-EINTR (swapoff device))))
                     #f)))
         (respawn? #f))))
    (description "Turn on the virtual memory swap area.")))
diff --git a/gnu/system.scm b/gnu/system.scm
index 279b9df5c0..e88a2f3a2f 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -800,34 +800,35 @@ bookkeeping."
   (let ((host-name    (operating-system-host-name os))
         (hosts-file   (%operating-system-hosts-file os))
         (entries      (operating-system-directory-base-entries os)))
-    (list (service system-service-type entries)
-          %boot-service
-          %hurd-startup-service
-          %activation-service
-          (service shepherd-root-service-type
-                   (shepherd-configuration
-                    (shepherd shepherd-0.8)))     ;no Fibers
-
-          (service user-processes-service-type)
-          (account-service (append (operating-system-accounts os)
-                                   (operating-system-groups os))
-                           (operating-system-skeletons os))
-          (root-file-system-service)
-          (service file-system-service-type '())
-          (service fstab-service-type
-                   (filter file-system-needed-for-boot?
-                           (operating-system-file-systems os)))
-          (pam-root-service (operating-system-pam-services os))
-          (operating-system-etc-service os)
-          ;; XXX: hosts-file is deprecated
-          (if hosts-file
-              (simple-service 'deprecated-hosts-file etc-service-type
-                              (list `("hosts" ,hosts-file)))
-              (service hosts-service-type
-                       (local-host-entries host-name)))
-          (service setuid-program-service-type
-                   (operating-system-setuid-programs os))
-          (service profile-service-type (operating-system-packages os)))))
+    (cons* (service system-service-type entries)
+           %boot-service
+           %hurd-startup-service
+           %activation-service
+           (service shepherd-root-service-type
+                    (shepherd-configuration
+                     (shepherd shepherd-0.8))) ;no Fibers
+
+           (service user-processes-service-type)
+           (account-service (append (operating-system-accounts os)
+                                    (operating-system-groups os))
+                            (operating-system-skeletons os))
+           (root-file-system-service)
+           (service file-system-service-type '())
+           (service fstab-service-type
+                    (filter file-system-needed-for-boot?
+                            (operating-system-file-systems os)))
+           (pam-root-service (operating-system-pam-services os))
+           (operating-system-etc-service os)
+           ;; XXX: hosts-file is deprecated
+           (if hosts-file
+               (simple-service 'deprecated-hosts-file etc-service-type
+                               (list `("hosts" ,hosts-file)))
+               (service hosts-service-type
+                        (local-host-entries host-name)))
+           (service setuid-program-service-type
+                    (operating-system-setuid-programs os))
+           (service profile-service-type (operating-system-packages os))
+           (swap-services os))))
 
 (define* (operating-system-services os)
   "Return all the services of OS, including \"essential\" services."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]