~ruther/guix-local

ad167d028e97dca1937ad6ae3d89d2c4de997754 — Ludovic Courtès 9 years ago cf98d34
file-systems: Remove dependency on (guix store).

(gnu system file-systems) is used on the "build" side since commit
5970e8e248f6327c41c83b86bb2c89be7c3b1b4e.

* 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.
2 files changed, 22 insertions(+), 1 deletions(-)

M gnu/system/file-systems.scm
M tests/file-systems.scm
M gnu/system/file-systems.scm => gnu/system/file-systems.scm +14 -1
@@ 19,7 19,6 @@
(define-module (gnu system file-systems)
  #:use-module (ice-9 match)
  #:use-module (guix records)
  #:use-module (guix store)
  #:use-module ((gnu build file-systems)
                #:select (string->uuid uuid->string))
  #:re-export (string->uuid


@@ 97,6 96,20 @@
  (dependencies     file-system-dependencies      ; list of <file-system>
                    (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
  (char-set-complement (char-set #\/)))


M tests/file-systems.scm => tests/file-systems.scm +8 -0
@@ 18,6 18,7 @@

(define-module (test-file-systems)
  #:use-module (guix store)
  #:use-module (guix modules)
  #:use-module (gnu system file-systems)
  #:use-module (srfi srfi-64)
  #:use-module (rnrs bytevectors))


@@ 72,4 73,11 @@
                   (device "/foo")
                   (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)