mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
profiles: Remove dependency on 'glibc-utf8-locales' for tests.
Commit 1af0860e8b
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.
This commit is contained in:
parent
d44fb7dd60
commit
a6562c7e20
5 changed files with 35 additions and 17 deletions
|
@ -919,10 +919,14 @@ (define %default-profile-hooks
|
|||
(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 @@ (define glibc-utf8-locales ;lazy reference
|
|||
(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 @@ (define builder
|
|||
(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 @@ (define (link-to-empty-profile store generation)
|
|||
"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)))
|
||||
|
|
|
@ -323,7 +323,8 @@ (define (inputs->profile-derivation inputs system bootstrap?)
|
|||
#:system system
|
||||
#:hooks (if bootstrap?
|
||||
'()
|
||||
%default-profile-hooks)))
|
||||
%default-profile-hooks)
|
||||
#:locales? (not bootstrap?)))
|
||||
|
||||
(define requisites* (store-lift requisites))
|
||||
|
||||
|
|
|
@ -200,7 +200,8 @@ (define* (build-and-use-profile store profile manifest
|
|||
(profile-derivation manifest
|
||||
#:hooks (if bootstrap?
|
||||
'()
|
||||
%default-profile-hooks))))
|
||||
%default-profile-hooks)
|
||||
#:locales? (not bootstrap?))))
|
||||
(prof (derivation->output-path prof-drv)))
|
||||
(show-what-to-build store (list prof-drv)
|
||||
#:use-substitutes? use-substitutes?
|
||||
|
|
|
@ -968,7 +968,8 @@ (define read-at
|
|||
(profile-derivation
|
||||
(manifest (map package->manifest-entry
|
||||
(list p1 p2)))
|
||||
#:hooks '())
|
||||
#:hooks '()
|
||||
#:locales? #f)
|
||||
#:guile-for-build (%guile-for-build))))
|
||||
(build-derivations %store (list prof))
|
||||
(string-match (format #f "^export XML_CATALOG_FILES=\"~a/xml/+bar/baz/catalog\\.xml\"\n"
|
||||
|
|
|
@ -195,7 +195,8 @@ (define glibc
|
|||
((entry -> (package->manifest-entry %bootstrap-guile))
|
||||
(guile (package->derivation %bootstrap-guile))
|
||||
(drv (profile-derivation (manifest (list entry))
|
||||
#:hooks '()))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(profile -> (derivation->output-path drv))
|
||||
(bindir -> (string-append profile "/bin"))
|
||||
(_ (built-derivations (list drv))))
|
||||
|
@ -207,7 +208,8 @@ (define glibc
|
|||
(mlet* %store-monad
|
||||
((entry -> (package->manifest-entry packages:glibc "debug"))
|
||||
(drv (profile-derivation (manifest (list entry))
|
||||
#:hooks '())))
|
||||
#:hooks '()
|
||||
#:locales? #f)))
|
||||
(return (derivation-inputs drv))))
|
||||
|
||||
(test-assert "package->manifest-entry defaults to \"out\""
|
||||
|
@ -228,7 +230,8 @@ (define glibc
|
|||
(package-native-search-paths packages:guile-2.0))))
|
||||
(entry -> (package->manifest-entry guile))
|
||||
(drv (profile-derivation (manifest (list entry))
|
||||
#:hooks '()))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(profile -> (derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
|
@ -259,7 +262,8 @@ (define glibc
|
|||
(package-native-search-paths packages:guile-2.0))))
|
||||
(entry -> (package->manifest-entry guile))
|
||||
(drv (profile-derivation (manifest (list entry))
|
||||
#:hooks '()))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(profile -> (derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
|
@ -293,7 +297,8 @@ (define glibc
|
|||
(display "foo!" port))))))))
|
||||
(entry -> (package->manifest-entry thing))
|
||||
(drv (profile-derivation (manifest (list entry))
|
||||
#:hooks '()))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(profile -> (derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
|
@ -321,7 +326,8 @@ (define glibc
|
|||
(display "foo!" port))))))))
|
||||
(entry -> (package->manifest-entry thing))
|
||||
(drv (profile-derivation (manifest (list entry))
|
||||
#:hooks '()))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(profile -> (derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
|
|
Loading…
Reference in a new issue