summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorRutherther <rutherther@ditigal.xyz>2026-02-04 21:26:53 +0100
committerMaxim Cournoyer <maxim@guixotic.coop>2026-02-23 11:56:12 +0900
commit7e7487166b02aa41d42e96a1dfccaceda7fefc12 (patch)
treea6704bc27382a99ebd9040361fa91de61bb183ac /gnu
parente3d8fc1147d03b6e6a47f8f1976068ad0faec9ab (diff)
file-systems: canonicalize-device-spec: Wait for device to exist.
Waits for devices specified by a string. Fixes: #6134 Change-Id: I430483deccb70fad44fe0e141afc050ae41308dc Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/file-systems.scm13
1 files changed, 7 insertions, 6 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 72d7f5f2601..33b035aa967 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -1220,15 +1220,16 @@ file name or an nfs-root containing ':/')."
(sleep 1)
(loop (+ 1 count))))))))
+ (define (device-exists? device)
+ (and (file-exists? device)
+ device))
+
(match spec
((? string?)
- (if (or (string-contains spec ":/") ;nfs
- (and (>= (string-length spec) 2)
- (equal? (string-take spec 2) "//")) ;cifs
- (string=? spec "none"))
- spec ; do not resolve NFS / CIFS / tmpfs devices
+ (if (string-prefix? "/dev/" spec)
;; Nothing to do, but wait until SPEC shows up.
- (resolve identity spec identity)))
+ (resolve device-exists? spec identity)
+ spec)) ; do not resolve NFS / CIFS / tmpfs devices
((? file-system-label?)
;; Resolve the label.
(resolve find-partition-by-label