vm: Compute UUIDs truly deterministically.

This is a followup to 1540075c79.
The mistake had no effect on prior Guile versions but it's visible since
Guile 3.0.1 and the fix for <https://bugs.gnu.org/39634>.

* gnu/system/vm.scm (operating-system-uuid): Hash a list of
'file-system-digest' values, not the 'file-system-type' procedure.
This commit is contained in:
Ludovic Courtès 2020-03-10 15:21:48 +01:00
parent 98619142b8
commit 09844816c7
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@ -629,7 +629,8 @@ (define (file-system-digest fs)
'iso9660))
(bytevector->uuid
(uint-list->bytevector
(list (hash file-system-type
(list (hash (map file-system-digest
(operating-system-file-systems os))
(- (expt 2 32) 1))
(hash (operating-system-host-name os)
(- (expt 2 32) 1))