file-systems: Remove dependency on (guix store).
(gnu system file-systems) is used on the "build" side since commit
5970e8e248
.
* gnu/system/file-systems.scm: Remove dependency on (guix store).
(%store-prefix): New procedure.
* tests/file-systems.scm ("does not pull (guix config)"): New test.
This commit is contained in:
parent
cf98d342b0
commit
ad167d028e
|
@ -19,7 +19,6 @@
|
||||||
(define-module (gnu system file-systems)
|
(define-module (gnu system file-systems)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix store)
|
|
||||||
#:use-module ((gnu build file-systems)
|
#:use-module ((gnu build file-systems)
|
||||||
#:select (string->uuid uuid->string))
|
#:select (string->uuid uuid->string))
|
||||||
#:re-export (string->uuid
|
#:re-export (string->uuid
|
||||||
|
@ -97,6 +96,20 @@
|
||||||
(dependencies file-system-dependencies ; list of <file-system>
|
(dependencies file-system-dependencies ; list of <file-system>
|
||||||
(default '()))) ; or <mapped-device>
|
(default '()))) ; or <mapped-device>
|
||||||
|
|
||||||
|
;; Note: This module is used both on the build side and on the host side.
|
||||||
|
;; Arrange not to pull (guix store) and (guix config) because the latter
|
||||||
|
;; differs from user to user.
|
||||||
|
(define (%store-prefix)
|
||||||
|
"Return the store prefix."
|
||||||
|
(cond ((resolve-module '(guix store) #:ensure #f)
|
||||||
|
=>
|
||||||
|
(lambda (store)
|
||||||
|
((module-ref store '%store-prefix))))
|
||||||
|
((getenv "NIX_STORE")
|
||||||
|
=> identity)
|
||||||
|
(else
|
||||||
|
"/gnu/store")))
|
||||||
|
|
||||||
(define %not-slash
|
(define %not-slash
|
||||||
(char-set-complement (char-set #\/)))
|
(char-set-complement (char-set #\/)))
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
(define-module (test-file-systems)
|
(define-module (test-file-systems)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
|
#:use-module (guix modules)
|
||||||
#:use-module (gnu system file-systems)
|
#:use-module (gnu system file-systems)
|
||||||
#:use-module (srfi srfi-64)
|
#:use-module (srfi srfi-64)
|
||||||
#:use-module (rnrs bytevectors))
|
#:use-module (rnrs bytevectors))
|
||||||
|
@ -72,4 +73,11 @@
|
||||||
(device "/foo")
|
(device "/foo")
|
||||||
(flags '(bind-mount read-only)))))))))
|
(flags '(bind-mount read-only)))))))))
|
||||||
|
|
||||||
|
(test-assert "does not pull (guix config)"
|
||||||
|
;; This module is meant both for the host side and "build side", so make
|
||||||
|
;; sure it doesn't pull in (guix config), which depends on the user's
|
||||||
|
;; config.
|
||||||
|
(not (member '(guix config)
|
||||||
|
(source-module-closure '((gnu system file-systems))))))
|
||||||
|
|
||||||
(test-end)
|
(test-end)
|
||||||
|
|
Loading…
Reference in New Issue