mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-28 12:01:49 +02:00
installer: Use 'glibc-supported-locales'.
The list of locales supported by glibc is now built from source. * gnu/installer/locale.scm (locale-string->locale): Add optional 'codeset' parameter and honor it. (supported-locales->locales): Rewrite to 'read' from SUPPORTED-LOCALES. * gnu/installer.scm (compute-locale-step): Pass the result of 'glibc-supported-locales' instead of the "aux-files/SUPPORTED" file. * gnu/installer/aux-files/SUPPORTED: Remove. * gnu/local.mk (dist_installer_DATA): Remove it.
This commit is contained in:
+10
-14
@@ -62,12 +62,13 @@
|
||||
(define (locale-modifier assoc)
|
||||
(assoc-ref assoc 'modifier))
|
||||
|
||||
(define (locale-string->locale string)
|
||||
"Return the locale association list built from the parsing of STRING."
|
||||
(define* (locale-string->locale string #:optional codeset)
|
||||
"Return the locale association list built from the parsing of STRING and,
|
||||
optionally, CODESET."
|
||||
(let ((matches (string-match locale-regexp string)))
|
||||
`((language . ,(match:substring matches 1))
|
||||
(territory . ,(match:substring matches 3))
|
||||
(codeset . ,(match:substring matches 5))
|
||||
(codeset . ,(or codeset (match:substring matches 5)))
|
||||
(modifier . ,(match:substring matches 7)))))
|
||||
|
||||
(define (normalize-codeset codeset)
|
||||
@@ -107,17 +108,12 @@
|
||||
'())))))
|
||||
|
||||
(define (supported-locales->locales supported-locales)
|
||||
"Parse the SUPPORTED-LOCALES file from the glibc and return the matching
|
||||
list of LOCALE association lists."
|
||||
(call-with-input-file supported-locales
|
||||
(lambda (port)
|
||||
(let ((lines (read-lines port)))
|
||||
(map (lambda (line)
|
||||
(match (string-split line #\ )
|
||||
((locale-string codeset)
|
||||
(let ((line-locale (locale-string->locale locale-string)))
|
||||
(assoc-set! line-locale 'codeset codeset)))))
|
||||
lines)))))
|
||||
"Given SUPPORTED-LOCALES, a file produced by 'glibc-supported-locales',
|
||||
return a list of locales where each locale is an alist."
|
||||
(map (match-lambda
|
||||
((locale . codeset)
|
||||
(locale-string->locale locale codeset)))
|
||||
(call-with-input-file supported-locales read)))
|
||||
|
||||
|
||||
;;;
|
||||
|
||||
Reference in New Issue
Block a user