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:
parent
12906d3e2a
commit
2b76179ecd
1 changed files with 41 additions and 30 deletions
|
@ -537,22 +537,26 @@ 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
|
||||||
(content (packages->manifest
|
kernel
|
||||||
(cons kernel
|
(profile
|
||||||
(map (lambda (module)
|
(content (packages->manifest
|
||||||
(if (package? module)
|
(cons kernel
|
||||||
(package-for-kernel kernel
|
(map (lambda (module)
|
||||||
module)
|
(if (package? module)
|
||||||
module))
|
(package-for-kernel kernel
|
||||||
modules))))
|
module)
|
||||||
(hooks (list linux-module-database))))
|
module))
|
||||||
(initrd (operating-system-initrd-file os))
|
modules))))
|
||||||
|
(hooks (list linux-module-database)))))
|
||||||
|
(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,23 +608,24 @@ 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)))
|
||||||
%boot-service
|
(list (service system-service-type entries)
|
||||||
%hurd-startup-service
|
%boot-service
|
||||||
%activation-service
|
%hurd-startup-service
|
||||||
%shepherd-root-service
|
%activation-service
|
||||||
(service user-processes-service-type)
|
%shepherd-root-service
|
||||||
(account-service (append (operating-system-accounts os)
|
(service user-processes-service-type)
|
||||||
(operating-system-groups os))
|
(account-service (append (operating-system-accounts os)
|
||||||
(operating-system-skeletons os))
|
(operating-system-groups os))
|
||||||
(root-file-system-service)
|
(operating-system-skeletons os))
|
||||||
(service file-system-service-type '())
|
(root-file-system-service)
|
||||||
(service fstab-service-type
|
(service file-system-service-type '())
|
||||||
(filter file-system-needed-for-boot?
|
(service fstab-service-type
|
||||||
(operating-system-file-systems os)))
|
(filter file-system-needed-for-boot?
|
||||||
(pam-root-service (operating-system-pam-services os))
|
(operating-system-file-systems os)))
|
||||||
(operating-system-etc-service os)
|
(pam-root-service (operating-system-pam-services os))
|
||||||
(service profile-service-type (operating-system-packages os))))
|
(operating-system-etc-service 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
|
||||||
|
|
Reference in a new issue