diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-10-29 18:22:19 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-10-29 19:07:58 +0100 |
commit | e502bf8953afcd1e0cf29cd729e7c62c5c27792f (patch) | |
tree | 24a796b0e8beef91632b2d36f93fae32b2543c7d /gnu/system.scm | |
parent | 362f496da9fc929d9548b8a56990779718b13c95 (diff) | |
download | guix-e502bf8953afcd1e0cf29cd729e7c62c5c27792f.tar.gz |
system: File systems depend on their corresponding device mappings.
Fixes a regression introduced in commit 0adfe95. * gnu/system.scm (other-file-system-services)[requirements]: Remove. [add-dependencies]: New procedure. Use it. * gnu/system/file-systems.scm (<file-system>)[dependencies]: Update comment. * gnu/services/base.scm (mapped-device->dmd-service-name, dependency->dmd-service-name): New procedures. (file-system-service-type): Use it.
Diffstat (limited to 'gnu/system.scm')
-rw-r--r-- | gnu/system.scm | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/gnu/system.scm b/gnu/system.scm index aa768824d9..37d6d075c5 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -195,19 +195,16 @@ as 'needed-for-boot'." (file-system-device fs))) (operating-system-mapped-devices os))) - (define (requirements 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)))) - - (map file-system-service file-systems)) + (define (add-dependencies fs) + ;; Add the dependencies due to device mappings to FS. + (file-system + (inherit fs) + (dependencies + (delete-duplicates (append (device-mappings fs) + (file-system-dependencies fs)) + eq?)))) + + (map (compose file-system-service add-dependencies) file-systems)) (define (mapped-device-user device file-systems) "Return a file system among FILE-SYSTEMS that uses DEVICE, or #f." |