locale: Demonadify the locale creation API.
* gnu/system/locale.scm (single-locale-directory): Use 'computed-file' instead of 'gexp->derivation'. (locale-directory): Adjust accordingly and do the same. * gnu/system.scm (operating-system-directory-base-entries): Adjust accordingly.
This commit is contained in:
parent
6d833b13b7
commit
b19a49d015
|
@ -403,17 +403,18 @@ OS."
|
|||
(define* (operating-system-directory-base-entries os #:key container?)
|
||||
"Return the basic entries of the 'system' directory of OS for use as the
|
||||
value of the SYSTEM-SERVICE-TYPE service."
|
||||
(mlet %store-monad ((locale (operating-system-locale-directory os)))
|
||||
(if container?
|
||||
(return `(("locale" ,locale)))
|
||||
(mlet %store-monad
|
||||
((kernel -> (operating-system-kernel os))
|
||||
(initrd (operating-system-initrd-file os))
|
||||
(params (operating-system-boot-parameters-file os)))
|
||||
(return `(("kernel" ,kernel)
|
||||
("parameters" ,params)
|
||||
("initrd" ,initrd)
|
||||
("locale" ,locale))))))) ;used by libc
|
||||
(let ((locale (operating-system-locale-directory os)))
|
||||
(with-monad %store-monad
|
||||
(if container?
|
||||
(return `(("locale" ,locale)))
|
||||
(mlet %store-monad
|
||||
((kernel -> (operating-system-kernel os))
|
||||
(initrd (operating-system-initrd-file os))
|
||||
(params (operating-system-boot-parameters-file os)))
|
||||
(return `(("kernel" ,kernel)
|
||||
("parameters" ,params)
|
||||
("initrd" ,initrd)
|
||||
("locale" ,locale)))))))) ;used by libc
|
||||
|
||||
(define* (essential-services os #:key container?)
|
||||
"Return the list of essential services for OS. These are special services
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
(define-module (gnu system locale)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages base)
|
||||
|
@ -118,8 +117,7 @@ of LIBC."
|
|||
(and #$@(map (cut localedef-command <> #:libc libc)
|
||||
locales)))))
|
||||
|
||||
(gexp->derivation (string-append "locale-" version) build
|
||||
#:local-build? #t))
|
||||
(computed-file (string-append "locale-" version) build))
|
||||
|
||||
(define* (locale-directory locales
|
||||
#:key (libcs %default-locale-libcs))
|
||||
|
@ -133,18 +131,16 @@ data format changes between libc versions."
|
|||
((libc)
|
||||
(single-locale-directory locales #:libc libc))
|
||||
((libcs ..1)
|
||||
(mlet %store-monad ((dirs (mapm %store-monad
|
||||
(lambda (libc)
|
||||
(single-locale-directory locales
|
||||
#:libc libc))
|
||||
libcs)))
|
||||
(gexp->derivation "locale-multiple-versions"
|
||||
(with-imported-modules '((guix build union))
|
||||
#~(begin
|
||||
(use-modules (guix build union))
|
||||
(union-build #$output (list #$@dirs))))
|
||||
#:local-build? #t
|
||||
#:substitutable? #f)))))
|
||||
(let ((dirs (map (lambda (libc)
|
||||
(single-locale-directory locales #:libc libc))
|
||||
libcs)))
|
||||
(computed-file "locale-multiple-versions"
|
||||
(with-imported-modules '((guix build union))
|
||||
#~(begin
|
||||
(use-modules (guix build union))
|
||||
(union-build #$output (list #$@dirs))))
|
||||
#:options '(#:local-build? #t
|
||||
#:substitutable? #f))))))
|
||||
|
||||
(define %default-locale-libcs
|
||||
;; The libcs for which we build locales by default.
|
||||
|
|
Loading…
Reference in New Issue