#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages guile-xyz)
#:use-module (gnu packages admin)
#:use-module (gnu packages linux)
#:use-module (gnu packages pciutils)
operating-system-bootloader
operating-system-services
operating-system-essential-services
+ operating-system-default-essential-services
operating-system-user-services
operating-system-packages
operating-system-host-name
operating-system-kernel
operating-system-kernel-file
operating-system-kernel-arguments
+ operating-system-label
+ operating-system-default-label
operating-system-initrd-modules
operating-system-initrd
operating-system-users
operating-system-boot-script
system-linux-image-file-name
+ operating-system-with-gc-roots
boot-parameters
boot-parameters?
(kernel operating-system-kernel ; package
(default linux-libre))
(kernel-arguments operating-system-user-kernel-arguments
- (default '())) ; list of gexps/strings
+ (default '("quiet"))) ; list of gexps/strings
(bootloader operating-system-bootloader) ; <bootloader-configuration>
+ (label operating-system-label ; string
+ (thunked)
+ (default (operating-system-default-label this-operating-system)))
(keyboard-layout operating-system-keyboard-layout ;#f | <keyboard-layout>
(default #f))
(essential-services operating-system-essential-services ; list of services
(thunked)
- (default (essential-services this-operating-system)))
+ (default (operating-system-default-essential-services
+ this-operating-system)))
(services operating-system-user-services ; list of services
(default %base-services))
("initrd" ,initrd)
("locale" ,locale)))))) ;used by libc
-(define* (essential-services os)
+(define (operating-system-default-essential-services os)
"Return the list of essential services for OS. These are special services
that implement part of what's declared in OS are responsible for low-level
bookkeeping."
(operating-system-groups os))
(operating-system-skeletons os))
(operating-system-etc-service os)
- (service fstab-service-type '())
+ (service fstab-service-type
+ (filter file-system-needed-for-boot?
+ (operating-system-file-systems os)))
(session-environment-service
(operating-system-environment-variables os))
host-name procs root-fs
(append (operating-system-user-services os)
(operating-system-essential-services os))))
+(define (operating-system-with-gc-roots os roots)
+ "Return a variant of OS where ROOTS are registered as GC roots."
+ (operating-system
+ (inherit os)
+
+ ;; We use this procedure for the installation OS, which already defines GC
+ ;; roots. Add ROOTS to those.
+ (services (cons (simple-service 'extra-root
+ gc-root-service-type roots)
+ (operating-system-user-services os)))))
+
\f
;;;
;;; /etc.
;; variant propagated by 'guile-final' and the GMP variant propagated
;; by 'gnutls', itself propagated by 'guix'.
guile-2.2
+ guile-readline guile-colorized
;; The packages below are also in %FINAL-INPUTS, so take them from
;; there to avoid duplication.
(cond ((package? kernel)
(string-append "GNU with "
(string-titlecase (package-name kernel)) " "
- (package-version kernel)
- " (beta)"))
+ (package-version kernel)))
((inferior-package? kernel)
(string-append "GNU with "
(string-titlecase (inferior-package-name kernel)) " "
- (inferior-package-version kernel)
- " (beta)"))
+ (inferior-package-version kernel)))
(else "GNU")))
+(define (operating-system-default-label os)
+ "Return the default label for OS, as it will appear in the bootloader menu
+entry."
+ (kernel->boot-label (operating-system-kernel os)))
+
(define (store-file-system file-systems)
"Return the file system object among FILE-SYSTEMS that contains the store."
(match (filter (lambda (fs)
(bootloader (bootloader-configuration-bootloader
(operating-system-bootloader os)))
(bootloader-name (bootloader-name bootloader))
- (label (kernel->boot-label (operating-system-kernel os))))
+ (label (operating-system-label os)))
(boot-parameters
(label label)
(root-device root-device)