From 3141a8bdb35a6df12975d335ee05409fc604ab4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 10 Dec 2013 21:46:59 +0100 Subject: gnu: Honor the operating system's locale and timezone. * gnu/system.scm (etc-directory): Add 'locale' and 'timezone' parameters. Set 'LC_ALL', 'TZ', and 'TZDIR' in /etc/profile. (operating-system-derivation): Adjust call accordingly. * gnu/system/vm.scm (%demo-operating-system): Change locale to 'en_US.UTF-8'. Add TZDATA to 'packages'. --- gnu/system.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'gnu/system.scm') diff --git a/gnu/system.scm b/gnu/system.scm index 642e4b275c..0516112553 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -85,7 +85,8 @@ guile bash (@ (gnu packages dmd) dmd) - guix))) + guix + tzdata))) (timezone operating-system-timezone) ; string (locale operating-system-locale) ; string @@ -214,6 +215,7 @@ directories or regular files." #:inputs inputs))) (define* (etc-directory #:key + (locale "C") (timezone "Europe/Paris") (accounts '()) (groups '()) (pam-services '()) @@ -238,9 +240,18 @@ GNU dmd (http://www.gnu.org/software/dmd/). You can log in as 'guest' or 'root' with no password. ")) + ;; Assume TZDATA is installed---e.g., as part of the system packages. + ;; Users can choose not to have it. + (tzdir (package-file tzdata "share/zoneinfo")) + ;; TODO: Generate bashrc from packages' search-paths. (bashrc (text-file "bashrc" (string-append " export PS1='\\u@\\h\\$ ' + +export LC_ALL=\"" locale "\" +export TZ=\"" timezone "\" +export TZDIR=\"" tzdir "\" + export PATH=$HOME/.guix-profile/bin:" profile "/bin:" profile "/sbin export CPATH=$HOME/.guix-profile/include:" profile "/include export LIBRARY_PATH=$HOME/.guix-profile/lib:" profile "/lib @@ -297,6 +308,8 @@ alias ll='ls -l' (profile -> (derivation->output-path profile-drv)) (etc-drv (etc-directory #:accounts accounts #:groups groups #:pam-services pam-services + #:locale (operating-system-locale os) + #:timezone (operating-system-timezone os) #:profile profile)) (etc -> (derivation->output-path etc-drv)) (dmd-conf (dmd-configuration-file services etc)) -- cgit v1.2.3