diff options
-rw-r--r-- | gnu/services/base.scm | 20 | ||||
-rw-r--r-- | gnu/system.scm | 57 |
2 files changed, 42 insertions, 35 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 492cf8a693..f4abfb92dd 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) @@ -2474,7 +2475,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)) @@ -2482,16 +2483,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 23addf41e9..194de2cad5 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." |