From 9976c76aab2fe75d7fc672034090e19bdab6879c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 3 Oct 2017 22:27:27 +0200 Subject: file-systems: Preserve UUID types when serializing. Reported by Roel Janssen at . * gnu/system/file-systems.scm (file-system->spec): When DEVICE is a UUID, serialize it in a way that preserves its type. (spec->file-system): Adjust accordingly. * gnu/build/file-systems.scm (canonicalize-device-spec): Add case for when SPEC is 'uuid?'. --- gnu/system/file-systems.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gnu/system') diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 92f040425d..27734e892a 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -18,6 +18,7 @@ (define-module (gnu system file-systems) #:use-module (ice-9 match) + #:use-module (rnrs bytevectors) #:use-module (srfi srfi-1) #:use-module (guix records) #:use-module (gnu system uuid) @@ -161,7 +162,7 @@ initrd code." (match fs (($ device title mount-point type flags options _ _ check?) (list (if (uuid? device) - (uuid-bytevector device) + `(uuid ,(uuid-type device) ,(uuid-bytevector device)) device) title mount-point type flags options check?)))) @@ -170,7 +171,12 @@ initrd code." (match sexp ((device title mount-point type flags options check?) (file-system - (device device) (title title) + (device (match device + (('uuid (? symbol? type) (? bytevector? bv)) + (bytevector->uuid bv type)) + (_ + device))) + (title title) (mount-point mount-point) (type type) (flags flags) (options options) (check? check?))))) -- cgit 1.4.1