Archived
1
0
Fork 0

services: system-service-type: Add entries support for the Hurd.

When creating a disk-image using --save-provenance, "guix system describe"
now works.

* gnu/system.scm (operating-system-directory-base-entries): Add conditional
"hurd" parameter, make "initrd" parameter conditional.
(hurd-default-essential-services): Use them.
(operating-system-boot-parameters-file): Only add 'initrd' when set.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-06-28 18:51:25 +02:00
parent 12906d3e2a
commit 2b76179ecd
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273

View file

@ -537,8 +537,11 @@ possible (that is if there's a LINUX keyword argument in the build system)."
value of the SYSTEM-SERVICE-TYPE service." value of the SYSTEM-SERVICE-TYPE service."
(let* ((locale (operating-system-locale-directory os)) (let* ((locale (operating-system-locale-directory os))
(kernel (operating-system-kernel os)) (kernel (operating-system-kernel os))
(hurd (operating-system-hurd os))
(modules (operating-system-kernel-loadable-modules os)) (modules (operating-system-kernel-loadable-modules os))
(kernel (profile (kernel (if hurd
kernel
(profile
(content (packages->manifest (content (packages->manifest
(cons kernel (cons kernel
(map (lambda (module) (map (lambda (module)
@ -547,12 +550,13 @@ value of the SYSTEM-SERVICE-TYPE service."
module) module)
module)) module))
modules)))) modules))))
(hooks (list linux-module-database)))) (hooks (list linux-module-database)))))
(initrd (operating-system-initrd-file os)) (initrd (and (not hurd) (operating-system-initrd-file os)))
(params (operating-system-boot-parameters-file os))) (params (operating-system-boot-parameters-file os)))
`(("kernel" ,kernel) `(("kernel" ,kernel)
,@(if hurd `(("hurd" ,hurd)) '())
("parameters" ,params) ("parameters" ,params)
("initrd" ,initrd) ,@(if initrd `(("initrd" ,initrd)) '())
("locale" ,locale)))) ;used by libc ("locale" ,locale)))) ;used by libc
(define (operating-system-default-essential-services os) (define (operating-system-default-essential-services os)
@ -604,7 +608,8 @@ bookkeeping."
(operating-system-firmware os))))))) (operating-system-firmware os)))))))
(define (hurd-default-essential-services os) (define (hurd-default-essential-services os)
(list (service system-service-type '()) (let ((entries (operating-system-directory-base-entries os)))
(list (service system-service-type entries)
%boot-service %boot-service
%hurd-startup-service %hurd-startup-service
%activation-service %activation-service
@ -620,7 +625,7 @@ bookkeeping."
(operating-system-file-systems os))) (operating-system-file-systems os)))
(pam-root-service (operating-system-pam-services os)) (pam-root-service (operating-system-pam-services os))
(operating-system-etc-service os) (operating-system-etc-service os)
(service profile-service-type (operating-system-packages os)))) (service profile-service-type (operating-system-packages os)))))
(define* (operating-system-services os) (define* (operating-system-services os)
"Return all the services of OS, including \"essential\" services." "Return all the services of OS, including \"essential\" services."
@ -1276,7 +1281,13 @@ being stored into the \"parameters\" file)."
(kernel #$(boot-parameters-kernel params)) (kernel #$(boot-parameters-kernel params))
(kernel-arguments (kernel-arguments
#$(boot-parameters-kernel-arguments params)) #$(boot-parameters-kernel-arguments params))
(initrd #$(boot-parameters-initrd params)) #$@(if (boot-parameters-initrd params)
#~((initrd #$(boot-parameters-initrd params)))
#~())
#$@(if (pair? (boot-parameters-multiboot-modules params))
#~((multiboot-modules
#$(boot-parameters-multiboot-modules params)))
#~())
(bootloader-name #$(boot-parameters-bootloader-name params)) (bootloader-name #$(boot-parameters-bootloader-name params))
(bootloader-menu-entries (bootloader-menu-entries
#$(map menu-entry->sexp #$(map menu-entry->sexp