summary refs log tree commit diff
path: root/gnu/system.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-07-17 19:24:15 +0200
committerLudovic Courtès <ludo@gnu.org>2015-07-17 19:24:15 +0200
commite51710d1efd406890285907876ad20ec787394b3 (patch)
tree4aa1a9f5cbc11851651037be1580c56c0a69b871 /gnu/system.scm
parent97121c2a2189c0880cfb4c9a7eb8efd3b6e1c16e (diff)
downloadguix-e51710d1efd406890285907876ad20ec787394b3.tar.gz
file-systems: Add a 'dependencies' field to <file-system>.
* gnu/system/file-systems.scm (<file-system>)[dependencies]: New field.
* gnu/system.scm (other-file-system-services)[requirements]: Honor
  'file-system-dependencies'.
* doc/guix.texi (File Systems): Document it.
Diffstat (limited to 'gnu/system.scm')
-rw-r--r--gnu/system.scm14
1 files changed, 10 insertions, 4 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index ed37c320f7..cf9ee123c7 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -228,10 +228,16 @@ as 'needed-for-boot'."
             (operating-system-mapped-devices os)))
 
   (define (requirements fs)
-    (map (lambda (md)
-           (symbol-append 'device-mapping-
-                          (string->symbol (mapped-device-target md))))
-         (device-mappings fs)))
+    ;; XXX: Fiddling with dmd service names is not nice.
+    (append (map (lambda (fs)
+                   (symbol-append 'file-system-
+                                  (string->symbol
+                                   (file-system-mount-point fs))))
+                 (file-system-dependencies fs))
+            (map (lambda (md)
+                   (symbol-append 'device-mapping-
+                                  (string->symbol (mapped-device-target md))))
+                 (device-mappings fs))))
 
   (sequence %store-monad
             (map (lambda (fs)