Subject: bug#66014: Unable to use UUIDs to construct RAID array in mapped-devices

From: Csepp <[email-masked]>
Date: Mon, 18 Sep 2023 14:24:16 +0200

Lars Rustand <[email-masked]> writes:

> [[PGP Signed Part:Undecided]]
> Setting up a RAID array using UUIDs does not work.
>
> The following mapped-devices block works:
>
>   (mapped-devices
>     (list
>       (mapped-device
>         (source (list "/dev/nvme0n1p2" "/dev/nvme1n1p3"))
>         (target "/dev/md0")
>         (type raid-device-mapping))))
>
> But this one fails:
>
>   (mapped-devices
>     (list
>       (mapped-device
>         (source (list (uuid "a07c54da-eb61-4135-86b8-8791e863e46a") (uuid "c40026af-ace9-47fc-9d3f-4b8d6a2219cb")))
>         (target "/dev/md0")
>         (type raid-device-mapping))))
>
> The error message I get is guix system: error: #<<uuid> type: dce bv: #vu8(160 124 84 218 235 97 65 53 134 184 135 145 232 99 228 106)>: invalid G-expression input
>
> [[End of PGP Signed Part]]

Would it be possible to use /dev/disk/by-uuid paths instead of uuid
objects for these?  I think this big "typeof" based dynamic dispatch
that we're using in Scheme is erm, not very robust, to put it mildly.