diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-12-17 12:43:10 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-12-17 14:46:42 +0100 |
commit | a6562c7e206650ff3d8e6764e60c59a768414bf7 (patch) | |
tree | ba168b171f14a60f77d16fe6e022f114e1b0f16f /guix/profiles.scm | |
parent | d44fb7dd604d66cee7231bb3a93c3cde023dea82 (diff) | |
download | gnu-guix-a6562c7e206650ff3d8e6764e60c59a768414bf7.tar gnu-guix-a6562c7e206650ff3d8e6764e60c59a768414bf7.tar.gz |
profiles: Remove dependency on 'glibc-utf8-locales' for tests.
Commit 1af0860e8be81c01ad405c1226d6bc4516e62863 added a mandatory
dependency on 'glibc-utf8-locales', which entails long rebuilds for
tests.
* guix/profiles.scm (profile-derivation): Add #:locales? parameter.
Add 'set-utf8-locale' variable. Use it when LOCALES? is true.
(link-to-empty-profile): Pass #:locales? #f.
* guix/scripts/environment.scm (inputs->profile-derivation): Pass
#:locales?.
* guix/scripts/package.scm (build-and-use-profile): Likewise.
* tests/packages.scm ("--search-paths with pattern"): Pass #:locales? #f.
* tests/profiles.scm ("profile-derivation")
("profile-derivation, inputs", "profile-manifest, search-paths")
("etc/profile", "etc/profile when etc/ already exists"):
("etc/profile when etc/ is a symlink"): Likewise.
Diffstat (limited to 'guix/profiles.scm')
-rw-r--r-- | guix/profiles.scm | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm index 82d8b33c09..e7707b6543 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -919,10 +919,14 @@ files for the truetype fonts of the @var{manifest} entries." (define* (profile-derivation manifest #:key (hooks %default-profile-hooks) + (locales? #t) system) "Return a derivation that builds a profile (aka. 'user environment') with the given MANIFEST. The profile includes additional derivations returned by -the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc." +the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc. + +When LOCALES? is true, the build is performed under a UTF-8 locale; this adds +a dependency on the 'glibc-utf8-locales' package." (mlet %store-monad ((system (if system (return system) (current-system))) @@ -943,6 +947,15 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc." (module-ref (resolve-interface '(gnu packages base)) 'glibc-utf8-locales)) + (define set-utf8-locale + ;; Some file names (e.g., in 'nss-certs') are UTF-8 encoded so + ;; install a UTF-8 locale. + #~(begin + (setenv "LOCPATH" + #$(file-append glibc-utf8-locales "/lib/locale/" + (package-version glibc-utf8-locales))) + (setlocale LC_ALL "en_US.utf8"))) + (define builder (with-imported-modules '((guix build profiles) (guix build union) @@ -957,12 +970,7 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc." (setvbuf (current-output-port) _IOLBF) (setvbuf (current-error-port) _IOLBF) - ;; Some file names (e.g., in 'nss-certs') are UTF-8 encoded so - ;; install a UTF-8 locale. - (setenv "LOCPATH" - (string-append #+glibc-utf8-locales "/lib/locale/" - #+(package-version glibc-utf8-locales))) - (setlocale LC_ALL "en_US.utf8") + #+(if locales? set-utf8-locale #t) (define search-paths ;; Search paths of MANIFEST's packages, converted back to their @@ -1110,7 +1118,8 @@ case when generations have been deleted (there are \"holes\")." "Link GENERATION, a string, to the empty profile. An error is raised if that fails." (let* ((drv (run-with-store store - (profile-derivation (manifest '())))) + (profile-derivation (manifest '()) + #:locales? #f))) (prof (derivation->output-path drv "out"))) (build-derivations store (list drv)) (switch-symlinks generation prof))) |