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

2023-09-19 Thread Csepp


Ludovic Courtès  writes:

> Hi,
>
> Csepp  skribis:
>
>> Lars Rustand  writes:
>
> [...]
>
>>> 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: #< 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?
>
> Depends: /dev/disk/by-uuid is populated by eudev, which is not running
> at the time initrd code runs; IOW it’s OK to use /dev/disk/by-uuid if
> and only if the mapped device is not “needed for boot”.
>
>> I think this big "typeof" based dynamic dispatch that we're using in
>> Scheme is erm, not very robust, to put it mildly.
>
> Yeah, it’s not great.  What would you suggest?
>
> Ludo’.

I guess MyPy-for-Guile is a bit out of scope for now, so the next best
way to catch these would be property based testing.
As for implementing them, can't we use Guile's generics, or model
something on Clojure's generics?  Something that lets client code add
implementations to an interface.  Although that might have some security
implications.





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

2023-09-18 Thread Ludovic Courtès
Hi,

Csepp  skribis:

> Lars Rustand  writes:

[...]

>> 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: #< 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?

Depends: /dev/disk/by-uuid is populated by eudev, which is not running
at the time initrd code runs; IOW it’s OK to use /dev/disk/by-uuid if
and only if the mapped device is not “needed for boot”.

> I think this big "typeof" based dynamic dispatch that we're using in
> Scheme is erm, not very robust, to put it mildly.

Yeah, it’s not great.  What would you suggest?

Ludo’.





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

2023-09-18 Thread Csepp


Lars Rustand  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: #< 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.





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

2023-09-16 Thread Lars Rustand
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: #< type: dce bv: #vu8(160 
124 84 218 235 97 65 53 134 184 135 145 232 99 228 106)>: invalid G-expression 
input


signature.asc
Description: PGP signature