mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
store: 'run-with-store' initializes %CURRENT-TARGET-SYSTEM to #f.
* guix/store.scm (run-with-store): Set %CURRENT-TARGET-SYSTEM to #f. * tests/gexp.scm ("gexp->derivation vs. %current-target-system"): New test.
This commit is contained in:
parent
d7facc6603
commit
a8afb9aed3
2 changed files with 16 additions and 1 deletions
|
@ -996,8 +996,12 @@ (define* (run-with-store store mval
|
|||
(system (%current-system)))
|
||||
"Run MVAL, a monadic value in the store monad, in STORE, an open store
|
||||
connection, and return the result."
|
||||
;; Initialize the dynamic bindings here to avoid bad surprises. The
|
||||
;; difficulty lies in the fact that dynamic bindings are resolved at
|
||||
;; bind-time and not at call time, which can be disconcerting.
|
||||
(parameterize ((%guile-for-build guile-for-build)
|
||||
(%current-system system))
|
||||
(%current-system system)
|
||||
(%current-target-system #f))
|
||||
(call-with-values (lambda ()
|
||||
(run-with-state mval store))
|
||||
(lambda (result store)
|
||||
|
|
|
@ -636,6 +636,17 @@ (define shebang
|
|||
file)))))
|
||||
#:guile-for-build (package-derivation %store %bootstrap-guile))))
|
||||
|
||||
(test-assert "gexp->derivation vs. %current-target-system"
|
||||
(let ((mval (gexp->derivation "foo"
|
||||
#~(begin
|
||||
(mkdir #$output)
|
||||
(foo #+gnu-make))
|
||||
#:target #f)))
|
||||
;; The value of %CURRENT-TARGET-SYSTEM at bind-time should have no
|
||||
;; influence.
|
||||
(parameterize ((%current-target-system "fooooo"))
|
||||
(derivation? (run-with-store %store mval)))))
|
||||
|
||||
(test-assert "printer"
|
||||
(string-match "^#<gexp \\(string-append .*#<package coreutils.*\
|
||||
\"/bin/uname\"\\) [[:xdigit:]]+>$"
|
||||
|
|
Loading…
Reference in a new issue